컴퓨터를사용하여정보를수집하고분석하는데데이터베이스기술이활용되고있음 정보와데이터는서로다름 데이터베이스 (database) 의정의 데이터베이스는조직체의응용시스템들이공유해서사용하는운영데이터 (operational data) 들이구조적으로통합된모임이다. 데이터베이스의구조는사용되는데이터모델에의해결정된다. 2
( 계속 ) 데이터베이스의예 대학에서는데이터베이스에학생들에관하여신상정보, 수강과목, 성적등을 기록하고, 각학과에개설되어있는과목들에관한정보를유지하고, 교수에 관해서신상정보, 담당과목, 급여정보를유지한다. 항공기예약시스템에서는여행사를통해항공기좌석을예약하면모든예약정보가데이터베이스에기록된다. 3
데이터베이스의특징 ( 계속 ) 데이터베이스는데이터의대규모저장소로서, 여러부서에속하는여러 사용자에의해동시에사용됨 모든데이터가중복을최소화하면서통합됨 데이터베이스는한조직체의운영데이터뿐만아니라그데이터에관한 설명 ( 데이터베이스스키마또는메타데이터 (metadata)) 까지포함. 프로그램과데이터간의독립성이제공됨 효율적으로접근이가능하고질의를할수있음 데이터베이스관리시스템 (DBMS: Database Management System) 데이터베이스를정의하고, 질의어를지원하고, 리포트를생성하는등의 작업을수행하는소프트웨어 4
1.1 데이터베이스시스템개요 데이터베이스스키마 전체적인데이터베이스구조를뜻하며자주변경되지는않음 데이터베이스의모든가능한상태를미리정의 내포 (intension) 라고부름 데이터베이스상태 특정시점의데이터베이스의내용을의미하며, 시간이지남에따라계속해서바뀜 외연 (extension) 이라고부름 5
1.1 데이터베이스시스템개요 ( 계속 ) 데이터베이스스키마 DEPARTMENT(DEPTNO, DEPTNAME, FLOOR) EMPLOYEE(EMPNO, EMPNAME, TITLE, DNO, SALARY) 6
1.1 데이터베이스시스템개요 ( 계속 ) 데이터베이스시스템 (DBS: Database System) 의구성요소 7
1.1 데이터베이스시스템개요 ( 계속 ) 데이터베이스 조직체의응용시스템들이공유해서사용하는운영데이터들이구조적으로통합된모임 시스템카탈로그 ( 또는데이터사전 ) 와저장된데이터베이스로구분할수있음 시스템카탈로그 (system catalog) 는저장된데이터베이스의스키마정보를유지 8
1.1 데이터베이스시스템개요 ( 계속 ) 9
DBMS 1.1 데이터베이스시스템개요 ( 계속 ) 사용자가새로운데이터베이스를생성하고, 데이터베이스의구조를명시할수있게하고, 사용자가데이터를효율적으로질의하고수정할수있도록하며, 시스템의고장이나권한이없는사용자로부터데이터를안전하게보호하며, 동시에여러사용자가데이터베이스를접근하는것을제어하는소프트웨어패키지 데이터베이스언어라고부르는특별한프로그래밍언어를한개이상제공 SQL은여러 DBMS에서제공되는사실상의표준데이터베이스언어 10
1.1 데이터베이스시스템개요 ( 계속 ) 11
사용자 1.1 데이터베이스시스템개요 ( 계속 ) 데이터베이스사용자는여러부류로나눌수있음 하드웨어 데이터베이스는디스크와같은보조기억장치에저장되며, DBMS에서원하는정보를찾기위해서는디스크의블록들을주기억장치로읽어들여야하며, 계산이나비교연산들을수행하기위해중앙처리장치가사용됨 DBMS 자체도주기억장치에적재되어실행되어야함 12
1.1 데이터베이스시스템개요 ( 계속 ) 데이터베이스시스템의요구사항 데이터독립성 효율적인데이터접근 데이터에대한동시접근 백업과회복 중복을줄이거나제어하며일관성유지 데이터무결성 데이터보안 쉬운질의어 다양한사용자인터페이스 13
1.2 화일시스템 vs. DBMS 화일시스템을사용한기존의데이터관리 화일시스템은 DBMS가등장하지않았을때인 1960년대부터사용되어왔음 화일의기본적인구성요소는순차적인레코드들 한레코드는연관된필드들의모임 화일을접근하는방식이응용프로그램내에상세하게표현되므로데이터에대한응용프로그램의의존도가높음 14
1.2 화일시스템 vs. DBMS( 계속 ) 15
1.2 화일시스템 vs. DBMS( 계속 ) 그림 1.6에서두개의코볼프로그램에는 Employee 화일의필드들이열거되어있다. 만일 Employee 화일에사원의휴대폰번호를추가로나타내려면 Employee 화일의레코드를하나씩읽어서, 휴대폰번호필드를추가한레코드를새로운 Employee 화일에기록하는프로그램을작성해야한다. 그다음에기존의 Employee 화일을사용하던모든응용프로그램들을찾아서휴대폰번호필드를추가해야한다. 16
1.2 화일시스템 vs. DBMS( 계속 ) 17
화일시스템의단점 1.2 화일시스템 vs. DBMS( 계속 ) 데이터가많은화일에중복해서저장됨 18
1.2 화일시스템 vs. DBMS( 계속 ) 화일시스템의단점 ( 계속 ) 다수사용자들을위한동시성제어가제공되지않음 검색하려는데이터를쉽게명시하는질의어가제공되지않음 보안조치가미흡 회복기능이없음 프로그램-데이터독립성이없으므로유지보수비용이많이소요됨 화일을검색하거나갱신하는절차가상대적으로복잡하기때문에프로그래머의생산성이낮음 데이터의공유와융통성이부족 19
1.2 화일시스템 vs. DBMS( 계속 ) DBMS 를사용한데이터베이스관리 여러사용자와응용프로그램들이데이터베이스를공유 사용자의질의를빠르게수행할수있는인덱스등의접근경로를 DBMS가자동적으로선택하여수행 권한이없는사용자로부터데이터베이스를보호 여러사용자에적합한다양한인터페이스를제공 데이터간의복잡한관계를표현하며, 무결성제약조건을 DBMS 가자동적으로유지 시스템이고장나면데이터베이스를고장전의일관된상태로회복시킴 프로그램에영향을주지않으면서데이터베이스구조를변경할수있음프로그램-데이터독립성 (program-data independence) 20
1.2 화일시스템 vs. DBMS( 계속 ) 21
1.2 화일시스템 vs. DBMS( 계속 ) DBMS 의장점 중복성과불일치가감소됨 시스템을개발하고유지하는비용이감소됨 표준화를시행하기가용이 보안이향상됨 무결성이향상됨 조직체의요구사항을식별할수있음 다양한유형의고장으로부터데이터베이스를회복할수있음 데이터베이스의공유와동시접근이가능함 22
1.2 화일시스템 vs. DBMS( 계속 ) 23
1.2 화일시스템 vs. DBMS( 계속 ) DBMS 선정시고려사항 기술적요인 DBMS 에사용되고있는데이터모델, DBMS 가지원하는사용자인터페이스, 프로그래밍언어, 응용개발도구, 저장구조, 성능, 접근방법등 경제적요인 소프트웨어와하드웨어구입비용, 유지보수비용, 직원들의교육지원등 24
1.2 화일시스템 vs. DBMS( 계속 ) DBMS 의단점 추가적인하드웨어구입비용이들고, DBMS 자체의구입비용도상당히비쌈 직원들의교육비용도많이소요됨 비밀과프라이버시노출등의단점이존재할수있음 초기의투자비용이너무클때, 오버헤드가너무클때, 응용이단순하고잘정의되었으며변경되지않을것으로예상될때, 엄격한실시간처리요구사항이있을때, 데이터에대한다수사용자의접근이필요하지않을때는 DBMS를사용하지않는것이바람직할수있음 25
1.3 DBMS 발전과정 데이터모델 데이터베이스의구조를기술하는데사용되는개념들의집합인구조 ( 데이터타입과관계 ), 이구조위에서동작하는연산자들, 무결성제약조건들 사용자에게내부저장방식의세세한사항은숨기면서데이터에대한직관적인뷰를제공하는동시에이들간의사상을제공 26
데이터모델의분류 1.3 DBMS 발전과정 ( 계속 ) 고수준또는개념적데이터모델 (conceptual data model) 사람이인식하는것과유사하게데이터베이스의전체적인논리적구조를명시 예 : 엔티티-관계 (ER: Entity-Relationship) 데이터모델과객체지향데이터모델 표현 ( 구현 ) 데이터모델 (representation(implementation) data model) 최종사용자가이해하는개념이면서컴퓨터내에서데이터가조직되는방식과멀리떨어져있지는않음 예 : 계층데이터모델 (hierarchical data model), 네트워크데이터모델 (network data model), 관계데이터모델 (relational data model) 저수준또는물리적인데이터모델 (physical data model) 데이터베이스에데이터가어떻게저장되는가를기술 예 : Unifying, ISAM, VSAM 등 27
1.3 DBMS 발전과정 ( 계속 ) 28
계층 DBMS 1.3 DBMS 발전과정 ( 계속 ) 1960년대후반에최초의계층 DBMS가등장 ( 예 : IBM사의 IMS) 트리구조를기반으로하는계층데이터모델을사용한 DBMS 계층데이터모델은네트워크데이터모델의특별한사례 장점 단점 어떤유형의응용에대해서는빠른속도와높은효율성을제공 어떻게데이터를접근하는가를미리응용프로그램에정의해야함 데이터베이스가생성될때각각의관계를명시적으로정의해야함 레코드들이링크로연결되어있으므로레코드구조를변경하기어려움 29
1.3 DBMS 발전과정 ( 계속 ) 30
네트워크 DBMS 1.3 DBMS 발전과정 ( 계속 ) 1960년대초에 Charles Bachman이하니웰 (Honeywell) 사에서최초의네트워크 DBMS인 IDS를개발 레코드들이노드로, 레코드들사이의관계가간선으로표현되는그래프를기반으로하는네트워크데이터모델을사용 네트워크 DBMS에서도레코드들이링크로연결되어있으므로레코드구조를변경하기어려움 31
1.3 DBMS 발전과정 ( 계속 ) 32
1.3 DBMS 발전과정 ( 계속 ) 관계 DBMS 1970년에 E.F. Codd가 IBM 연구소에서관계데이터모델을제안 미국 IBM 연구소에서진행된 System R과캘리포니아버클리대에서진행된 Ingres 프로젝트 장점 모델이간단하여이해하기쉬움 사용자는자신이원하는것 (what) 만명시하고, 데이터가어디에있는지, 어떻게접근해야하는지는 DBMS가결정 예 : MS SQL Server, Oracle, Sybase, DB2, MySQL 등 33
1.3 DBMS 발전과정 ( 계속 ) 34
1.3 DBMS 발전과정 ( 계속 ) 객체지향 DBMS 1980년대후반들어새로운데이터모델인객체지향데이터모델이등장 객체지향프로그래밍패러다임을기반으로하는데이터모델 장점 데이터와프로그램을그룹화하고, 복잡한객체들을이해하기쉬우며, 유지와변경이용이함 예 : ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2 등 객체관계 DBMS 1990년대후반에관계 DBMS에객체지향개념을통합한객체관계데이터모델이제안됨 예 : 오라클, Informix Universal Server 등 35
1.3 DBMS 발전과정 ( 계속 ) 새로운데이터베이스응용 CAD 데이터베이스, 소프트웨어공학데이터베이스 ( 재사용이가능한소프트웨어들의라이브러리 ), 게놈데이터베이스, 데이터웨어하우스, 데이터마이닝, OLAP, 멀티미디어데이터베이스, 웹데이터베이스등 36
1.3 DBMS 발전과정 ( 계속 ) 37
1.3 DBMS 발전과정 ( 계속 ) 38
1.4 DBMS 언어 데이터정의어 (DDL: Data Definition Language) 사용자는데이터정의어를사용하여데이터베이스스키마를정의 데이터정의어로명시된문장이입력되면 DBMS는사용자가정의한스키마에대한명세를시스템카탈로그또는데이터사전에저장 데이터정의어의기본적인기능데이터모델에서지원하는데이터구조를생성예, SQL에서 CREATE TABLE 데이터구조의변경예, SQL에서 ALTER TABLE 데이터구조의삭제예, SQL에서 DROP TABLE 데이터접근을위해특정애트리뷰트위에인덱스를정의예, SQL에서 CREATE INDEX 39
1.4 DBMS 언어 ( 계속 ) 데이터조작어 (DML: Data Manipulation Language) 사용자는데이터조작어를사용하여데이터베이스내의원하는데이터를검색하고, 수정하고, 삽입하고, 삭제 절차적언어 (procedural language) 와비절차적언어 (non-procedural language) 관계 DBMS에서사용되는 SQL은대표적인비절차적언어 대부분의데이터조작어는 SUM, COUNT, AVG와같은내장함수들을갖고있음 데이터조작어는단말기에서대화식으로입력되어수행되거나 C, 코볼등의고급프로그래밍언어로작성된프로그램에내포되어사용됨 40
1.4 DBMS 언어 ( 계속 ) 데이터조작어의기본적인기능 데이터의검색예, SQL에서 SELECT 데이터의수정예, SQL에서 UPDATE 데이터의삭제예, SQL에서 DELETE 데이터의삽입예, SQL에서 INSERT 41
1.4 DBMS 언어 ( 계속 ) 42
1.4 DBMS 언어 ( 계속 ) 43
1.4 DBMS 언어 ( 계속 ) 데이터제어어 (DCL: Data Control Language) 사용자는데이터제어어를사용하여데이터베이스트랜잭션을명시하고 권한을부여하거나취소 44
1.5 DBMS 사용자 45
1.5 DBMS 사용자 ( 계속 ) 데이터베이스관리자 (DBA: Database Administrator) 데이터베이스관리자는조직의여러부분의상이한요구를만족시키기위해서일관성있는데이터베이스스키마를생성하고유지하는사람 ( 팀 ) 데이터베이스관리자의역할 데이터베이스스키마의생성과변경 무결성제약조건을명시 사용자의권한을허용하거나취소하고, 사용자의역할을관리 저장구조와접근방법 ( 물리적스키마 ) 정의 백업과회복 표준화시행 46
1.5 DBMS 사용자 ( 계속 ) 응용프로그래머 데이터베이스위에서특정응용 ( 예, 고객관리, 인사관리, 재고관리등 ) 이나인터페이스를구현하는사람 고급프로그래밍언어인 C, 코볼등으로응용프로그램을개발하면서데이터베이스를접근하는부분은내포된데이터조작어를사용 이들이작성한프로그램은최종사용자들이반복해서수행하므로기작성트랜잭션 (canned transaction) 이라부름 47
1.5 DBMS 사용자 ( 계속 ) 최종사용자 (end user) 질의하거나갱신하거나보고서를생성하기위해서데이터베이스를사용하는사람 최종사용자는다시데이터베이스질의어를사용하여매번다른정보를찾는캐주얼사용자와기작성트랜잭션을주로반복해서수행하는초보사용자로구분 데이터베이스설계자 (database designer) ERWin 등의 CASE 도구들을이용해서데이터베이스설계를담당 데이터베이스의일관성을유지하기위해서정규화를수행 오퍼레이터 DBMS 가운영되고있는컴퓨터시스템과전산실을관리하는사람 48
1.6 ANSI/SPARC 아키텍처와데이터독립성 ANSI/SPARC 아키텍처 현재의대부분의상용 DBMS 구현에서사용되는일반적인아키텍처는 1978년에제안된 ANSI/SPARC 아키텍처 ANSI/SPARC 아키텍처의 3단계는물리적, 개념적, 외부단계로이루어짐 외부단계 (external level): 각사용자의뷰 개념단계 (conceptual level): 사용자공동체의뷰 내부단계 (internal level): 물리적또는저장뷰 49
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 50
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 외부단계 데이터베이스의각사용자가갖는뷰 여러부류의사용자를위해동일한개념단계로부터다수의서로다른뷰가제공될수있음 일반적으로, 최종사용자와응용프로그래머들은데이터베이스의일부분에만관심을가짐 51
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 52
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 개념단계 조직체의정보모델로서, 물리적인구현은고려하지않으면서조직체전체에관한스키마를포함 데이터베이스에어떤데이터가저장되어있으며, 데이터간에는어떤관계가존재하고, 어떤무결성제약조건들이명시되어있는가를기술함 데이터베이스에대한사용자공동체의뷰를나타냄 데이터베이스마다오직한개의개념스키마가존재 53
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 내부단계 실제의물리적인데이터구조에관한스키마 데이터베이스에어떤데이터가어떻게저장되어있는가를기술함 인덱스, 해싱등과같은접근경로, 데이터압축등을기술함 데이터베이스의개념스키마에는영향을미치지않으면서성능을향상시키기위해내부스키마를변경하는것이바람직 내부단계아래는물리적단계 물리적단계는 DBMS의지시에따라운영체제가관리함 54
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 전체지하철노선도에대해사당동에사는학생이청량리에있는학교에 통학하기위해서사당역, 동대문역, 청량리역에만관심을갖는다. 전체지하철노선도에대해양재동에사는직장인이광화문에있는사무실에 출퇴근하기위해서양재역, 종로 3 가역, 광화문역에만관심을갖는다. 55
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 56
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 스키마간의사상 DBMS는세가지유형의스키마간의사상을책임짐 외부 / 개념사상 (external/conceptual mapping) 외부단계의뷰를사용해서입력된사용자의질의를개념단계의스키마를사용한질의로변환 개념 / 내부사상 (conceptual/internal mapping) 이를다시내부단계의스키마로변환하여디스크의데이터베이스를접근 57
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 데이터독립성 상위단계의스키마정의에영향을주지않으면서어떤단계의스키마정의를변경할수있음을의미 논리적인데이터독립성 (logical data independence) 물리적인데이터독립성 (physical data independence) 58
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 59
1.6 ANSI/SPARC 아키텍처와데이터독립성 ( 계속 ) 논리적데이터독립성 개념스키마의변화로부터외부스키마가영향을받지않음을의미 기존의외부스키마에영향을미치지않고, 응용프로그램을다시작성할필요없이개념스키마에대한변화가가능해야함 물리적데이터독립성 내부스키마의변화가개념적스키마에영향을미치지않으며, 따라서외부스키마 ( 또는응용프로그램 ) 에도영향을미치지않음을의미 내부스키마의변화의예 : 화일의저장구조를바꾸거나인덱스를생성및삭제 60
1.7 데이터베이스시스템아키텍처 61
1.7 데이터베이스시스템아키텍처 ( 계속 ) 데이터정의어컴파일러 (DDL compiler) 모듈 데이터정의어를사용하여테이블생성을요청하면테이블을파일형태로데이터베이스에만들고, 이테이블에대한명세를시스템카탈로그에저장 질의처리기 (query processor) 모듈 데이터조작어를수행하는최적의방법을찾는모듈을통해서기계어코드로번역 런타임데이터베이스관리기 (run-time database manager) 모듈 디스크에저장된데이터베이스를접근 트랜잭션관리 (transaction management) 모듈 동시성제어 (concurrency control) 모듈 회복 (recovery) 모듈 62
1.7 데이터베이스시스템아키텍처 ( 계속 ) 데이터베이스 API(Application Program Interface) ODBC(Open Database Connectivity) 는마이크로소프트사가주도적으로개발한데이터베이스 API ODBC를지원하는 DBMS 간에는서로상대방의데이터베이스를접근할수있음 63
1.7 데이터베이스시스템아키텍처 ( 계속 ) 중앙집중식데이터베이스시스템 (centralized database system) 데이터베이스시스템이하나의컴퓨터시스템에서운영됨 64
1.7 데이터베이스시스템아키텍처 ( 계속 ) 분산데이터베이스시스템 (distributed database system) 네트워크로연결된여러사이트에데이터베이스자체가분산되어있으며, 데이터베이스시스템도여러컴퓨터시스템에서운영됨 사용자는다른사이트에저장된데이터베이스도접근할수있음 65
1.7 데이터베이스시스템아키텍처 ( 계속 ) 클라이언트-서버데이터베이스시스템 (client-server database system) PC 또는워크스테이션처럼자체컴퓨팅능력을가진클라이언트를통해데이터베이스서버를접근 데이터베이스가하나의데이터베이스서버에저장되어있음 데이터베이스시스템의기능이서버와클라이언트에분산됨 서버는데이터베이스를저장하고 DBMS 를운영하면서여러클라이언트에서온질의를최적화하고, 권한검사를수행하고, 동시성제어와회복기능을수행하고, 데이터베이스의무결성을유지하고, 데이터베이스접근을관리 클라이언트는사용자인터페이스를관리하고응용들을수행 66
1.7 데이터베이스시스템아키텍처 ( 계속 ) 67
1.7 데이터베이스시스템아키텍처 ( 계속 ) 2층모델 (2-tier model) 클라이언트와데이터베이스서버가직접연결됨 3층모델 (3-tier model) 클라이언트와데이터베이스서버사이에응용서버가추가됨 68
1.7 데이터베이스시스템아키텍처 ( 계속 ) 클라이언트 - 서버데이터베이스시스템의장점 데이터베이스를보다넓은지역에서접근할수있음 다양한컴퓨터시스템을사용할수있음 클라이언트 - 서버데이터베이스시스템의단점 보안이다소취약할수있음 69