26
7 장 장장장장장장 장장

7 장 데이터베이스 설계

Embed Size (px)

DESCRIPTION

7 장 데이터베이스 설계. 7.1 데이터베이스 설계의 개요. 7.1 데이터베이스 설계의 개요. 추상화 개념 분류 추상화 공통 속성들로 특성 지워지는 현실세계의 객체 클래스를하나의 개념으로 정의하는 것 예 ) 월  1 월 , 2 월 , 3 월 ,, 로 분류 집단 추상화 각각의 구성요소를 표현하는 ( 다른 ) 클래스들의 집합으로부터 새로운 클래스를 정의하는 것 예 ) 컴퓨터  키보드 , 마우스 , 모니터 , cpu 등으로 분류 일반 추상화 - PowerPoint PPT Presentation

Citation preview

Page 1: 7 장 데이터베이스 설계

7 장 데이터베이스 설계

Page 2: 7 장 데이터베이스 설계

2

7.1 데이터베이스 설계의 개요

Page 3: 7 장 데이터베이스 설계

3

추상화 개념 1. 분류 추상화

공통 속성들로 특성 지워지는 현실세계의 객체 클래스를하나의 개념으로

정의하는 것 예 ) 월 1 월 , 2 월 , 3 월 ,, 로 분류

2. 집단 추상화 각각의 구성요소를 표현하는 ( 다른 ) 클래스들의 집합으로부터 새로운

클래스를 정의하는 것 예 ) 컴퓨터 키보드 , 마우스 , 모니터 , cpu 등으로 분류

3. 일반 추상화 2 개 또는그 이상의 클래스 요소 사이의 부분집합 관계를 정의하는 것 .

상속관계 존재 예 ) 컴퓨터 IBM PC, Mac, WS 등으로 분류

7.1 데이터베이스 설계의 개요

Page 4: 7 장 데이터베이스 설계

4

1. 요구사항 수집과 분석 요구사항을 수집하고 , 의견들을 평가하고 조정함 요구사항을 수집하기 위해서 흔히 기존의 문서를 조사하고 , 인터뷰나

설문 조사 등이 시행됨 인터뷰는 요구사항 수집을 위해 가장 흔히 사용된다 . 또한 일반적으로

가장 유용한 방식 설문 조사는 자유롭게 의견을 적어내도록 하는 방식과 주어진 질문에

대해서만 답을 하는 방식으로 구분 요구사항에 관한 지식을 기반으로 관련 있는 엔티티들과 이들의

애트리뷰트들이 무엇인가 , 엔티티들 간의 관계가 무엇인가 등을 파악함

7.2 데이베이스 설계 단계

Page 5: 7 장 데이터베이스 설계

5

2. 개념적 설계단계 요구사항들을 기반으로 데이터베이스의 개념적 스키마 설계하는 것 목표 DBMS 엔진과는 독립적인 단계로서 데이터베이스에 저장되는 정보의 내용 관점에서 스키마 설계하는 것임 데이터베이스를 저장하는 구조나 접근방법은 이 단계에서 설계하지 않음

7.2 데이베이스 설계 단계

Page 6: 7 장 데이터베이스 설계

6

3. 논리적 설계단계 개념스키마를 이용하여 데이터베이스의 논리적 스키마를 설계하는 것 논리적모델 (RDB, 계층 모델 , 네트워크 모델 , 객체지향 모델등 ) 중의

하나를 선택하여 설계함 구체적인 DBMS 와는 독립적으로 구성됨 . 즉 , 이 단계에서 작성한 스키마는 오라클 , 인포믹스와 같은 어떤

모델에도 적용이 가능하다 .

4. 물리적 설계단계 논리적스키마를 이용하여 데이터베이스의 물리적스키마를 설계 저장장치에 저장하기 위해 데이터베이스의 저장 구조와 접근방법을

설계함 목표 DBMS 에 적합한 스키마를 설계해야 함

7.2 데이베이스 설계 단계

Page 7: 7 장 데이터베이스 설계

7

ER 모델 데이터베이스 설계를 용이하게 하기 위해서 P.P. Chen 이 1976 년에

제안하였음 현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에

널리 사용되고 있음 개념적 설계를 위한 인기 있는 모델로서 ,

높은 수준으로 추상화하며 , 이해하기 쉬우며 , 구문들의 표현력이 뛰어나고 사람들이 응용에 대해 생각하는 방식과 가깝고 , 많은 CASE 도구들에서 지원됨

ER 모델은 실세계를 엔티티 , 엔티티들 간의 관계 , 애트리뷰트로 표현함 ER 모델을 표현하기 위한 방법으로 ER 다이어그램이 사용됨 . ER 모델은 쉽게 관계 데이터 모델로 사상됨

7.3 개체 - 관계모델 (E-R Model)

Page 8: 7 장 데이터베이스 설계

8

ER 다이어그램 타입 , 관계 타입 , 이들의 애트리뷰트들을 그래픽하게 표현함 P.194 ER 다이어그램 사용 기호 참조

7.3 개체 - 관계모델 (E-R Model)

Page 9: 7 장 데이터베이스 설계

9

엔티티 하나의 엔티티는 사람 , 장소 , 사물 , 사건 등과 같이 독립적으로

존재하면서 고유하게 식별이 가능한 실세계의 객체 학생처럼 실체가 있는 것도 있지만 생각이나 개념과 같이 추상적인 것도

있음 객체 클래스를 구성함 예 ) 학과 , 교수 , 학생 , 강좌 개체 예 ) 학과는 다시 컴퓨터공학과 , 정보과학과 등의 인스턴스가 포함되는

객체 클래스임 . 개체유형 또는 개체집합이라고도 함 엔티티는 직사각형으로 표시함

(p.195 그림 7-4 참조 )

7.3.1 개체 (entity)

Page 10: 7 장 데이터베이스 설계

10

관계 관계는 엔티티들 사이에 존재하는 연관이나 연결로서 두 개 이상의

엔티티 타입들 사이의 사상으로 생각할 수 있음 요구사항 명세에서 흔히 동사는 ER 다이어그램에서 관계로

표현됨 ER 다이어그램에서 다이어몬드로 표기 예 ) 교수 - 학생 개체간 지도 관계 존재함

학생 – 강좌 개체간 등록 관계 존재함

7.3.2 관계 (relationship)

Page 11: 7 장 데이터베이스 설계

11

관계의 차수 (degree) 관계의 차수는 관계로 연결된 엔티티 타입들의 개수를 의미 실세계에서 가장 흔한 관계는 두 개의 엔티티 타입을 연결하는 2 항 관계

7.3.2 관계 (relationship)

순환 관계 2 항 관계

3 항 관계 n 항 관계

교수 학생사원

교수

학과

학생

관리 지도

소속

피관리자

관리자

Page 12: 7 장 데이터베이스 설계

12

순환 관계 하나의 엔티티 타입이 동일한 관계 타입에 두 번 이상 참여하는 것

7.3.2 관계 (relationship)

Page 13: 7 장 데이터베이스 설계

13

매핑 카디날리티카디날리티 비율은 한 엔티티가 참여할 수 있는 관계의 수를

나타냄 관계 타입에 참여하는 엔티티들의 가능한 조합을 제한함 이항관계에는 1:1, 1:N, N:1, N:N으로 구분카디날리티에 관한 정보는 간선 위에 나타냄

7.3.2 관계 (relationship)

Page 14: 7 장 데이터베이스 설계

14

카디날리티 비율의 최소값과 최대값 ER 다이어그램에서 관계 타입과 엔티티 타입을 연결하는 실선 위에

(min, max) 형태로 표기 어떤 관계 타입에 참여하는 각 엔티티 타입에 대하여 min 은 이 엔티티

타입 내의 각 엔티티는 적어도 min 번 관계에 참여함을 의미 max는 이 엔티티 타입 내의 각 엔티티는 최대한 max 번 관계에 참여함을

의미 min=0은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미

7.3.2 관계 (relationship)

Page 15: 7 장 데이터베이스 설계

15

매핑카디널리티가 포함된 E-R 다이어그램

7.3.2 관계 (relationship)

Page 16: 7 장 데이터베이스 설계

16

매핑카디널리티가 포함된 E-R 다이어그램

7.3.2 관계 (relationship)

교수 강좌강의

조건 1 : 교수는 꼭 하나 이상의 강좌를 강의해야 한다 .

min-card( 교수 , 강의 )=1

조건 2 : 교수는 여러 개의 강좌를 강의할 수 있다 .

min-card( 교수 , 강의 )=n

조건 3 : 강좌는 특정 학기에 개설되어 않을 수 있다 .

min-card( 강의 , 강좌 )=0

조건 4 : 한 강좌는 여러 명의 교수가 강의할 수 있다 .

min-card( 강의 , 강좌 )=n

(1,n) (0,n)

Page 17: 7 장 데이터베이스 설계

17

7.3.3 속성 (attribute)

관계의 애트리뷰트 속성이란 개체 또는 관계에 대한 특성을 기술하는 데이터 항목임 . 개체에 대한 특성

자동차 개체 제조회사 , 엔지사이즈 , 차량색상 등의 속성을 가짐

관계에 대한 특성 교수 - 강의개체 연결하는 강의관계 강의요일 , 시작시간 , 강의실

위치 등과 같은 속성을 포함할 수 있다 .

속성의 그래픽 표현은 원으로 표시됨 속성과 개체간은 실선으로 표시함 ER 다이어그램에서 기본 키에 속하는

애트리뷰트는 밑줄을 그어 표시함

Page 18: 7 장 데이터베이스 설계

18

1. 단일값 속성 (single-valued attribute) 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트 ( 원자값 ) ER 다이어그램에서 실선 타원으로 표현함 ER 다이어그램에서 대부분의 애트리뷰트는 단순 애트리뷰트

7.3.3 속성 (attribute)

Page 19: 7 장 데이터베이스 설계

19

5.2 ER 모델 ( 계속 )5.2 ER 모델 ( 계속 )

다중갑 속성 (multi-valued attribute) 속성값이 여러 개의 값을 가질 수 있는 애트리뷰트 ER 다이어그램에서 이중선 타원으로 표현함

Page 20: 7 장 데이터베이스 설계

20

복합 속성 (composite attribute) 속성값이 여러 의미를 포함하는 애트리뷰트

7.3.3 속성 (attribute)

Page 21: 7 장 데이터베이스 설계

21

유도 속성 (derived attribute) 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트 ER 다이어그램에서 점선 타원으로 표현함 예 ) 교수개체의 입사일 속성을 이용하여 근무년수 계산

7.3.3 속성 (attribute)

근무년수

Page 22: 7 장 데이터베이스 설계

22

약한 엔티티 타입 약한 엔티티 타입은 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한

엔티티 타입 즉 , 다른 개체의 존재여부에 따라 존재할 수도 있고 , 존재하지않을수도

있는 개체를 말함 ER 다이어그램에서 약한 엔티티 타입은 이중선 직사각형으로 표기 예 ) 교수 – 부양관계 - 부양가족 개체부양가족 개체

부양가족개체는 교수개체에 의족적임 .

7.3.4 약한 개체

교수 강좌강의

강의

교수부양가족

Page 23: 7 장 데이터베이스 설계

23

확장 E-R 모델 초기 E-R 모델에 세분화 , 일반화 , 집단화 개념 추가됨

7. 4 확장 E-R 모델

Page 24: 7 장 데이터베이스 설계

24

1. 세분화와 일반화 세분화

어떤 개체를 작은 그룹별로 분리하는 것 예 ) 사람 ( 상위클래스 ) 남자 , 여자 ( 하위클래스 ) 로 분리 상위 클래스에서 하위클래스를 분류하는 하향식 개념

일반화 여러 개체의 공통적인 특징을 하나의 개체로 일반화 시키는 것 예 ) 남자 , 여자 사람으로 일반화 하위 클래스에서 상위클래스로 일반화시키는 상향식 개념

상위클래스와 하위클래스간에는 IS-A 관계 성립함 예 ) 여자 IS-A 사람

7. 4 확장 E-R 모델

Page 25: 7 장 데이터베이스 설계

25

1. 세분화와 일반화 세분화와 일반화 개념의 장점

1) 불필요한 포함 속성을 제거할 수 있다 .

예 ) 학생 학부 , 대학원생 , 사회교육원생 사회교육원생은 소속학과없음 대학원생은 전공과정 데이터 필요함

속성계승 : 상위클래스에서 정의한 속성은 하위클래스로 계승될 수 있다 .(P.2

08 참조 )

2) 특정 하위클래스 클래스의 관계 표현이 가능함

예 ) 학생 학부 , 대학원생 , 사회교육원생 사회교육원생은 재교육 목표이므로 취업과 관계없음 학부와 대학원생은 취업이라는 관계가 있을 수 있음 .(P.209 그림 참조 )

7. 4 확장 E-R 모델

Page 26: 7 장 데이터베이스 설계

26

2. 집단화 단위 개체들을 하나로 묶어 상위 레벨의 복합개체를 구성하는 것

예 ) p.210 그림 참조

7. 4 확장 E-R 모델