Chapter 06 데이터모델링... 오라클로배우는데이터베이스개론과실습
1. 데이터모델링의개념 2. ER 모델 3. ER 모델을관계데이터모델로사상 4. ERwin 실습 5. 모델링연습 ( 마당대학데이터베이스 )
데이터모델링의개념을이해한다. 개념적모델링단계에사용하는 ER 모델을이해하고작성방법을알아본다. ERwin 프로그램을사용하여 ER 모델을작성해본다. 마당대학데이터베이스를 ER 모델로직접설계해본다.
01. 데이터모델링의개념 데이터베이스생명주기 데이터모델링과정
01. 데이터모델링의개념 건물설계 ( 소프트웨어설계 ) 지반설계 ( 데이터베이스설계 ) 그림 6-1 데이터모델링의중요성
01. 데이터모델링의개념 현실세계 개념 1 개념 2 개념 3 개념적모델 (ER 다이어그램 ) 개체 1 관계 일치해야함 1 정보모델링 개체 2 2 데이터모델링 데이터베이스 속성 1 속성 2 속성 3 엔티티 1 속성 1 엔티티 2 속성 1 엔티티 1 속성 2 엔티티 2 속성 2 엔티티 2 속성 3 엔티티 2 속성 3 3 DB 로구현 논리적모델 ( 관계데이터모델 ) 테이블 1 ( 속성 1, 속성 2, 속성 3) 테이블 2 ( 속성 1, 속성 2, 속성 3) 그림 6-2 데이터모델링의개념
1. 데이터베이스생명주기 데이터베이스생명주기 (database life cycle) : 데이터베이스의생성과운영에관련 된특징 요구사항수집 및분석 감시및개선 설계 그림 6-3 데이터베이스생명주기 운영 구현
1. 데이터베이스생명주기 요구사항수집및분석사용자들의요구사항을듣고분석하여데이터베이스구축의범위를정하는단계설계분석된요구사항을기초로주요개념과업무프로세스등을식별하고 ( 개념적설계 ), 사용하는 DBMS의종류에맞게변환 ( 논리적설계 ) 한후, 데이터베이스스키마를도출 ( 물리적설계 ) 구현설계단계에서생성한스키마를실제 DBMS에적용하여테이블및관련객체 ( 뷰, 인덱스등 ) 를만듦 운영구현된데이터베이스를기반으로소프트웨어를구축하여서비스를제공감시및개선데이터베이스운영에따른시스템의문제를관찰하고데이터베이스자체의문제점을파악하여개선
2. 데이터모델링과정 현실세계의대상및사용자의요구등을정리및분석 요구사항수집및분석 사용자식별 데이터베이스용도식별 사용자요구사항수집및명세 설계 중요개념을구분 개념적모델링 DBMS 선정 논리적모델링 핵심 Entity( 독립개체 ) 도출 ERD 작성 각개념을구체화 ERD-RDB 모델사상 상세속성정의 정규화등 물리적모델링 데이터베이스생성계획에따라개체, 인덱스등을생성 DB 개체정의 테이블및인덱스등설계 데이터베이스구현 그림 6-4 데이터모델링과정
2.1 요구사항수집및분석 요구사항수집방법 1. 실제문서를수집하고분석함 2. 담당자와의인터뷰나설문조사를통해요구사항을직접수렴함 3. 비슷한업무를처리하는기존의데이터베이스를분석함 4. 각업무와연관된모든부분을살펴봄
2.2 개념적모델링 개념적모델링 (conceptual modeling) 요구사항을수집하고분석한결과를토대로업무의핵심적인개념을구분하고전체적인뼈대를만드는과정 개체 (entity) 를추출하고각개체들간의관계를정의하여 ER 다이어그램 (ERD, Entity Relationship Diagram) 을만드는과정까지를말함 도서주문고객 도서이름 출판도서단가사 도서단가 주문일자 고객이름 주소 전화번호 그림 6-5 개념적모델링의예
2.3 논리적모델링 논리적모델링 (logical modeling) : 개념적모델링에서만든 ER 다이어그램을사용하려는 DBMS 에맞게사상 ( 매핑, mapping) 하여실제데이터베이스로구현하기위한모델을만드는 과정 도서주문고객 도서 ( 도서번호, 도서이름, 출판사이름, 도서단가 ) 고객 ( 고객번호, 고객이름, 주소, 전화번호 ) 주문 ( 주문번호, 고객번호 (FK), 도서번호 (FK), 주문일자, 주문금액 ) 그림 6-6 논리적모델링의예 논리적모델링과정 1. 개념적모델링에서추출하지않았던상세속성들을모두추출함 2. 정규화수행 3. 데이터표준화수행
2.4 물리적모델링 물리적모델링 (physical modeling) 작성된논리적모델을실제컴퓨터의저장장치에저장하기위한물리적구조를정의하고구현하는과정 DBMS의특성에맞게저장구조를정의해야데이터베이스가최적의성능을낼수있음 DBMS 도서 ( 도서번호, 도서이름, 출판사이름, 도서단가 ) CREATE TABLE Book ( bookid INT PRIMARY KEY, bookname VARCHAR(40), publisher VARCHAR(40), price INT ); 고객 ( 고객번호, 고객이름, 주소, 전화번호 ) CREATE TABLE Customer ( custid INT PRIMARY KEY, name VARCHAR(40), address VARCHAR(40), phone VARCHAR(30) ); 주문 ( 주문번호, 고객번호 (FK), 도서번호 (FK), 주문일자, 주문금액 ) CREATE TABLE Orders ( orderid INT PRIMARY KEY, custid INT REFERENCES Customer(custid), bookid INT REFERENCES Book (bookid ), orderdate DATE, saleprice INT ); 그림 6-7 물리적모델링의예
2.4 물리적모델링 물리적모델링시트랜잭션, 저장공간설계측면에서고려할사항 1. 응답시간을최소화 2. 얼마나많은트랜잭션을동시에발생시킬수있는지검토 3. 데이터가저장될공간을효율적으로배치
02. ER 모델 개체와개체타입 속성 관계와관계타입 약한개체타입과식별자 IE 표기법
02. ER 모델 ER(Entity Relationship) 모델 : 세상의사물을개체 (entity) 와개체간의관계 (relationship) 로표현함 개체 : 독립적인의미를지니고있는유무형의사람또는사물. 개체의특성을나타내는속성 (attribute) 에의해식별됨. 개체끼리서로관계를가짐. 그림 6-8 ER 모델의기본개념
02. ER 모델 ER 다이어그램 : ER 모델은개체와개체간의관계를표준화된그림으로나타냄 개체 - 관계 1 N 직원작업프로젝트 속성 직원번호 이름 직위 전화번호 과제번호 예산 그림 6-9 ER 다이어그램
1. 개체와개체타입 개체 (entity) 사람, 사물, 장소, 개념, 사건과같이유무형의정보를가지고있는독립적인실체 비슷한속성의개체타입 (entity type) 을구성하며, 개체집합 (entity set) 으로묶임 도서 개체타입 (entity type) 축구아는여자 축구의이해 축구의역사 개체 (entity) 개체집합 (entity set) 그림 6-10 개체, 개체타입, 개체집합
1.1 개체타입의 ER 다이어그램표현 ER 다이어그램상에서개체타입은직사각형으로나타냄 표 6-1 개체타입의 ER 다이어그램표현 개체타입의유형 강한개체 (strong entity) : 다른개체의도움없이독자적으로존재할수있는개체 약한개체 (weak entity) : 독자적으로는존재할수없고반드시상위개체타입을가짐
2. 속성 속성 (attribute) : 개체가가진성질 표 6-2 개체타입과속성 개체타입 도서 속성 도서이름, 출판사, 도서단가 속성의 ER 다이어그램표현 속성은기본적으로타원으로표현. 개체타입을나타내는직사각형과실선으로연결됨 속성의이름은타원의중앙에표기 속성이개체를유일하게식별할수있는키일경우속성이름에밑줄을그음 도서 도서이름 출판사 가격 그림 6-11 도서개체타입
2.2 속성의유형 표 6-3 속성의 ER 다이어그램표현
3. 관계와관계타입 관계 (relationship) : 개체사이의연관성을나타내는개념 관계타입 (relationship type) : 개체타입과개체타입간의연결가능한관계를정 의한것이며, 관계집합 (relationship set) 은관계로연결된집합을의미 도서 주문 고객 축구아는여자 1 번주문 축구의이해 2 번주문 박지성 축구의역사 3 번주문 관계 (relationship) 관계집합 (relationship set) 그림 6-15 관계, 관계타입, 관계집합
3.1 관계타입의 ER 다이어그램표현 표 6-4 관계타입의 ER 다이어그램표현 기호 주문 의미 관계타입 개체타입 관계 개체타입 도서 구매 고객 학생 소속 학과 학생 수강 강좌 수강학기 그림 6-16 관계의예
3.2 관계타입의유형 차수에따른유형 관계집합에참가하는개체타입의수를관계타입의차수 (degree) 라고함 표 6-5 차수에따른관계타입의유형 기호의미설명 개체 관계 1 진관계 한개의개체가자기자신과 관계를맺음 개체 관계 개체 2 진관계두개의개체가관계를맺음 개체 관계 개체 3 진관계세개의개체가관계를맺음 개체
3.2 관계타입의유형 1 진관계 (recursive relationship) : 한개의개체가자기자신과관계를맺는경우 학생 멘토링 그림 6-17 1 진관계의예 2 진관계 (binary relationship) : 두개의개체가관계를맺는경우 학생 소속 학과 그림 6-18 2 진관계의예 3 진관계 (ternary relationship) : 세개의개체가관계를맺는경우 직원 수행 프로젝트 부품 그림 6-19 3 진관계의예
3.2 관계타입의유형 관계대응수 (cardinality) : 두개체타입의관계에실제로참여하는개별개체수 표 6-6 관계대응수에따른관계타입의유형 기호의미설명 1 관계 1 일대일관계 하나의개체가하나의개체에대응 1 관계 N 일대다관계 하나의개체가여러개체에대응 N 관계 1 다대일관계 여러개체가하나의개체에대응 M 관계 N 다대다관계 여러개체가여러개체에대응
3.2 관계타입의유형 일대일 (1:1) 관계 좌측개체타입에포함된개체가우측개체타입에포함된개체와일대일로대응하는관계 사원 컴퓨터 사원 1 1 사용 컴퓨터 그림 6-20 일대일관계의예
3.2 관계타입의유형 일대다 (1:N), 다대일 (N:1) 관계 실제일상생활에서가장많이볼수있는관계로, 한쪽개체타입의개체하나가다른쪽개체 타입의여러개체와관계를맺음 학과 학생 학과 1 N 소속 학생 그림 6-21 일대다 (1:N), 다대일 (N:1) 관계의예
3.2 관계타입의유형 다대다 (M:N) 관계 각개체타입의개체들이서로임의의개수의개체들과서로복합적인관계를맺고있는관계 학생 강좌 학생 M 수강 N 강좌 그림 6-22 다대다 (M:N) 관계의예
3.2 관계타입의유형 관계대응수의최솟값과최댓값 관계대응수 1:1, 1:N, M:N 에서 1, N, M 은각개체가관계에참여하는최댓값을의미 관계에참여하는개체의최솟값을표시하지않는다는단점을보완하기위해다이어그램에서는대응수외에최솟값과최댓값을관계실선위에 ( 최솟값, 최댓값 ) 으로표기 학생 (min1, max1) 수강 (min2, max2) 강좌 그림 6-23 관계대응수의최솟값과최댓값의표기표 6-6 관계대응수에따른관계타입의유형 관계 (min1,max1) (min2,max2) 1:1 (0, 1) (0, 1) 1:N (0, *) (0, 1) M:N (0, *) (0, *) 학과 1 소속 N (0, *) (1, 1) 학생 그림 6-24 ( 최솟값, 최댓값 ) 표기의예
3.3 ISA 관계 상위개체타입의특성에따라하위개체타입이결정되는형태 표 6-8 ISA 관계 그림 6-25 ISA 관계의예
3.4 참여제약조건 개체집합내모든개체가관계에참여하는지유무에따라전체참여와부분참여로구분가능 전체참여는개체집합의모든개체가, 부분참여는일부만참여 전체참여를 ( 최솟값, 최댓값 ) 으로표현할경우최솟값이 1 이상으로모두참여한다는뜻이고, 부분참여는최솟값이 0 이상임 표 6-9 관계의참여제약조건 기호 의미 전체참여 부분참여 학생 수강 강좌 그림 6-26 부분참여와전체참여의예
3.5 역할 개체타입간의관계를표현할때각개체들은고유한역할 (role) 을담당 교수 1 N 지도지도한다지도받는다 학생 그림 6-27 역할의예
3.6 순환적관계 순환적관계 (recursive relationship) : 하나의개체타입이동일한개체타입 ( 자기 자신 ) 과순환적으로관계를가지는형태 학생 사원 멘토멘티지시한다지시받는다 M N M N 멘토링 지시 (a) 학생의멘토링관계 (b) 사원의지시관계 그림 6-28 순환적관계의예
4. 약한개체타입과식별자 약한개체 (weak entity) 타입 상위개체타입이결정되지않으면개별개체를식별할수없는종속된개체타입 약한개체타입은독립적인키로는존재할수없지만상위개체타입의키와결합하여약한개체타입의개별개체를고유하게식별하는속성을식별자 (discriminator) 혹은부분키 (partial key) 라고함 표 6-10 식별자와약한개체타입 기호의미설명 가족 부양 약한개체타입 식별관계타입 강한개체타입이있어야존재할수있음 이중직사각형으로표현 강한개체타입과약한개체타입의관계를나타냄 강한개체타입의기본키를상속받아사용함 이중마름모꼴로표현 키 강한개체타입의키속성 식별자 약한개체타입에서개별개체를구분하는속성 키라고하지않고식별자라고부름
4. 약한개체타입과식별자 직원번호 이름 직책 직원 1 부양 N 가족 이름 관계 그림 6-29 약한개체타입과식별자의예
5. IE 표기법 IE 표기법에서개체타입과속성은직사각형으로표현 그림 6-11 IE 표기법 관계와관계대응수 그림 6-31 IE 표기법의예 ( 비식별자관계 ) 그림 6-32 IE 표기법의예 ( 식별자관계 )
연습문제풀이 2. ER 모델의표현방법으로옳지않은것은? 1 개체집합 - 사각형 2 관계집합 - 마름모 3 속성 - 오각형 4 다중값속성 - 이중타원형 3. ER 모델에대한설명으로옳지않은것은? 1 ER 다이어그램으로표현하며피터첸이제안하였다. 2 일대일 (1:1) 관계유형만표현할수있다. 3 개체타입과이들간의관계타입을이용해현실세계를개념적으로표현한다. 4 ER 다이어그램은 ER 모델을그래프방식으로표현한것이다. 4. ER 표기법에대한설명중옳지않은것은?
03. ER 모델을관계데이터모델로사상 개체타입의사상 관계타입의사상 다중값속성의사상
03. ER 모델을관계데이터모델로사상 완성된 ER 모델은실제데이터베이스로구축하기위해논리적모델링단계를거치 는데, 이단계에서사상 (mapping) 이이루어짐 그림 6-33 ER 모델을관계데이터모델로사상 표 6-12 ER 모델과관계데이터모델의사상알고리즘
1. 개체타입의사상 [1 단계 ] 강한 ( 정규 ) 개체타입 : 정규개체타입 E 의경우대응하는릴레이션 R 을생성함 [2 단계 ] 약한개체타입 : 약한개체타입에서생성된릴레이션은자신의키와함께강한 개체타입의키를외래키로사상하여자신의기본키를구성함 그림 6-34 개체타입의사상
2. 관계타입의사상 KA1 KA2 A2 E1 R E2 A4 그림 6-34 이진관계타입 [ 방법 1] 오른쪽개체타입 E2 를기준으로관계 R 을표현한다. E1(KA1, A2) E2(KA2, A4, KA1) [ 방법 2] 왼쪽개체타입 E1 을기준으로관계 R 을표현한다. E1(KA1, A2, KA2) E2(KA2, A4) [ 방법 3] 단일릴레이션 ER 로모두통합하여관계 R 을표현한다. ER(KA1, A2, KA2, A4) [ 방법 4] 개체타입 E1, E2 와관계타입 R 을모두독립된릴레이션으로표현한다. E1(KA1, A2) R(KA1, KA2) E2(KA2, A4)
2. 관계타입의사상 [3 단계 ] 이진 1:1 관계타입 이진 1:1 관계타입의경우 [ 방법 1]~[ 방법 4] 까지모든유형으로사상가능. 개체가가진정보유 형에따라판단 그림 6-36 이진 1:1 관계타입의사상 [4 단계 ] 이진 1:N 관계타입 이진 1:N 관계타입의경우 N 의위치에따라 [ 방법 1] 또는 [ 방법 2] 의유형으로사상됨 그림 6-36 이진 1:N 관계타입의사상
2. 관계타입의사상 [5 단계 ] 이진 M:N 관계타입 이진 M:N 관계타입은 [ 방법 4] 의유형으로사상 그림 6-38 이진 N:M 관계타입의사상 [6 단계 ] N 진관계타입 ER 모델의차수가 3 이상인다진관계타입의경우 [ 방법 4] 의유형으로사상 그림 6-36 이진 N 진관계타입의사상
3. 다중값속성의사상 그림 6-35 다중값속성의개수에따른사상방법 [7 단계 ] 속성의개수를알수없으면 [ 방법 1] 을, 속성의개수가제한적으로정해지면 [ 방법 2] 를사용 그림 6-41 다중값속성의사상
연습문제풀이 6. 다음내용을모두포함하는데이터베이스를설계하시오. 필요하면몇가지가정을넣을수있다. (1) ER 다이어그램을그리시오. (2) ER 다이어그램을 IE 표기법으로변환하여그리시오. (3) ER 다이어그램을테이블로변환하시오.
연습문제풀이 8. 다음은고객과주문에관한 ER 다이어그램이다. 개체는고객 (Customer), 제품 (Product), 주문 (Invoice) 으로구성된다. Place 관계는 주문한다 를, LineItem은 주문항목 을의미한다. 그림에해당하는테이블을작성하시오 ( 변환된테이블의기본키는밑줄실선, 외래키는밑줄점선으로표시한다. 기본키인동시에외래키일경우에는밑줄실선으로표시한다. 테이블변환을위하여필요한사항중설명되지않은것은임의로정하여설계한다 ).
04. ERwin 실습 ERwin 기본화면및툴둘러보기 ERwin 실습을위한기본환경설정하기 마당서점설계실습 DBMS에접속하여테이블생성하기
04. ERwin 실습 ERwin : 데이터모델링을하기위한프로그램. IE 표기법을지원 도서 주문 고객 도서번호 주문번호 고객번호 출판사이름 (FK) 도서이름도서단가 고객번호 (FK) 도서번호 (FK) 주문일자주문금액 고객이름주소전화번호 출판사 출판사이름 담당자이름전화번호 그림 6-36 마당서점의 ER 다이어그램
1. ERwin 기본화면및툴둘러보기 ERwin Data Modeler 실행 ERwin 의기본화면 메뉴 툴바 다이어그램작성영역 모델탐색기
1. ERwin 기본화면및툴둘러보기 툴바 개체 1:N ( 식별 ) 1:N ( 비식별 ) SUB 타입 (ISA) N:M ( 식별 ) 개체 : 개체타입의이름, 식별자, 속성을표현 SUB 타입 : ISA 모델의슈퍼클래스와서브클래스처럼부모, 자식관계에서자식개체가서로배타적인관계를가지는여러서브개체타입을표현 1:N( 식별 ), N:M( 식별 ), 1:N( 비식별 ) : 1, N, M은두개체간의관계에서관계대응수를말함. 식별관계는두개체가부모 (1), 자식 (N) 관계일때부모의기본키가자식의기본키가되거나기본키의구성원으로사용되는관계로실선으로나타냄. 비식별관계는부모의기본키가자식의기본키가아닌속성의일부로전이되는관계로점선으로나타냄. 관계의필수 (1) 와선택 (0) 은관계선의옵션을통해선택할수있음
2. ERwin 실습을위한기본환경설정하기 목적과대상에맞는모델, DBMS, 표기법을선택해야함 표 6-13 Erwin 실습을위한기본환경설정 모델타입 DBMS 표기법 Logical/Physical SQL Server IE 표기법 기본환경설정순서 ( 교재 341쪽 ~345쪽참고 ) 1 모델타입, DBMS 선택하기 2 IE 표기법으로변경하기 3 툴바에메뉴추가하기 ( 선택사항 )
3. 마당서점설계실습 1. 마당서점의논리적모델링 1 마당서점의요구사항분석후개체만들기 그림 6-52 출판사개체생성 2 개체간관계표현하기 그림 6-53 출판사, 도서개체의관계설정 (1:N 비식별 ) 그림 6-54 출판사, 도서개체의관계설정 (1:N 비식별
연습문제풀이 3 N:M 관계해소하기 그림 6-55 N:M 관계해소 4 식별관계및관계대응수변경하기 그림 6-57 개체간식별관계변경
3.2 도메인정의하기 도메인이란속성이가질수있는값을정의하는것. ER 다이어그램이완성후도메인을정의 표 6-17 마당서점의도메인별데이터타입정의표 그림 6-61 도메인별데이터타입설정 그림 6-60 도메인정의표에따라생성한도메인
3.3 마당서점의물리적모델링 1 ER 다이어그램불러오기 : [File] [Open] 2 Physical 타입으로변경하기 : [View] [Physical Model] 그림 6-63 모델타입의변경
3.3 마당서점의물리적모델링 3 물리적모델링 그림 6-64 마당서점의테이블 4 컬럼의속성확인하기 그림 6-65 컬럼속성확인
3.4 DBMS 에접속하여테이블생성하기 DBMS 에접속하기 [Actions] [Database Connection] 메뉴선택후 [SQL Server Connection] 창에서다음과같이설정 Database : SQL Server 2008/2012 Authentication : Database Authentication User Name : mduser Password : mdpass Connection Type : Use Native Connection Server : localhost Database : Madang 그림 6-69 데이터베이스스키마생성 테이블생성하기 [Actions] [Forward Engineer] [Schema] 메뉴선택 -> 각대상별로오라클에적용할내용설정함 -> 테이블과인덱스를제외한모든부분의체크해제 - 그림 6-70 madang 데이터베이스에추가된테이블
05. 모델링연습 ( 마당대학데이터베이스 ) 마당대학의요구사항 마당대학의 ER 다이어그램
1. 마당대학의요구사항 1 교수 (Professor) 는아이디 (ssn), 이름 (name), 나이 (age), 직위 (rank), 연구분야 (speciality) 를가진다. 2 학과 (Department) 에는학과번호 (dno), 학과이름 (dname), 학과사무실 (office) 이있다. 3 대학원생 (Graduate) 은아이디 (ssn), 이름 (name), 나이 (age), 학위과정 (deg_prog, 석사 / 박사 ) 을가진다. 4 과제 (Project) 는과제번호 (pid), 지원기관 (sponsor), 개시일 (start_date), 종료일 (end_date), 예산액 (budget) 이있다. 5 학과마다그학과를운영 (run) 하는교수 ( 학과장이라고한다 ) 가한명씩있다. 6 한교수가여러학과에서근무 (work-dept) 할수있는데, 이때각학과별로참여백분율 (pct_time) 이기록된다. 7 대학원생에게는학위과정을밟을전공학과 (major) 가하나씩있다. 8 대학원생에게는어떤과목을들으면좋을지조언 (advisor) 해주는선임대학원생 ( 학생조언자라고한다 ) 이있다. 9 과제는한교수 ( 연구책임자라고한다 ) 에의해관리 (manage) 된다. 10 과제는한사람이상의교수 ( 공동연구책임자라고한다 ) 에의해수행 (work-in) 된다. 11 한과제는한명이상의대학원생 ( 연구조교라고한다 ) 에의해수행 (work-prog) 된다.
2. 마당대학의 ER 다이어그램 1 교수 (Professor) 는아이디 (ssn), 이름 (name), 나이 (age), 직위 (rank), 연구분야 (speciality) 를가진다. age speciality ssn rank name Professor 그림 6-71 교수 (Professor) 개체 2 학과 (Department) 에는학과번호 (dno), 학과이름 (dname), 학과사무실 (office) 이있다. Dept dno dname office 그림 6-72 학과 (Dept) 개체
2. 마당대학의 ER 다이어그램 3 대학원생 (Graduate) 은아이디 (ssn), 이름 (name), 나이 (age), 학위과정 (deg_prog, 석사 / 박사 ) 을가진다. Graduate ssn name age deg_prog 그림 6-73 대학원생 (Graduate) 개체 4 과제 (Project) 는과제번호 (pid), 지원기관 (sponsor), 개시일 (start_date), 종료일 (end_date), 예산액 (budget) 이있다. pid sponsor Project start_date end_date budget 그림 6-74 과제 (Project) 개체
2. 마당대학의 ER 다이어그램 5 학과마다그학과를운영 (run) 하는교수 ( 학과장이라고한다 ) 가한명씩있다. 6 한교수가여러학과에서근무 (work-dept) 할수있는데, 이때각학과별로참여백분율 (pct_time) 이기록된다. age speciality ssn rank name (1,n) Professor (0,1) work_dept N:M run 1:1 pct_time (0,n) Dept (1,1) dno dname office 그림 6-75 운영 (run) 관계와근무 (work-dept) 관계
2. 마당대학의 ER 다이어그램 7 대학원생에게는학위과정을밟을전공학과 (major) 가하나씩있다. 8 대학원생에게는어떤과목을들으면좋을지조언 (advisor) 해주는선임대학원생 ( 학생조언자라고한다 ) 이있다. Dept major (0,n) 1:N (1,1) Graduate (0,n) advise advised (1,1) advisor 1:N ssn name dno dname office age deg_prog 그림 6-76 전공학과 (major) 관계와조언 (advisor) 관계
2. 마당대학의 ER 다이어그램 9 과제는한교수 ( 연구책임자라고한다 ) 에의해관리 (manage) 된다. 10 과제는한사람이상의교수 ( 공동연구책임자라고한다 ) 에의해수행 (work-in) 된다. ssn age rank speciality work-in N:M pid sponsor start_date end_date name Professor (0,n) (0,n) manage 1:N (1,n) (1,1) Project budget 그림 6-77 관리 (manage) 관계와수행 (work-in) 관계
2. 마당대학의 ER 다이어그램 11 한과제는한명이상의대학원생 ( 연구조교라고한다 ) 에의해수행 (work-prog) 된다. pid sponsor start_date end_date Project budget (1,n) work-prog N:M Graduate ssn (0,n) (0,n) advise advised (1,1) advisor 1:N name age deg_prog 그림 6-78 수행 (work-prog) 관계
2. 마당대학의 ER 다이어그램 요구사항에맞게생성된최종 ER 다이어그램 age speciality pid start_date ssn rank work-in N:M sponsor end_date name (1,n) Professor (0,1) (0,n) (0,n) manage 1:N (1,n) (1,1) Project (1,n) budget work_dept N:M run 1:1 work-prog N:M pct_time (0,n) Dept (1,1) major (0,n) 1:N (1,1) (0,n) Graduate (0,n) advise advised (1,1) advisor 1:N ssn name dno dname office age deg_prog 그림 6-73 마당대학의 ER 다이어그램
2. 마당대학의 ER 다이어그램 관계데이터모델로변환한마당대학의 ER 다이어그램 [ 개체 ] Professor(ssn, name, age, rank, speciality) Dept(dno, dname, office, runprofessorssn) runprofessorssn : Professor(ssn) 을참조하는외래키로, 5 번요구사항의 run(1:1) 관계를표현 Graduate(ssn, name, age, deg_prog, dno, graduatessn) dno : Dept(dno) 를참조하는외래키로, 7 번요구사항 major(1:n) 관계를표현 graduatessn : Graduate(ssn) 을참조하는외래키로, 8 번요구사항 advisor(1:n) 관계를표현 Project(pid, sponsor, start_date, end_date, budget, managessn) managessn : Professor(ssn) 을참조하는외래키로, 9 번요구사항 manage(1:n) 관계를표현 [ 관계 ] - N:M 관계일경우교차테이블을생성한다. work-dept(professorssn, dno, pct_time) /* 교수의학과참여 */ 6 번요구사항의 work-dept(n:m) 관계를표현하기위한교차테이블이다. professorssn 은 Professor(ssn) 을참조하는외래키이고, dno 는 Dept(dno) 를참조하는외래키이다. pct_time 은관계에포함된속성이다. work-in(professorssn, pid) /* 교수의과제수행 */ 10 번요구사항의 work-in(n:m) 관계를표현하기위한교차테이블이다. professorssn 은 Professor(ssn) 을참조하는외래키이고, pid 는 Project(pid) 를참조하는외래키이다. work-prog(graduatessn, pid) /* 대학원생의과제수행 */ 11 번요구사항의 work-prog(n:m) 관계를표현하기위한교차테이블이다. graduatessn 은 Graduate(ssn) 을참조하는외래키이고, pid 는 Project(pid) 를참조하는외래키이다. 그림 6-74 마당대학데이터베이스스키마
2. 마당대학의 ER 다이어그램 관계데이터모델이완성되면실제 DBMS 에테이블을생성하기위한물리적모델 링과정을거침 그림 6-81 마당대학데이터베이스의 ER 다이어그램
요약 1. 데이터베이스생명주기 2. 개념적모델링 3. 논리적모델링 4. 물리적모델링 5. ER 모델 6. 개체와개체타입 7. 개체타입의종류 8. 속성 9. 속성의종류 10. 관계와관계타입 11. 관계대응수 12. ISA( 수퍼클래스와서브클래스 ) 관계 13. 전체참여와부분참여 14. 순환적관계 15. 식별자 16. IE 표기법 17. 사상 (mapping, 매핑 )