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