IT CookBook, SQL Server 로배우는데이터베이스개론과실습 [ 강의교안이용안내 ] 본강의교안의저작권은한빛아카데미 에있습니다. 이자료를무단으로전제하거나배포할경우저작권법 136 조에의거하여최고 5 년이하의징역또는 5 천만원이하의벌금에처할수있고이를병과 ( 倂科 ) 할수도있습니다.
Chapter1. 데이터베이스시스템 SQL Server 로배우는데이터베이스개론과실습
1. 데이터베이스와데이터베이스시스템 2. 데이터베이스시스템의발전 3. 파일시스템과 DBMS 4. 데이터베이스시스템의구성
데이터베이스의유형을알아보고개념및특징을이해한다. 데이터베이스시스템을중심으로한정보시스템의발전과정을알아본다. 프로그램과데이터가컴퓨터에어떻게저장되는지이해한다. 데이터베이스시스템의구성요소를알아본다.
01. 데이터베이스와데이터베이스시스템 데이터, 정보, 지식 일상생활의데이터베이스 데이터베이스의개념및특징 데이터베이스시스템의개념
1.1 데이터, 정보, 지식 데이터 : 관찰의결과로나타난정량적혹은정성적인실제값 정보 : 데이터에의미를부여한것 지식 : 사물이나현상에대한이해 그림 1-1 데이터, 정보, 지식
1.2 일상생활의데이터베이스 데이터베이스 : 조직에필요한정보를얻기위해논리적으로연관된데이터를모아 구조적으로통합해놓은것 그림 1-2 일상생활에서생성되는데이터베이스
1.2 일상생활의데이터베이스 그림 1-3 패스트푸드체인점과철도청의데이터베이스
1.2 일상생활의데이터베이스 표 1-1 데이터베이스의활용분야 종류 특징 생활과문화 기상정보 : 날씨정보를제공 교통정보 : 교통상황정보를제공 문화예술정보 : 공연이나인물에관한정보를제공 비즈니스 금융정보 : 금융, 증권, 신용에관한정보를제공 취업정보 : 노동부와기업의채용정보를제공 부동산정보 : 공공기관이나민간의토지, 매물, 세금정보를제공 학술정보 연구학술정보 : 논문, 서적, 저작물에관한정보를제공 특허정보 : 특허청의정보를기업과연구자에게제공 법률정보 : 법제처와대법원의법률정보를제공 통계정보 : 국가기관의통계정보를제공
1.2 일상생활의데이터베이스 데이터베이스시스템은데이터의검색과변경작업을주로수행한다. 여기서변경이란시간에따라변하는데이터값을데이터베이스에반영하기위해 수행하는삽입, 삭제, 수정등의작업을말한다. 표 1-2 검색과변경빈도에따른데이터베이스유형 유형검색빈도변경빈도데이터베이스예특징 구축이쉬움 유형 1 적다적다 공룡데이터베이스 검색이많지않아데이터베이스를구축할필요없음 보존가치가있는경우에구축 유형 2 많다적다 도서데이터베이스 사용자수보통 검색은많지만데이터에대한변경은적음 유형 3 적다많다 비행기예약데이터베이스 예약변경 / 취소등데이터변경은많지만검색은적음 실시간검색및변경이중요함 구축이어려움 유형 4 많다많다 증권데이터베이스 사용자수많음 검색도많고거래로인한변경도많음
1.3 데이터베이스의개념및특징 데이터베이스의개념 통합된데이터 (integrated data) 데이터를통합하는개념으로, 각자사용하던데이터의중복을최소화하여중복으로인한데이터불일치현상을없앤다. 저장된데이터 (stored data) 문서로보관된데이터가아니라디스크, 테이프같은컴퓨터저장장치에저장된데이터를의미한다. 운영데이터 (operational data) 조직의목적을위해사용되는데이터를의미한다. 즉업무를위한검색을할목적으로저장된데이터다. 공용데이터 (shared data) 한사람또는한업무를위해사용되는데이터가아니라공동으로사용되는데이터를의미한다.
1.3 데이터베이스의개념및특징 그림 1-4 데이터베이스의개념 : 데이터베이스는운영데이터를통합하여저장하며, 공용으로사용된다.
1.3 데이터베이스의개념및특징 데이터베이스의특징 실시간접근성 (real time accessibility) 데이터베이스는실시간으로서비스된다. 사용자가데이터를요청하면몇시간이나몇일뒤에결과를전송하는 것이아니라수초내에결과를서비스한다. 계속적인변화 (continuous change) 데이터베이스에저장된내용은어느한순간의상태를나타내지만, 데이터값은시간에따라항상바뀐다. 데이 터베이스는삽입 (insert), 삭제 (delete), 수정 (update) 등의작업을통하여바뀐데이터값을저장한다. 동시공유 (concurrent sharing) 데이터베이스는서로다른업무또는여러사용자에게동시에공유된다. 동시 (concurrent) 는병행이라고도하며, 데이터베이스에접근하는프로그램이여러개있다는의미다. 내용에따른참조 (reference by content) 데이터베이스에저장된데이터는데이터의물리적인위치가아니라데이터값에따라참조된다.
1.4 데이터베이스시스템의개념 그림 1-5 데이터베이스시스템의구성요소와물리적인위치
02. 데이터베이스시스템의발전 마당서점과데이터베이스시스템 정보시스템의발전
2.1.1 [1 단계 ] 마당서점의시작 도서 : 100 권 고객 : 근처학교의학생, 지역주민 고객서비스 : 사장이직접도서안내 업무 : 회계업무 ( 계산기사용 ), 장부에기록 그림 1-6 마당서점초기
2.1.2 [2 단계 ] 컴퓨터의도입 도서 : 100 권 고객 : 근처학교의학생, 지역주민 고객서비스 : 컴퓨터를이용하여도서검색, 직원고용 업무 : 회계업무 ( 컴퓨터사용 ), 파일시스템 그림 1-7 마당서점전산화
2.1.3 [3 단계 ] 지점개설및데이터베이스구축 도서 : 10,000 권 고객 : 서울지역고객 고객서비스 : 클라이언트 / 서버시스템으로지점을연결하여도서검색서비스제공 업무 : 회계업무 ( 컴퓨터사용 ), 데이터베이스시스템 그림 1-8 마당서점 DBMS 도입
2.1.4 [4 단계 ] 홈페이지구축 도서 : 100,000 권 고객 : 국민 ( 전국으로배송 ) 고객서비스 : 인터넷으로도서검색및주문 업무 : 회계 / 인사업무 ( 컴퓨터와인터넷사용 ), 웹 DB 시스템으로지점간연계 그림 1-9 마당서점인터넷서비스실시
2.1.5 [5 단계 ] 인터넷쇼핑몰운영 도서 : 1,000,000 권 고객 : 국민 ( 전국으로배송 ) 고객서비스 : 인터넷종합쇼핑서비스제공 업무 : 회계 / 인사업무 ( 컴퓨터와인터넷사용 ), DB 서버여러개구축 그림 1-10 마당서점인터넷쇼핑몰운영
2.1 마당서점과데이터베이스시스템 표 1-3 정보통신기술의발전과마당서점의성장 단계 시기 정보기술 주요특징 1단계마당서점 2단계초기전산화 1970년대 사장이모든도서의제목과가격을기억 매출과판매가컴퓨터없이관리됨컴퓨터없음 매출에대한내용이정확하지않음 1980년대 컴퓨터를이용한초기응용프로그램으로업무처리 파일시스템사용컴퓨터 한대의컴퓨터에서만판매및매출관리 3 단계 데이터베이스 1990 년대 컴퓨터 + 원격통신 지점간클라이언트 / 서버시스템을도입하여업무처리 데이터베이스관리시스템 (DBMS) 을도입 4단계홈페이지구축 5단계인터넷쇼핑몰 2000년대 인터넷을이용하여도서검색및주문 웹 DB 시스템으로불특정다수고객유치컴퓨터 + 인터넷 고객이지리적으로넓게분산됨 2010년대 도서뿐만아니라음반, 액세서리, 문구, 공연티켓까지판매하는인터넷쇼핑몰로확대컴퓨터 + 인터넷 도서외상품의매출비중이 50% 이상으로늘어남
2.2 정보시스템의발전 파일시스템 파일시스템은데이터를파일단위로파일서버에저장한다. 각각의컴퓨터는 LAN(Local Area Network) 을통하여파일서버에연결되어있고, 파일서버에저장된데이터를사용하기위해각컴퓨터의응용프로그램에서열기 / 닫기 (open/close) 를요청한다. 파일시스템은각응용프로그램이독립적으로파일을다루기때문에데이터가중복저장될가능성이있고, 동시에파일을다루기때문에데이터의일관성이훼손될수있다. 그림 1-11 파일시스템
2.2 정보시스템의발전 데이터베이스시스템 DBMS를도입하여데이터를통합관리하는시스템이다. 데이터베이스시스템은클라이언트-서버시스템으로, DBMS가설치되어데이터를가진쪽을서버 (server), 외부에서데이터를요청하는쪽을클라이언트 (client) 라고한다. 데이터베이스시스템은 DBMS 서버가파일을다루며데이터의일관성유지, 복구, 동시접근제어등의기능을수행하고, 데이터를저장하기전설계 (design) 과정을거치기때문에데이터의중복을줄이고데이터를표준화하며무결성을유지한다. 그림 1-12 데이터베이스시스템
2.2 정보시스템의발전 웹데이터베이스시스템 웹데이터베이스시스템은데이터베이스를웹브라우저에서사용할수있도록서비스하는시스템이다. 웹데 이터베이스시스템은불특정다수고객을상대로하는온라인상거래나공공민원서비스등에사용된다. 그림 1-13 웹데이터베이스시스템
2.2 정보시스템의발전 분산데이터베이스시스템 분산데이터베이스는여러곳에분산된 DBMS 서버를연결하여운영하는시스템으로대규모의응용시스템에 사용된다. 그림 1-14 분산데이터베이스시스템
2.2 정보시스템의발전 그림 1-15 정보시스템의발전과기업의업무환경변화 소매상 ( 실체시스템 ) 1970 년대 정보시스템없음 수작업으로회계업무 소기업 ( 파일시스템 ) 1980 년대 파일시스템사용 파일을이용한응용프로그램으로업무처리 중소기업 ( 데이터베이스 ) 1990 년대 정보시스템, 데이터베이스시스템사용 DBMS 를이용하여업무처리 정보공유, 실시간서비스, LAN 기술 대기업 ( 인터넷통신 ) 2000 년대 정보시스템, 웹데이터베이스시스템, 인터넷사용 인터넷쇼핑몰을개설하여온라인상거래실시 실시간서비스, 웹브라우저기술 종합그룹 ( 인터넷통신 ) 2010 년대 정보시스템, 분산데이터베이스시스템, 인터넷사용 고객서비스및내부업무를인터넷으로처리 대규모응용시스템에사용
03. 파일시스템과 DBMS 마당서점데이터를저장하는방법 마당서점데이터의저장방법비교 파일시스템과 DBMS 의비교
3.1 마당서점데이터를저장하는방법 1. 데이터를프로그램내부에저장하는방법 2. 데이터를프로그램과분리하여파일에저장하는방법 3. DBMS 를사용하는방법 그림 1-16 고객서비스를온라인정보서비스로전환
3.1.1 데이터를프로그램내부에저장하는방법 [ 프로그램 1] C 언어의구조체 BOOK을먼저선언하고 main() 프로그램에서구조체배열변수 BOOKS[] 에데이터를저장한다. 도서데이터는프로그램내구조체변수에저장된다. 문제점 : 새로운데이터가생길때마다프로그램을수정한후다시컴파일해야한다. 그림 1-17 도서검색프로그램
3.1.1 데이터를프로그램내부에저장하는방법 [ 프로그램 1] 소스코드 /* BOOK 데이터구조정의 */ typedef struct { int bookid[5]; char bookname[20]; char publisher[20]; int price; } BOOK; int main() { BOOK BOOKS[10]; /* 구조체배열변수에데이터저장 */ /* 첫번째도서저장 */ BOOKS[1].bookid=1; strcpy(books[1].bookname, " 축구의역사 "); strcpy(books[1].publisher, " 굿스포츠 "); BOOKS[1].price=7000; /* 두번째도서저장 */ BOOKS[2].bookid=2; strcpy(books[2].bookname, " 축구아는여자 "); strcpy(books[2].publisher, " 나무수 "); BOOKS[2].price=13000 /* 나머지다른도서저장 ( 생략 ) */... /* 모든도서보기프로그램호출 */ search_all(); /* 기타프로그램코드 */... }
3.1.2 파일시스템을사용하는방법 [ 프로그램 2] BOOK 데이터구조를먼저선언하고 main() 프로그램에서파일로부터데이터를불러와구조체배열변수 BOOKS[] 에저장한다. 새로운데이터가추가되어도프로그램을수정할필요가없다. 문제점 : 같은파일을두개의프로그램이공유하는것이운영체제의도움없이불가능하다. 그림 1-18 도서검색프로그램에서도서를등록하는화면
3.1.2 파일시스템을사용하는방법 [ 프로그램 2] 소스코드 /* BOOK 데이터구조정의 */ typedef struct { int bookid[5]; char bookname[20]; char publisher[20]; int price; } BOOK; int main() { BOOK BOOKS[10]; int i=1; /* 도서입력함수 */ insert(); /* 파일에저장된데이터를배열 BOOKS[] 에저장 */ fp=fopen("book.dat","rb"); bp=(book *)calloc(1,sizeof(book)); /* 파일에서책을읽는다 */ while(fread(bp,sizeof(book),1,fp)!= 0) { BOOKS[i].bookid =bp->bookid; strcpy(books[i].bookname, bp ->bookname); strcpy(books[i].publisher, bp ->publisher); BOOKS[i].price =bp ->price; i++; } /* 모든도서보기프로그램호출 */ search_all(); /* 기타프로그램코드 */... }
3.1.3 DBMS 를사용하는방법 [ 프로그램 3] 데이터정의와데이터값은 DBMS가관리한다. DBMS는데이터정의, 데이터변경등의작업을할수있는별도의프로그램을갖고있다. 프로그램에데이터정의나데이터값을포함하지않기때문에데이터구조가바뀌어도다시컴파일할필요가없다. 그림 1-19 SQL Server 의데이터베이스관리화면
3.1.3 DBMS 를사용하는방법 [ 프로그램 3] 소스코드 int main() { /* 반환된행의수 */ int num_ret; /* DBMS 에접속 */ EXEC SQL CONNECT :username IDENTIFIED BY :password; /* SQL 문실행 */ EXEC SQL DECLARE c1 CURSOR FOR SELECT bookname, publisher, price FROM BOOK; EXEC SQL OPEN c1; /* 모든도서보기프로그램호출 */ search_all(); /* SQL 문실행결과출력 */ for (;;) { EXEC SQL FETCH c1 INTO :BOOK_rec; print_rows(num_ret); } EXEC SQL CLOSE c1; /* 접속해제 */ EXEC SQL COMMIT WORK RELEASE; }
3.2 마당서점데이터의저장방법비교 [ 프로그램 1] { } Book 데이터타입선언 ; BOOK 데이터구조 프로그램내에서 BOOKS[ ] 배열에데이터저장 ; BOOK 데이터파일 검색및데이터변경프로그램수행 ; 프로그램에데이터정의와데이터값을모두포함하는방식 프로그램에 BOOK 데이터구조를정의하고데이터값도직접변수에저장함 데이터구조혹은데이터값이바뀌면프로그램을다시컴파일해야함
3.2 마당서점데이터의저장방법비교 [ 프로그램 2] { } Book 데이터타입선언 ; BOOK 데이터구조 파일로부터데이터를불러와 BOOKS[ ] 배열에저장 ; 검색및데이터변경프로그램수행 ; 파일에데이터값, 프로그램에데이터정의를포함하는방식 프로그램에 BOOK 데이터구조만정의하고, 데이터값은 book.dat라는파일에저장됨 데이터값이바뀌면프로그램에변경이없지만, 데이터구조가바뀌면프로그램을다시컴파일해야함 BOOK 데이터파일
3.2 마당서점데이터의저장방법비교 [ 프로그램 3] { } /* BOOK 데이터타입선언필요없음 */ SQL 문을실행하여결과를가져옴 ; SQL 문으로데이터변경 ; DBMS (DataBase Management System) DBMS가데이터정의와데이터값을관리하는방식 BOOK 데이터구조는 DBMS가돤리하고, 데이터값은데이터베이스에저장됨 데이터값이바뀌거나데이터값이바뀌어도프로그램을다시컴파일할필요없음 Book 데이터구조 Book 데이터파일
3.3 파일시스템과 DBMS 의비교 표 1-5 파일시스템과 DBMS 의비교 구분파일시스템 DBMS 데이터정의및저장 데이터접근방법 데이터정의 : 응용프로그램데이터저장 : 파일시스템 응용프로그램이파일에직접접근 데이터정의 : DBMS 데이터저장 : 데이터베이스 응용프로그램이 DBMS 에파일접근을요청 사용언어자바, C++, C 등자바, C++, C 등과 SQL CPU/ 주기억장치사용적음 많음
3.3 파일시스템과 DBMS 의비교 그림 1-20 파일시스템으로구축된구매및판매응용프로그램 그림 1-21 DBMS 로구축된구매및판매응용프로그램
3.3 파일시스템과 DBMS 의비교 표 1-6 DBMS 의장점 구분파일시스템 DBMS 데이터중복데이터일관성데이터독립성관리기능 데이터를파일단위로저장하므로중복가능 데이터의중복저장으로일관성이결 여됨 데이터정의와프로그램의독립성유 지불가능 보통 DBMS 를이용하여데이터를공유하기때문에중복가능성낮음 중복제거로데이터의일관성이유지됨 데이터정의와프로그램의독립성유지 가능 데이터복구, 보안, 동시성제어, 데이터관리기능등을수행 프로그램개발생산성 나쁨 짧은시간에큰프로그램을개발할수있음 기타장점 보통 데이터무결성유지, 데이터표준준수용이
04. 데이터베이스시스템의구성 데이터베이스언어 데이터베이스사용자 DBMS 데이터모델 데이터베이스의개념적구조
04. 데이터베이스시스템의구성 사용자 일반사용자 응용프로그래머 SQL 사용자 DBA 인터페이스 응용프로그램화면 응용프로그램개발 SQL 질의 데이터베이스스키마 DBMS 오브젝트코드 Embedded DML DML 컴파일러 질의처리기 DDL 컴파일러 주기억장치 트랜잭션관리자 파일관리자 버퍼관리자 데이터베이스 데이터파일 인덱스 데이터통계 데이터사전 하드디스크 그림 1-22 데이터베이스시스템의구성
4.1 데이터베이스언어 SQL : 데이터정의어 (DDL, Data Definition Language), 데이터조작어 (DML, Data Manipulation Language), 데이터제어어 (DCL, Data Control Language) 로 구성된다. 질의 1-1 Book 테이블에서모든도서이름 (bookname) 과출판사 (publisher) 를검색하시오. SELECT FROM bookname, publisher Book; Book 테이블 bookid bookname publisher price 1 축구의역사 굿스포츠 7000 2 축구아는여자 나무수 13000 3 축구의이해 대한미디어 22000 4 골프바이블 대한미디어 35000 5 피겨교본 굿스포츠 8000 bookname 축구의역사축구아는여자축구의이해골프바이블피겨교본 publisher 굿스포츠나무수대한미디어대한미디어굿스포츠
4.1 데이터베이스언어 질의 1-2 가격 (price) 이 10,000 원이상인도서이름 (bookname) 과출판사 (publisher) 를검색하시오. SELECT bookname, publisher FROM Book Where price >= 10000; Book 테이블 bookid bookname publisher price 1 축구의역사 굿스포츠 7000 2 축구아는여자 나무수 13000 3 축구의이해 대한미디어 22000 4 골프바이블 대한미디어 35000 5 피겨교본 굿스포츠 8000 bookname 축구아는여자축구의이해골프바이블 publisher 나무수대한미디어대한미디어
4.2 데이터베이스사용자 일반사용자 은행의창구혹은관공서의민원접수처등에서데이터를다루는업무를하는사람이다. 일반사용자 (end user) 는프로그래머가개발한프로그램을이용하여데이터베이스에접근한다. 일반사용자는자신이 DBMS를이용하는지알지못한다. 응용프로그래머 일반사용자가사용할수있도록프로그램을만드는사람이다. 응용프로그래머 (application Programmer) 는자바, C, JSP 등의프로그래밍언어와 SQL을사용하여일반사용자를위한사용자인터페이스와데이터를관리하는응용로직을개발한다. 특별히데이터베이스프로그래머라고부르기도한다. SQL 사용자 SQL을사용하여업무를처리하는 IT 부서의담당자로, 응용프로그램으로구현되어있지않은업무를 SQL을사용하여처리한다. 주로데이터검색, 데이터구조변경, 데이터에관한통계처리등데이터를모니터링하는업무를하거나보고서형태로만들어상부에보고하는업무를한다. 데이터베이스관리자 (DBA, Database Administrator) 데이터베이스운영조직의데이터베이스시스템을총괄하는사람이다. DBA는데이터설계, 구현, 유지보수의전과정을담당한다. 또한데이터베이스사용자통제, 보안, 성능모니터링, 데이터전체파악및관리, 데이터이동및복사등제반업무를맡는다.
4.2 데이터베이스사용자 표 1-7 데이터베이스사용자별로갖추어야할지식수준 ( : 없음, : 보통, : 높음 ) SQL 언어프로그래밍능력 DBMS 지식데이터구성 일반사용자 SQL 사용자 응용프로그래머 데이터베이스관리자
4.3 DBMS 표 1-8 DBMS 의기능 데이터정의 (Definition) 데이터의구조를정의하고데이터구조에대한삭제및변경기능을수행한다. 데이터조작 (manipulation) 데이터를조작하는소프트웨어 ( 응용프로그램 ) 가요청하는데이터의삽입, 수정, 삭제작업을지원한다. 데이터추출 (Retrieval) 사용자가조회하는데이터혹은응용프로그램의데이터를추출한다. 데이터제어 (Control) 데이터베이스사용자를생성하고모니터링하며접근을제어한다. 백업과회복, 동시성제어등의기능을지원한다.
4.4 데이터모델 계층데이터모델 (hierarchical data model) 네트워크데이터모델 (network data model) 객체데이터모델 (object data model) 가장많이쓰인다 객체-관계데이터모델 (object-relational data model) 관계데이터모델과객체데이터모델의장점을결합한모델
4.4 데이터모델 포인터사용 : 계층데이터모델, 네트워크데이터모델 학생 ( 학번, 이름 ) 강좌 ( 강좌번호, 강좌이름 ) 501 박지성 502 김연아 101 데이터베이스 102 자료구조 230 스포츠경영학 그림 1-23 관계표현을위한예시 학생 ( 학번, 이름 ) 강좌 ( 강좌번호, 강좌이름 ) 501 박지성 502 김연아 101 데이터베이스 102 자료구조 230 스포츠경영학 그림 1-24 포인터를사용하여관계표현
4.4 데이터모델 속성값사용 : 관계형데이터모델 학생 ( 학번, 이름 ) 강좌 ( 강좌번호, 강좌이름 ) 501 박지성 502 김연아 101 데이터베이스 102 자료구조 230 스포츠경영학 그림 1-23 관계표현을위한예시 학생 ( 학번, 이름, 강좌번호 ) 강좌 ( 강좌번호, 강좌이름 ) 501 박지성 102 401 김연아 101 101 데이터베이스 102 자료구조 230 스포츠경영학 그림 1-25 속성값을사용하여관계표현
4.4 데이터모델 객체식별자사용 : 객체데이터모델 학생 ( 학번, 이름 ) 강좌 ( 강좌번호, 강좌이름 ) 501 박지성 502 김연아 101 데이터베이스 102 자료구조 230 스포츠경영학 그림 1-23 관계표현을위한예시 학생 ( 학번, 이름, objectid) 강좌 ( 강좌번호, 강좌이름 ) 501 박지성 oid 401 김연아 oid 101 데이터베이스 102 자료구조 230 스포츠경영학 그림 1-26 객체식별자를사용하여관계표현
4.4 데이터모델 표 1-9 데이터모델과각모델에서관계의표현방법 데이터모델관계의표현데이터구성 학생 계층데이터모델 ( 포인터사용 ) 강좌 p 네트워크데이터모델 ( 포인터사용 ) 학생 강좌 p
4.4 데이터모델 표 1-9 데이터모델과각모델에서관계의표현방법 데이터모델관계의표현데이터구성 학생 관계데이터모델 ( 속성값사용 ) 강좌 X X 객체데이터모델 ( 객체식별자사용 ) 학생 강좌 oid 객체번호 oid
4.4 데이터모델 표 1-10 데이터모델의역사 데이터모델 제품종류 1970 년대 1980 년대 1990 년대 2000 년대 2010 년대 계층데이터모델 IMS 네트워크데이터모델 IDS 관계데이터모델 DB2, Oracle, SQL Server 객체데이터모델 Orion, GemStone 객체 - 관계데이터모델 UniSQL
4.5.1 3 단계데이터베이스구조 사용자가보는데이터 외부스키마 1 외부스키마 2 외부스키마 3 외부 / 개념매핑 전체데이터 개념스키마 개념 / 내부매핑 DBMS 가보는데이터 내부스키마 데이터베이스 ( 물리적인데이터구조 ) 그림 1-27 ANSI 의 3 단계데이터베이스구조
4.5.1 3 단계데이터베이스구조 [ANSI 의 3 단계데이터베이스구조 ] 외부단계 일반사용자나응용프로그래머가접근하는계층으로전체데이터베이스중에서하나의논리적인부분을의미한다. 여러개의외부스키마 (external schema) 가있을수있다. 외부스키마는서브스키마 (sub schema) 라고도부르며, 뷰 (view) 의개념이다. 개념단계 전체데이터베이스의정의를의미한다. 통합조직별로하나만존재하며 DBA가관리한다. 즉하나의데이터베이스에는하나의개념스키마 (conceptual schema) 가있다. 개념스키마는저장장치에독립적으로기술되며, 데이터와관계relationship, 제약사항, 무결성에대한내용이포함된다. 내부단계 물리적저장장치에데이터베이스가실제로저장되는방법의표현이다. 내부스키마 (interal schema) 는하나며, 인덱스, 데이터레코드의배치방법, 데이터압축등에관한사항이포함된다.
4.5.1 3 단계데이터베이스구조 [ 매핑 (mapping, 사상 )] 외부 / 개념매핑 사용자의외부스키마와개념스키마간의매핑 ( 사상 ) 으로외부스키마의데이터가개념스키마의어느부분에 해당되는지대응시킨다. 개념 / 내부매핑 개념스키마의데이터가내부스키마의물리적장치어디에어떤방법으로저장되는지대응시킨다.
4.5.1 3 단계데이터베이스구조 그림 1-28 수강신청데이터베이스의개념스키마
4.5.1 3 단계데이터베이스구조 그림 1-29 수강등록담당부서에서필요한데이터베이스 ( 외부스키마 1)
4.5.1 3 단계데이터베이스구조 그림 1-30 시간표담당부서에서필요한데이터베이스 ( 외부스키마 2)
4.5.1 3 단계데이터베이스구조 그림 1-31 수강신청데이터베이스의내부스키마
4.5.1 3 단계데이터베이스구조 그림 1-32 수강신청데이터베이스의 3 단계구조
4.5.2 데이터독립성 논리적데이터독립성 (logical data independence) 외부단계와개념단계사이의독립성으로, 개념스키마가변경되어도외부스키마에는영향을미치지않도록지원한다. 논리적구조가변경되어도응용프로그램에는영향이없도록하는개념이다. 예를들어개념스키마의테이블을생성하거나변경하여도외부스키마가직접다루는테이블이아니면영향이없다. 물리적데이터독립성 (physical data independence) 개념단계와내부단계사이의독립성으로, 저장장치구조변경과같이내부스키마가변경되어도개념스키마에영향을미치지않도록지원한다. 예를들어성능개선을위하여물리적저장장치를재구성할경우개념스키마나응용프로그램같은외부스키마에영향이없다. 물리적독립성은논리적독립성보다구현하기쉽다.
요약 1. 데이터베이스 2. 데이터베이스의개념 3. 데이터베이스의특징 4. 데이터베이스시스템의구성 5. 정보시스템의발전 6. DBMS의장점 7. SQL 8. 데이터베이스관리자 (DBA) 9. 데이터모델 10. 3단계데이터베이스구조 11. 데이터독립성
SQL Server 로배우는데이터베이스개론과실습