7 장 데이터베이스 설계

Preview:

DESCRIPTION

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

Citation preview

7 장 데이터베이스 설계

2

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

3

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

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

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

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

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

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

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

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

4

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

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

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

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

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

7.2 데이베이스 설계 단계

5

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

7.2 데이베이스 설계 단계

6

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

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

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

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

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

7.2 데이베이스 설계 단계

7

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

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

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

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

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

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

8

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

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

9

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

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

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

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

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

7.3.1 개체 (entity)

10

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

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

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

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

7.3.2 관계 (relationship)

11

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

7.3.2 관계 (relationship)

순환 관계 2 항 관계

3 항 관계 n 항 관계

교수 학생사원

교수

학과

학생

관리 지도

소속

피관리자

관리자

12

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

7.3.2 관계 (relationship)

13

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

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

7.3.2 관계 (relationship)

14

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

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

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

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

7.3.2 관계 (relationship)

15

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

7.3.2 관계 (relationship)

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)

17

7.3.3 속성 (attribute)

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

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

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

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

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

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

18

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

7.3.3 속성 (attribute)

19

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

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

20

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

7.3.3 속성 (attribute)

21

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

7.3.3 속성 (attribute)

근무년수

22

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

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

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

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

7.3.4 약한 개체

교수 강좌강의

강의

교수부양가족

23

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

7. 4 확장 E-R 모델

24

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

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

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

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

7. 4 확장 E-R 모델

25

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

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

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

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

08 참조 )

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

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

7. 4 확장 E-R 모델

26

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

예 ) p.210 그림 참조

7. 4 확장 E-R 모델

Recommended