Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 06 데이터 모델링.

Similar presentations


Presentation on theme: "Chapter 06 데이터 모델링."— Presentation transcript:

1 Chapter 06 데이터 모델링

2 데이터 모델링의 개념 ER 모델 ER 모델을 관계 데이터 모델로 사상 ERwin 실습 모델링 연습(마당대학 데이터베이스)

3 데이터 모델링의 개념을 이해한다. 개념적 모델링 단계에 사용하는 ER 모델을 이해하고 작성 방법을 알아본다. ERwin 프로그램을 사용하여 ER 모델을 작성해본다. 마당대학 데이터베이스를 ER 모델로 직접 설계해본다.

4 01. 데이터 모델링의 개념 데이터베이스 생명주기 데이터 모델링 과정

5 01. 데이터 모델링의 개념 건물 설계 (소프트웨어 설계) 지반 설계 (데이터베이스 설계) 그림 6-1 데이터 모델링의 중요성

6 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 데이터 모델링의 개념

7 1.1 데이터베이스 생명주기 데이터베이스 생명주기(database life cycle)란? 데이터베이스의 생성과 운영에 관련된 특징 요구사항 수집 및 분석 설계 구현 운영 감시 및 개선 그림 6-3 데이터베이스 생명주기

8 1.1 데이터베이스 생명주기 요구사항 수집 및 분석 설계 구현 운영 감시 및 개선
사용자들의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계 설계 분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계)한 후, 데이터베이스 스키마를 도출(물리적 설계)함. 구현 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰, 인덱스 등)를 만듦. 운영 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공함. 감시 및 개선 데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선함.

9 1.2 데이터 모델링 과정  요구사항 수집 및 분석 설계  개념적 모델링  논리적 모델링  물리적 모델링
현실 세계의 대상 및 사용자의 요구 등을 정리 및 분석 사용자 식별 데이터 베이스 용도 식별 사용자 요구 사항 수집 및 명세 중요 개념을 구분 핵심 Entity(독립개체) 도출 ERD 작성 각 개념을 구체화 ERD-RDB 모델 사상 상세 속성 정의 정규화 등 데이터베이스 생성 계획에 따라 개체, 인덱스 등을 생성 DB 개체 정의 테이블 및 인덱스 등 설계 DBMS 선정 데이터베이스 구현 설계 그림 6-4 데이터 모델링 과정

10 1.2.1 요구사항 수집 및 분석 요구사항 수집 방법 실제 문서를 수집하고 분석함.
담당자와의 인터뷰나 설문조사를 통해 요구사항을 직접 수렴함. 비슷한 업무를 처리하는 기존의 데이터베이스를 분석함. 각 업무와 연관된 모든 부분을 살펴봄.

11 1.2.2 개념적 모델링 개념적 모델링(conceptual modeling) : 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정 개체(entity)를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램(ERD, Entity Relationship Diagram)을 만드는 과정까지를 말함. 주문 도서 고객 전화번호 도서이름 출판사 도서단가 도서단가 주문일자 고객이름 주소 그림 6-5 개념적 모델링의 예

12 1.2.3 논리적 모델링 논리적 모델링(logical modeling)이란? 논리적 모델링 과정 주문 도서 고객
개념적 모델링에서 만든 ER 다이어그램을 사용하려는DBMS에 맞게 사상(매핑, mapping)하여 실제 데이터베 이스로 구현하기 위한 모델을 만드는 과정 논리적 모델링 과정 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출함. 정규화 수행 데이터 표준화 수행 주문 도서 고객 도서 (도서번호, 도서이름, 출판사이름, 도서단가) 고객 (고객번호, 고객이름, 주소, 전화번호) 주문 (주문번호, 고객번호(FK), 도서번호(FK), 주문일자, 주문금액) 그림 6-6 논리적 모델링의 예

13 1.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 물리적 모델링의 예

14 1.2.4 물리적 모델링 물리적 모델링 시 트랜잭션, 저장 공간 설계 측면에서 고려할 사항 응답시간을 최소화해야 한다.
얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 한다. 데이터가 저장될 공간을 효율적으로 배치해야 한다.

15 02. ER 모델 개체와 개체 타입 속성 관계와 관계 타입 약한 개체 타입과 식별자 IE 표기법

16 02. ER 모델 ER(Entity Relationship) 모델 개체
독립적인 의미를 지니고 있는 유무형의 사람 또는 사물 개체의 특성을 나타내는 속성(attribute)에 의해 식별됨. 개체끼리 서로 관계를 가짐. 그림 6-8 ER 모델의 기본 개념

17 02. ER 모델 ER 다이어그램이란? 1 N ER 모델은 개체와 개체 간의 관계를 표준화된 그림으로 나타냄. 작업 직원
프로젝트 개체-관계 속성 직원번호 이름 직위 전화번호 과제번호 예산 그림 6-9 ER 다이어그램

18 2.1 개체와 개체 타입 개체(entity)란? 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체. 데이터베이스에서 주로 다루는 개체는 낱개로 구성된 것, 낱개가 각각 데이터 값을 가지는 것, 데이터 값이 변하는 것 등이 있음. 비슷한 속성의 개체 타입(entity type)을 구성하며, 개체 집합(entity set)으로 묶임. 도서 개체 타입(entity type) 축구아는 여자 개체(entity) 축구의 이해 축구의 역사 개체 집합(entity set) 그림 6-10 개체, 개체 타입, 개체 집합

19 2.1.1 개체 타입의 ER 다이어그램 표현 ER 다이어그램상에서 개체 타입은 직사각형으로 나타냄.
개체 타입의 유형 강한 개체(strong entity) : 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체 약한 개체(weak entity) : 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐. 표 6-1 개체 타입의 ER 다이어그램 표현

20 2.2 속성 속성(attribute) : 개체가 가진 성질 표 6-2 개체 타입과 속성 속성의 ER 다이어그램 표현
속성은 기본적으로 타원으로 표현. 개체 타입을 나타내는 직사각형과 실선으로 연결됨. 속성의 이름은 타원의 중앙에 표기함. 속성이 개체를 유일하게 식별할 수 있는 키일 경우 속성 이름에 밑줄을 그음. 표 6-2 개체 타입과 속성 개체 타입 속성 도서 도서이름, 출판사, 도서단가 도서 도서이름 출판사 가격 그림 6-11 도서 개체 타입

21 2.2.2 속성의 유형 그림 6-11 속성의 ER 다이어그램 표현

22 2.3 관계와 관계 타입 관계(relationship) : 개체 사이의 연관성을 나타내는 개념.
관계 타입(relationship type) : 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의한 것이며, 관계 집합(relationship set)은 관계로 연결된 집합을 의미함. 주문 도서 고객 축구아는 여자 1번 주문 축구의 이해 2번 주문 박지성 축구의 역사 3번 주문 관계(relationship) 관계 집합(relationship set) 그림 6-15 관계, 관계 타입, 관계 집합

23 2.3.1 관계 타입의 ER 다이어그램 표현 표 6-4 관계 타입의 ER 다이어그램 표현 그림 6-16 관계의 예 기호 의미
주문 개체 타입 관계 고객 구매 도서 학과 소속 학생 강좌 수강 학생 수강학기 그림 6-16 관계의 예

24 2.3.2 관계 타입의 유형 차수에 따른 유형 관계 집합에 참가하는 개체 타입의 수를 관계 타입의 차수(degree)라고 함.
표 6-5 차수에 따른 관계 타입의 유형 기호 의미 설명 1진 관계 한 개의 개체가 자기 자신과 관계를 맺음 2진 관계 두 개의 개체가 관계를 맺음 3진 관계 세 개의 개체가 관계를 맺음 개체 관계 개체 관계 개체 개체 관계 개체 개체

25 2.3.2 관계 타입의 유형 1진 관계(recursive relationship) : 한 개의 개체가 자기 자신과 관계를 맺는 경우 2진 관계(binary relationship) : 두 개의 개체가 관계를 맺는 경우 3진 관계(ternary relationship) : 세 개의 개체가 관계를 맺는 경우 학생 멘토링 그림 진 관계의 예 학생 소속 학과 그림 진 관계의 예 직원 수행 프로젝트 부품 그림 진 관계의 예

26 2.3.2 관계 타입의 유형 관계 대응수(cardinality) : 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수
기호 의미 설명 일대일 관계 하나의 개체가 하나의 개체에 대응 일대다 관계 하나의 개체가 여러 개체에 대응 다대일 관계 여러 개체가 하나의 개체에 대응 다대다 관계 여러 개체가 여러 개체에 대응 1 관계 1 1 관계 N N 관계 1 M 관계 N 표 6-6 관계 대응수에 따른 관계 타입의 유형

27 2.3.2 관계 타입의 유형 일대일(1:1)관계 좌측 개체 타입에 포함된 개체가 우측 개체 타입에 포함된 개체와 일대일로 대응하는 관계 사원 컴퓨터 1 사용 1 사원 컴퓨터 그림 6-20 일대일 관계의 예

28 2.3.2 관계 타입의 유형 일대다(1:N), 다대일(N:1) 관계
실제 일상생활에서 가장 많이 볼 수 있는 관계로, 한쪽 개체 타입의 개체 하나가 다른 쪽 개체 타입의 여러 개체와 관계를 맺음. 학과 학생 1 소속 N 학과 학생 그림 6-21 일대다(1:N), 다대일(N:1) 관계의 예

29 2.3.2 관계 타입의 유형 다대다(N:M) 관계 각 개체 타입의 개체들이 서로 임의의 개수의 개체들과 서로 복합적인 관계를 맺고 있는 관계를 말함. 학생 강좌 N 수강 M 학생 강좌 그림 6-22 다대다(N:M) 관계의 예

30 2.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 (최솟값, 최댓값) 표기의 예

31 2.3.3 ISA 관계 상위 개체 타입의 특성에 따라 하위 개체 타입이 결정되는 형태
표 6-8 ISA 관계 (ISA => is-a ) 그림 6-25 ISA 관계의 예

32 2.3.4 참여 제약 조건 개체 집합 내 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여와 부분 참여로 구분 가능.
전체 참여는 개체 집합의 모든 개체가, 부분 참여는 일부만 참여함. 전체 참여를 (최솟값, 최댓값)으로 표현할 경우 최솟값이 1 이상으로 모두 참여한다는 뜻이고, 부분 참여는 최솟값이 0 이상이다. 표 6-9 관계의 참여 제약 조건 기호 의미 전체 참여 부분 참여 학생 수강 강좌 그림 6-26 부분 참여와 전체 참여의 예

33 2.3.5 역할 개체 타입 간의 관계를 표현할 때 각 개체들은 고유한 역할(role)을 담당함. 그림 6-27 역할의 예 교수
1 지도 N 학생 지도한다 지도받는다 그림 6-27 역할의 예

34 2.3.6 순환적 관계 순환적 관계(recursive relationship) : 하나의 개체 타입이 동일한 개체 타입(자기 자신)과 순환적으로 관계를 가지는 형태. 학생 사원 멘토 멘티 지시한다 지시받는다 M N M N 멘토링 지시 (a)학생의 멘토링 관계 (b)사원의 지시 관계 그림 6-28 순환적 관계의 예

35 2.4 약한 개체 타입과 식별자 약한 개체(weak entity) 타입 : 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체 타입 약한 개체 타입은 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자(discriminator) 혹은 부분키(partial key)라고 함. 표 6-10 식별자와 약한 개체 타입 기호 의미 설명 약한 개체 타입 강한 개체 타입이 있어야 존재할 수 있음 이중 직사각형으로 표현 식별 관계 타입 강한 개체 타입과 약한 개체 타입의 관계를 나타냄 강한 개체 타입의 기본키를 상속받아 사용함 이중 마름모꼴로 표현 강한 개체 타입의 키 속성 식별자 약한 개체 타입에서 개별 개체를 구분하는 속성 키라고 하지 않고 식별자라고 부름 가족 부양

36 2.4 약한 개체 타입과 식별자 그림 6-29 약한 개체 타입과 식별자의 예 1 N 직원번호 이름 직책 직원 부양 가족 이름
관계

37 2.5 IE 표기법(Information Engineering 표기법)
ER 다이어그램을 더 축약하여 쉽게표현하면 Erwin 등 소프트웨어에서 사용함. IE 표기법에서 개체 타입과 속성은 직사각형으로 표현함. 식별자 속성 1 속성 2 엔티티 이름 속성1 속성2 IE 표기법 Peter Chen 표기법 그림 Peter Chen 표기법과 IE 표기법

38 2.5 IE 표기법 IE 표기법에서 관계는 실선 혹은 점선으로 표기함 그림 IE 표기법 – 관계와 관계 대응수

39 2.5 IE 표기법 IE 표기법에서 관계(강한관계, 비식별자 관계)는 점선으로 표기함
소속 1 N 부서 직원 부서번호 직원번호 부서이름 직급 포함한다 소속된다. IE 표기법에서 관계(약한관계, 식별자 관계)는 실선으로 표기함 그림 IE 표기법의 예(비식별자 관계) 그림 IE 표기법의 예(식별자 관계)

40 연습문제 풀이

41 03. ER 모델을 관계 데이터 모델로 사상 개체 타입의 사상 관계 타입의 사상 다중값 속성의 사상

42 03. ER 모델을 관계 데이터 모델로 사상 완성된 ER 모델은 실제 데이터베이스로 구축하기 위해 논리적 모델링 단계를 거치는데, 이 단계에서 사상(mapping)이 이루어짐. 그림 6-33 ER 모델을 관계 데이터 모델로 사상 표 6-12 ER 모델과 관계 데이터 모델의 사상 알고리즘

43 3.1 개체 타입의 사상 [1단계] 강한(정규) 개체 타입 정규 개체 타입 E의 경우 대응하는 릴레이션 R을 생성함.
[2단계] 약한 개체 타입 : 약한 개체 타입에서 생성된 릴레이션은 자신의 키와 함께 강한 개체 타입의 키를 외래키로 사상하여 자신의 기본키를 구성함. 그림 6-34 개체 타입의 사상

44 3.2 관계 타입의 사상 [방법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을 모두 독립된 릴레이션으로 표현한다. R(KA1, KA2) KA1 A2 E1 R KA2 A4 E2 그림 6-34 이진 관계 타입

45 3.2 관계 타입의 사상 [3단계] 이진 1:1 관계 타입 이진 1:1 관계 타입의 경우 [방법1]~[방법4]까지 모든 유형으로 사상 가능. 개체가 가진 정보 유형에 따라 판단. [4단계] 이진 1:N 관계 타입 이진 1:N 관계 타입의 경우 N의 위치에 따라 [방법1] 또는 [방법2]의 유형으로 사상됨. 그림 6-36 이진 1:1 관계 타입의 사상 그림 6-36 이진 1:N 관계 타입의 사상

46 3.2 관계 타입의 사상 [5단계] 이진 M:N 관계 타입 이진 M:N 관계 타입은 [방법4]의 유형으로 사상됨.
ER 모델의 차수가 3 이상인 다진 관계 타입의 경우 [방법4]의 유형으로 사상된다. 그림 6-38 이진 N:M 관계 타입의 사상 그림 6-36 이진 N진 관계 타입의 사상

47 3.3 다중값 속성의 사상 [7단계] 속성의 개수를 알 수 없는 경우 [방법1]을, 속성의 개수가 제한적으로 정해지는 경우 [방법2]를 사용함. 그림 6-35 다중값 속성의 개수에 따른 사상 방법 그림 6-41 다중값 속성의 사상

48 연습문제 풀이

49 연습문제 풀이

50 04. ERwin 실습 ERwin 기본 화면 및 툴 둘러보기 ERwin 실습을 위한 기본 환경 설정하기 마당서점 설계 실습
DBMS에 접속하여 테이블 생성하기 <여기서 잠깐> Erwin( 데이터 모델링 도구는 미국 CA Technologies 회사에서 만든 제품으로 시험용 버전인Community Edition을 제공한다. 본 교재는 Erwin r9 Community Edition으로 작성되었다. 무료이지만 유효 기간이 있어서 일정 시간이 지나면 다시 내려 받아야 한다.

51 04. ERwin 실습 ERwin : 데이터 모델링을 하기 위한 프로그램. IE 표기법을 지원함.
도서 주문 고객 도서번호 주문번호 고객번호 출판사이름(FK) 도서이름 도서단가 고객번호(FK) 도서번호(FK) 주문일자 주문금액 고객이름 주소 전화번호 출판사 출판사이름 담당자이름 전화번호 그림 6-36 마당서점의 ER 다이어그램

52 4.1 ERwin 기본 화면 및 툴 둘러보기   ERwin Data Modeler 실행 ERwin의 기본 화면   
메뉴 툴바 다이어그램 작성 영역 모델 탐색기

53 4.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 (식별)

54 4.2 ERwin 실습을 위한 기본 환경 설정하기 목적과 대상에 맞는 모델, DBMS, 표기법을 선택해야 함.
기본 환경 설정 순서(교재 341쪽~345쪽 참고) 모델 타입, DBMS 선택하기 IE 표기법으로 변경하기 툴바에 메뉴 추가하기(선택사항) 표 6-13 Erwin 실습을 위한 기본 환경 설정 모델 타입 Logical/Physical (새로만들때) File -> New -> Type DBMS Oracle 표기법 IE 표기법 Model -> Properties -> Notation 에서 변경

55 4.3 마당서점 설계 실습 1. 마당서점의 논리적 모델링 마당서점의 요구사항 분석 후 개체 만들기 개체 간 관계 표현하기
그림 출판사 개체 생성 그림 6-54 도서, 고객 개체의 관계 설정(N:M 관계) 그림 6-53 출판사 , 도서 개체의 관계 설정(1:N 비식별)

56 4.3 마당서점 설계 실습 N:M 관계 해소하기 그림 6-55 N:M 관계 해소 식별 관계 및 관계 대응 수 변경하기
그림 개체 간 식별 관계 변경

57 4.3.2 도메인 정의하기 도메인이란 속성이 가질 수 있는 값을 정의하는 것. ER 다이어그램이 완성 후 도메인을 정의함.
표 6-17 마당서점의 도메인별 데이터 타입 정의표 그림 6-61 도메인별 데이터 타입 설정 그림 6-60 도메인 정의표에 따라 생성한 도메인

58 4.3.3 마당서점의 물리적 모델링 ER 다이어그램 불러오기 : [File] –[Open]
Physical 타입으로 변경하기 : [View] – [Physical Model] 그림 6-63 모델 타입의 변경

59 4.3.3 마당서점의 물리적 모델링 물리적 모델링 컬럼의 속성 확인하기 그림 6-64 마당서점의 테이블
그림 6-65 컬럼 속성 확인

60 4.3.3 마당서점의 물리적 모델링 <여기서 잠깐> Erwin 모델링 팁 (1) 최소 관계를 0->1로 변경하려면 1:N의 관계는 관계를 오른쪽 마우스로 클릭한 후 -> Properties -> Cardinality Properties -> One or More로 수정(1쪽), Nulls Not Allowed(N쪽) (2) 관계 이름을 표시하려면 모델 그림의 바탕화면에서 오른쪽 마우스 클릭한 후 -> Properties -> Relationship -> Display Logical Relationship Name(check) -> Properties -> Relationship -> Physical Logical Relationship Name(check) (3) 1:1 순환 관계의 표현 자기 자신으로 바탕화면을 한번 클릭해가면서 자기자신으로 클릭 1:N 카디널리티 표현을 위한 외래키는 별도로 생성해야 함 (관계를 오른쪽마우스선택 -> properties -> Role Name -> (이름 입력)

61 4.4 DBMS에 접속하여 테이블 생성하기 DBMS에 접속하기
[Actions]–[Database Connection] 메뉴 선택 후 [Oracle Connection] 창에서 다음과 같이 설정 테이블 생성하기 [Actions]–[Forward Engineer]–[Schema] 메뉴 선택-> 각 대상별로 오라클에 적용할 내용 설정함-> 테이블과 인덱스를 제외한 모든 부분의 체크 해제- Database : Oracle 11g Authentication : Database Authentication User Name : madnag Password : madang Connection String : orcl Connect As SYSDBA : 체크하지 않음 * 오라클 11g Express Edition 사용하는 경우 Connection String : xe <여기서 잠깐> Erwin은 32비트 프로그램으로, 64비트에서는 다음과 같은 설정들을 해줘야 한다. (1) 오라클 32비트 클라이언트를 설치한다.( Client) (2) PATH 환경변수에 설치된 클라이언트 루트폴더를 결로 맨 앞쪽에 추가해준다. (3) ORACLE_HOME 환경변수를 오라클이 설치된 폴더로 설정해준다. (예 : C:\oraclexe\app\oracle\product\11.2.0\server ) (4) Erwin 다시 시작(혹은 부팅 후 다시 시작) 그림 6-70 madang 데이터베이스에 추가된 테이블

62 05. 모델링 연습(마당대학 데이터베이스) 마당대학의 요구사항 마당대학의 ER 다이어그램

63 5.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)된다.

64 5.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) 개체

65 5.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) 개체

66 5.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) 관계

67 5.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)관계

68 5.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) 관계

69 5.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) 관계

70 5.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 다이어그램

71 5.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 마당대학 데이터베이스 스키마

72 5.2 마당대학의 ER 다이어그램 관계 데이터 모델이 완성되면 실제 DBMS에 테이블을 생성하기 위한 물리적 모델링 과정을 거침 그림 6-81 마당대학 데이터베이스의 ER 다이어그램

73 연습문제 풀이

74 요약 관계와 관계 타입 데이터베이스 생명주기 관계 대응 수 개념적 모델링 ISA(수퍼클래스와 서브클래스) 관계 논리적 모델링
물리적 모델링 ER 모델 개체와 개체 타입 개체 타입의 종류 속성 속성의 종류 관계와 관계 타입 관계 대응 수 ISA(수퍼클래스와 서브클래스) 관계 전체 참여와 부분 참여 순환적 관계 식별자 IE 표기법 사상(mapping, 매핑)


Download ppt "Chapter 06 데이터 모델링."

Similar presentations


Ads by Google