- 데이터베이스시스템 제 2 장데이터베이스설계 2013. 09. 01 가천대학교컴퓨터미디어융합학과
목차 2.1 데이터베이스환경 2.2 개체와속성 2.3 DB 설계개요 2.4 데이터모델링 2.5 사례연구 2.6 익힘문제
2 2.1 데이터베이스환경 Database 환경내용 DB component가어디에위치하는가? 1. 집중식모델수퍼컴퓨터, 개인용컴퓨터, Cloud 컴퓨팅,, 2. C/S 모델 Client/Server model, Internet model 3. 분산모델독립적인시스템들의집합 3
2 2.1 데이터베이스환경 2.1.1 Centralized model DB components가한곳에 : 표현논리, 응용논리, 자료논리, DB엔진 ex. Main frame, PC,, 문제점 : 고장발생시전부작업정지처리우선순위 : 병목현상 4
2 2.1 데이터베이스환경 2.1.1 Centralized model Data system의내부구조 : PC 용 Database = 수퍼컴용 Database 5
2 2.1 데이터베이스환경 2.1.2 Client/Server model * DB components가 client와 server에배치 Client: 서비스요청,UI Server: 서비스제공, DB 6
2 2.1 데이터베이스환경 2.1.2 Client/Server model 배경 PC 등장 : 지능형단말기, 멀티미디어 UI 제공 RDB: 프로그램과 DB 분리, 자료논리와 DB 엔진의분리통신 : 속도향상, 비용감소 * 하나의작업을 client 와 server 가통신망을이용하여나누어협동처리 Client/Server process client 프로그램과 server 프로그램의협동처리 7
2 2.1 데이터베이스환경 Client/Server model 8
2 2.1 데이터베이스환경 Web Server model 사용자가브라우저를이용하여인터넷으로서비스를요청하고서버가서비스를제공하는처리방식 Client: GUI, web browser Server: web server, DB server 배경 WWW, internet hypertext 9
2 2.1 데이터베이스환경 Web Server model 3계층 C/S model client 프로그램 web server, 응용프로그램, DBMS 10
2 2.1 데이터베이스환경 2.1.3 Distributed model 지역적으로흩어져있는시스템들을통신망으로연결하여하나의시스템인것처럼서비스를처리하는방식. cooperative operation: 하나의응용을여러컴퓨터에서협동하여처리 4개의논리가네트워크에분산되어협동처리네트워크 DB: 여러사이트에설치된 DB들을개별적으로운영연방 DB: 기존의여러사이트에설치된 DB들을통합운영 분산 DB: 하나의 DB 를여러사이트에설치하고하나처럼운 11
2 2.1 데이터베이스환경 Distributed model ex. 은행, 보험회사, 유통회사,, 12
2 2.2 개체와속성 2.2.1 개체의구성 an existing and distinguishable object. 파일의 record a set of attributes Attribute Entity Set a set of entity. File Entity type an entity of attribute names Entity instance data value itself Relation entity 13
2 2.2 개체와속성 Set? 강엔티티기본키약엔티티 no 기본키 Entity name Entity type File name Data Fields CUSTOMER cid name addr credit 1 Kim seoul 1 Entity instance 2 Lee inchon 3 Records 3 Park seoul 1 4 Lee suwon 2 구분파일처리데이터베이스테이블실례 1 파일개체집합테이블고객파일 FIle Entity set 2 레코드개체행고객레코드 3 필드속성열고객번호, 이름,, 4 파일구성개체유형헤드고객번호, 이름, 주소, 전화,, 5 인스턴스인스턴스인스턴스 15, 홍길동, 서울, 02-333-4444 14
2 2.2 개체와속성 Attributes 개체의특성을기술하는자료 atomic attribute, composite attribute, key attribute 1. Atomic 속성 하나의값 2. Composite 속성 여러속성으로구성 3. Multi-valued 속성 city char(20) 여러개의값중에서한가지만가능 atomic attribute address char(60) 20 22-9 composite attribute address dong char (20) multi-valued attribute color number char(20) 20 22-9 {red, green, blue} 15
2 2.2 개체와속성 Domain 자료값들이주어지는범위. 정의역속성이가질수있는값들의집합 a set of atomic values. Attribute 도메인이사용된역할 cid oid address name company Attribute 8 4 6 1 0 2 3 9 5 7 C f B m Q K j I n A w r t g l v D y p u x O S z Domain 속성 : 도메인의값들을저장하는공간. Q: 다음변수와자료형의관계를설명하시오 integer j = 0; 16
2 2.2 개체와속성 2.2.2 Identifier & key 식별이가능한이름 ( 속성 ) key: 개체집합에서고유하게개체를식별할수있는속성 Candidate key : 키들의집합 super key: 한개이상의속성으로구성된키. compound key primary key : 테이블의대표로선정된키 foreign key : 다른테이블에서기본키로사용되는속성. secondary key : 중복을허용하는키. 17
2 2.2 개체와속성 외부키 1 n key 설계 : CID name... SID CID items... amount 좋은키? 짧고, 의미부여 ex. 일련번호는짧으나의미가,,, 안전한키? check digit Q: 비디오대여점을위한테이블을설계하시오. key 포함. 18
2 y = f(x) = 2x 2 + 1 2.2 개체와속성 2.2.3 개체와사상함수관계정의역 (X) 의모든원소들이 0 2 1 x: integer & -1 < x < 3 치역 (Y) 에 1:1 대응되는원소가존재하는관계. Domain 정의역조건 ( 정의 ) 에의하여주어지는원소들의범위 Ex. 정수 : 1부터시작하여 1씩더하거나빼서만들수있는수. Range: 치역 정의역의원소에의하여결정되는원소들의범위 1 9 3 domain: x range: y 19
2 2.2 개체와속성 Mapping cardinality 1 1 n n 1 n 1 n 20
21 2.2 개체와속성 2.2.3 개체와사상함수관계 1) 일대일 2) 다대일 2........................ X X X X Y Y Y Y A A A A B B B B C C C C a a a a b b b b c c c c
2 2.3 DB 설계개요 2.3.1 응용 DB 개발공정업무담당자분석공정 SA, DBA 설계공정 SA, Programmer 구현공정 Programmer 시험공정 SA, Pgmr 22
2 2.3 DB 설계개요 DB 개발공정과산출물 23
2 2.3 DB 설계개요 개발공정별담당업무및산출물 공정 담당자 자료부문 산출물 코드부문 기획 PM, SA 개발계획서 ( 일정, 인력, 장비, 비용, 품질보증,,, 분석 설계 구현 SA, DBA SA, Programmer Programmer ERD, 자료사전 관계스키마, 제약조건 데이터베이스 요구명세서, 업무흐름도 자료흐름도, 기능명세서 구조차트, 모듈설명서, 모듈스펙 사용자설명서 소스코드 시험 Programmer 시험성적표 24
2 2.3 DB 설계개요 2.3.2 자료설계 Analysis 업무분석 : 업무내역요구분석 : 요구시스템 Design - 개념설계 : 전체구조설계, ER model, 개념스키마 - 논리설계 : 상세설계, ER model을관계스키마로, 정규화 - 물리설계 : 성능기준에맞게정제, 내부스키마 25
2 2.3 DB 설계개요 DB 설계업무와산출물 DBMS DBMS 1 2 3, 26
2 2.3 DB 설계개요 개념적설계 DBMS에독립적, ER model 외부스키마 - 자료정의 : ERD, relation schema, View - 자료제약조건 개념스키마 - 자료정의 : 통합 ERD 작성 27
2 2.3 DB 설계개요 외부스키마사용자가단편적인업무를위해관리하는자료의집합사용자 : 홍보담당, 고객담당, 경리담당, 배송담당, 영업담당 cid name addr tel 28
2 2.3 DB 설계개요 개념스키마사용자가관계와속성들의의미를전체적으로파악하는도구. 작성방법 : 외부스키마의통합 cid name addr tel item price qty 1 n 1 n 1 n sid cid items qty amount sid item price qty amount 29
제 2 장데이터베이스설계 2.3 DB 설계개요 논리적설계관계스키마개념스키마를적용 DBMS에맞는스키마로변환. 관계데이터베이스스키마로변환정규화정제된관계스키마 - 자료제약조건 - 관계스키마설계 : 관계스키마 R = (A 1,A 2,,A n ) 30
제 2 장데이터베이스설계 2.3 DB 설계개요 물리적설계내부스키마물리구조및저장구조 ex. Catalog. - 자료형, 자료길이,,, - 저장레코드양식설계 : 고정길이? 가변길이 - 레코드클러스터링, 블록크기, 순차처리? 임의처리? - 색인구축 : 기본키, 보조색인? 해싱?
제 2 장데이터베이스설계 2.3 DB 설계개요 3 단계스키마구조의필요성 - 복잡한내부구조감추기사용의편리 : 외부스키마 - 보안유지필요한부분만제한적으로공개 : 외부스키마 - 설계용이개념스키마 - 구현용이내부스키마
제 2 장데이터베이스설계 2.3 DB 설계개요 스키마설계순서 cid name cid name address telephone address telephone income rrn sid cid date items weight qty amount sid item price qty amount customer(cid, name, address, tel, income, rrn) sales(sid, cid, date, items, weight, qty, amount) salesitem(sid, item, price, qty, amount) customer(cid: int, name: char(30), address: char(60), tel: char(15), income: real, rrn: char(14) sales(sid: int cid, date: DATE, items: char(30), weight:real, qty: real, amount: real) salesitem(sid: int, item: char(20), price: real, qty: real, amount: real)
2 2.4 데이터모델링 2.4.1 Data Model Data Model? 설계및추상화수단 Data Model: data system,,. Data Model: ex. 관계모델, 계층모델, 망모델, ERD, 관계스키마, ER 모델 Entity? Relationship? 개체들과개체들의관계를연결하는도구. database 개체간의관계와구성을표현 34
2 2.4 데이터모델링 2.4.2 ER data model ER Diagram 1 n CID... name addr rrn SID CID items amount... 35
2 2.4 데이터모델링 자료설계절차 Entity design entity 정의, key & attribute 정의 ERD 통합단위 ERD 및제약조건통합외부스키마들을통합하여개념스키마작성관계스키마 ERD를관계스키마로변환제약조건정의 36
2 2.4 데이터모델링 Entity Relationship Diagram ERD Peter Chen: 1976 학위논문. 계속발전중 EERD 표기법 R R R E E R 37
2 2.4 데이터모델링 영수증실례공급자정보 08-23 08-23 고객정보 8.09.11 50,000 8.09.11 130,000 6 구매금액및수량 구매세부항목 5 2,000 10,000 4 2,500 10,000 A4 1 20,000 20,000 2 5,000 10,000 1 30,000 30,000 3 10,000 30,000 Database 2 35,000 70,000 50,000 130,000 38
2 2.4 데이터모델링 강개체집합설계 ERD 통합 relationship: 둘이상의개체간의관련성. CID name... SID items... amount (a) (b) 1 n CID name... SID CID items... amount (c) ERD 39
2 2.4 데이터모델링 고객관계스키마의 SQL 정의 CREATE TABLE ( CID integer; name char(30), address char(60), rrn char(13), PRIMARY KEY CID); 판매관계스키마의 SQL 정의 CREATE TABLE ( SID integer, CID integer, items char(30),... amount long, PRIMARY KEY OID, FOREIGN KEY CID REFERENCES (cid)); 40
2 2.4 데이터모델링 약개체집합설계 ERD 통합 SID CID... amount SID item... amount (a) (b) 1 n SID CID... amount SID item... amount 41
2 2.4 데이터모델링 강개체의설계 통합 ERD 상품개체와주문상품과의 연결 SID item... amount PNO item... Qty (a) n 1 (b) SID PNO item... amount PNO item... Qty (c) ERD 42
2 2.4 데이터모델링 통합 ERD Ex. 전자상거래사이트의판매를위한테이블 cid 1 name addr 1 PNO item Qty price n 1 n n sid cid items qty amount sid item price qty amount PNO 43
2 2.4 데이터모델링 ER 모델링의문제점도표기능 - 의미있는개념표기수단이미약함 - 결과테이블간의관계만표시방법론분석및사용자중심의설계기능미약설계개선을위한제안기능미약대책확장형 ERD: 일반화, 특수화,,, 집합, 부분집합,,, 44
2 2.4 데이터모델링 1 n 2.4.3 관계집합 sid sid cid when cid 관계들을연결함으로써생성되는관계 2진관계 CREATE TABLE 수강 ( sid char(8), cid char(6), when DATE, PRIMARY KEY (sid,cid), FOREIGN KEY sid REFERENCES 학생 (sid), FOREIGN KEY cid REFERENCES 과목 (cid)); 0804411 0804415 0804419 070440 08-1 09-2 07-1 08-2 DB OS SE DC 45
2 2.4 데이터모델링 삼진관계 : 세개체간의관련성. 수강관계집합의속성 sid, cid, pid, when 기본키 : 3 개체기본키합집합 when 0804411 0804415 0804419 070440 08-1 09-2 07-1 08-2 DB OS SE DC sid cid pid 46
2 2.4 데이터모델링 무제약조건 사원 근무 부서 seid meid eid name addr from did title Loc n 1 eid name... 사원 감독 사원 n 1 eid name seid meid eid name eid name... mid 47
2 2.4 데이터모델링 관계집합을관계스키마로변환키제약조건 - 개체집합 E의모든개체는관계집합 R에한번만참여시참여제약조건 - 개체집합 E의모든개체가관계집합 R로의참가시 total - 개체집합 E의일부개체가관계집합 R로의참가시 partial 약개체제약조건 - 개체집합 E의일부개체들의외부키가동일한개체순환제약조건 - 개체집합 E 의일부개체들이다른개체의한부분이되는 48
2 2.4 데이터모델링 제약조건 eid name addr did title Loc from 1 n cost dname DOB from n 1 1 1 eid name did title partno partname pno price Madeup_of 1 Role Consist_of n from 49
2 2.5 사례연구 1 실무데이터베이스설계 : DVD 대여점. 1) 대여사업현황 - DVD 를다수보유하고있으며영화가출시되는대로계속수가증가하고있다. - DVD 는영화별로여러장르 ( 멜로, 무협, 미스터리,SF, 다큐,,) 로분류하여영업에활용한다. - 영화별로여러개의비디오또는 DVD 가있다. - 고객이수천명에이를것으로추정한다. 2) 요구사항 : - 자료관리 : 대여, 반납, 회계등 - 현황출력 : 고객별, 비디오별, 기간별대여등제반현황 - 자료검색 : 장르별, 비디오별, 대여별, 배우별검색?? 잔여예치금현황?? 10,000 원씩예치하고 8 개의 DVD 대여. 50
2 2.5 사례연구 1 실무데이터베이스설계 : 비디오대여점. 외부스키마설계 tel name address... vid title genre... (a) (b) rid tel amount... rid vid tape#... (c) (d) 51
2 2.5 사례연구 1 실무데이터베이스설계 : 비디오대여점. 외부스키마통합 개념스키마설계 1 n tel date cost vid (a) 1 n has tel rid tel date... (b) 52
2 2.5 사례연구 2 실무데이터베이스설계 : 인터넷서점. 1) 서점사업현황 - 컴퓨터관련서적수천종을컴퓨터관련자와학생들수천명을고객으로판매시작. 서적의수와고객은꾸준히증가할것으로예상. - 서적의종류는학교교과서, 이론서적, 실무용서적, 프로그래밍서적, 초보자입문서등으로분류하여영업에활용. 3) 요구사항 : - 자료관리 : 주문, 회계, 입출고, 배송업무등 - 현황출력 : 고객별, 분야별, 기간별, 출판사별주문및판매등제반현황 - 자료검색 : 분야별, 서적이름별, 저자별, 출판사별검색. 53
2 2.5 사례연구 2 실무데이터베이스설계 : 인터넷서점. 외부스키마작성 Customer Book cid name addr... ISBN name addr... (a) 고객개체 Order (b) 서적개체 ORDERED Ordered BOOKS Books oid cid amount... oid ISBN qty... (c) 주문개체 (d) 주문서적개체 54
2 2.5 사례연구 3 - 홈쇼핑회사 - 1) 홈쇼핑사업현황 - TV로상품을홍보하고전화로주문을받아판매한다. - 입금은카드로배달은택배를이용한다. 2) 요구사항 : - 고객등록 : 배달주소, 신용카드등록 - 주문등록 : 전화 ARS로주문 - 배달서비스추적 : 배달과정의통보 - 반품서비스 : 55
2 2.5 사례연구 4 - 마을금고대출업무 - 1) 마을금고사업현황 - 수백명의상인들이스스로사업주와고객이되어예금과대출사업을시작한다. 금융삼품의수와고객은꾸준히증가할것으로예상한다. - 금융상품의종류는크게보통예금, 저축예금, 단기대출, 장기대출등으로분류한다. 3) 요구사항 : - 자료관리 : 예금, 대출업무등 - 현황출력 : 고객별, 종류별, 기간별, 예금과대출등제반현황 - 자료검색 : 종류별, 상품별, 고객별, 기간별검색. 56
2 2.5 사례연구 4 실무데이터베이스설계 : 마을금고대출업무외부스키마 CID name addr... credit PID max... irate loan payment refund LID CID date... remain LID date... total 57
2 2.5 사례연구 5 - 자동차정비소 - 1) 정비사업현황 - 도시고속도로변에위치한차량정비소의정비업무. - 정비차량은주로승용차와밴, 지프, RV차량등이다. 2) 요구사항 : - 견적서작성 : 수리를요하는차량의견적서발행. - 수리비청구서작성 : 차량수리후에공임과부품값을명시하여수리비청구서를작성. - 자료검색 : 작업별, 부품별가격표. 고객별차량정비현황 - 정비안내서작성 : 엔진오일및타이어교환등의정비안 내문을발송. 58
2 2.5 사례연구 5 - 자동차정비소 - 1) 견적서 sample 3 5156 2008.09.01 NF km 20,000 ( ) () 7000 GQ 4 3000 12000 1 2000 2000 1 5000 5000 19,000 7,000 3,000 ()165 4 50000 200,000 200,000 3,000 219,000 10,000 ( + ) 229,000 : : ( ) 59
2 2.5 사례연구 5 - 자동차정비소 - 외부스키마견적서는여러개의작업으로이루어지고, estimate work 작업비용은여러개의부품과하나의공임으로이루어진다. work parts wage 공임은작업별로소요시간과시간급의곱으로구성된다. workhours * wage/hour 60
2 2.5 사례연구 5 - 자동차정비소 - 외부스키마 ESTIMATE W_PART eid cid car date amount wid pid Qty price Amt WORK PART wid eid work wamt pamt tamt pid pname maker model price WAGE wid work workhour timewage 61
2 2.6 팀과제 Database를적극적으로활용할수있는회사의업무를선정하여분석하고설계하시오. 1차설계서내용 - 개발업무개요 - 업무흐름도 - 자료사전 - 외부스키마 - 개념스키마 - 관계스키마 - 물리스키마 : 테이블설계서 62