알기쉬운 데이터베이스시스템 Pearson 2015 년 6 월 충북대학교경영정보학과 (wscho@chungbuk.ac.kr) Addison-Wesley
강좌소개 목표 데이터베이스의설계및구축과활용에관한이론과실무를학습함 주요내용 ( 아래교재의전반부 ) 교재 데이터베이스개요와구조 관계형 (relational) 데이터베이스 질의어 (SQL) 데이터모델링 (ER Diagram) 과관계모델로의변환 데이터베이스프로그래밍 데이터베이스시스템 ( 제 6판 ), 피어슨코리아, 2011.12 출판 ( 황규영, 조완섭, ) 2
Chap 1 데이터베이스개요 3
이장의내용 데이터베이스란? 데이터베이스정의와예제 데이터베이스특징 데이터베이스사용자 4
데이터베이스란? 현대사회와데이터베이스활용 : 일상에서데이터베이스와관련된여러활동을하고있음 은행에가서예금하거나출금할때 ( 고객 - 예금 DB), 호텔이나비행기를예약할때 ( 예약 DB), 책을찾기위해전산화된도서관에서카탈로그를검색할때 ( 도서 DB) 온라인쇼핑을할때 ( 상품재고 DB) 수강신청을할때 ( 수강신청 DB) 생명공학 ( 유전자, 단백질, ) DB, 빅데이터수집, 저장, 관리, 분석 Databases 사용자 5
데이터베이스의발전 데이터베이스란? 숫자와문자정보중심의데이터베이스 최근에는 (3 차원 ) 이미지, ( 웹 ) 문서, 음성, 동영상등을포함하는멀티미디어데이타베이스로발전 설계데이타베이스, 지리정보데이타베이스 ( 네비게이션 ), 뉴스 / 드라마 DB, 데이터웨어하우스와 OLAP, 능동데이타베이스, 빅데이터를저장하는데이터베이스 (NoSQL) 등 숫자, 문자 이미지, 문서, 동영상 데이터베이스 멀티미디어데이터베이스 빅데이터 6
데이터베이스란? 데이타베이스예 : 수강신청 DB, 여행 DB, 도서 DB 여행정보 수강신청 DB 대학전산소 수강신청 인터넷 여행 DB ( 호텔, 비행기 ) 여행사 도서 DB 도서관 개설과목요청 A 과목의소개와강사정보요청 과목선택및확인버튼 동계계절학기개설과목리스트제공 강의계획서와강사정보제공 수강신청 DB 에기록하고수강신청완료메시지 출석부 7
데이터베이스란? Database 관련있는데이터의집합 의미를가지면서기록될수있는사실들 실세계의일부분을표현하고있음 Miniworld or universe of discourse (UoD) Logically coherent collection of data with inherent meaning Built for a specific purpose 기업 DB ( 생산, 재무회계, 인사물류, 전략, 고객정보 ) 수강신청 DB ( 학생정보, 과목정보, 강사정보, 강의계획서, 학점정보등 ) 바이오 DB ( 유전자정보, 단백질정보, 질병정보, 연구논문 ) 여행 DB ( 호텔, 항공기, 열차, 음식점등 ) 8
데이터베이스정의 Data 의미를가지면서 ( 컴퓨터에 ) 기록될수있는알려진사실 Database 관련있는데이터의모임 ( 예 : 학사 DB, 도서 DB, ) Database Management System 데이터베이스의생성과관리를지원하는소프트웨어패키지 질의어 / 응용프로그램 편리한 UI 제공 Database System Database 와그를관리하는소프트웨어 (DBMS, 응용프로그램 ) 를통칭하는용어 실세계 Data 사용자 / 프로그래머 응용프로그램응용프로그램 / 질의질의어 / 응용프로그램 / 질의 DBMS 질의를처리하는 SW + 디스크를관리 / 접근하는 SW 메타데이터 데이터베이스 [ 그림 1.1 ] 데이터베이스 Database System (shared) Database 9
데이터베이스정의 데이터베이스구축은저장될데이터의데이터타입, 구조, 제약조건을구체화하는것 메타데이터는데이터베이스에저장된데이터에관한정보를모은것임 ( 카탈로그, 사전 ) 데이터베이스는여러사람이공유하는데이터를중복없이저장하고관리함 응용프로그램은 DBMS 에질의를보내고응답을보내는형태로데이터베이스를관리하고활용함 데이터베이스유지관리와접근관리, 정보보호 실세계 Data 사용자 / 프로그래머 응용프로그램응용프로그램 / 질의질의어 / 응용프로그램 / 질의 DBMS 질의를처리하는 SW + 디스크를관리 / 접근하는 SW 메타데이터 데이터베이스 [ 그림 1.1 ] 데이터베이스 Database System (shared) Database 10
데이터베이스예제 대학교 DB 는독립적인정보인개체정보와그들사이의관계정보로구성됨 1. 개체 (Entity) 독립된정보 STUDENT ( name, number, class, major ) Grade_Report Prerequsite COURSE ( coursename, coursenumber, credithours, department ) Department SECTION (sectionidentifier, sectionnumber, semester, year, instructor) 2. 관계 (Relationship) 개체들사이의관련성정보 STUDENT는 DEPARTMENT를전공한다. COURSE는 DEPARTMENT에서제공한다. SECTION은특정 COURSE에속한다. STUDENT는 SECTION에수강신청한다. COURSE는선수 COURSE가있다. INSTRUCTOR는 SECTION을강의한다. Instructor 11
데이터베이스예제 STUDENT Name Smith Brown 개체정보 StudentNumber 17 18 Class 1 2 Major COSC COSC DEPARTMENT Code COSC MATH Name Computer Mathematics RoomNo 59-201 59-104 COURSE 관계정보 CourseName Intro to Computer Science Data Structures Discrete Mathematics Database Course Number COSC1310 COSC3320 MATH2410 COSC3380 CreditHours 4 4 3 3 Department COSC COSC MATH COSC Instructor Name King Knuth Phone 261-3258 261-3257 RoomNo 59-202 59-105 SECTION SectionIdentifier 85 92 102 112 119 135 Course Number MATH2410 COSC1310 COSC3320 MATH2410 COSC1310 COSC3380 Semester Fall Fall Spring Fall Fall Fall Year 91 91 92 92 92 92 Instructor King Anderson Knuth Chang Anderson Stone 관계정보 12
데이터베이스예제 GRADE_REPORT ( 수강신청 ) StudentNumber 17 17 8 8 8 8 SectionIdentifier 112 119 85 92 102 135 Grade B C A A B A Section 85 92 102 112 119 135 Student 17 8 19 PREREQUISITE CourseNumber1 COSC3380 COSC3380 COSC3320 ENROLLMENT CourseNumber COSC3380 COSC3380 COSC3320 CourseNumber2 COSC3320 COSC3330 COSC3210 StudentNumber 17 18 17 관계는두집합사이의카티젼프로덕트의부분집합 13
데이터베이스예제 데이터베이스조작은질의와갱신명령으로구분됨 질의의예는다음과같다. Smith 의성적을검색하라. 2008 년가을학기에개설된데이터베이스과목의강좌를수강한학생들의이름과성적을검색하라. 데이터베이스과목의선수과목을검색하라. 갱신의예는다음과같다. 이번학기에 데이터베이스 과목의새로운강좌를개설하라. John 의수강신청정보를삭제하라. 지난학기 데이터베이스 강좌에서 Smith 의성적을 A 로하라. Smith 를 2 년생으로변경하라. 14
데이터베이스의특징? DB 와파일은어떤차이가있는가? 엑셀, 아래한글파일 비교데이터베이스파일 공유여러사람이효과적으로공유공유불편 ( 이메일, 파일전송 ) 최신성 뷰 변경시즉시모든사람이변경된데이터활용 거대한 DB 에서각자가관심있는부분을 view 로정의 접근권한정교하게사용자접근을제어, 암호화, 사후감사등 복구 실수로지우거나정전이되도최신상태로복구가가능함 각자가진파일에서변경된부분을 update 하거나수정본을다시전송 각자가관심있는부분만보는것이어려움 접근제어가정교하지못함 복구가어려움 15
데이터베이스특징 self description Database 에는 DB 자체뿐만아니라 DB 의구조와제약조건에대한완전한정의 (metadata) 까지보유 => database catalog Catalog 에는 DB 에속하는각 table 의구조, 각데이터항목의타입과저장형식, 데이터에대한다양한제약조건등이저장됨 DBMS Catalog Meta Data Database-1 Table-1 Table-2 Database-2 Table-1 Table-3 하나의 DBMS 는여러 database 를생성하고관리할수있으며, 이는각데이터베이스에대한 meta data 를유지함으로써가능함 인사 DB Database-1/Table-2 Database-1/Table-1 자재 DB Database-2/Table-1 Database-2/Table-3 16
데이터베이스특징 데이터독립성 데이터베이스저장구조가변경되어도이를사용하는응용프로그램이나사용자는최소한의영향을받게됨 ( 프로그램 / 데이터분리 ) 응용응용응용 사용자 테이블 Database System DBMS 테이블 저장구조매핑 메타데이터 데이터베이스 디스크저장구조 track#, block#, offset 변경 17
데이터베이스특징 데이터추상화 데이터베이스에서는사용자에게저장구조의복잡성을숨기고테이블개념만으로 DB 를생성 / 관리할수있도록지원함 사용자테이블 Database System DBMS 테이블 저장구조매핑 메타데이터 데이터베이스 디스크저장구조 track#, block#, offset 18
데이터베이스특징 다양한뷰 수위실 DBMS 는저장된테이블정보를가공하여 ( 가로세로분할, 테이블조합등 ) 다양한형태 ( 뷰 ) 로사용자에게필요한데이터 set을제공함 총무과 인사과 학생과 수백, 수천가지뷰를정의할수있음 사용자편의성제고 DBMS 보안 / 권한관리에유용함 DATABASE 19
데이터베이스특징 데이터공유 필요한자료를한번만 database 에저장하고, 모든응용 ( 사용자 ) 에서이를공유하도록함 => 데이터중복방지, 최신성, 일치성보장 File System 에서는여러응용에서데이터를중복하여저장 / 관리함 응용 -1 응용 -1 학생과 응용 -1 경리과 응용 -1 응용 -1 학생과 응용 -1 경리과 DBMS File System DB, 홍길동 등록금정보 수강정보홍길동, 150 학생정보 홍길동 수강정보 DB, 홍길동 학생정보 홍길동 등록금정보 홍길동, 150 학생정보 홍길동 20
데이터베이스특징 데이터공유 DBMS 는단일사용자용과다수사용자용으로구분됨 다수사용자용 DBMS 는여러사용자가동시에 DB 를접근할수있도록지원하는 DBMS ( 예 : 수강신청 DB 모든학생이동시접근 ) 다수사용자용 DBMS 에는동시성제어 (concurrency control) 소프트웨어가내장되어다수사용자가동일한데이터를동시에변경하는경우에도데이터의일관성 (consistency) 을보장함 예를들어, 항공회사의여러에이전트들이동일한좌석을예약하는경우에도 DBMS 는하나의좌석이한에이전트에게만지정되도록보장한다. 좌석예약과같은응용을일반적으로온라인트랜잭션처리 (OLTP: On- Line Transaction Processing) 응용이라고부른다. 다수사용자용 DBMS 의기본적인기능은동시에수행되는트랜잭션들이상호방해를받지않고정확하고효율적으로수행되도록보장하는데있다. 트랜잭션? 원자성, 고립성 21
데이터베이스사용자 데이터베이스관리자 (database administrator : DBA) 데이터베이스시스템의관리를책임진사람 데이터베이스설계자 (database designer) 데이터베이스의구조등을설계하는전문가 최종사용자 (end users) 데이터베이스에대하여질의, 갱신, 보고서작성등을담당하는사람 캐주얼사용자 (casual end users): 비정기적인데이터베이스사용자 초보사용자 (parametric or naive users): 미리일정한용도로작성된프로그램을사용하는사용자 ; 은행점원이나여행사예약담당원등 전문사용자 (sophisticated end users): 복잡한응용을개발하며, DBMS의기능을충분히사용하는전문가 System analysts / Application programmers 초보사용자를위하여잘정의된기능의응용을설계하고구현하는사람 22
DBMS 의장점 중복성제어 저장공간낭비방지 중복된회수만큼반복하여변경하는문제해결 데이터일치성유지가어려워지는문제 => 제어된중복성 응용 -1 응용 -1 학생과 응용 -1 경리과 응용 -1 응용 -1 학생과 응용 -1 경리과 DBMS File System DB, 홍길동 등록금정보 수강정보홍길동, 150 학생정보 홍길동 수강정보 DB, 홍길동 학생정보 홍길동 등록금정보 홍길동, 150 학생정보 홍길동 23
DBMS 의장점 권한관리 데이터베이스시스템접근시로그인 / 패스워드를확인함 허가받은사람만이데이타베이스 ( 테이블혹은테이블의일부 ) 에접근할수있도록 Grant ( 권한부여 ), Revoke ( 권한제거 ) 명령을제공함 권한의종류는 Read/Write 로구성됨 프로그램객체를위한지속성공간제공 프로그래밍언어에서다루는자료는별도의파일에저장하지않는한프로그램종료와함께삭제됨 그러나 DB 에저장된자료는프로그램종료와는무관하게존재함 효율적인질의처리와성능 하드디스크에저장된대규모데이터를빠르게검색하고변경할수있도록여러가지질의처리기법과인덱싱기법을제공함 ( 수백만건의레코드들로부터특정한레코드 ( 예를들어이름이 홍길동 인레코드 ) 를 3~4 회비교연산으로찾을수있음 ) 24
DBMS 의장점 벡업과회복기능 다양한회복기법과이중화기법으로데이터베이스를소프트웨어나하드웨어고장으로부터안전하게최신상태로복구할수있음 다양하고편리한사용자인터페이스제공 보고서작성기, 대화식질의처리기, 웹인터페이스 복잡한관계의표현과관리 학생과학과사이의관계, 학생과교수사이의관계등을편리하게표현하고관리할수있음 무결성제약조건의보장 데이터베이스의상태가정상적인상태로만변경되도록보장함 ( 예를들어, 나이가 70 세이상인학생레코드나부서테이블에없는부서가직원레코드의부서로입력되면자동으로경고를줄수있음 ) 무결성제약조건은복잡한비즈니스규칙을표현하고관리할수있도록확장되고있음 ( 트리거와능동데이타베이스시스템 ) 25
데이터베이스특징 기타 표준화된데이터관리방식과규모의경제성 조직구성원들이표준화된방식으로데이터를관리함으로써데이터에대한이해도증진과대화용이 (DB 전문가이면누구나동일한관리 ) 규모의경제성 (economics of scale) : 부서마다다른방식으로자료를관리하는것보다단일화된 DB 로관리하는것이전체적인관점에서비용이낮아짐 응용프로그램의개발시간단축 응용프로그램의기능중상당한부분을 DBMS 가담당함 응용응용프로그램응용프로그램프로그램 DBMS 응용파일응용프로그램응용프로그램프로그램 DB 26
데이터베이스응용분야 80 년대 비즈니스데이터의저장과관리 인사, 재무 / 회계, 생산, 물류, 판매 / 영업, 의사결정지원, 환경경영등 90 년대 공간데이터베이스 : 공간데이터의저장과관리 설계 (CAD/CAM) 데이터베이스 : 설계도면저장과관리 Text databases : 문서의저장과관리 (HTML, XML) 비디오 / 오디오 / 이미지 databases 2000 년대 생명공학 DB : 유전자 DB, 단백질 DB, 대사경로 DB, 생물자원 DB, ( 대용량, 복잡성 ) 빅데이터를위한 DBMS : NoSQL, In-Memory DBMS 등 * 발전방향 단순데이터유형 ( 수치, 문자형 ) => 복잡한데이터유형 ( 문서나생명정보등 ) 27
데이터베이스사용이불필요한경우 DBMS 를사용하면비용이높아짐 높은초기투자비용과추가적인하드웨어필요함 데이터의보안, 동시성제어, 회복, 무결성조건등의기능이필요하지않은응용에대하여 DBMS 를사용하면불필요한오버헤드가됨 DBMS 사용이필요하지않는경우 데이터베이스와응용이단순하고잘정의되어있으며, 변경될가능성이적을경우 DBMS 오버헤드로인하여엄격한실시간데이터처리요구사항을만족시키기힘든경우 ( 최근들어이러한경우실시간 DBMS 를활용하는추세로바뀌고있음 ) 다사용자데이터접근이필요하지않은경우 ( 최근들어개인용 DBMS 도널리보급되고있음 MS Access) 28