머리말

Similar documents
슬라이드 제목 없음

<4D F736F F F696E74202D20BFC0B6F3C5AC2D31C0E52DB5A5C0CCC5CDBAA3C0CCBDBA20BDC3BDBAC5DB2E BC8A3C8AF20B8F0B5E55D>

슬라이드 제목 없음

슬라이드 제목 없음

02-01 데이터베이스의필요성 데이터베이스의정의와특성

Microsoft PowerPoint - 2장 (DBConcepts) [호환 모드]

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

슬라이드 제목 없음

DBMS & SQL Server Installation Database Laboratory

슬라이드 제목 없음

<4D F736F F F696E74202D E DB0FCB0E820BBE7BBF3BFA120C0C7C7D120B0FCB0E820B5A5C0CCC5CDBAA3C0CCBDBA20BCB3B0E8>

Microsoft PowerPoint - 사본 - OAS09-사무자동화 기술(DB).ppt

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

금오공대 컴퓨터공학전공 강의자료

쉽게 풀어쓴 C 프로그래밊

lecture01

Windows 8에서 BioStar 1 설치하기

<4D F736F F F696E74202D20BFC0B6F3C5AC2D38C0E52DBAE4BFCD20BDC3BDBAC5DB20C4ABC5BBB7CEB1D72DBFC0B6F3C5AC2E BC8A3C8AF20B8F0B

PowerPoint Presentation

Microsoft PowerPoint Python-DB

Microsoft PowerPoint - QVIZMVUMWURI.pptx

MySQL-.. 1

VENUS Express 사용자 매뉴얼

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - 10Àå.ppt

PowerPoint Presentation

untitled

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Cloud Friendly System Architecture

[Brochure] KOR_TunA

JDBC 소개및설치 Database Laboratory

Microsoft PowerPoint - chap01-C언어개요.pptx

윈도우시스템프로그래밍

Microsoft PowerPoint SQL 추가 기능

PowerPoint Template

PowerPoint 프레젠테이션

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

슬라이드 1

PowerPoint 프레젠테이션

Tablespace On-Offline 테이블스페이스 온라인/오프라인

untitled

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint - 권장 사양

Spring Boot/JDBC JdbcTemplate/CRUD 예제

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

PowerPoint Presentation

항목

6장. SQL

5장 SQL 언어 Part II

슬라이드 제목 없음

Microsoft PowerPoint MySQL 연동.ppt

Windows Server 2012

Microsoft PowerPoint - 7(ERModeling) [호환 모드]

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

슬라이드 제목 없음

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Object Oriented Analyis & Design Training Agenda

Windows 10 General Announcement v1.0-KO

윈도우시스템프로그래밍

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft Word - src.doc

<B3EDB4DC28B1E8BCAEC7F6292E687770>

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

03-01 데이터모델링과데이터모델의개념 개체-관계모델 논리적데이터모델

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Chapter 5 비즈니스인텔리젼스의기초 : 데이터베이스와정보관리

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft Word - PLC제어응용-2차시.doc

12. 데이타베이스 설계

MVVM 패턴의 이해

메뉴얼41페이지-2

PowerPoint Presentation

강의 개요

슬라이드 제목 없음

PowerPoint 프레젠테이션

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

View Licenses and Services (customer)

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

이동전화요금체계개선방안(인쇄본).hwp

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

PowerPoint Presentation

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

OCW_C언어 기초

<4D F736F F F696E74202D203037C1D6C2F75F5BB1B3C0E730362C30375D5FC7CFB5E5BFFEBEEEBFCD20BCD2C7C1C6AEBFFEBEEE2CB5A5C0CCC5CDC0DABFF8B0FCB8AE>

강의 개요

3. 다음은카르노맵의표이다. 논리식을간략화한것은? < 나 > 4. 다음카르노맵을간략화시킨결과는? < >

Chap 6: Graphs

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

제8장 자바 GUI 프로그래밍 II

untitled

Microsoft PowerPoint - ch07_데이터베이스 언어 SQL.pptx

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

슬라이드 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

Transcription:

머리말 개정 3 판발간에즈음하여 대학에서데이터베이스과목을가르친지 20여년의세월이지났습니다. 그동안외국의유명한원서들또는이들의번역서를교재로선택하여강의를해왔습니다. 몇년전에는저명한원서 2판과 3판을여러교수들과공동으로직접번역을해보기도했습니다. 이런교재들은대개 700페이지이상의분량이어서한학기동안가르치는것은불가능했습니다. 또한이런교재에는지난 70년대이후부터데이터베이스분야에서연구된방대한이론이집대성되어있어서데이터베이스를실무에활용하는능력을배양하기에는아쉬운점이적지않았습니다. P R E F A C E MS SQL Server나 Oracle 등널리사용되는관계 DBMS의활용기술위주로저술된교재들도많이출간되어있습니다. 이런책들은데이터베이스활용기술을학습하는용도로는적절하지만, 데이터베이스분야의기본적인이론이소홀히다뤄진경우가많았습니다. 활용기술위주의책만공부한학생들은데이터베이스의기본적인이론을미처습득하지못하여효율적으로데이터베이스를운영하지못하는경우가흔히있습니다. 실제로데이터베이스가기업에서활용되는것과동떨어져서이론위주로공부한학생은데이터베이스를실제로다룰수있는능력이부족한경우가많습니다. 따라서데이터베이스를제대로활용하는데반드시필요한데이터베이스의기본적인개념및이론을이해하기쉽게설명하면서활용기술도함께다룬교재가필요하다고판단하였습니다. 이런교재를저술하기위해서인터넷등에서약 10,000페이지에가까운자료를찾아서검토하였습니다. 또한이분야에서오랜강의경험이있는동료교수들의조언도참고하였습니다. 이와같은준비과정을거쳐, 한학기동안가르치기에적절한데이터베이스의기본적인개념과실용적인주제들을정선하여본교재를저술하였습니다. 실제업무와관련이적은순수한데이터베이스이론주제들은과감하게배제하였습니다. 개념을알기쉽게보여주는그림들을많이사용하여이해하기쉬운책이되도록꾸몄습니다. Oracle이기업에서많이사용되고있으나대학에서개인용컴퓨터의윈도우운영체제에실습환경을마련하기쉬운 MS SQL Server를기반으로책을저술하였습니다. 한장에서 MS SQL Server를설명하 3

배 움 터 데 이 터 베 이 스 P R E F A C E 고, 각장의필요한부분에서그장의내용과연관된 MS SQL Server 기능을한절에포함하였습니다. 하지만장이나절의제목에 MS SQL Server가들어있는부분을제외한내용은대부분의 DBMS에공통적으로적용됩니다. 독자들이어떤 DBMS를사용하더라도이책을학습하고난후에해당 DBMS의매뉴얼을가능한한쉽게읽으면서이해할수있는수준의지식을습득할수있도록최선을다했습니다. 마이크로소프트사의 SQL Server 2000을기반으로한초판이발간된후좋은평가를받았습니다. 또한 SQL Server 2005를기반으로하는개정판을발간하면서여러곳에서본문의설명과그림을보완하였고, 연습문제를추가하였습니다. 본교재로이론을강의하면서 SQL 실습까지하기에는 4장의내용이다소부족하다는의견이있어서 SQL을실습하는내용을부록에추가하였습니다. 금년도에마이크로소프트사에서 SQL Server 2012를출시함에따라개정3판을발간하게되었습니다. 개정판이후에수집한자료들을바탕으로여러곳에서본문의설명과그림을보완하였고, 일부장에연습문제를추가하였습니다. SQL Server 2012는 32비트용을기준으로용량이약 2.83GB에달하여 180일동안사용할수있는평가판을 DVD 1장에담아서책과함께제공합니다. 이책은전체적으로 10개의장으로구성되어있습니다. 각장의주요내용은다음과같습니다. 1장에서는데이터베이스시스템의개요, 화일시스템과 DBMS를사용한데이터관리, 데이터모델, DBMS의발전과정, DBMS가사용자를위해제공하는언어, 다양한 DBMS 사용자들의역할, ANSI/SPARC 3단계아키텍처, 데이터베이스시스템의여러가지아키텍처등을설명하였습니다. 2장에서는관계데이터모델의개념과기본적인용어, 릴레이션의특성, 릴레이션의다양한키, 무결성제약조건들을기술하였습니다. 3장에서는대부분의 PC에윈도우운영체제가사용되므로이런환경에서쉽게설치하여실습해볼수있는 MS SQL Server의개요와설치방법, 환경설정등을다뤘습니다. 4장에서는관계대수의개요와관계연산자, SQL의개요, SQL의데이터정의어기능과무결성제약조건, 다양한 SELECT문, 데이터갱신문, 트리거와주장, 내포된 SQL 등을논의하였습니다. 5장에서는데이터베이스설계의주요단계들, ER 모델, ER 모델의표기법, 회사에서흔히볼수있는데이터베이스응용을예로사용하여개념적데이터베이스설계를진행하는과정, ER 스키마를관계데이터베이스스키마로사상하는알고리즘을설명하였습니다. 6장에서는 5장에서설계한관계데이터베이스스키마에대한물리적데이터베이스설계, 여러가지인덱스 4

머리말 유형과인덱스선정지침등을설명하였습니다. 7장에서는정규화의개요, 정규화의이론적인근거가되는함수적종속성, 여러가지정규형, 역정규화를기술하였습니다. 8장에서는뷰의개요, 뷰를정의하고제거하는방법, 뷰의장점, 갱신이가능한뷰, 시스템카탈로그의개요, MS SQL Server의시스템카탈로그등을살펴보았습니다. 9장에서는트랜잭션의개념과특성, 트랜잭션기능을제공하기위해필요한두가지구성요소인동시성제어와회복기법을논의하였습니다. 마지막으로 10장에서는데이터베이스보안의개요, 권한관리, MS SQL Server에서권한을관리하는방법을설명하였습니다. 개정판에추가된부록에서는 4 장에서많이다루지않은다양한실습문제와해답을제시하여 SQL 활용능력을높이도록하였습니다. P R E F A C E 비싼외화를지불하고구입한 DBMS의기능을제대로활용하지못하는경우가적지않은현실을늘안타깝게느껴왔습니다. 본책을통해많은독자들이데이터베이스의기본적인이론을정립하고이를 DBMS에서실제로활용하는능력을배양할수있기를희망합니다. 본책이완성되기까지도움을주신많은분들께감사드립니다. 강봉직교수님은초판의체계를정비하는작업을도와주셨습니다. 서울시립대학교컴퓨터과학부의대학원생장형화군, 김지선양, 황정수군은초판의 SQL Server에관한원고작성과교정작업을도와주었습니다. 장건업군은개정판의 SQL Server에관한원고작성과교정작업을도와주었습니다. 학부생박상우군은개정3판의 SQL Server에관한원고작성을도와주었습니다. 초판을저술하는작업을선뜻시작하지못하고머뭇거리던저를적극적으로후원해주신생능출판사의김승기사장님께깊이감사드립니다. 이책을편집하고인쇄하는작업을열심히해주신편집부의최일연실장님께감사의마음을전합니다. 고등학교의 정보사회와컴퓨터 교과서를저술하면서정이든생능출판사의모든직원들께도감사드립니다. 개정판을낼때와마찬가지로본책을개정하는작업에몰두하여정신없이지낸저를이해하고성원해준가족에게도고마움을표합니다. 2012 년가을을기다리며 ( 개정 3 판 ) 홍의경 5

배 움 터 데 이 터 베 이 스 C O N T E N T S 제1장데이터베이스시스템 1.1 데이터베이스시스템개요 / 15 1.1.1 데이터베이스스키마와상태 / 15 1.1.2 데이터베이스시스템의구성요소 / 16 1.1.3 데이터베이스시스템의요구사항 / 20 1.1.4 데이터베이스시스템을공부해야하는이유 / 21 1.2 화일시스템 vs. DBMS / 22 1.2.1 화일시스템을사용한기존의데이터관리 / 22 1.2.2 화일시스템의단점 / 23 1.2.3 DBMS를사용한데이터베이스관리 / 26 1.2.4 DBMS의장점 / 27 1.2.5 DBMS의단점 / 31 1.3 DBMS 발전과정 / 32 1.3.1 데이터모델 / 32 1.3.2 DBMS의발전과정 / 33 1.3.3 새로운데이터베이스응용과 DBMS의분류 / 38 1.4 DBMS 언어 / 40 1.5 DBMS 사용자 / 43 1.6 ANSI/SPARC 아키텍처와데이터독립성 / 47 1.6.1 ANSI/SPARC 아키텍처 / 47 1.6.2 데이터독립성 / 53 1.7 데이터베이스시스템아키텍처 / 54 연습문제 / 61 제2장관계데이터모델과제약조건 2.1 관계데이터모델의개념 / 68 2.1.1 기본적인용어 / 68 2.1.2 스키마와인스턴스 / 72 2.2 릴레이션의특성 / 74 2.3 릴레이션의키 / 77 2.4 무결성제약조건 / 84 2.4.1 도메인제약조건 (domain constraint) / 86 2.4.2 키제약조건 (key constraint) / 86 6

차례 2.4.3 기본키와엔티티무결성제약조건 (entity integrity constraint) / 87 2.4.4 외래키와참조무결성제약조건 (referential integrity constraint) / 87 2.4.5 무결성제약조건의유지 / 89 연습문제 / 93 제3장 MS SQL Server 3.1 SQL Server 개요 / 101 3.1.1 SQL Server 특징 / 104 3.1.2 SQL Server 에디션 / 105 3.2 SQL Server 설치및수행 / 107 3.2.1 SQL Server 설치 / 108 3.2.2 SQL Server 수행 / 124 3.3 환경설정 / 130 3.3.1 예제데이터베이스생성 / 130 3.3.2 사용자등록 / 134 3.3.3 암호변경 / 141 3.3.4 예제테이블생성 / 143 3.4 SQL Server 관리스튜디오 / 148 3.5 Transact-SQL / 153 연습문제 / 154 C O N T E N T S 제4장관계대수와 SQL 4.1 관계대수 / 157 4.1.1 실렉션연산자 / 160 4.1.2 프로젝션연산자 / 161 4.1.3 집합연산자 / 163 4.1.4 조인연산자 / 169 4.1.5 디비전연산자 / 171 4.1.6 관계대수질의의예 / 172 4.1.7 관계대수의한계 / 173 4.1.8 추가된관계대수연산자 / 173 4.2 SQL 개요 / 177 4.3 데이터정의어와무결성제약조건 / 182 7

배 움 터 데 이 터 베 이 스 C O N T E N T S 4.3.1 데이터정의어 / 183 4.3.2 제약조건 / 188 4.4 SELECT문 / 193 4.4.1 기본적인 SELECT문 / 194 4.4.2 조인 / 214 4.4.3 중첩질의 (nested query) / 218 4.5 INSERT, DELETE, UPDATE문 / 225 4.5.1 INSERT문 / 226 4.5.2 DELETE문 / 227 4.5.3 UPDATE문 / 228 4.6 트리거 (trigger) 와주장 (assertion) / 229 4.6.1 트리거 / 230 4.6.2 주장 / 233 4.7 내포된 SQL / 234 연습문제 / 241 제5장데이터베이스설계와 ER 모델 5.1 데이터베이스설계의개요 / 256 5.2 ER 모델 / 261 5.2.1 엔티티 / 263 5.2.2 엔티티타입 / 264 5.2.3 애트리뷰트 / 265 5.2.4 약한엔티티타입 / 270 5.2.5 관계와관계타입 / 271 5.2.6 ER 스키마를작성하기위한지침 / 280 5.2.7 데이터베이스설계과정 / 284 5.2.8 ER 모델의또다른표기법 / 284 5.3 데이터베이스설계사례 / 289 5.4 논리적설계 : ER 스키마를관계모델의릴레이션들로사상 / 297 5.4.1 ER-릴레이션사상알고리즘 / 299 5.4.2 데이터베이스설계사례에알고리즘적용 / 306 연습문제 / 312 8

차례 제 6 장물리적데이터베이스설계 6.1 보조기억장치 / 323 6.2 버퍼관리와운영체제 / 326 6.3 디스크상에서화일의레코드배치 / 327 6.4 화일조직 / 332 6.4.1 히프화일 ( 비순서화일 ) / 333 6.4.2 순차화일 ( 순서화일 ) / 335 6.5 단일단계인덱스 / 338 6.6 다단계인덱스 / 348 6.7 인덱스선정지침과데이터베이스튜닝 / 352 연습문제 / 360 C O N T E N T S 제 7 장릴레이션정규화 7.1 정규화개요 / 365 7.2 함수적종속성 / 371 7.3 릴레이션분해 (decomposition) / 376 7.4 제1정규형, 제2정규형, 제3정규형, BCNF / 380 7.4.1 제1정규형 / 380 7.4.2 제2정규형 / 381 7.4.3 제3정규형 / 384 7.4.4 BCNF / 386 7.4.5 여러정규형의요약 / 389 7.4.6 ER 다이어그램과정규화 / 391 7.5 역정규화 / 391 연습문제 / 394 제 8 장뷰와시스템카탈로그 8.1 뷰 / 405 8.1.1 뷰의개요 / 405 8.1.2 뷰의정의 / 406 8.1.3 뷰의장점 / 409 8.1.4 뷰의갱신 / 413 8.2 관계 DBMS의시스템카탈로그 / 416 9

배 움 터 데 이 터 베 이 스 C O N T E N T S 8.3 SQL Server의시스템카탈로그 / 422 연습문제 / 436 제9장트랜잭션 9.1 트랜잭션개요 / 446 9.2 동시성제어 / 457 9.2.1 동시성의개요 / 457 9.2.2 로킹 (locking) / 462 9.3 회복 / 469 9.3.1 회복의개요 / 469 9.3.2 로그를사용한즉시갱신 / 471 9.3.3 데이터베이스백업과재해적고장으로부터의회복 / 478 9.4 Transact-SQL의트랜잭션 / 479 연습문제 / 483 제10장데이터베이스보안과권한관리 10.1 데이터베이스보안 / 492 10.2 권한관리 / 495 10.2.1 권한허가 / 495 10.2.2 권한취소 / 499 10.2.3 역할 (role) / 500 10.3 SQL Server의보안및권한관리 / 502 10.3.1 SQL Server의보안및권한관리의개요 / 502 10.3.2 SQL Server의보안및권한관리실습 / 504 연습문제 / 520 부록 / 522 참고문헌 / 537 찾아보기 / 543 10

제 1 장데이터베이스시스템 1.1 데이터베이스시스템개요 1.2 화일시스템 vs. DBMS 1.3 DBMS 의발전과정 1.4 DBMS 언어 1.5 DBMS 사용자 1.6 ANSI/SPARC 아키텍처와데이터독립성 1.7 데이터베이스시스템아키텍처 연습문제

배 움 터 데 이 터 베 이 스 D A T A B A S E 제 1 장 데이터베이스시스템 1 CHAPTER 우리는흔히현재정보시대에살고있다고말한다. 모든조직체에정보가요구되고있다. 정보는매우가치있는자산이며, 일부사람들이말하듯이정보는힘이다. 조직에서필요로하는정보를효율적으로시의적절하게제공하는것과이를성취할수있는기술을올바르게이용하는것이중요하다. 조직에서중요한결정을내리기위해서는정보를수집하고분석해야한다. 컴퓨터를사용하여정보를수집하고분석하는데데이터베이스기술이활용되고있다. 본책에서는디스크와같은보조기억장치에저장되어있는지속적인데이터에관심을갖는다. 데이터와정보는서로다르다. 데이터는컴퓨터디스크와같은매체에저장된사실을말한다. 정보는데이터를처리해서사람이이해하기에적합한형태로의미있게만든것이다. 디스크상에저장된데이터는유용한정보로변환해야한다. 데이터베이스시스템의목적은정보와데이터사이의갭을줄이는것이다. 데이터는프로그램과질의에의해서정보로변환된다. 어떤조직체에관련된사실들을수집한데이터를데이터베이스 (database) 라고부른다. 데이터베이스는표준형식으로저장된데이터를말하며, 일반적으로다수사용자 / 다수응용프로그램들이공유하기위해설계된다. 저장된데이터가그조직체의모든사실을포함할필요는없다. 일반적으로한조직체의어떤영역과연관된데이터를수집하여조직하며이는여러수준의의사결정을지원하기위한정보를제공하는데사용된다. 데이터베이스가필요한전형적인환경은데이터의양이방대하며, 데이 12

CHAPTER 1 제 1 장데이터베이스시스템 터가구조적이며, 많은사용자들이동시에데이터를접근하여검색과갱신을수행하는환경이다. 조직체들은연속적인운영, 높은가용성, 최신의정확한정보, 데이터내에서복잡한상호관련성을유지하기위해데이터베이스기술을필요로한다. 컴퓨터에저장된데이터의양이폭발적으로증가하고있고, 저장비용은꾸준히감소하고있으며, 한조직의자산으로서데이터의가치가점차중요해짐에따라데이터베이스가중요하게인식되고있다. 매우큰규모의데이터베이스예로는미국의 Fedex, 월마트데이터베이스등이있는데, 10억개이상의레코드를갖는테이블도있으며, 수십테라바이트크기의데이터베이스가존재한다. 데이터베이스는조직체의응용시스템들이공유해서사용하는운영데이터 (operational data) 들이구조적으로통합된모임이다. 데이터베이스의구조는사용되는데이터모델에의해결정된다. 현재데이터베이스들은우리주위에널려있으며의식하지못해도우리생활의많은면에영향을미친다. 데이터베이스는항상실세계의변화를반영한다. 예 : 데이터베이스 1 대학에서는데이터베이스에학생들에관하여신상정보, 수강과목, 성적등을기록하고, 각학과에개설되어있는과목들에관한정보를유지하고, 교수에관해서신상정보, 담당과목, 급여정보를유지한다. 예 : 데이터베이스 2 항공기예약시스템에서는여행사를통해항공기좌석을예약하면모든예약정보가데이터베이스에기록된다. 항공기예약시스템은여러여행사들이어떤비행기의좌석을초과해서예약하지못하도록해야한다. 예를들어, 서울에서제주에가는어떤항공기에좌석이한개만남아있는데두여행사에서동시에그좌석을예약하려할경우에항공기예약시스템은이런상황을탐지하여한여행사만그좌석을예약하도록하고, 다른여행사에게는좌석이더이상남아있지않다는메시지를보내게된다. 예 : 데이터베이스 3 할인점이나수퍼마켓에서상품들을구입하고계산대에올려놓으면계산하는직원이각상품의 13

배 움 터 데 이 터 베 이 스 바코드를스캐너로읽는다. 스캐너는바코드를사용하여상품데이터베이스로부터해당상품의가격을찾아내는데이터베이스프로그램과연결되어있다. 이데이터베이스프로그램은이상품의재고량에서현재판매되고있는상품수만큼감소시키고계산서에이상품의가격을더한다. 만일재고량이어떤수치이하로내려가면구매부서에자동적으로통보되어이부서는추가로상품을주문한다. 고객이어떤상품이있는지전화로문의하면데이터베이스에서재고량을검색하여고객에게답을알려준다. 또한고객이신용카드로대금을결제하려하면신용카드회사의데이터베이스에접속하여이신용카드가분실카드인지, 유효기간이지나지않았는지, 사용한도액을초과하지않았는지등을확인한후, 지불내역이신용카드회사의데이터베이스에기록된다. 이외에도컴퓨터화된도서관시스템, 기업에서의사원및프로젝트관리, 병원에서환자관리, 은행에서의고객관리등데이터베이스가사용되는사례는일일이열거하기어렵다. 데이터베이스의특징은아래와같다. 데이터베이스는데이터의대규모저장소로서, 여러부서에속하는여러사용자에의해동시에사용된다. 더이상데이터를한사용자또는한부서에서소유하지않는다. 데이터베이스는이제조직체의모든구성원이공유하는자원이다. 중복된데이터를갖는별도의화일들로유지되는대신에데이터베이스에서는모든데이터가중복을최소화하면서통합된다. 데이터베이스는한조직체의운영데이터뿐만아니라그데이터에관한설명까지포함한다. 이런설명을데이터베이스스키마또는메타데이터 (metadata) 라고한다. 메타데이터는데이터에관한데이터라는뜻이다. 데이터의구조가프로그램과분리되어데이터베이스에저장되므로프로그램과데이터간의독립성이제공된다. 데이터베이스는효율적으로접근이가능하고질의를할수있다. 디스크와같은보조기억장치에저장되어있는데이터베이스에서필요한데이터를검색하거나데이터를삽입, 수정, 삭제하기위해서는이를효율적으로지원하는프로 14

CHAPTER 1 제 1 장데이터베이스시스템 그램이필요하다. 데이터베이스관리시스템 (DBMS: Management System) 은데이터베이스를정의하고, 질의어를지원하고, 리포트를생성하는등의작업을수행하는소프트웨어이다. 흔히데이터베이스라는용어가데이터베이스관리시스템을간략히나타내기위해서도사용되고있다. 본장에서는데이터베이스시스템을논의한다. 1.1절에서는데이터베이스시스템의개요를설명하고, 데이터베이스시스템의구성요소를설명한다. 1.2절에서는화일시스템과 DBMS를사용한데이터관리를설명하고두방식의장단점을논의한다. 1.3절에서는데이터모델을기술하고, DBMS의발전과정을소개한다. DBMS가사용자를위해제공하는몇가지 DBMS 언어들을 1.4절에서논의한다. 1.5절에서는다양한 DBMS 사용자들의역할을기술한다. 1.6절에서는 ANSI/SPARC 3단계아키텍처를설명하고두가지데이터독립성을논의한다. 마지막으로 1.7절에서는데이터베이스시스템의여러가지아키텍처들을설명한다. 1.1 데이터베이스시스템개요 1.1.1 데이터베이스스키마와상태 그림 1.1은간단한데이터베이스스키마 (database schema) 와데이터베이스상태 (database state) 를보여준다. 데이터베이스스키마는전체적인데이터베이스구조를뜻하며자주변경되지는않는다. 또한데이터베이스의모든가능한상태를미리정의한다. 데이터베이스스키마를내포 (intension) 라고부른다. 데이터베이스상태는특정시점의데이터베이스의내용을의미하며, 시간이지남에따라계속해서바뀐다. 데이터베이스상태를외연 (extension) 이라고부른다. DBMS는모든데이터베이스상태가유효한상태를유지하도록보장한다. 그림 1.1의데이터베이스는 2장에서자세하게논의할관계데이터모델로표현된관계데이터베이스이다. 관계데이터모델은현재가장널리사용되고있다. DEPARTMENT와 EMPLOYEE는테이블 ( 릴레이션 ) 의이름이고, 괄호속에열거된이름들은해당테이블의애트리뷰트들을의미한다. 관계데이터베이스에서는사람이이 15

배 움 터 데 이 터 베 이 스 해하기쉬운테이블로부터사용하기쉬운질의어를통해서원하는정보를검색하거나갱신을수행할수있다. 데이터베이스스키마 DEPARTMENT(DEPTNO, DEPTNAME, FLOOR) EMPLOYEE(EMPNO, EMPNAME, TITLE, DNO, SALARY) 데이터베이스상태 DEPARTMENT DEPTNO DEPTNAME FLOOR EMPLOYEE 1 영업 8 2 기획 10 3 개발 9 EMPNO EMPNAME TITLE DNO SALARY 2106 김창섭 대리 2 2000000 3426 박영권 과장 3 2500000 3011 이수민 부장 1 3000000 1003 조민희 대리 1 2000000 3427 최종철 사원 3 1500000 [ 그림 1.1] 데이터베이스스키마와데이터베이스상태 1.1.2 데이터베이스시스템의구성요소 데이터베이스시스템 (DBS: System) 은데이터베이스, 사용자 ( 응용프로그램 ), DBMS, 하드웨어로구성된다. 그림 1.2는데이터베이스시스템의구성요소들을나타낸다. 16

CHAPTER 1 제 1 장데이터베이스시스템 [ 그림 1.2] 데이터베이스시스템의구성요소 데이터베이스앞에서설명한것처럼데이터베이스는조직체의응용시스템들이공유해서사용하는운영데이터들이구조적으로통합된모임이다. 데이터베이스는아래그림 1.3과같이시스템카탈로그 ( 또는데이터사전 ) 와저장된데이터베이스로구분할수있다. 시스템카탈로그 (system catalog) 는저장된데이터베이스의스키마정보를유지한다. 사용자가새로운테이블을만들거나기존의테이블에새로운애트리뷰트를추가하는작업등을수행하면시스템카탈로그에이를반영하는스키마정보가삽입된다. 시스템카탈로그는 8장에서자세하게설명한다. 17

배 움 터 데 이 터 베 이 스 [ 그림 1.3] 시스템카탈로그와저장된데이터베이스 DBMS 실세계는동적이기때문에계속해서엔티티가생성, 수정, 삭제된다. 이는엔티티관계도마찬가지이다. 엔티티는문제영역에서특정한객체 ( 예 : 제품, 고객, 학생등 ) 를나타낸다. 예를들어, 판매원이고객에게제품을팔때마다판매원이판매한제품수가증가하고제품의재고량이감소한다. 새로운고객이등록되고신상품이시장에등장한다. 오래되거나경쟁력이떨어진제품은시장에서사라진다. 문제영역이작은경우에는적은수의엔티티와엔티티관계들이존재하고동적인변화도자주발생하지않으므로비즈니스의상태를수작업으로충분히관리할수있겠지만, 수십개이상의엔티티가연관되고비즈니스의규모가매우크다면비즈니스의상태를유지하는것이더이상수작업으로는불가능해진다. 이는효율성의문제가아니라조직체의생존의문제가된다. DBMS는사용자가새로운데이터베이스를생성하고, 데이터베이스의구조를명시할수있게하고, 사용자가데이터를효율적으로질의하고수정할수있도록하며, 시스템의고장이나권한이없는사용자로부터데이터를안전하게보호하며, 동시에여러사용자가데이터베이스를접근하는것을제어하는소프트웨어패키지이다. DBMS는사용자와응용프로그램에게편리하고효율적인데이터베이스사용환경을제공한다. DBMS는사용자가데이터의물리적인표현을정확하게알필요가없고, 데이터를저장하고갱신하고검색하기위한상세한알고리즘을명시할필요가없도록 18

CHAPTER 1 제 1 장데이터베이스시스템 해준다. 다양한부류의사용자들에게여러가지기능을제공하기위하여 DBMS는데이터베이스언어라고부르는특별한프로그래밍언어를한개이상제공한다. SQL은여러 DBMS에서제공되는사실상의표준데이터베이스언어이다. 또한한 DBMS에서여러데이터베이스를관리할수있다. 은행데이터베이스에서 DBMS가수행하는업무의몇가지예를들면, 구좌의잔액을확인하는검색, 입금이나출금으로인한잔액갱신, 새로운구좌를삽입, 기존의구좌를삭제하는것등이있다. 만일구좌수가 500만개인은행에서홍길동이라는고객의잔액을조회하기위해서 500만개의레코드를모두순차적으로탐색한다면검색시간이너무많이걸리므로홍길동의구좌레코드만빠르게접근할수있는효율적인방법들을 DBMS가제공해야한다. DBMS가운영되는환경은 PC부터메인프레임에이르기까지다양하다. 어떤 DBMS는컴퓨터제조업자가개발하여판매하는데, 이런제품은그제조업체의컴퓨터시스템에서만돌아간다 ( 예를들어, IBM의 IMS). 그러나대부분의 DBMS는독립적인소프트웨어제조업자가개발하여판매하는데, 이런제품은여러종류의컴퓨터시스템에서돌아간다 ( 예를들어, 오라클 ). 그림 1.4는컴퓨터시스템에서 DBMS 의위치를나타낸다. 일반적으로 DBMS는운영체제와밀접한연관을가진다. DBMS [ 그림 1.4] 컴퓨터시스템에서 DBMS 의위치 사용자데이터베이스사용자는여러부류로나눌수있다. 1.5절에서데이터베이스사용자들을좀더자세하게설명한다. 19

배 움 터 데 이 터 베 이 스 하드웨어데이터베이스는디스크와같은보조기억장치에저장되며, DBMS에서원하는정보를찾기위해서는디스크의블록들을주기억장치로읽어들여야한다. 또한계산이나비교연산들을수행하기위해중앙처리장치가사용된다. DBMS 자체도주기억장치에적재되어실행되어야하므로하드웨어자원들을필요로한다. 1.1.3 데이터베이스시스템의요구사항 데이터베이스시스템은조직체의운영에필수적인정보를관리하기때문에아래와같은요구사항들을만족시켜야한다. 이런요구사항들을만족시키기위해필요한기법이나알고리즘들을본책의관련장에서자세하게논의한다. 데이터독립성응용프로그램이데이터표현의상세한내역과데이터저장으로부터독립적이다. 융통성기존의응용프로그램들에영향을주지않으면서데이터베이스구조를변경할수있어야한다. 예를들어, 기존의테이블에새로운애트리뷰트를추가하고, 데이터베이스에새로운테이블을추가하는작업등을수행할수있다. 효율적인데이터접근방대한데이터베이스를효율적으로저장하고접근하기위해다수의정교한기법을제공해야한다. 일반적으로인덱스구조가이런목적으로사용된다. 데이터에대한동시접근데이터베이스는조직체의중요한공유정보이므로여러사용자가동일한데이터베이스를동시에접근한다. 하지만각사용자가혼자서데이터베이스를접근하는것처럼인식하도록데이터베이스에대한동시접근을동기화하기위한동시성제어를제공해야한다. 백업과회복시스템에러등으로부터데이터베이스를회복하며, 디스크등이손상을입는경우를대비해서백업을수행한다. 20

CHAPTER 1 제 1 장데이터베이스시스템 중복을줄이거나제어하여일관성유지데이터를통합함으로써동일한데이터가여러개의사본으로존재하는것을피한다. 성능을향상시키기위해중복을일부허용하고제어할수있다. 데이터무결성데이터무결성은의미적인측면에서데이터가정확하고완전함을의미한다. 사용자가무결성제약조건을정의하면 DBMS는데이터를삽입, 삭제, 수정할때마다제약조건을자동적으로검사한다. 데이터보안권한이없는접근으로부터데이터베이스를보호한다. 쉬운질의어키워드와간단한구문을사용한질의어를통해질의를표현하고결과를바로얻을수있다. 효율적인질의최적화와질의수행이중요하다. 다양한사용자인터페이스의제공가끔데이터베이스를사용하는사람을위한질의어인터페이스, 응용프로그램구현자를위한프로그래밍인터페이스, 초보사용자를위한메뉴기반인터페이스또는폼기반인터페이스등다양한사용자인터페이스를제공해야한다. 1.1.4 데이터베이스시스템을공부해야하는이유 데이터베이스시스템을공부해야하는여러가지이유가있다. 첫째, 데이터베이스시스템이여러응용에서현대의컴퓨팅환경의중심적인구성요소가되었다. 둘째, 데이터의다양성과용량이증가하고있다. 셋째, 디지털라이브러리, 전자상거래, 게놈 (genome) 프로젝트등고급 DBMS에대한필요성이크게늘어나고있다. 넷째, 데이터베이스시스템은화일관리와프로세스관리등의운영체제, 알고리즘등의이론, 인공지능, 멀티미디어, 질의최적화등에사용되는언어및논리등대부분의전산학주제들을포함한다. 21

배 움 터 데 이 터 베 이 스 1.2 화일시스템 vs. DBMS 1.2.1 화일시스템을사용한기존의데이터관리 화일시스템은 DBMS가등장하지않았을때인 1960년대부터사용되어왔다. 화일의기본적인구성요소는순차적인레코드들이다. 한레코드는연관된필드들의모임이다. 화일시스템에서는정보를운영체제의화일에저장한다. 화일시스템을사용하는경우에는일반적으로각각의응용프로그램마다별도의화일을유지한다. 화일을접근하는방식이응용프로그램내에상세하게표현되므로데이터에대한응용프로그램의의존도가높다. 응용프로그램은사용자의요구에따라프로그래머가개발한다. 프로그래머는데이터의논리적인구조뿐만아니라데이터의물리적인구조도프로그램에표현해야한다. 사용자의요구가바뀌면기존의프로그램을수정하거나새로작성해야한다. 예를들어, 기업에서는프로젝트, 제품, 업무, 고객, 사원들에관련된데이터를별도의화일에유지한다. 그림 1.5는화일시스템을사용하는경우에응용프로그램과화일간의대응관계를나타낸다. 응용프로그램마다하나이상의화일과대응되고, 화일내의데이터구조가응용프로그램에반영된다. [ 그림 1.5] 화일시스템에서응용프로그램과화일간의대응관계 22

CHAPTER 1 제 1 장데이터베이스시스템 프로그램과화일간의대응관계 그림 1.6 은코볼로작성된두개의응용프로그램이한개의 Employee 화일과대응되는예를보여준다. 두개의코볼프로그램에는 Employee 화일의필드들이열거되어있다. 만일 Employee 화일에사원의휴대폰번호를추가로나타내려면 Employee 화일의레코드를하나씩읽어서, 휴대폰번호필드를추가한 ( 현재는값이비어있음 ) 레코드를새로운 Employee 화일에기록하는프로그램을작성해야한다. 그다음에기존의 Employee 화일을사용하던모든응용프로그램들을찾아서휴대폰번호필드를추가해야하고이프로그램들을다시컴파일해야한다. - [ 그림 1.6] 응용프로그램과데이터화일의대응예 1.2.2 화일시스템의단점 화일시스템은운영체제를설치할때함께설치되기때문에별도의구입비용을지출하지않고도사용할수있고속도가빠른장점이있지만아래와같은여러가지단점때문에일부간단한응용이외에는화일방식을사용하기어렵다. 23

배 움 터 데 이 터 베 이 스 데이터가많은화일에중복해서저장된다. 중복된데이터의변경을제어하는것이어렵기때문에중복된데이터간에불일치가발생할수있다. 또한중복된데이터를저장하기위해기억장소가낭비된다. 예 : 그림 1.7 에서보는것처럼기업의인사관리응용프로그램에사용되는 EMPLOYEE 화일과사원교육관리응용프로그램에서사용되는 ENROLLMENT 화일에 DEPARTMENT 가중복되어나타날수있다. 어떤사원의 DEPARTMENT 필드값이바뀔때두화일에서모두수정하지않으면동일한사원의소속부서가화일마다다르게되어데이터의불일치가발생한다. EMPLOYEE 화일 ( 인사관리프로그램용 ) NAME JUMIN-NO DEPARTMENT ADDRESS ENROLLMENT 화일 ( 교육관리프로그램용 ) NAME JUMIN-NO DEPARTMENT COURSE [ 그림 1.7] 두화일에서 DEPARTMENT 가중복됨 다수사용자들을위한동시성제어가제공되지않는다. 동시성제어가제공되지않기때문에두사용자가동시에계좌화일에접근하여한사용자는잔액을읽고, 다른사용자는잔액을수정하면데이터의일관성이깨질수있다. 검색하려는데이터를쉽게명시하는질의어가제공되지않는다. 보안조치가미흡하다. 사용자의권한에따른세밀한수준 ( 예 : 레코드단위 ) 의접근제어를시행하기어렵다. 일반적으로화일시스템에서는화일단위로만검색, 갱신, 실행권한을부여할수있다. 또한각화일에대한사용자를구체적으로명시할수없다. 24

CHAPTER 1 제 1 장데이터베이스시스템 예 : UNIX 운영체제에서는화일의사용자를화일의소유자, 화일소유자가속한그룹, 컴퓨터시스템에계정을가진모든사용자등의세부류로만구분한다. 또한각화일에대한권한부여는이러한세부류각각에대하여 ( 읽기, 갱신, 실행 ) 수준으로만명시할수있다. 회복기능이없다. 응용프로그램에서화일내의데이터를수정하는도중에컴퓨터시스템이다운되었다가재가동되었을때데이터의일관성을복구하기어렵다. 프로그램-데이터독립성이없으므로유지보수비용이크다. 화일의구조가응용프로그램에반영되어있기때문에화일의구조가바뀌면영향을받는모든응용프로그램들을수정해야한다. 또한응용프로그램의기능을확장하려면화일의구조에대한요구사항이바뀌므로화일을재조직해야한다. 데이터모델링개념이부족하다. 데이터의의미와데이터간의상호관계를나타내기어렵다. 무결성을유지하기어렵다. 화일내의데이터가만족시켜야하는무결성제약조건 ( 예, 은행잔고>0) 들을명시하려면프로그래머가직접프로그래밍언어를사용하여일일이프로그램에표현해야하므로무결성을유지하기가어렵다. 또한새로운제약조건들을추가하거나기존의제약조건을수정하는것도어렵다. 프로그래머의생산성이낮다. 각응용프로그램마다프로그래머가새로운파일형식과설명을설계하는과정부터시작한후새로운응용프로그램을위한파일접근논리를작성해야하기때문에개발시간이오래걸린다. 프로그래머는자바, C 등의프로그래밍언어로원하는데이터 (what) 및원하는데이터를찾는방법 (how) 을상세하게구현해야한다. 데이터의공유가부족하다. 각응용프로그램마다화일들을갖고있으며데이터를접근하는응용프로그램 25

배 움 터 데 이 터 베 이 스 들이여러가지프로그래밍언어 ( 예 : C, 자바, 코볼등 ) 들로작성되어데이터공유가제한된다. 공유가가능한경우에도화일수준에서만가능하다. 융통성이부족하다. 여러화일로부터원하는데이터를검색하는것이어렵다. 새로운응용프로그램의개발뿐만아니라데이터의분석이용이하지않다. 1.2.3 DBMS 를사용한데이터베이스관리 화일기반방식의단점은데이터의정의가프로그램에내포되어있다는것과프로그램에서데이터를접근하고조작하는것이외에별도의제어가없다는두가지요인때문에주로발생한다. DBMS 방식에서데이터베이스는논리적으로연관된데이터 ( 데이터에관한설명도포함해서 ) 의모임으로서여러사용자 / 응용프로그램이공유하며, 조직체의정보요구에부응하기위하여설계된다. 정보관리를중앙집중화함으로써여러사용자와응용프로그램들이데이터베이스를공유한다. 사용자의질의를빠르게수행할수있는인덱스등의접근경로를 DBMS가자동적으로선택하여수행한다. 권한이없는사용자로부터데이터베이스를보호한다. 여러사용자에적합한다양한인터페이스를제공하고, 데이터간의복잡한관계를표현하며, 무결성제약조건을 DBMS가자동적으로유지한다. 시스템이고장나면데이터베이스를고장전의일관된상태로회복시킨다. 데이터베이스는표준화된형식으로저장되며통합된데이터베이스에대한접근이모두 DBMS를통하여이루어진다. 프로그램에영향을주지않으면서데이터베이스구조를변경할수있고, 데이터베이스에영향을미치지않으면서응용프로그램을수정할수있다. 이를프로그램-데이터독립성 (program-data independence) 이라고부른다. 그림 1.8은 DBMS 방식을보여준다. 데이터베이스의테이블과파일시스템의파일의차이점이무엇일까? DBMS는테이블에입력되는데이터를최종적으로파일에저장하게된다. 하나의테이블에속한데이터가여러개의파일에걸쳐있을수있고, 여러개의테이블의데이터가하나의파일에저장될수있다. 26

CHAPTER 1 제 1 장데이터베이스시스템 [ 그림 1.8] DBMS 를사용한데이터베이스관리 1.2.4 DBMS 의장점 DBMS에서는중복성을최소화하여통합데이터베이스를구축하며데이터에대한모든접근은효과적으로데이터를처리하는 DBMS를통해이루어진다. 화일시스템에서는데이터에대한큰변경이생기면응용프로그램을조금바꾸는수준을넘어서다시작성해야한다. 하지만데이터베이스시스템에서는 DBMS가응용프로그램과데이터사이의인터페이스역할을하므로데이터표현에변화가발생하면 DBMS가유지하는메타데이터는바뀌지만 DBMS는응용프로그램이종전과마찬가지방식으로데이터를접근할수있도록할수있다. 이와같은데이터독립성은데이터구조에어떤변경이있어도프로그램을수정할필요없이계속해서사용할수있기때문에중요하다. 높은수준의데이터독립성을제공하기위해서 DBMS는정교한메타데이터관리시스템을포함해야한다. 화일시스템에비해 DBMS를사용할때얻을수있는장점은아래와같다. 중복성과불일치가감소된다. 종래의화일시스템에서는한조직체에여러프로그래머가작성한응용프로그램들이존재한다. 각응용프로그램은운영데이터의일부를접근한다. 종래의화일시스템에서는중복되고불일치한데이터 ( 즉, 동일한데이터의여러사본이서로다른값을보유함 ) 가있을수있다. 데이터불일치는일상생활에서도흔히만날수있다. 예를들어, 거래처의전화번호를휴대폰과전자수첩에각각저장해두었는데거래처의바뀐전화번호를어느한곳에서만수정하면데이터의불일치가발생한다. 모든데이터를하나의데이터베이스에통합하면불일치 27

배 움 터 데 이 터 베 이 스 뿐만아니라중복성도감소된다. DBMS를사용한다고해서중복성이완전히제거되는것은아니지만데이터베이스설계자또는응용프로그램개발자가중복성의유형과정도를신중하게제어할수있다. DBMS의성능을향상시키기위해서중복성을제한적으로허용하는것이바람직할수도있다. 또한데이터를수집하고, 저장하고, 갱신하는비용도감소된다. 물론데이터베이스의일관성을유지하는것이화일시스템보다쉽다는것이지보장된다는것은아니다. 사용자에게보다나은서비스가제공된다. DBMS는종종사용자에게보다나은서비스를제공하기위해서사용된다. 화일시스템에서는어떤정보가가용한지알기어렵다. 데이터베이스에데이터가통합되면사용자는보다쉽게새롭고통합된정보를얻을수있다. 또한 DBMS 는데이터를접근하기위해서프로그램을작성할줄모르는사용자들이질의어를통해보다용이하게데이터를접근할수있도록한다. 프로그램-데이터독립성이향상된다. 데이터를응용프로그램으로부터분리함으로써데이터의구조가바뀌어도응용프로그램을수정해야하는필요성이크게감소된다. 시스템을개발하고유지하는비용이감소된다. 앞에서언급한것처럼데이터가화일시스템에저장된경우보다데이터베이스시스템에중앙집중화되었을때데이터에대한요청을보다쉽게만족시킬수있다. 데이터베이스를구축하는초기비용이많이들수있지만데이터베이스를구축하고응용프로그램들을개발및유지하는전체비용은기존의화일시스템을사용할때보다일반적으로적게든다. 왜냐하면 DBMS의비절차적언어를사용하면화일시스템의절차적언어를사용하는것보다프로그래머의생산성이크게향상되기때문이다. 일반적으로 DBMS는사용자들을지원하는많은도구를제공한다. 표준화를시행하기가용이하다. 데이터베이스에대한모든접근이 DBMS를통하기때문에표준화를시행하기가용이하다. 데이터의이름부여, 데이터의형식, 데이터의구조등에대해표준화를시행할수있다. 예를들어, 날짜는 yyyymmdd, yymmdd, mmyydd, mm-dd-yy 등다양한형식으로저장될수있다. 만일날짜를저장하는형식을표준화하지않으면데이터베이스에대한질의의결과가부정확하게된다. 28

CHAPTER 1 제 1 장데이터베이스시스템 보안이향상된다. 화일시스템에서는흔히한조직체의서로다른응용프로그램들이운영데이터의서로다른부분을접근한다. 이런환경에서는보안을시행하기가매우어렵다. 데이터베이스를구축하면데이터가중앙집중화되기때문에보안을시행하기가용이해진다. 누가데이터베이스의어떤부분을접근할것인가를제어하는것이좀더쉬워진다. 레코드와같은세밀한수준에서검색, 갱신 ( 삽입, 삭제, 수정을구분하여 ) 등의권한을사용자에게부여할수있다. 그러나데이터베이스를구축하면의도를갖고접근하는사람이보안을침범하는것이쉬워질수도있다. 무결성이향상된다. 데이터베이스방식을사용하는조직에서는데이터가중앙집중화되고동시에다수의사용자가데이터베이스를접근하므로무결성을제어하는것이반드시필요하다. 무결성은여러방법에의해손상될수있다. 예를들어, 데이터입력을잘못해서어떤사원의급여가 200만원대신 20만원으로입력될수있다. 학생이도서관에서책을대출하고반납하였으나아직반납하지않은것으로남아있을수있다. 만일아무런조치없이다수의사용자가동시에동일한데이터를갱신하는것이허용된다면데이터베이스의갱신결과는원래의도한바와완전히달라질가능성이존재한다. 예를들어, 항공사의 DBMS에서항공기의실제좌석수보다많은고객의예약이승인을받는경우가생길수있다. 따라서동시에발생한갱신으로인해데이터베이스에이와같은오류가생기지않도록하는조치가필요하다. 하지만모든데이터의관리를 DBMS가맡기때문에화일시스템보다무결성을유지하는것이용이하다. 조직체의요구사항을식별할수있다. 대부분의조직체에는여러부서가있다. 각부서는자신의부서의기능이가장중요하며따라서자신의요구가가장중요하다고흔히생각한다. 일단데이터베이스가중앙집중식으로구축되면조직체의요구사항들을식별하여충돌하는요구사항들의균형을이루는것이필요하다. 높은우선순위를갖는요구사항과낮은우선순위를갖는요구사항이상충되면낮은우선순위의요구사항을무시하거나지연시키는것이필요할수도있다. 다양한유형의고장으로부터데이터베이스를회복할수있다. 29

배 움 터 데 이 터 베 이 스 데이터베이스를접근하는도중에시스템이고장나는경우에고장이나기이전의일관된데이터베이스상태를복구할수있다. 데이터베이스의공유와동시접근이가능하다. 여러사용자가통합된데이터베이스를공유하며동시에데이터베이스를접근할수있다. 다양한도구들을활용할수있다. 데이터베이스를설계하는도구, 응용프로그램을개발하는도구, 리포트를생성하는도구, 성능을튜닝하는도구등다양한도구들을활용할수있다. 표 1.1 은화일시스템과 DBMS 방식의차이점을요약하여비교한것이다. < 표 1.1> 화일시스템방식과 DBMS 방식의비교 화일시스템방식 데이터에대한물리적접근만조정한다. 동일한화일을두개이상의프로그램이동시에접근할수없다. 데이터가비구조적이며, 중복성과유지보수비용이높다. 어떤프로그램이기록한데이터는다른프로그램에서읽을수없는경우가많다. 데이터에대한접근은미리작성된프로그램을통해서만가능하다. 각응용프로그램마다화일이따로있으므로데이터가통합되어있지않다. DBMS 방식 데이터에대한물리적접근과논리적인접근을모두조정한다. 동일한데이터를다수사용자가동시에접근할수있다. 데이터가구조화되어있으며, 중복성과유지보수비용이낮다. 접근권한이있는모든프로그램이데이터를공유한다. 질의어를사용하여데이터에대한융통성있는접근이가능하다. 데이터가중복을배제하면서통합되어있다. DBMS 선정시고려사항 DBMS를선정할때고려해야할사항에는여러가지요소가있다. 먼저기술적인요인으로는 DBMS에사용되고있는데이터모델, DBMS가지원하는사용자인터페이스, 프로그래밍언어, 응용개발도구, 저장구조, 성능, 데이터베이스용량, 접근방법등이있다. 경제적인요인으로는소프트웨어와하드웨어구입비용, 유지보수비용, 직원들의교육지원등이있다. 30

CHAPTER 1 제 1 장데이터베이스시스템 1.2.5 DBMS 의단점 위와같은 DBMS의여러장점에도불구하고모든상황에서 DBMS가화일시스템에비해항상장점만을갖는것은아니다. DBMS를무조건사용해야하는것은아니므로업무의요구사항을잘파악하여 DBMS 사용여부를결정해야한다. DBMS는소프트웨어의규모가크고복잡해서화일방식보다많은하드웨어자원을필요로하므로추가적인하드웨어구입비용이들고, DBMS 자체의구입비용도상당히비싼편이다. 데이터베이스분야의기술에익숙한신규직원들을채용하거나기존직원들을교육하는비용도많이든다. DBMS가자동적으로데이터베이스의일관성을유지하기위해서컴퓨터의자원을많이필요로하므로응답시간이많이걸릴수있다. 백업과회복의복잡도도높고, 역설적으로중앙집중과관련된문제가발생할수있다. 한조직체의모든데이터를데이터베이스에중앙집중화하면데이터베이스는필수불가결한자원이된다. 조직체의운영은데이터베이스에서얻는신뢰할수있는정보에의존한다. 시스템이고장났을때 DBMS가자동적으로데이터베이스를고장전의일관된상태로회복하지만화일방식에비해서고장의영향을더크게받을수있다. DBMS는일반적으로다수사용자를위해데이터베이스에대한온라인접근을제공한다. 이에반해서기존의화일시스템은종종특정한요구를만족시키기위해서설계되며, 따라서소수의사용자를위한접근을제공한다. 데이터베이스가사용될때다수사용자가데이터베이스를접근하기때문에비밀과프라이버시노출등의단점이존재할수있다. 정보가중앙집중화되고원격지의사용자들에게도접근이허용되면정보가누출될가능성이화일시스템보다높을수있다. 데이터를갱신하는사용자들을제어하거나데이터품질을제어하기위해적절한조치가있어야한다. 데이터를직접접근하는사용자수가늘어날수록사용자들이데이터에손상을가져올가능성이증가한다. 적절한제어가없으면데이터품질이손상된다. 따라서초기의투자비용이너무클때, 오버헤드가너무클때, 응용이단순하고, 잘정의되었으며변경되지않을것으로예상될때, 엄격한실시간처리요구사항이있을때, 데이터에대한다수사용자의접근이필요하지않을때는 DBMS를사용하지않는것이바람직할수있다. 31

배 움 터 데 이 터 베 이 스 1.3 DBMS 발전과정 1.3.1 데이터모델 데이터모델은데이터베이스의구조를기술하는데사용되는개념들의집합인구조 ( 데이터타입과관계 ), 이구조위에서동작하는연산자들, 무결성제약조건들로이루어진다. 하나의데이터모델에대해하드웨어, 운영체제, 성능, 신뢰도, 사용자인터페이스, 추가유틸리티및도구등에따라여러가지구현이있을수있다. 지금까지많은데이터모델들이제안되었는데이들의주요차이점은사용자에게인식되는논리적모델의유형이다. 예 : 관계데이터모델에서는그림 1.9 와같이실세계객체를테이블형태로표현한다. [ 그림 1.9] 관계데이터모델에서의실세계표현 각데이터모델은공통된목적을가지고있다. 사용자에게내부저장방식의세세한사항은숨기면서데이터에대한직관적인뷰를제공하는동시에이들간의사상을제공하는것이다. 데이터모델은여러가지로분류할수있다. 고수준또는개념적데이터모델 (conceptual data model) 은사람이인식하는것과유사하게데이터베이스의전체 32

CHAPTER 1 제 1 장데이터베이스시스템 적인논리적인구조를명시한다. 이는반대로시스템이인식하는것과는거리가멀다. 이런데이터모델의예로는엔티티-관계 (ER: Entity-Relationship) 데이터모델과객체지향데이터모델이있다. 표현 ( 구현 ) 데이터모델 (representation(implementation) data model) 에는계층데이터모델 (hierarchical data model), 네트워크데이터모델 (network data model), 관계데이터모델 (relational data model) 이있다. 이런데이터모델들은최종사용자가이해하는개념이면서컴퓨터내에서데이터가조직되는방식과멀리떨어져있지는않다. 저수준또는물리적데이터모델 (physical data model) 은시스템이인식하는것과가까운데, 데이터베이스에데이터가어떻게저장되는가를기술한다 ( 예 : 레코드형식과순서 ). 이런데이터모델에는 Unifying, ISAM, VSAM 등이있다. 데이터베이스에데이터를조직하는유일한방법은없다. 실제로많은상용 DBMS 에서다양한방법들이제안되었다. 일반적으로데이터베이스시스템은적어도두개의데이터모델을갖는다. 첫째는데이터를저장장치에표현하기위한모델인물리적인데이터모델이고, 나머지하나는사용자위주로데이터를표현하기위한모델인논리적인데이터모델이다. 1.3.2 DBMS 의발전과정 DBMS 분야는빠르게변화하고있다. 응용과 DBMS 기능사이의갭을줄이는방향으로 DBMS가발전하고있다. 60년대와 70년대의계층및네트워크 DBMS를거쳐서 80년대초반이후에는관계 DBMS가널리사용되고있다. 현재계층및네트워크 DBMS들은거의사용되지않고있다. 보다새롭고우수한데이터모델들이개발되었고점차상용 DBMS에구현되고있다. 대규모데이터베이스에적합한새로운아키텍처들이계속개발되고있다. 80년대후반부터관계데이터모델의단점을해결하기위해객체지향 DBMS(OODBMS: Object-Oriented DBMS) 가등장하였고 90 년대후반부터주요관계 DBMS 제조업체들이객체관계 DBMS(ORDBMS: Object-Relational DBMS) 를판매하고있다. 그림 1.10은 DBMS에사용되는데이터모델들의발전과정을나타낸다. 계층 33

배 움 터 데 이 터 베 이 스 DBMS에서시작하여네트워크 DBMS를거쳐관계 DBMS로발전하였다. 객체지향프로그래밍분야와네트워크 DBMS로부터객체지향 DBMS가등장하였다. 관계 DBMS와객체지향 DBMS의장점을수용하여객체관계 DBMS가개발되었다. 본절에서는주요 DBMS 모델들의개요를살펴본다. [ 그림 1.10] DBMS 의발전과정 계층 DBMS 1960년대후반에최초로상업적으로성공을거둔계층 DBMS가 IBM 사에서개발되었다 (IMS). 이제품은원래순수한계층 DBMS였지만실제적인필요성에의해비계층적인기능들이나중에일부추가되었다. 현재에도 www.travelocity.com 등의일부기업에서사용되고있다. 계층 DBMS는트리구조를기반으로하는계층데이터모델을사용한 DBMS이다. 계층데이터모델은네트워크데이터모델의특별한사례이다. 그림 1.11은계층데이터베이스로표현된기업의데이터베이스구조를보여준다. 기업에는여러부서들이있으며각부서마다여러프로젝트를수행하고, 각프로젝트에는여러사원들이참여하고있음을나타낸다. 계층데이터모델의장점은어떤유형의응용에대해서는빠른속도와높은효율성을제공한다는것이다. 데이터가트리형태로모델링될수있을때계층데이터모델은훌륭한선택이된다. 하지만어떻게데이터를접근하는가를미리응용프로그램에정의해야하며, 데이터베이스가생성될때각각의관계가명시적으로정의되어야하는문제점이있다. 계층 DBMS에서는레코드들이링크로연결되어있으므로레코드 34

CHAPTER 1 제 1 장데이터베이스시스템 구조를변경하기어렵다. 또한응용프로그램을수정하는것도어렵다. 따라서데이터독립성이매우제한된다. 계층 DBMS에서사용되는질의어는절차적이므로한번에한개의레코드를검색할수있다. [ 그림 1.11] 계층데이터베이스의예 네트워크 DBMS 1960년대초에 Charles Bachman이하니웰 (Honeywell) 사에서최초의네트워크 DBMS인 IDS를개발하였다. 1960년대후반에 CODASYL 모델이정의되었다. 이모델은네트워크모델이지만좀더표준화되었다. 네트워크 DBMS는레코드들이노드로, 레코드들사이의관계가간선으로표현되는그래프를기반으로하는네트워크데이터모델을사용한다. 그림 1.12는네트워크데이터베이스로표현된대학의데이터베이스구조를나타낸다. 대학에는여러학과들이있으며각학과마다여러과목들을개설하고, 각과목을여러학생들이수강한다. 또한각학생은여러과목들을수강할수있다. 네트워크 DBMS에서도레코드들이링크로연결되어있으므로레코드구조를변경하기어렵다. 또한응용프로그램을수정하는것도어렵다. 따라서데이터독립성이매우제한된다. 네트워크 DBMS에서사용되는질의어는절차적이므로한번에한개의레코드를검색할수있다. 35

배 움 터 데 이 터 베 이 스 [ 그림 1.12] 네트워크데이터베이스의예 관계 DBMS 1970년에 E.F. Codd가 IBM 연구소에서관계데이터모델을제안하였다. 이후에관계데이터모델을사용한 DBMS를구현하려는두개의주요프로젝트가시작되었다. 한프로젝트는미국캘리포니아버클리대에서진행된 Ingres였다. Ingres는나중에상용 Ingres가되었으며, POSTGRES로발전되었고, 이후에 Informix에합병되었다 (Informix는나중에 IBM에합병되었다 ). 다른한프로젝트는 IBM 연구소에서진행된 System R이었다. System R은나중에 DB2로상용화되었다. IBM 연구소에서 System R 프로젝트를진행하면서 SQL을고안했다. SQL은관계데이터모델에기반을둔질의어의사실상의표준이되었다. 관계 DBMS의장점은모델이간단하여이해하기쉬우며, 사용자는자신이원하는것 (what) 만명시하고, 데이터가어디에있는지, 어떻게접근해야하는지는 DBMS 가결정한다. 관계데이터모델은테이블을기반으로하는데이터모델이다. 그림 1.13은관계데이터모델의 STUDENT 테이블을보여준다. 1980년대에관계데이터베이스기술이크게성숙되었고, ISO를통해서 SQL의표준화가이루어졌다. 1990년대에도관계기술이계속해서확장되고성능이향상되었다. 관계데이터모델은현재판매되는대부분의 DBMS에서사용되고있는중요한데이터모델이므로 2장에서자세하게논의한다. 현재관계데이터모델에기반을둔상용 DBMS들로는 MS SQL Server, Oracle, Sybase, DB2, Informix 등이있다. 36

CHAPTER 1 제 1 장데이터베이스시스템 [ 그림 1.13] STUDENT 테이블 객체지향 DBMS 1980년대후반들어새로운데이터모델인객체지향데이터모델이등장하였다. 객체지향데이터모델은객체지향프로그래밍패러다임을기반으로하는데이터모델이다. 이데이터모델의장점은데이터와프로그램을그룹화하고, 복잡한객체들을이해하기쉬우며, 유지와변경이용이하다는것이다. 이데이터모델을사용한객체지향 DBMS의예로는 ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2 등이있다. 객체관계 DBMS 1990년대후반에관계 DBMS에객체지향개념을통합한객체관계데이터모델이제안되었다. 객체관계데이터모델을지원하는 DBMS의예로는 Informix Universal Server, UniSQL, Oracle 등이있다. 객체관계 DBMS는관계 DBMS에새로운데이터타입과데이터베이스에대한연산들을추가할수있는기능을제공한다. 객체관계 DBMS의장점은관계 DBMS 와객체지향 DBMS의단점을해결한것이고, 단점은 DBMS의복잡도가증가한것이다. DBMS에채택된데이터모델에따라해당 DBMS를사용하여응용을개발할때프로그래밍해야할분량이달라진다. 그림 1.14는 DBMS에채택된데이터모델의기능의차이와이에따른프로그래밍분량의차이를보여준다. 화일시스템에서객체관계 DBMS로갈수록프로그래밍의분량이적어짐을알수있다. 37

배 움 터 데 이 터 베 이 스 DBMS 의 기능 프로그래밍 분량 화일 시스템계층 DBMS(IMS) 네트워크 DBMS(IDMS) 관계 DBMS 객체 관계 DBMS [ 그림 1.14] DBMS 의데이터모델에따른프로그래밍분량 1.3.3 새로운데이터베이스응용과 DBMS 의분류 고전적인기업정보시스템에서사용되는데이터베이스는사원 ( 이름, 주소, 급여, 직책, 상태등 ), 부서, 제품의판매량등을포함한다. 이런데이터베이스에대해수행되는전형적인질의들은사원들의급여, 어떤부서에근무하는사원들의이름등을검색한다. 데이터베이스갱신연산은사원의채용과해고, 승진, 급여인상, 판매, 구매등을포함한다. 항공기예약시스템에서사용되는데이터베이스는좌석등급, 출발일, 출발장소, 도착장소, 항공기편등을포함한다. 전형적인질의들은출발 / 도착시간에따른항공기편, 각좌석등급별빈좌석수등을검색하며, 데이터갱신연산은항공기편예약, 좌석배정, 예약취소등을포함한다. 은행시스템에서사용되는데이터베이스는고객의이름과주소, 예금의종류, 잔액, 예금과대출의연계등을포함한다. 잔액조회등이대표적인질의이다. 데이터갱신연산은입금과출금에따른잔액갱신, 새로운고객의구좌정보삽입등을포함한다. 이와같은기존의데이터베이스응용들이외에데이터베이스를활용하는새로운응용분야들이등장하고있다. 새로운데이터베이스응용에는 CAD 데이터베이스, 소프트웨어공학데이터베이스 ( 재사용이가능한소프트웨어들의라이브러리 ), 게놈데이터베이스, 데이터웨어하우스, 데이터마이닝, OLAP, 멀티미디어데이터베이스등이있다. 또한웹에저장되어있는방대한웹문서들을위한웹데이터베이스의중요성도증가하고있다. 이밖에도반구조적 (semi-structured) 인데이터와 XML을지원하는 38

CHAPTER 1 제 1 장데이터베이스시스템 데이터베이스, 공간 (spatial) 데이터베이스, 스트림 (stream) 데이터베이스, 이동 (mobile) 데이터베이스등에대한연구가진행되고있다. 그림 1.15 는현대의관계 DBMS 가갖는기능들을요약해서보여준다. 효율적인질의처리를지원 : 질의최적화, 인덱싱등 고급사용자인터페이스를지원 : SQL, 자연어, 폼기반등 트랜잭션개념을지원 : 다수의트랜잭션들을동시에실행하고, 백업과회복을수행 OLAP 과데이터웨어하우스를지원 현대의관계 DBMS 특별한데이터타입을지원 : 긴필드, 이미지, HTML 링크, 공간정보등 객체지향개념을지원 데이터마이닝연산들을지원 웹인터페이스와 XML 을지원 [ 그림 1.15] 현대의관계 DBMS 의기능 현대의데이터베이스시스템의추세는 DBMS의크기가점차줄어들고있다는것이다. PC에서돌아가는 DBMS도기가바이트용량의데이터를저장할수있다. 또한데이터베이스는점차크기가증가하고있다. 테라바이트크기의데이터베이스가드물지않게되었다. 데이터베이스에이미지, 비디오, 오디오등멀티미디어데이터를저장할수있다. 디스크의용량이데이터베이스의크기를따라가지못하는응용에서는제3 저장장치가사용되고있다. 제3 저장장치에서는데이터를저장하고있는테이프, CD 등을로봇이찾아내며매우느린응답시간 ( 수초 ) 을갖는다. DBMS는여러가지기준에따라다양하게분류할수있다. 표 1.2는몇가지기준에따라 DBMS들을분류한예를보여준다. 39

배 움 터 데 이 터 베 이 스 < 표 1.2> DBMS 들의분류 기준 종류 데이터모델에따른분류사용자의수에따른분류사이트의수에따른분류접근방법에따른분류 계층 DBMS 네트워크 DBMS 관계 DBMS 객체지향 DBMS 객체관계 DBMS 단일사용자 DBMS ( 주로 PC용 ) 다수사용자 DBMS 중앙집중식 DBMS 분산 DBMS 범용 DBMS 특별한 DBMS ( 예 : 공간 DBMS) 1.4 DBMS 언어 데이터베이스를구축하기위해서사용자는먼저데이터베이스스키마를정의한후에 DBMS에서제공하는연산자들을사용하여데이터를저장, 검색, 수정, 삭제하게된다. 일반적으로 DBMS는이와같은작업을용이하게하는언어들을제공한다. 이런언어들은 DBMS마다 DBMS의바탕이되는데이터모델, 복잡도, 기능, 사용의용이성 ( 사용자인터페이스 ) 등에따라다르다. 관계 DBMS에서는아래의세가지기능이 SQL에서함께제공된다. SQL은 4장에서자세하게논의한다. 데이터정의어 (DDL: Data Definition Language) 사용자는데이터정의어를사용하여데이터베이스스키마를정의한다. 데이터정의어로명시된문장이입력되면 DBMS는사용자가정의한스키마에대한명세를시스템카탈로그또는데이터사전에저장한다. 시스템카탈로그는메타데이터를저장한다. 메타데이터는데이터베이스에저장된데이터에관한데이터를말한다. 시스템카탈로그는 8장에서자세하게설명한다. 데이터정의어의기능은특정언어에따라다르지만기본적인기능에는아래와같 40

CHAPTER 1 제 1 장데이터베이스시스템 은사항들이포함된다. 데이터모델에서지원하는데이터구조를생성예 : SQL에서 CREATE TABLE 데이터구조의변경예 : SQL에서 ALTER TABLE 데이터구조의삭제예 : SQL에서 DROP TABLE 데이터접근을위해특정애트리뷰트위에인덱스를정의예 : SQL에서 CREATE INDEX 데이터조작어 (DML: Data Manipulation Language) 사용자는데이터조작어를사용하여데이터베이스내의원하는데이터를검색하고, 수정하고, 삽입하고, 삭제한다. 일반적으로데이터조작어에는어떤데이터가필요하고어떻게데이터를찾을것인가를명시하는절차적언어 (procedural language) 와어떤데이터를원하는가만명시하고데이터를검색하는방법은명시하지않는비절차적언어 (non-procedural language) 가있다. 관계 DBMS에서사용되는 SQL은대표적인비절차적언어이다. 대부분의상용관계 DBMS들은비절차적요소와절차적요소를모두포함하는질의어를제공한다. 예를들어서 MS SQL Server는비절차적언어인 SQL에절차적요소를추가한 Transact-SQL을제공한다. Transact-SQL에관해서는 3.5절에서간략하게설명한다. 대부분의데이터조작어는 SUM, COUNT, AVG와같은내장함수들을갖고있다. 데이터조작어는단말기에서대화식으로입력되어수행되거나 C, 코볼등의고급프로그래밍언어로작성된프로그램에내포되어사용된다. 이때의고급프로그래밍언어를호스트언어 (host language) 라고한다. 일반적으로대화식모드로사용되는언어와동일한언어가, 내포된데이터조작어로서도사용된다. 데이터조작어를호스트언어로작성된프로그램에내포시켜사용하는이유는데이터조작어에는호스트언어가가지고있는조건문, 반복문, 입력문등이없기때문이다. 데이터조작어뿐만아니라데이터정의어도내포된언어로사용될수있다. 관계 DBMS에서 SQL은조건을만족하는레코드들의집합을검색하는데반해서호스트언어는일반적으로레코드단위로처리하므로두언어간의불일치 (impedance 41

배 움 터 데 이 터 베 이 스 mismatch) 문제가발생한다. 데이터조작어를호스트언어에내포된방식으로사용하는것은 4장에서설명한다. 데이터조작어의기능은특정언어에따라다르지만기본적인기능에는아래와같은사항들이포함된다. 데이터의검색예 : SQL에서 SELECT 데이터의수정예 : SQL에서 UPDATE 데이터의삭제예 : SQL에서 DELETE 데이터의삽입예 : SQL에서 INSERT 그림 1.16은데이터정의어와데이터조작어의기능을요약해서보여준다. 그림 1.17은 1.6절에서설명할 ANSI/SPARC 3단계모델에서데이터정의어와데이터조작어가어떤단계에서사용되는가를나타낸다. [ 그림 1.16] 데이터정의어와데이터조작어 42

CHAPTER 1 제 1 장데이터베이스시스템 [ 그림 1.17] ANSI/SPARC 3 단계모델의각단계에서사용되는데이터정의어와데이터조작어 데이터제어어 (DCL: Data Control Language) 사용자는데이터제어어를사용하여데이터베이스트랜잭션을명시하고권한을부여하거나취소한다. 트랜잭션과권한관리는각각 9장과 10장에서설명한다. 1.5 DBMS 사용자 PC에구축된데이터베이스의경우에는사용자수가적지만기업의통합된데이터베이스를구축하고계속해서유지및사용하기위해서는다양한사용자들이관계된다. 사용자는역할에따라몇가지유형으로구분할수있다. 그림 1.18은다양한 DBMS 사용자들의역할과상호관계를요약해서보여준다. 43

배 움 터 데 이 터 베 이 스 데이터베이스설계자 [ 그림 1.18] DBMS 의사용자들 데이터베이스관리자 (DBA: Administrator) 대부분의조직체에서데이터베이스는여러사용자들이공유하는귀중한자산이다. 데이터베이스는적절하게유지되고관리될때만조직의여러사용자들의요구를효과적으로만족시킬수있다. 데이터베이스관리자는조직의여러부분의상이한요구를만족시키기위해서일관성있는데이터베이스스키마를생성하고유지하는사람 ( 팀 ) 을말한다. 데이터베이스관리자는데이터베이스를생성하기위해서다양한사용자들의요구사항을분석하고평가해야하며이결과에따라논리적인구조 ( 데이터베이스스키마 ) 를결정하게된다. 논리적인구조위에서여러사용자들의요구에맞는뷰들을정의한다. 데이터베이스관리자는조직의정보자원과필요성을잘이해하고있어 44

CHAPTER 1 제 1 장데이터베이스시스템 야한다. 데이터베이스관리자의역할은관리적인역할부터기술적인역할까지다양하다. 대규모데이터베이스에서는다수의사람으로이루어진팀이데이터베이스관리자역할을수행한다. 데이터베이스관리자는데이터정의어의주요사용자이다. 널리사용되는주요 DBMS들은데이터베이스관리자가사용할수있는데이터베이스관리도구들을지원한다. 이런관리도구들을사용하여데이터베이스관리자는아래와같은업무들을수행한다. 데이터베이스스키마의생성과변경데이터베이스관리자는상급관리자와협의하여데이터베이스의개념적스키마를결정하는업무를수행한다. 또한데이터베이스관리자는필요할때마다개념적스키마를변경하는역할도수행한다. 한꺼번에적재 (bulk loading) 다른포맷으로저장된화일의데이터를데이터베이스에한꺼번에적재한다. 무결성제약조건을명시일관된데이터베이스상태를정의하는규칙들을명시한다. 사용자의권한을허용하거나취소하고, 사용자의역할을관리데이터베이스관리자는여러사용자에게데이터베이스의다양한부분을접근할수있도록승인하거나승인을취소한다. 또한사용자그룹들간의비호환성을조정하고해결한다. 저장구조와접근방법 ( 물리적스키마 ) 정의일단데이터베이스의내용이결정되면데이터베이스관리자는데이터가어떻게저장되고어떤인덱스를유지할것인가를결정한다. 데이터베이스관리자는 DBMS의성능을모니터해서, 성능이미흡한경우에는저장구조를변경한다. 백업과회복데이터베이스가조직체의귀중한자산이기때문에데이터베이스관리자는데이터베이스가손실되지않도록모든노력을기울여야한다. 정기적으로데이터베이스를백업하고고장 ( 또는화재나홍수와같은재해 ) 이발생했을때적절한회복절차를사용하여, 데이터베이스가다운된시간을가능한한최소화하면서데이터베이스를복구한다. 45

배 움 터 데 이 터 베 이 스 표준화시행데이터베이스에대한표준화를시행한다. 응용프로그래머 (application programmer) 응용프로그래머는데이터베이스위에서특정응용 ( 예 : 고객관리, 인사관리, 재고관리등 ) 이나인터페이스를구현하는사람으로서데이터조작어의주요사용자이다. 응용프로그래머는고급프로그래밍언어인 C, 코볼등으로응용프로그램을개발하면서데이터베이스를접근하는부분은내포된데이터조작어를사용한다. 이들이작성한응용프로그램을최종사용자들이사용하게된다. 이들이작성한프로그램은최종사용자들이반복해서수행하므로기작성트랜잭션 (canned transaction) 이라부른다. 은행창구에서행원들이고객의잔액을조회하거나입출금을처리하기사용하는프로그램들이기작성트랜잭션의예이다. 최종사용자 (end user) 최종사용자는질의하거나갱신하거나보고서를생성하기위해서데이터베이스를사용하는사람으로서데이터정의어나데이터조작어를직접사용하는경우는비교적많지않다. 최종사용자는다시데이터베이스질의어를사용하여매번다른정보를찾는캐주얼사용자와기작성트랜잭션을주로반복해서수행하는초보사용자로구분할수있다. 데이터베이스설계자 (database designer) ERWin 등의 CASE(Computer-Aided Software Engineering) 도구들을이용해서데이터베이스설계를책임진다. 데이터베이스의일관성을유지하기위해서정규화를수행한다. 데이터베이스를효율적으로접근할수있도록인덱스등을정의한다. 또한데이터베이스설계에관한문서화작업을수행한다. 오퍼레이터 (operator) 오퍼레이터는 DBMS가운영되고있는컴퓨터시스템과전산실을관리하는사람이다. 46

CHAPTER 1 제 1 장데이터베이스시스템 1.6 ANSI/SPARC 아키텍처와데이터독립성 1.6.1 ANSI/SPARC 아키텍처 DBMS의주요목적은사용자에게데이터에대한추상적인뷰를제공하는것이다. 즉데이터가어떻게저장되고유지되는가에관한상세한사항을숨기는것이다. 현재의대부분의상용 DBMS 구현에서사용되는일반적인아키텍처는 1978년에제안된 ANSI/SPARC 아키텍처이다. ANSI/SPARC 아키텍처의 3단계는물리적, 개념적, 외부단계로이루어진다. 외부단계 (external level): 각사용자의뷰개념단계 (conceptual level): 사용자공동체의뷰내부단계 (internal level): 물리적또는저장뷰 3단계데이터베이스아키텍처는프로그램-데이터독립성, 데이터에대한다수의뷰를제공하는 DBMS의특성을지원한다. 3단계아키텍처의주요목적은데이터베이스에대한사용자의관점과데이터베이스가실제로표현되는방식을분리하는것이다. 이는아래와같은이유때문에바람직하다독립적인사용자맞춤형뷰 (customized view) 를제공한다. 각사용자는동일한데이터를서로다른맞춤형뷰를가지면서접근할수있어야하며이는서로독립적이어야한다. 즉한사용자의뷰의변화는다른사용자의뷰에영향을미치지않아야한다. 사용자를위해서상세한물리적인저장을숨겨야한다. 사용자는물리적인데이터베이스저장의상세한내용을다룰필요가없어야한다. 사용자들은데이터자체만다루도록허용되어야한다. 데이터베이스관리자는사용자들의뷰에영향을미치지않으면서데이터베이스저장구조를변경할수있어야한다. 때때로한조직의데이터베이스의구조를바꿔야하는중요한이유가생길수 47

배 움 터 데 이 터 베 이 스 있다. 데이터베이스의내부구조는저장의물리적인측면이바뀌어도영향을받지않아야한다. 새로운디스크에데이터베이스가저장될수있다. 데이터베이스관리자는사용자들에게영향을미치지않으면서데이터베이스의개념적구조또는전역적인구조를바꿀수있어야한다. 요구되는각사용자의뷰를여전히유지하면서이런작업이가능해야한다. 그림 1.19는 ANSI/SPARC 3단계아키텍처를보여준다. 제일위의단계는사용자와가장가까운외부단계이다. 가운데에위치한단계가개념단계이고, 그아래단계는물리적저장장치와가장가까운내부단계이다. 지금부터세개의단계를좀더자세하게논의한다. 내부단계에서외부단계로올라갈수록추상화수준이높아진다. 일반적으로데이터베이스관리자만세개의단계모두를접근한다. [ 그림 1.19] ANSI/SPARC 3 단계아키텍처 48

CHAPTER 1 제 1 장데이터베이스시스템 외부단계외부단계는데이터베이스의각사용자가갖는뷰이다. 외부단계는사용자와응용들이어떻게데이터를보는가를기술한다. 여러부류의사용자를위해동일한개념단계로부터다수의서로다른뷰가제공될수있다. 일반적으로, 최종사용자와응용프로그래머들은데이터베이스의일부분에만관심을갖는다. 예를들어, 대학교데이터베이스에서한학과의학과장은학과의예산과학생들의수강정보에는관심이있지만도서관에관한정보에는관심이없을수있다. 도서관의사서는교수들에관해어떠한관심도없을수있다. 경리과에서는학생들의수강에관해서는관심이없다. 또다른예로, 은행데이터베이스는고객, 창구의행원, 신용카드회사, 은행의급여관리자가접근하지만각각은전체은행데이터베이스의일부만접근할뿐이다. 외부단계들은동일한데이터에대한서로다른표현들을제공할수있다. 예를들어, 어떤사용자는날짜를월 / 일 / 연도형식으로보고, 또다른사용자는날짜를연도 / 월 / 일의형식으로볼수있다. 어떤뷰는유도되거나계산된데이터를포함할수있다. 예를들어, 나이는생년월일로부터계산할수있기때문에유도된데이터라고한다. 나이를데이터베이스에저장하면매년갱신해야하므로바람직하지않다. 예 : 그림 1.20 은관계데이터모델에서개념단계의세테이블 EMP, PROJ, WORKS 로부터일부애트리뷰트들을선택하여외부단계의뷰 ASSIGNMENT 와 EMP_NAME 이정의된예를보여준다. [ 그림 1.20] 관계데이터모델에서 3 단계아키텍처의예 49

배 움 터 데 이 터 베 이 스 개념단계개념단계는조직체의정보모델로서, 물리적인구현은고려하지않으면서조직체전체에관한스키마를포함한다. 개념단계는데이터베이스에어떤데이터가저장되어있으며, 데이터간에는어떤관계가존재하고, 어떤무결성제약조건들이명시되어있는가를기술한다. 다시말하면개념단계는전체데이터베이스의논리적인구조를기술한다. 개념단계는데이터베이스에대한사용자공동체의뷰를나타낸다. 데이터베이스마다오직한개의개념스키마가존재한다. 개념단계는저장구조와독립적이다. 관계데이터모델에서개념스키마는테이블들의집합으로표현된다. 관계데이터모델에서는개념스키마에대한변화의예로는기존의데이터베이스에새테이블생성, 기존의테이블제거, 기존의테이블에대한애트리뷰트추가또는삭제등이있다. 예 : 그림 1.20 에서는개념단계가세테이블 EMP, PROJ, WORKS 로구성되어있다. 내부단계내부단계는실제의물리적인데이터구조에관한스키마이다. 데이터베이스에어떤데이터가어떻게저장되어있는가를기술한다. 내부단계에서는인덱스, 해싱등과같은접근경로, 데이터압축등을기술한다. 이단계에서는효율성을가장중요하게고려하며효율적인데이터베이스를제공하기위한데이터구조가선택된다. 데이터베이스마다한개의내부스키마가존재한다. 데이터베이스의개념스키마에는영향을미치지않으면서성능을향상시키기위해내부스키마를변경하는것이바람직할수있다. 내부단계에서물리적인저장장치를직접적으로다루지는않는다. 그대신에내부단계에서는물리적인장치가물리적인페이지들의모임으로이루어진다고가정하고논리적인페이지들의관점에서공간을할당한다. 내부단계아래는물리적단계이다. 물리적단계는 DBMS의지시에따라운영체제가관리한다. 물리적단계는디스크같은저장장치에데이터를물리적으로저장하는기법을다룬다. 50

CHAPTER 1 제 1 장데이터베이스시스템 예 : 그림 1.20 의내부단계에서는 EMP 테이블의 ENO 애트리뷰트, PROJ 테이블의 PNO 애트리뷰트, WORKS 테이블의 (ENO, PNO) 애트리뷰트에인덱스가정의되어있으며세테이블이모두비순서화일로저장되어있음을알수있다. 예 : ANSI/SPARC 3 단계아키텍처의개념과그림 1.21 의전철노선도를비교해보자. 아래와같은수도권전철노선도는수도권시민이전철노선도를보는관점을모두합쳐놓은개념스키마에해당한다. 대부분의시민들은 8 개전철노선도의모든역에관해서잘알고있을필요가없다. 사당동에사는학생이청량리에있는학교에통학하기위해서는사당역에서전철을타고, 동대문역에서갈아탄다. 따라서이학생은 8 개노선의수많은전철역들중에서사당역, 동대문역, 청량리역에만관심을갖는다. 양재동에사는직장인이광화문에있는사무실에출퇴근하기위해서는양재역에서전철을타고, 종로 3 가역에서갈아탄다. 따라서이직장인은양재역, 종로 3 가역, 광화문역에만관심을갖는다. 이학생과회사원이관심을갖는각각의역들이외부단계에해당한다. 전철이교류를사용하는지또는직류를사용하는지, 우측통행인지또는좌측통행인지, 전철역에에스컬레이터가있는지, 각전철에몇량이달려있는지등은내부단계에비유할수있다. 51

배 움 터 데 이 터 베 이 스 [ 그림 1.21] 전철노선도 스키마간의사상 DBMS는세가지유형의스키마간의사상을책임진다. 각외부스키마는외부 / 개념사상 (external/conceptual mapping) 에의해개념스키마와연관된다. 외부 / 개념사상은외부단계의뷰를사용해서입력된사용자의질의를개념단계의스키마를사용한질의로변환한다. 개념 / 내부사상 (conceptual/internal mapping) 은이를다시내부단계의스키마로변환하여디스크의데이터베이스를접근하게된다. 개념 / 내부사상을통해 DBMS가개념스키마내의한논리적레코드를구성하는, 물리적저장장치내의실제의레코드또는레코드들의집합을찾을수있다. 그림 1.19는외부단계와개념단계간의사상, 개념단계와내부단계간의사상이일어나는위치를보여준다. 52

CHAPTER 1 제 1 장데이터베이스시스템 1.6.2 데이터독립성 ANSI/SPARC 아키텍처의주요목적은데이터독립성 (data independence) 을제공하는것이다. 데이터독립성은상위단계의스키마정의에영향을주지않으면서어떤단계의스키마정의를변경할수있음을의미한다. 데이터독립성은논리적데이터독립성 (logical data independence) 과물리적데이터독립성 (physical data independence) 으로구분할수있다. 관계데이터베이스에서는개념스키마가테이블들의집합으로이루어진다. 모든유형의내부스키마구조의변화에도데이터독립성이제공되는것은아니다. 예를들어, 전화번호의국번호가세자리에서네자리숫자로늘어나면물리적인레코드에서해당애트리뷰트의길이가늘어나야하는경우가있다. 이런경우에는개념단계의스키마에서도해당애트리뷰트의길이가늘어나야하고, 외부단계도검색된국번호를사용자에게올바르게보여주기위해서변경되어야한다. 물론추가작업을통해서상위단계에미치는영향을줄일수있다. 그림 1.22는 ANSI/SPARC 아키텍처에서논리적인데이터독립성과물리적데이터독립성이적용되는위치를보여준다. [ 그림 1.22] 논리적데이터독립성과물리적데이터독립성 53

배 움 터 데 이 터 베 이 스 논리적데이터독립성논리적데이터독립성은개념스키마의변화로부터외부스키마가영향을받지않음을의미한다. 기존의외부스키마에영향을미치지않고, 응용프로그램을다시작성할필요없이개념스키마에대한변화가가능해야한다. 물리적데이터독립성물리적데이터독립성은내부스키마의변화가개념적스키마에영향을미치지않으며, 따라서외부스키마 ( 또는응용프로그램 ) 에도영향을미치지않음을의미한다. 내부스키마의변화의예로는화일의저장구조를바꾸거나인덱스를생성및삭제하는등의작업이있다. 이런작업은성능향상을위해때때로필요하다. 물리적인데이터독립성이제공되면응용프로그램들은데이터가어떻게물리적인구조를갖고저장되었는가를신경쓸필요가없다. 구현에관한상세한사항과최적화는 DBMS에게맡기면된다. 이것이오늘날관계 DBMS가성공을거둔가장중요한이유중의하나이다. 1.7 데이터베이스시스템아키텍처 소프트웨어시스템은일반적으로아키텍처를갖는다. DBMS는다수의모듈로이루어진복잡한소프트웨어이다. 그림 1.23은전형적인데이터베이스시스템을간략하게나타낸아키텍처를보여준다. 데이터베이스관리자가데이터정의어를사용하여테이블생성을요청하면데이터정의어컴파일러 (DDL compiler) 가이를번역하여, 테이블이화일형태로데이터베이스에만들어지고, 이테이블에대한명세가시스템카탈로그에저장된다. 최종사용자나응용프로그래머가데이터조작어를사용하여데이터베이스를접근하려하면 DBMS의질의처리기 (query processor. 데이터조작어를수행하는최적의방법을찾는모듈 ) 를통해서기계어코드로번역되고, DBMS의런타임데이터베이스관리기 (run-time database manager. 디스크에저장된데이터베이스를접근하는모듈 ) 에의해데이터베이스가접근된다. 이과정에서, 사용자가원하는테이블이데이터베이스에존재하는가, 데이터조작어를입력한사용자가해당테이블을접근할수있는권한이있는가, 테이블에어떤접근경로들이존 54

CHAPTER 1 제 1 장데이터베이스시스템 재하는가등을시스템카탈로그를접근하여확인한다. 여러사용자가공용데이터베이스를접근할때생길수있는데이터불일치를해결하기위해서동시성제어 (concurrency control) 모듈이사용된다. 데이터베이스를접근하는도중에시스템이다운되면, 다운되기직전의일관된데이터베이스상태를복구하기위해서회복 (recovery) 모듈이사용된다. 동시성제어모듈과회복모듈을합쳐서트랜잭션관리 (transaction management) 모듈이라부른다. [ 그림 1.23] 데이터베이스시스템의간단한아키텍처 그림 1.23에는표현되지않았지만일반적으로데이터베이스 API(Application Program Interface 또는드라이버 ) 도데이터베이스시스템에포함된다. API는공통적으로사용되는데이터베이스접근유형을위한라이브러리함수들의모임이다. 각제품에고유한데이터베이스 API가있지만이런 API는다른제품에서는동작하지않는다. 예를들어, 오라클의 API는 MS SQL Server에사용할수없다. 두가지중요한데이터베이스 API 표준은 ODBC(Open Connectivity) 와 JDBC(Java Connectivity) 이다. 어떤표준데이터베이스 API를사 55

배 움 터 데 이 터 베 이 스 용하든지간에목적은동일하다. 즉데이터베이스에대한접근을간단하게하며데이터베이스간의차이점을숨기는것이다. ODBC는마이크로소프트사가주도적으로개발한데이터베이스드라이버로서널리사용되고있다. ODBC는사실상의산업계의표준이되었다. ODBC는주로윈도우운영체제환경에서사용된다. JDBC는자바를위한드라이버로서자바가운영되는모든플랫폼에서지원된다. JDBC는자바프로그래밍언어로작성된클래스와인터페이스들의집합으로이루어진다. 일반적으로 ODBC는응용들간에사용되고, JDBC는자바프로그래머가관계데이터베이스에접근할때사용된다. ODBC로접근할수있는데이터베이스들을작은 bridge 프로그램을사용하여 JDBC 인터페이스에서접근할수있다. 다른데이터베이스를접근하기위해서 ODBC를사용하려면사용자는 ODBC 소프트웨어, 접근하려는각데이터베이스에대한별도의모듈 ( 드라이버 ) 이필요하다. 드라이버는 DBMS의운영체제와네트워크프로토콜의차이점을가려준다. 표준데이터베이스 API를지원하는 DBMS 간에는서로상대방의데이터베이스를접근할수있다. 예를들어, MS SQL Server와오라클의내부는크게다르지만그림 1.24처럼 MS SQL Server에서 ODBC를통해오라클데이터베이스를접근할수있다. ODBC는 SQL 요청을받아서각데이터베이스시스템이인식할수있는요청으로변환한다. 56

CHAPTER 1 제 1 장데이터베이스시스템 [ 그림 1.24] 데이터베이스 API(ODBC) 의역할 데이터베이스시스템을운영하는데연관된사이트들의수와이사이트들의역할에따라데이터베이스시스템의아키텍처를몇가지유형으로구분할수있다. 중앙집중식데이터베이스시스템 (centralized database system) 데이터베이스시스템이하나의컴퓨터시스템에서운영된다. 데이터베이스접근과관련하여다른컴퓨터시스템과상호작용하지않는다. 그림 1.25는중앙집중식데이터베이스시스템의아키텍처를나타낸다. 중앙의컴퓨터에저장된데이터베이스를여러단말기에서접근한다. [ 그림 1.25] 중앙집중식데이터베이스시스템 57

배 움 터 데 이 터 베 이 스 분산데이터베이스시스템 (distributed database system) 네트워크로연결된여러사이트에데이터베이스자체가분산되어있으며, 데이터베이스시스템도여러컴퓨터시스템에서운영된다. 사용자는다른사이트에저장된데이터베이스도접근할수있다. 사용자에게데이터베이스가분산되지않은것처럼느끼게만드는것이필요하다. 그림 1.26은분산데이터베이스시스템의아키텍처를나타낸다. 각컴퓨터마다분산 DBMS가운영된다. 사용자는지역데이터베이스뿐만아니라원격데이터베이스도접근할수있다. [ 그림 1.26] 분산데이터베이스시스템 클라이언트-서버데이터베이스시스템 (client-server database system) 중앙집중식데이터베이스시스템에서는자체처리능력이없는단말기를통해중앙의데이터베이스를접근하지만클라이언트-서버데이터베이스시스템에서는 PC 또는워크스테이션처럼자체컴퓨팅능력을가진클라이언트를통해데이터베이스서버를접근한다. 분산데이터베이스시스템과달리클라이언트-서버데이터베이스시스템에서는데이터베이스가하나의데이터베이스서버에저장되어있다 ( 그림 1.27). 58

CHAPTER 1 제 1 장데이터베이스시스템 [ 그림 1.27] 클라이언트 - 서버데이터베이스시스템 클라이언트-서버데이터베이스시스템에서는데이터베이스시스템의기능이서버와클라이언트에분산된다. 서버는데이터베이스를저장하고 DBMS를운영하면서여러클라이언트에서온질의를최적화하고, 권한검사를수행하고, 동시성제어와회복기능을수행하고, 데이터베이스의무결성을유지하고, 데이터베이스접근을관리한다. 클라이언트는사용자인터페이스를관리하고응용들을수행한다. 클라이언트와서버사이의인터페이스는 SQL(4장에서논의 ) 이나 API를이용한다. 클라이언트-서버아키텍처는클라이언트와데이터베이스서버가직접연결되는 2 층모델 (2-tier model) 과클라이언트와데이터베이스서버사이에응용서버 (application server) 가추가된 3층모델 (3-tier model) 로구분한다 ( 그림 1.28). 2층모델에서는응용의논리가클라이언트와서버에흩어져있으며, 3층모델에서는응용의논리가응용서버에만포함되어있다. 2층모델에비해서 3층모델이갖는장점은서비스요청과응답이클라이언트와응용서버간에만전송되기때문에성능이향상되는것이다. 또한응용소프트웨어를다수의클라이언트대신에소수의응용서버에설치하게되므로구현및유지보수가용이하다. 3층모델에서클라이언트는프리젠테이션기능을수행하고, GUI를관리하고, 네트워크접근을제공하는통신소프트웨어를실행한다. 응용서버는비즈니스와데이터논리를처리한다. 데이터베이스서버는데이터베이스를관리한다. 3층모델을 ANSI/SPARC의 3단계아키텍처와혼동하지말기바란다. 59

배 움 터 데 이 터 베 이 스 예를들어, 3층모델을따라구현된항공기예약시스템에서클라이언트는사용자로그인을수행하고, 사람이알아보기쉬운형식으로결과를디스플레이한다. 응용서버는새로운예약을처리하고, 기존예약을취소하고, 새로운항공편을추가하는등의논리를수행한다. 데이터베이스서버는항공편정보 ( 예약좌석수, 총좌석수, 빈좌석수등 ), 예약자정보등을관리한다. 클라이언트-서버데이터베이스시스템의장점은기존의데이터베이스를보다넓은지역에서접근할수있고, 성능이향상되며, 하드웨어비용이절감된다는것이다. 또한다양한컴퓨터시스템을사용할수있다. 예를들어, 클라이언트는 PC에서윈도우운영체제를사용하고, 서버는워크스테이션이나메인프레임에서 UNIX 운영체제를사용할수있다. 보안이다소취약할수있다는것은클라이언트-서버데이터베이스시스템의단점이다. (a) 응용의논리 (b) [ 그림 1.28] 2 층모델 (a) 와 3 층모델 (b) 60

CHAPTER 1 제 1 장데이터베이스시스템 E X E R C I S E 연습문제 1. 다음용어들을간략히설명하라. 1. 데이터, 데이터베이스, DBMS, 데이터베이스시스템, 내포, 외연, 데이터베이스관리자, 시스템카탈로그, 기작성트랜잭션, 데이터독립성 2. 데이터베이스에대한설명을데이터베이스스키마라부르고, 특정시점에데이터베이스에들어있는데이터를데이터베이스상태라고부른다. 다음보기중에서사용자가자주변경하게되는것은? 1. 1 데이터베이스스키마 1. 2 데이터베이스상태 1. 3 데이터베이스스키마와데이터베이스상태모두 1. 4 데이터베이스스키마와데이터베이스상태모두아님 3. 데이터모델에대한다음설명중에서맞는것은? 1. 1 데이터베이스구조를기술하기위해서사용되는개념들의집합 1. 2 ANSI/SPARC 3단계아키텍처의한단계 1. 3 데이터가어떻게디스크에물리적으로저장되었는가를기술 1. 4 사용자가데이터를정의한모델 4. 올바른문장을고르라. 1. 1 데이터베이스스키마는사용자가관심을갖는모든데이터타입들에대한설명을포함한다. 1. 2 데이터베이스스키마는기존의화일들의목록이다. 사용자가새로운화일을만들때마다그화일에대한설명이자동적으로데이터베이스스키마에추가된다. 5. 다음보기중에서 ANSI/SPARC 아키텍처가중요한이유로가장적절한것은? 1. 1 ANSI/SPARC 아키텍처는 DBMS 제조업체와최종사용자를위한참조모델 61

배 움 터 데 이 터 베 이 스 을정의한다. 1. 2 ANSI/SPARC 아키텍처는사용자가데이터의용도, 데이터의의미, 데이터의저장을명시하는공통된기법이다. 1. 3 ANSI/SPARC 아키텍처는논리적데이터독립성과물리적데이터독립성을제공한다. 1. 4 ANSI/SPARC 아키텍처는 ANSI 표준기관에서정의되었다. 6. ANSI/SPARC 3단계아키텍처의외부단계에대한설명중에서맞는것은? 2. 1 최종사용자가관리한다. 2. 2 DBMS가관리한다. 2. 3 실제로존재하지않으며이론에불과하다. 2. 4 위의모든보기와관계가없다. 7. 아래의상황중에서시스템이논리적데이터독립성을제공하는것을하나고르고그이유를설명하라. 2. 1 사용자와응용프로그램이데이터베이스의저장구조에의존하지않는다. 2. 2 어떤응용프로그램에도영향을주지않으면서데이터의저장표현을변경할수있다. 2. 3 사용자와응용프로그램에영향을주지않으면서데이터베이스가성장하거나재구성될수있다. 2. 4 외부스키마를변경하지않으면서개념스키마와내부스키마를변경할수있다. 8. 데이터베이스에저장된데이터를처리하는데어떤연산들이필요한가? 9. 만일여러분이비디오테이프또는 DVD 대여점을운영하고있다고가정하자. 어떤정보를데이터베이스에관리해야하는가? 10. 데이터베이스배움터 와같은교재를데이터베이스라고할수있는가? 11. 어떤신문사홈페이지에들어있는웹문서들을데이터베이스라고할수있는가? 12. 데이터모델이무엇인가? 왜데이터모델이중요한가? 13. 여러분이알고있는데이터모델들을열거하라. 이들이표현할수있는구조적 62

CHAPTER 1 제 1 장데이터베이스시스템 인정보의양에따라순서를부여하라. 14. DBMS의주요기능을설명하라. 15. 마이크로소프트사의 Access( 개인용 DBMS), MS SQL Server, 데이터화일등세가지대안중에서어떤유형의응용에어떤대안을사용하는것이적절한지설명하라. 16. 본책에서화일기반시스템의단점을설명하였다. 데이터베이스시스템과비교하여화일시스템에갖는장점이무엇이라고생각하는가? 어떤상황에서화일기반시스템이데이터베이스시스템보다선호되겠는가? 17. 화일시스템에비해서 DBMS가갖는장점과단점을각각세개씩열거하라. 18. DBMS를사용하는장점에도불구하고아직많은데이터가 DBMS가아니라화일 ( 예를들어, 워드프로세서문서, 엑셀문서, 텍스트문서, HTML 문서등 ) 에저장된다. 이런데이터를저장하기위해 DBMS를사용하지않는이유를두가지설명하라. 19. DBMS를분류하는여러기준들을설명하라. 20. 데이터정의어가무엇인가? 데이터조작어가무엇인가? 이들의차이점은무엇인가? 21. ANSI/SPARC의 3단계아키텍처를그려보고, 각단계의역할을설명하라. 또한 3단계아키텍처가어떻게물리적및논리적데이터독립성문제를해결하는지설명하라. 22. 데이터독립성이무엇을의미하는가? 왜데이터독립성이 DBMS를위해중요한가? 두가지종류의데이터독립성을예를들어설명하라. 23. 학생데이터베이스의개념스키마를제시하라. 최종사용자가가질수있는외부뷰를몇개제시하라. 24. DBMS의전형적인시스템아키텍처를설명하라. 25. 클라이언트-서버아키텍처에서클라이언트와서버의역할을설명하라. 26. 2층모델과 3층모델을비교하여설명하라. 27. 3층모델이웹기반응용에특히적합한이유를설명하라. 63

배 움 터 데 이 터 베 이 스 28. ODBC가무엇인가? JDBC와 ODBC의차이점을설명하라. 29. 데이터베이스는기본적으로화일들의모임으로이루어진다. 데이터베이스내의화일개념이기존의화일시스템내의화일개념과어떻게다른가설명하라. 30. 대학의수강신청업무를 3층모델로구현했다고가정하자. 클라이언트, 응용서버, 데이터베이스서버는각각어떤일은수행하겠는가? 31. DBMS를사용하여데이터를저장하고검색할수있듯이마이크로소프트사의엑셀을사용해서도데이터를저장하고검색할수있다. 엑셀같은스프레드시트소프트웨어가갖지못한 DBMS의기능을두개설명하라. 64

저자약력 ; 홍의경 - 서울대학교사범대학수학교육과졸업 (1981 년이학사 ) - 카이스트전산학과졸업 (1983 년공학석사 ) - 카이스트전산학과졸업 (1991 년공학박사 ) - 한국정보과학회데이터베이스연구회지편집위원장역임 - VLDB, ACM SIGKDD, DASFAA, PAKDD, FEGIS, HSI 등다수의국제학술대회 program committee, registration chair, organization chair 역임 - 행정자치부기술고시데이터베이스과목문제선정및채점위원역임 - 대학수학능력시험수리영역출제위원역임 - 미국텍사스주립대학 (Austin 소재 ) visiting scholar - 저서 : 고등학교 정보사회와컴퓨터, 중학교 정보 1, 정보 2, 정보 3, 교과서 ( 생능출판사 ) - 역서 : 데이터베이스시스템 ( 피어슨 ), 순서도를활용한프로그래밍원리와실습 ( 생능출판사 ) - 한국정보과학회논문지 ( 데이터베이스 ) 편집위원장역임 - 한국정보과학회데이터베이스소사이어티회장역임 - 서울시립대학교전산정보원장 (2003 년 ~ 2005 년 ) - 서울시립대학교중앙도서관장 (2011 년 ~ 2013 년 ) - 서울시립대학교컴퓨터과학부교수 (1984 년 ~ 현재 ) 검인 데이터베이스배움터 - MS SQL Server 기반 - 홍의경지음 < 개정 3 판 > 초판발행 : 2003. 3. 5 개정 3 판 : 2012. 8. 29 발 행 인 : 김승기 발 행 처 : 생능출판사 신고번호 : 제406-2005-000002호 신고일자 : 2005. 1. 21 I S B N : 978-89-7050-751-4(93000) 경기도파주시문발동 507-12 파주출판도시대표전화 : (031)955-0761, FAX : (031)955-0768 홈페이지 : http://www.booksr.co.kr 파본및잘못된책은바꾸어드립니다. 정가 27,000 원