제 4 장 데이터베이스 설계

Post on 04-Jan-2016

46 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

DESCRIPTION

제 4 장 데이터베이스 설계. 최 진 탁. 개체 - 관계 모델. 개체 - 관계 모델 (E-R model :Entity- Relationship model) 1976 년 Peter Chen 에 의해 발표됨 개념 스키마 설계시 가장 널리 이용되는 도구 구성 요소 : 개체 (entity), 관계 (relationship), 속성 (attribute) 등 확장 E-R 모델 (EER model :Extended E-R model) - PowerPoint PPT Presentation

TRANSCRIPT

제 4 장 데이터베이스 설계

최 진 탁최 진 탁

개체 - 관계 모델 개체 - 관계 모델 (E-R model :Entity- Relationship mod

el) 1976 년 Peter Chen 에 의해 발표됨 개념 스키마 설계시 가장 널리 이용되는 도구 구성 요소 : 개체 (entity), 관계 (relationship), 속성 (attribut

e) 등

확장 E-R 모델 (EER model :Extended E-R model) E-R 모델의 개체 , 관계 , 속성 등의 개념에 일반화 , 세분

화 , 약한 개체 유형 , 복합 속성 등과 같은 개념이 추가된 새로운 개념의 E-R 모델

개체 - 관계 모델 개념

Reference : Database System Concepts -Third Edition- Abraham Silberschatz, Henry F. Korth, S. Sudarshan

개체 : 현실 세계에 존재하는 사물로서 데이터베이스의 모델링의 대상

개체 집합 : 공통적으로 같은 속성을 공유하는 개체들

Jones

Smith

Hayes

Jackson

Curry

321-12-3123

019-28-3746

677-89-9011

555-55-5555

244-66-8800

Main

North

Main

Dupont

North

Harrison

Rye

Harrison

Woodside

Rye

L-17 1000

L-23 2000

L-15 1500

L-14 1500

L-93 500

고객 대출

고객 , 대출개체 집합

개체 - 관계 모델 기호기 호 의 미

개체 타입 (Entity Type)

약 개체 타입 (Weak Entity Type)

관계 타입 (Relationship Type)

약 관계 타입 (Weak Relationship Type)

속성 (Attribute)

다중값 속성 (Multi-valued Attribute)

링크 (Link)

개체 - 관계 모델 기호 ( 개체 )

개체란 ? 실세계에 존재하는 실체를 의미하는 것으로 객체 클래스를 구성함

개체 표현 개체의 그래픽 표현은 사각형으로 표시됨

학과교수 학생강좌

개체 - 관계 모델 기호 ( 관계 )

관계 표현 관계는 두 개 이상의 개체들을 연결한 집단화 (aggregatio

n) 로 구성됨 이항 관계 (binary relationship), 삼항 관계 (ternary relatio

nship), n 항 관계가 존재함

교수 학생지도

교수 강좌강의

강좌 학생등록

학과

교수 학생소속

(a) 이항 관계 표현 (b) 삼항 관계 표현

개체 - 관계 모델 기호 ( 관계 )

관계 표현 관계는 두 개 이상의 개체들을 연결한 집단화 (aggregation) 로 구성됨 이항 관계 (binary relationship), 삼항 관계 (ternary relationship), n 항 관계가

존재함 매핑 카디널리티

E-R 모델의 관계는 개체와 연결될 때 대응 (mapping) 되는 수가 존재하는데 이와 같은 대응수를 말함

최대 대응수 (maximum cadinality) 와 최소 대응수 (minimum cadinality) 로 구분됨

이항 관계 매핑 카디널리티 일 대 일 (1:1, one to one) 관계 일 대 다 (1:n, one to many) 관계 다 대 일 (n:1, many to one) 관계 다 대 다 (n:n, many to many) 관계

개체 - 관계 모델 기호 ( 관계 ) 매핑 카디널리티

E-R 모델의 관계는 개체와 연결될 때 대응 (mapping) 되는 수 즉 , 대응수를 말함 최대 대응수 (maximum cadinality) 와 최소 대응수 (minimum cadinality) 로

구분됨 이항 관계 매핑 카디널리티

A B A B

A B A B

Oneto

many

Manyto

many

Oneto

one

Manyto

one

매핑 카디널리티가 포함된 E-R 다이어그램 조건 1 : 교수는 꼭 학생에 대한 지도를 해야 한다 . min-card( 교수 , 지도 ) = 1 조건 2 : 교수는 여러 명의 학생을 지도할 수 있다 . max-card( 교수 , 지도 ) = n 조건 3 : 학생은 꼭 교수에게 지도를 받아야 한다 . min-card( 교수 , 지도 ) = 1 조건 4 : 학생은 여러 명의 교수에게 지도를 받을 수 없다 . max-card( 교수 , 지도 ) = 1

교수 학생지도

(1, n) (1, 1)

min-card max-card

개체 - 관계 모델 기호 ( 관계 )

개체 - 관계 모델 기호 ( 속성 )

속성이란 ? 개체 또는 관계에 대한 특성 ( 속성 ) 을 기술하는 데이터 항목을 말함 .

속성의 예 개체 : 자동차 → 속성 : 제조회사 , 엔지크기 , 차량색상 교수 개체와 강좌 개체를 연결하는 강의 관계 → 속성 : 강의요일 , 시작시간 , 강의실 위치

속성의 그래픽 표현은 타원으로 표시한다 . 속성의 분류

단일 값 속성 : 속성 값이 원자 값인 것으로 하나의 값만 존재하는 것 다중 값 속성 : 속성 값이 여러 개 존재할 수 있는 것 복합 속성 : 속성 값이 여러 의미를 포함하는 것 유도 속성 : 기존 속성 값을 이용하여 새롭게 유도해 낸 속성

개체 - 관계 모델 기호 ( 속성 ) 단일 값 속성 (single-valued attribute)

교수 개체와 강좌 개체를 연결하는 강의 관계에 속성이 포함된 E-R

단 , 강의 관계의 속성에는 강의 요일 , 강의 시작시간 , 강의실 위치 등이 포함된다 .

교수 강좌강의

(1, n) (0, n)

요일 강의실시작시간

개체 - 관계 모델 기호 ( 속성 ) 다중 값 속성 (multi-valued attribute)

그래픽 표현 : 이중 선 타원

교수 개체에 다중 값 속성인 취미를 추가한 E-R 다이어그램

교수 강좌강의(1, n) (0, n)

요일 강의실시작시간

취미

개체 - 관계 모델 기호 ( 속성 ) 복합 속성 (composite attribute)

교수 개체에 주소 복합 속성을 추가한 E-R 다이어그램

교수 강좌강의(1, n) (0, n)

요일 강의실시작시간

주소

시 · 도

구 · 군

읍 · 면 · 동

번지

우편번호

정규화 정규화 (normalization)

논리적 데이터베이스 설계 방법 E-R 모델을 이용한 설계와 유사한 결과를 나타낸다 .

정규화의 기본 개념 설계된 모든 릴레이션은 동등 ( 평등 ) 하지 않음 잘못 설계된 릴레이션은 관계 연산시에 발생하는 이상 (anom

aly) 현상을 제거하기 위해 제약조건을 릴레이션 설계시에 반영해야 함

정규형 (normal form) 제약 조건을 반영한 릴레이션 형태 반영 정도에 따른 분류 : 1NF, 2NF, 3NF, 4NF, 5NF,

함수 종속성 함수 종속 (FD : Functional

Dependency) 속성들 간에 성립하는 관계

고객 계좌 번호

학생 번호

컴퓨터 일련번호

고객 잔액

전공

메모리 크기

결정자 (Determinant)

정규화의 필요성 이상현상의 발생 문제

잘못 설계된 데이터베이스 릴레이션은 관계 연산시 이상현상을 발생시키므로 이러한 이상현상이 나타나지 않도록 릴레이션을 설계할 필요가 있다 .

이상 현상이 발생하는 릴레이션

00010001000100020002000300030003000400040004000500050005000600060006

김수철김수철김수철이기문이기문박동진박동진박동진이재무이재무이재무고병오고병오고병오오염덕오염덕오염덕

T102T102T102T103T103T302T302T302C303C303C303C402C402C402T403T403T403

컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과

정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과

33333333333333333333333533353335333533353335333633363336333633363336

김수철김수철김수철김수철김수철최동철최동철최동철최동철최동철최동철최의민최의민최의민최의민최의민최의민

교수번호 교수이름 연구실 소속학과 학과전화 학과장

001001001002002003003003004004004005005005021006006

전공번호

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학

전공이름

교수

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

학위전화

41024102410241034103430243024302430343034303440244024402440344034403

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

정규화의 필요성 - 갱신이상 갱신 이상

릴레이션 R 에서 특정 속성 값 갱신 시에 중복 저장되어 있는 속성 값 중 하나만 갱신하고 , 나머지 것은 갱신하지 않아 발생하는 데이터의 불일치 현상을 갱신 이상이라 한다 .

갱신 이상 사례

00010001000100020002000300030003000400040004000500050005000600060006

김수철김수철김수철이기문이기문박동진박동진박동진이재무이재무이재무고병오고병오고병오오염덕오염덕오염덕

T102T102T102T103T103T302T302T302C303C303C303C402C402C402T403T403T403

컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과

정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과

33333333333333333333333533353335333533353335333633363336333633363336

김수철김수철김수철김수철김수철최동철최동철최동철최동철최동철최동철최의민최의민최의민최의민최의민최의민

교수번호 교수이름 연구실 소속학과 학과전화 학과장

001001001002002003003003004004004005005005021006006

전공번호

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학

전공이름

교수

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

학위전화

41014102410241034103430243024302430343034303440244024402440344034403

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

동일한 데이터임에도 불구하고데이터의 불일치 발생

정규화의 필요성 - 삭제이상 삭제 이상

릴레이션 R 에서 특정 투플을 삭제할 경우 원하지 않는 정보까지도 삭제되는 현상을 삭제 이상이라 한다 .

삭제 이상 사례

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학

001001001002002003003003004004004005005005021006006

00010001000100020002000300030003000400040004000500050005000600060006

김수철김수철김수철이기문이기문박동진박동진박동진이재무이재무이재무고병오고병오고병오오염덕오염덕오염덕

T102T102T102T103T103T302T302T302C303C303C303C402C402C402T403T403T403

컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과

정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과

33333333333333333333333533353335333533353335333633363336333633363336

김수철김수철김수철김수철김수철최동철최동철최동철최동철최동철최동철최의민최의민최의민최의민최의민최의민

교수번호 교수이름 연구실 소속학과 학과전화 학과장 전공번호 전공이름

교수

학위전화

41024102410241034103430243024302430343034303440244024402440344034403

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

원하지 않은 데이터의 삭제 발생즉 , 전공과 학위에 관한 정보가 손실된다 .

정규화의 필요성 - 삽입이상 삽입 이상

릴레이션 R 에서 특정 투플을 삽일할 경우 원하지 않는 (불필요한 ) 정보까지도 삽입 하는 현상을 삽입 이상이라 한다 .

삽입 이상 사례

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학벤처공학

001001001002002003003003004004004005005005021006006100

00010001000100020002000300030003000400040004000500050005000600060006

김수철김수철김수철이기문이기문박동진박동진박동진이재무이재무이재무고병오고병오고병오오염덕오염덕오염덕

T102T102T102T103T103T302T302T302C303C303C303C402C402C402T403T403T403

컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과컴퓨터공학과

정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보통신공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과정보산업공학과

33333333333333333333333533353335333533353335333633363336333633363336

김수철김수철김수철김수철김수철최동철최동철최동철최동철최동철최동철최의민최의민최의민최의민최의민최의민

교수번호 교수이름 연구실 소속학과 학과전화 학과장 전공번호 전공이름

교수

학위전화

41024102410241034103430243024302430343034303440244024402440344034403

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

이 정보 만으로는 릴레이션에 저장할 수 없다 .즉 , 불필요한 정보도 함께 저장되어야만 한다 .

정규형 무손실 분해 (lossless decomposition)

릴레이션을 분해한 후 , 분해한 릴레이션을 조인하여 저장 정보의 손실이 없이 원래의 릴레이션을 생성할 수 있는 것

정규형 간의 관계 기본 정규형 : 1NF 부터 BCNF 까지 고급 정규형 : 4NF 와 5NF 1NF 는 제약 조건이 가장 적게 적용된 정규형임 5NF 는 제약 조건이 가장 많이 적용된 정규형임 2NF 는 1NF 의 제약조건을 만족한다는 의미임

정규형간의 관계

5NF(PJ/NF)

4NF

BCNF

3NF

2NF

1NF

BCNF : Boyce-Codd NFPJ/NF : Projection-Join NF

비정규형

제 1 정규형 (1NF) 정의

릴레이션 R 에 포함되는 속성의 값이 다중값 (multi value) 을 지원하지 않고 , 원자값 (atomic value) 만을 지원할 경우 제 1 정규형이다 .

제 1 정규형의 예

교수번호 교수이름 연구실 소속학과 학과전화 학과장 전공번호 전공이름

교수

학위전화 학위취득일

함수 종속성 (FD)

교수번호 교수이름 , 연구실 , 전화 , 소속학과학과 학과전화 , 학과장전공번호 전공이름교수번호 , 학위 전공번호 , 학위취득일

제 2 정규형 (2NF) 정의

릴레이션 R 이 제 1 정규형의 조건을 만족하고 , 릴레이션의 기본키가 아닌 속성들이 기본키에 완전히 함수적으로 종속할 경우 제 2 정규형이다 .

제 2 정규형의 예

교수번호 교수이름 연구실 소속학과 학과전화 학과장

전공번호 전공이름

교수

학위

전화

학위취득일교수번호

교수 _전공

함수 종속성 (FD)

교수번호 교수이름 , 연구실 , 전화 , 소속학과학과 학과전화 , 학과장전공번호 전공이름교수번호 , 학위 전공번호 , 학위취득일

제 2 정규형 (2NF) 제 2 정규형의 갱신이상사례

4101410241034302430344024403

0001000100020003000400050006

김수철김수철이기문박동진이재무고병오오염덕

T102T102T103T302C303C402T403

컴퓨터공학과전자계산학과컴퓨터공학과

정보통신공학과정보통신공학과정보산업공학과정보산업공학과

3333333733333335333533363336

김수철김수철김수철최동철최동철최의민최의민

교수번호 교수이름 연구실 소속학과 학과전화 학과장

교수

전화

동일한 데이터임에도 불구하고데이터의 불일치 발생

제 2 정규형 (2NF) 제 2 정규형의 삭제이상사례

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학

001001001002002003003003004004004005005005021006006

00010001000100020002000300030003000400040004000500050005000600060006

교수번호 전공번호 전공이름

교수 _전공

학위

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

원하지 않은 데이터의 삭제 발생즉 , 전공번호와 전공이름에 관한 정보가 손실된다 .

제 3 정규형과 BCNF 제 3 정규형 (3NF) 정의

릴레이션 R 이 제 2 정규형의 조건을 만족하고 , 기본키가 아닌 모든 속성들이 기본키에 대하여 이행적 함수 종속성 (transitive FD)의 관계를 가지지 않는 경우 제 3 정규형이다 .

BCNF 정의 릴레이션 R 의 모든 결정자가 후보키일 경우 BCNF 이다 .

제 3 정규형의 예 (BCNF 도 만족 ) 교수번호 교수이름 연구실

교수전화

학위 전공번호 학위취득일교수번호

교수 _전공

함수 종속성 (FD)

교수번호 교수이름 , 연구실 , 전화 , 소속학과학과 학과전화 , 학과장전공번호 전공이름교수번호 , 학위 전공번호 , 학위취득일

학과 학과전화 학과장학과

전공번호 전공이름

전공

소속학과

제 3 정규형과 BCNF 주의

( 교수번호 , 학위 ) 속성을 기본키로 정의하고 , ( 교수번호 , 전공번호 ) 를 기본키로 정의 하지 않은 것은 한 교수가 동일한 전공으로 여러 학위를 할 수 있기 때문이다 . 예를 들면 , 교수번호가 0001 번인 교수는 컴퓨터공학으로 학사 , 석사 , 박사 학위를 하였다 . 컴퓨터 공학은 전공번호가 001 번으로 동일하기 때문에 ( 교수번호 , 전공번호 ) 를 기본키로 할 경우 , 한 릴레이션에 3 개의 동일한 투플이 존재하여 유일성을 상실하게 된다 .

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학

001001001002002003003003004004004005005005021006006

00010001000100020002000300030003000400040004000500050005000600060006

교수번호 전공번호 전공이름

교수 _전공학위

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

공학사공학석사공학박사

이학사이학석사

공학사공학석사공학박사

이학사이학석사이학박사

공학사공학석사공학박사교육학사공학석사공학박사

컴퓨터공학컴퓨터공학컴퓨터공학

정보과학정보과학통신공학통신공학통신공학

전자계산학전자계산학전자계산학

산업공학산업공학산업공학

컴퓨터교육전자공학전자공학

001001001002002003003003004004004005005005021006006

00010001000100020002000300030003000400040004000500050005000600060006

교수번호 전공번호전공이름

교수 _전공학위

198602198802199408197902198302198002198202198708198402198602199002198402198602199008197602198002199608

학위취득일

유일성이 없다 .( 기본 키로 사용 불가 )

유일성이 있다 .( 기본 키로 사용 가능 )

제 3 정규형과 BCNF 제 3 정규형에서 정의한 각 릴레이션 간의 관계

교수번호 교수이름 연구실

교수

전화

학위 전공번호 학위취득일교수번호

교수 _전공

학과 학과전화 학과장

학과

전공번호 전공이름

전공

소속학과

외래키

외래키

교수의 소속 학과 정보를 조인 연산으로 확인 가능

교수의 전공 정보를 조인 연산으로 확인 가능

다치종속성과 제 4 정규형 함수적 종속성은 한가지 형태만의 제약조건을 명기한다 ( 이 제약조건은 매우

흔히 일어나는 것임 ).

함수적 종속성만에 의해서 명기될 수 없는 다른 형태의 제약조건들이 존재한다 .

추가적인 종속성에는 다치 종속성 (multivalued dependency) 등이 있다 .

이런 추가적인 종속성으로 인하여 제 3 정규형이나 BCNF 정규형을 넘어선

정규형을 정의할 수 있다 .

다치 종속성 (MVD) 은 X Y 로 표기한다 .→→

제 4 정규형 (4NF) 제 4 정규형 (4NF):

3NF 와 BCNF 는 다치 종속성을 다루지 않는다 . 비단순 다치 종속성을 가지는 릴레이션 스키마는 좋은

디자인이 아닐 수 있다 . 제 4 정규형은 위와 같은 문제를 다루며 , 제 4 정규형에

속하는 모든 릴레이션은 자동적으로 BCNF 정규형을 갖는다 . 제 4 정규형의 정형적 정의 :

함수적 및 다치 종속성들의 집합 F 에 대한 F+ 의 모든 비단순 다치 종속성 X Y 에 대하여 , X 가 R 의 수퍼키이면 릴레이션 스키마 R 은 F 에 대한 제 4 정규형이라고 한다 .

→→

제 5 정규형 (5NF) PJ/NF(Projection-Join Normal Form) 릴레이션 스키마

R 에서의 모든 조인종속성이 릴레이션 스키마 R 은 후보키를 통해서만 성립된다면 릴레이션 스키마 R 은 제 5 정규형 또는 PJ/NF 에 속한다

top related