49
11. 데데데 데데데데 데데데

11. 데이타 종속성과 정규화

Embed Size (px)

DESCRIPTION

11. 데이타 종속성과 정규화.  데이타의 논리적 표현. 관계 스킴 (relational scheme) 의 설계 관계 모델을 이용하여 어떻게 실세계를 정확히 표현할 것인가 ? 속성 (Attribute), 엔티티 , 관계성을 파악하여 릴레이션을 만듦 즉 , ERD  관계 데이터 모델 고려 사항 : 속성들 간의 관계성 데이터 종속성 효율적 데이터 처리 데이터의 일관성 유지 제대로 설계되지 못하면 데이터 중복성 발생 효율적인 데이타 조작을 방해함 즉 이상 (anomaly) 이 발생. 수강. - PowerPoint PPT Presentation

Citation preview

Page 1: 11.  데이타 종속성과 정규화

11. 데이타 종속성과 정규화

Page 2: 11.  데이타 종속성과 정규화

2금오공과대학 컴퓨터공학부 컴퓨터공학전공

데이타의 논리적 표현

관계 스킴 (relational scheme) 의 설계 관계 모델을 이용하여 어떻게 실세계를 정확히 표현할 것인가 ?

속성 (Attribute), 엔티티 , 관계성을 파악하여 릴레이션을 만듦– 즉 , ERD 관계 데이터 모델– 고려 사항 : 속성들 간의 관계성

데이터 종속성 효율적 데이터 처리 데이터의 일관성 유지

– 제대로 설계되지 못하면 데이터 중복성 발생 효율적인 데이타 조작을 방해함 즉 이상 (anomaly) 이 발생

Page 3: 11.  데이타 종속성과 정규화

3금오공과대학 컴퓨터공학부 컴퓨터공학전공

기본키 : 학번 , 과목 번호

학번 과목번호 성적 학년100 C413 A 4100 E412 A 4200 C123 B 3300 C312 A 1300 C324 C 1300 C413 A 1400 C312 A 4400 C324 A 4400 C413 B 4400 E412 C 4500 C312 B 2

수강

▶ 이상 (anomaly)

example : 수강 릴레이션

Page 4: 11.  데이타 종속성과 정규화

4금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 이상 (2)

삭제이상 (deletion anomaly) 200 번 학생이 'C123' 의 등록을 취소 ⇒ 3 학년이라는 정보도 함께 삭제됨 연쇄 삭제 (triggered deletion) 에 의한 정보의 손실

– 유지해야 될 정보도 삭제됨 삽입이상 (insertion anomaly)

600 번 학생이 2 학년이라는 사실을 삽입 ⇒ 어떤 과목을 등록하지 않는 한 삽입이 불가능 (∵ 과목 번호가 기본 키 ) 원하지 않는 정보의 강제 삽입

갱신이상 (update anomaly) 400 번 학생의 학년을 4 에서 3 으로 변경 ⇒ 학번이 400 인 4 개의 투플 모두를 갱신시켜야 함 중복데이타의 일부 갱신으로 정보의 모순성 (inconsistency) 발생

Page 5: 11.  데이타 종속성과 정규화

5금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 이상의 원인과 해결책

이상의 원인 속성 (Attribute) 들 간에 존재하는 여러 종속관계를 하나의

릴레이션에 표현

이상의 해결 속성 (Attribute) 들 간의 종속관계를 분석하여 여러 개의

릴레이션으로 분해 (decomposition)

⇒ 정규화 (normalization)

Page 6: 11.  데이타 종속성과 정규화

6금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 스키마 설계와 변환

스키마 설계 ( 데이타베이스의 논리적 설계 ) 의 순서1. 속성 (Attribute) 들과 이들의 제약 조건 ( 종속성 ) 들을 수집

요구 분석을 통하여 수집2. 제약조건에 따라 속성을 그룹화하여 관계를 정의

수집된 결과를 명시된 제약 조건에 따라 여러 개의 릴레이션으로 분할

3. 스키마 변환 (schema transformation) 기존 릴레이션을 바람직한 릴레이션으로 변환

스키마 변환의 원리① 정보의 무 손실② 데이타의 중복성 감소③ 분리의 원칙

Page 7: 11.  데이타 종속성과 정규화

7금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 분석 /설계

1. 분석 요구 분석

실제 사용되는 보고서 및 양식 인터뷰를 통한 사용자의 요구 사항 도출

기능 분석 요구 충족을 위한 기능의 정의 프로토타입 제작을 통한 사용자의 검증

2. 설계 ERD 작성

요구 기능별 외부 스키마의 정리 외부 스키마를 통합한 개념 스키마의 작성 외부 스키마 및 개념 스키마의 검증

관계 데이터 모델로의 변환 정규화를 통한 최적화

3. 개발

Page 8: 11.  데이타 종속성과 정규화

8금오공과대학 컴퓨터공학부 컴퓨터공학전공

함수 종속 (FD)

정의 어떤 릴레이션 R 에서 , 속성 (Attribute) X 의 값 각각에

대해 속성 (Attribute) Y 의 값이 하나만 연관 속성 (Attribute) Y 는 속성 (Attribute) X 에 함수 종속 X

YX 가 Y 를 결정한다는 의미임

속성 (Attribute) X 는 Y 를 ( 함수적으로 ) 결정– X 를 결정자 (determinant)

– Y 를 종속자 (dependent)

X, Y 는 복합 속성 (Attribute) 일 수 있음

Page 9: 11.  데이타 종속성과 정규화

9금오공과대학 컴퓨터공학부 컴퓨터공학전공

함수 종속 (2)

☞Note 릴레이션 R 에서 속성 (Attribute) X 가 키이면 ,

R 의 모든 속성 (Attribute) Y 에 대해 X Y 성립 함수종속 X Y 의 경우

속성 (Attribute) X 가 반드시 키 ( 유일 값 ) 라는 것을 요건으로 하지 않음

당연 (trivial) 종속

– 학번 학번 , { 학번 , 이름 } 이름

– 고려 대상이 않됨 비당연 (non-trivial) 종속

– 고려 대상

Page 10: 11.  데이타 종속성과 정규화

10금오공과대학 컴퓨터공학부 컴퓨터공학전공

함수 종속 다이어그램

함수 종속을 다이어그램으로 표현 예 .

수강 릴레이션 ( 기본키 : 학번 , 과목번호 ) 함수적 종속성

– { 학번 , 과목번호} 성적– 학번 학년

무엇이 문제가 될 것 같은가 ?

과목번호

학년성적

학번

학번 과목번호 성적 학년100 C413 A 4100 E412 A 4200 C123 B 3

수강

Page 11: 11.  데이타 종속성과 정규화

11금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 완전 함수 종속과 부분 함수 종속

복합 속성 (Attribute) X 에 대하여 X Y 가 성립할 때

완전 함수 종속 (full functional dependency) X’⊂ X 이고 X’Y 를 만족하는 속성 (Attribute) X' 이

존재하지 않음

부분 함수 종속 (partial functional dependency) X’⊂X 이고 X’Y 를 만족하는 속성 (Attribute) X' 이

존재함

Page 12: 11.  데이타 종속성과 정규화

12금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 완전 함수 종속과 부분 함수 종속 (2)

예 : 수강 릴레이션의 함수 종속 학번 학년 { 학번 , 과목번호 } 성적

( 학년 ) 은 ( 학번 ) 에 완전 함수 종속 ( 학년 ) 은 { 학번 , 과목번호 } 에는 부분 함수 종속 ( 성적 ) 은 { 학번 , 과목번호 } 에 완전 함수 종속

해결 방법은 ?

과목번호

학년성적

학번

Page 13: 11.  데이타 종속성과 정규화

13금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 완전 함수 종속과 부분 함수 종속 (3)

함수 종속에 대한 추론 규칙 R1: ( 반사 , reflexive) A ⊇ B 이면 A B 이다 . 또한 A A 이다

R2: ( 첨가 , augmentation) A B 이면 AC BC 이다 .

R3: ( 이행 , transitive) A B 이고 B C 이면 A C 이다 .

R4: ( 분해 , decomposition) A BC 이면 A B 이다 .

R5: ( 결합 , union) A B 이고 A C 이면 A BC 이다 .

☞ Note 함수 종속은 데이타의 의미 (data semantics) 를 표현

– 예 : “ 학번 학년”의 의미는 “학생은 하나의 학년에만 속한다”

– 의미적 제약 조건 DBMS 는 함수 종속을 유지하기 위하여 함수 종속을 스키마에

명세하는 방법과 함수 종속을 보장하는 방법을 제공하여야 함

Page 14: 11.  데이타 종속성과 정규화

14금오공과대학 컴퓨터공학부 컴퓨터공학전공

기본 정규형

정규형 (Normal Form) 어떤 일련의 제약 조건을 만족하는 릴레이션

정규화 (Normalization) 의 원칙

정규화 = 스키마 변환 (S S')

① 무손실 표현– 같은 의미의 정보 유지– 그러나 더 바람직한 구조

② 데이타의 중복성 감소③ 분리의 원칙

– 독립적인 관계는 별개의 릴레이션으로 표현– 릴레이션 각각에 대해 독립적 처리가 가능

Page 15: 11.  데이타 종속성과 정규화

15금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 1 정규형 (1NF)

정의 모든 도메인이 원자값 (atomic value) 만으로 된 릴레이션 즉 그룹 속성이 아니며 , 복합속성도 아님

예 : 수강지도 릴레이션 수강지도 ( 학번 , 지도교수 , 학과 , 과목번호 , 성적 ) 기본 키 : {학번 , 과목번호} 함수 종속 : {학번 , 과목번호} 성적 학번 지도교수 학번 학과 지도교수 학과

무엇이 문제가 될 것 같은가 ?

학번

과목번호성적

학과

지도교수

Page 16: 11.  데이타 종속성과 정규화

16금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 1 정규형 (2)

학번 과목번호 성적학과100 C413 A컴퓨터100 E412 A컴퓨터200 C123 B전기300 C312 A컴퓨터300 C324 C 컴퓨터 300 C413 A컴퓨터400 C312 A컴퓨터400 C324 A컴퓨터400 C413 B컴퓨터400 E412 C컴퓨터

수강 지도

지도교수P1P1P2P3P3P3P1P1P1P1

Page 17: 11.  데이타 종속성과 정규화

17금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 1 정규형 (3)

1NF 에서의 이상① 삽입이상

– 500 번 학생의 지도교수가 P4 라는 사실의 삽입은 어떤 교과목을 등록하지 않는 한 삽입 불가능

② 삭제이상

– 200 번 학생이 C123 의 등록을 취소하여 이 투플을 삭제할 경우 지도교수가 P2 라는 정보까지 손실됨

③ 갱신이상

– 400 번 학생의 지도교수를 P1 에서 P3 로 변경할 경우 학번이 400 인 4 개 투플의 지도교수 값을 모두 P3 로 변경해야 함

Page 18: 11.  데이타 종속성과 정규화

18금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 1 정규형 (4)

1NF 이상의 원인 기본키에 부분 함수 종속된 속성 (Attribute) 가 존재 기본키로 식별되는 개체와 무관한 속성 (Attribute) 가 존재 두가지 상이한 정보가 포함

1NF 이상의 해결 프로젝션으로 릴레이션을 분해 ( 부분 함수 종속을 제거 )

⇒ 2NF

학번

과목번호학과

지도교수성적학번

학번

과목번호성적

학과

지도교수

Page 19: 11.  데이타 종속성과 정규화

19금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 2 정규형 (2NF)

정의 1NF 이고 , 키에 속하지 않는 속성 (Attribute) 들은 모두 기본키에

완전 함수 종속

무손실 분해 (lossless decomposition)

프로젝션하여 분해된 릴레이션들은 자연 조인을 통해 원래의 릴레이션으로 복귀 가능

원래의 릴레이션에서 얻을 수 있는 정보는 분해된 릴레이션들로 부터도 얻을 수 있음 그러나 , 그 역은 성립하지 않음

(500 번 학생의 지도교수가 P4 라는 정보는 원래의 릴레이션에서 표현할 수 없음 )

1NF 2NF프로젝션

조인

Page 20: 11.  데이타 종속성과 정규화

20금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 2 정규형 (2)

☞ Note: Heath 의 무 손실 분해 R(A,B,C) 에서 함수 종속 A B 가 성립하면

⇒ R1(A,B), R2(A,C) 로 무 손실 분해 가능

Page 21: 11.  데이타 종속성과 정규화

21금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 2 정규형 (3)

예 : 수강지도 ⇒ 지도 , 수강 릴레이션 지도 ( 학번 , 지도교수 , 학과 ) 기본 키 : { 학번 } 수강 ( 학번 , 과목번호 , 성적 ) 기본 키 : { 학번 , 과목번호 } 외래 키 : { 학번 } 참조 : 지도

이는 2NF 인가 ? 무엇이 문제가 될 것 같은가 ?

학번

과목번호학과

지도교수성적학번

Page 22: 11.  데이타 종속성과 정규화

22금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 2 정규형 (4)

학번 학과100 컴퓨터200 전기300 컴퓨터400 컴퓨터

지도

지도교수P1P2P3P1

과목번호 성적C413 AE412 AC123 BC312 AC324 CC413 AC312 AC324 AC413 BE412 C

학번100100200300300300400400400400

수강

Page 23: 11.  데이타 종속성과 정규화

23금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 2 정규형 (5)

2NF( 지도 릴레이션 ) 에서의 이상① 삽입이상

– 어떤 지도교수가 특정 학과에 속한다는 사실의 삽입 불가능

② 삭제이상– 300 번 학생의 투플을 삭제하면 지도교수 P3 가

컴퓨터공학과에 속한다는 정보 손실

③ 갱신이상– 지도교수 P1 의 소속이 컴퓨터공학과에서 전자과로

변경된다면 학번이 100 과 400 번인 두개의 투플을 모두 변경하여야 함

2NF 이상의 원인 이행적 함수 종속이 존재

Page 24: 11.  데이타 종속성과 정규화

24금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 2 정규형 (6)

☞ Note : 이행적 함수 종속 (TD, Transitive Dependency)

– A B 이고 B C ⇒ A C

– 즉 , 속성 (Attribute) C 는 속성 (Attribute) A 에 이행적 함수 종속

2NF 이상의 해결 프로젝션으로 릴레이션 분해 ( 이행적 함수 종속을 제거 )

⇒ 3NF

학과

지도교수학번

지도교수

학과

학번

지도교수

Page 25: 11.  데이타 종속성과 정규화

25금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 3 정규형 (3NF)

정의 (3NF) 2NF 이고 , 키가 아닌 모든 속성 (Attribute) 들은 기본키에

이행적 함수 종속되지 않음

무손실 분해

원래의 릴레이션에서 얻을 수 있는 정보는 분해된 릴레이션들로부터도 얻을 수 있으나 그 역은 성립하지 않음

( 지도교수 P4 가 수학과에 속한다는 정보의 표현 )

2NF 3NF프로젝션

조인

Page 26: 11.  데이타 종속성과 정규화

26금오공과대학 컴퓨터공학부 컴퓨터공학전공

지도교수 학과학번 지도교수

학번100200300400

학생지도

지도교수P1P2P3P1

학과컴퓨터전기

컴퓨터

지도교수P1P2P3

지도교수학과

▶ 제 3 정규형 (2)

예 : 지도 ⇒ 학생지도 , 지도교수학과 릴레이션 학생지도 ( 학번 , 지도교수 ) 기본 키 : { 학번 }

외래 키 : { 지도교수 } 참조 : 지도교수학과 지도교수학과 ( 지도교수 , 학과 ) 기본 키 : { 지도교수 }

Page 27: 11.  데이타 종속성과 정규화

27금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 3 정규형 (3)

☞ Note

키가 아닌 속성 (Attribute) 값의 갱신 시 불필요한 부작용( 이상 ) 발생 없음

모든 이진 릴레이션은 3NF 에 속함

Page 28: 11.  데이타 종속성과 정규화

28금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 보이스 /코드 정규형 (BCNF)

3NF 의 약점i . 복수의 후보 키를 가지고 있고

ii . 후보 키들이 복합 속성 (Attribute) 들로 구성되고

iii . 후보 키들이 서로 중첩되는 경우

⇒ 적용 불가능

⇒ 보다 일반적인 Boyce/Codd Normal Form(BCNF) 을 제안

Page 29: 11.  데이타 종속성과 정규화

29금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 보이스 /코드 정규형 (BCNF)

정의 릴레이션 R 의 모든 결정자가 후보 키이면 릴레이션 R 은 BCNF 에

속한다 . 릴레이션 R 이 BCNF 에 속하면 R 은 제 1, 제 2, 제 3 정규형에

속함 강한 제 3 정규형 (strong 3NF) 이라고도 함

3NF 보다 조건이 강하다 . 1NF 나 2NF 를 참조하지 않고 정의

가능한 이유– 모든 속성이 Atomic 하다– 모든 결정자가 후보키이면 부분함수 종속이 없다 .– 모든 결정자가 후보키이면 이행 종속성이 없다 .

의미– BCNF 만 만족하면 된다 .– 현실적으로 가장 큰 의미를 갖는 정규형

그러면 4NF 나 5NF 는 ? 파레토의 법칙

학번 지도교수학번 학과지도교수 학과

학과

지도교수학번

Page 30: 11.  데이타 종속성과 정규화

30금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 보이스 /코드 정규형 (2)

(3NF 문제의 예 ) : 수강과목 릴레이션 제약 조건

– C1: 각 과목에 대하여 한 학생은 오직 한 교수의 강의만 수강 : { 학번 , 과목 } 교수

– C2: 각 교수는 한 과목만 담당 : 교수 과목– C3: 한 과목은 여러 교수가 담당할 수 있음

수강과목 ( 학번 , 과목 , 교수 ) 후보키 : { 학번 , 과목 } by C1 , { 학번 , 교수 } by C1, C2

– 복수의 후보키 , 각 후보키가 복합 어트리뷰트 , 그리고 중복 기본키 : { 학번 , 과목 } 무엇이 문제가 될 것 같은가 ?

학번

과목교수

학번 과목100 프로그래밍100 자료구조200 프로그래밍200 자료구조

수강과목

교수P1P2P1P3

300 자료구조300 프로그래밍

P3P4

Page 31: 11.  데이타 종속성과 정규화

31금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 보이스 /코드 정규형 (3)

3NF( 수강과목 릴레이션 ) 에서의 이상① 삽입이상

– 교수 P5 가 자료구조를 담당한다는 사실의 삽입은 학번 ( 수강 학생 ) 이 있어야 가능

② 삭제이상

– 100 번 학생이 자료구조를 취소하여 투플을 삭제하면 P2 가 담당교수라는 정보도 삭제됨

③ 갱신이상

– P1 이 프로그래밍 과목 대신 자료구조를 담당하게 되면 P1 이 나타난 모든 투플을 변경하여야 함

⇒ 원인 : 교수가 결정자이지만 후보 키가 아님

Page 32: 11.  데이타 종속성과 정규화

32금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 보이스 /코드 정규형 (4)

예 (BCNF) : 수강과목 ⇒ 수강교수 , 과목교수

수강교수

학번100100200200

교수P1P2P1P3

300300

P3P4

과목프로그래밍자료구조자료구조

프로그래밍

교수P1P2P3P4

과목교수교수

과목

학번

교수

수강교수 ( 학번 , 교수 )

기본 키 : { 학번 , 교수 }

외래키 : { 교수 } 참조 : 과목 교수과목교수 ( 교수 , 과목 )

기본 키 : { 교수 }

학번

과목교수

Page 33: 11.  데이타 종속성과 정규화

33금오공과대학 컴퓨터공학부 컴퓨터공학전공

고급 정규형

과목 목록 (UCPT)

과목 (C)화일구조

데이타베이스

교수 (P)P1P2P3

교재 (T)T1T2T3T4T5

비정규형 (Repeating Croup)

제약 조건 : •각 과목은 몇 개의 교재와 몇 명의 교수가 강의•명세된 교재를 반드시 사용•교수와 교재는 관계가 없음

예 ) DB 는 오병우 교수와 이이섭 교수만 강의 할 수 있고 , 교재는 이론교재 A 와 실습 교재 B 를 반드시 사용함개설 과목 (CPT)

교수 (P)과목 (C) 교재 (T)P1화일구조 T1P1화일구조 T2P2화일구조 T1P2화일구조 T2P3데이타베이스 T3P3데이타베이스 T4P3데이타베이스 T5

BCNF∵( 키에 속하지 않는 결정자 속성 (Attribute) 가 없음 )

기본키 : ( 과목 , 교수 , 교재 )

: 현실적으로 자주 나타나지 않는 문제들

: 이 예에서 무엇이 문제가 될 것 같은가 ?

Page 34: 11.  데이타 종속성과 정규화

34금오공과대학 컴퓨터공학부 컴퓨터공학전공

고급 정규형 (2)

개설교과목에서의 변경 이상 P4 가 데이타베이스를 담당한다는 정보삽입 시 3 개의

교재에 대한 투플을 삽입해야 함

BCNF 이상의 원인 즉 , 과목은 교수나 교재의 값 하나를 결정하는 것이 아니라

값의 집합 (set of values) 을 결정

과목 ->> 교수 | 교재

( 화일구조 ) { P1, P2 }

( 화일구조 ) { T1, T2 }

Page 35: 11.  데이타 종속성과 정규화

35금오공과대학 컴퓨터공학부 컴퓨터공학전공

고급 정규형 (3)

다치 종속 (MVD, Multi-Valued Dependency) 정의 : 릴레이션 R(A,B,C) 에서 어떤 (A, C) 값에 대응하는 B 값의 집합이 A 값에만 종속되고 C 값에 독립이면 다치 종속 A ->> B 가 성립 , 즉 (A,C) { B } 이고 A { B }

A multi-determines B or B is multi-dependent on A

3 개 이상의 속성 (Attribute) 를 갖는 관계에서만 가능 A ->> B 이면 A ->> C 도 성립 즉 , A ->> B|C

모든 FD 는 MVD 이나 , 역은 성립하지 않음

즉 , A B 이면 A ->> B 가 성립

MVD 를 가진 릴레이션의 분해 (Fagin 의 정리 ) R(A,B,C) 에서 MVD A ->> B|C 이면 R1(A,B) 와 R2(A,C) 로 무손실

분해 가능

Page 36: 11.  데이타 종속성과 정규화

36금오공과대학 컴퓨터공학부 컴퓨터공학전공

2 개의 속성에서는 MVD 가 없다

담당 교수 (CP)

교수 (P)과목 (C)P1화일구조P2화일구조P3데이타베이스

과목 ->> 교수

Page 37: 11.  데이타 종속성과 정규화

37금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 4 정규형 (4NF)

정의 릴레이션 R 에서 MVD A ->> B 가 존재할 때

R 의 모든 속성 (Attribute) 들이 A 에 함수 종속 (FD) 이면 R 은 4NF ( 즉 R 의 모든 속성 (Attribute) X 에 대해 A X 이고 A 가 후보키 )

BCNF 를 이용한 정의 릴레이션 R 이 BCNF 에 속하고 모든 MVD 가 FD 이면 R 은

4NF

의미 어떤 릴레이션 R 이 4NF 이라면 MVD 가 없거나 , MVD A ->>

B|C 가 있을 경우 A 에 대응되는 B 와 C 의 값은 하나씩 이어야 하며 이때 A 는 후보키라는것을 의미한다 .

Page 38: 11.  데이타 종속성과 정규화

38금오공과대학 컴퓨터공학부 컴퓨터공학전공

교수 (P)과목 (C) 교재 (T)P1화일구조 T1P1화일구조 T2P2화일구조 T1P2화일구조 T2P3데이타베이스 T3P3데이타베이스 T4P3데이타베이스 T5

개설 교과목

BCNF∵( 키에 속하지 않는 결정자 속성 (Attribute) 가 없음 )

기본키 : ( 과목 , 교수 , 교재 )MVD 과목 ->> 교수 | 교재

과목 (C)화일구조화일구조

데이타베이스

교수 (P)P1P2P3

과목 교수 과목 (C) 교재 (T)화일구조 T1화일구조 T2

데이타베이스 T3데이타베이스 T4데이타베이스 T5

과목교재

4NF

▶ 제 4 정규형 (2)

Page 39: 11.  데이타 종속성과 정규화

39금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (5NF)

예 : 릴레이션 SPC(4NF)

SPC 를 프로젝션하여 세 개의 SP,PC,CS 를 생성

세 개의 릴레이션 SP,PC,CS 를 조인해서는 SPC 의 재생성이 가능하나 그 어느 두 개의 조인만으로는 재생성 불가능

Page 40: 11.  데이타 종속성과 정규화

40금오공과대학 컴퓨터공학부 컴퓨터공학전공

첫번째 조인

두번째 조인

SPC

SP

프로젝션

PC CS

부당투플

프로젝션

조인

SK

PK CK

S1S1S2S1

P1P2P1P1

C2C1C1C1

SK

PK

S1S1S2

P1P2P1

PK CK

P1P2P1

C2C1C1

CK

SK

C2C1C1

S1S1S2

SK PK CK

S1S1S1

P1P1P2

C2C1C1

S2 P1 C2

S2 P1 C1

프로젝션과 조인

Page 41: 11.  데이타 종속성과 정규화

41금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (2)

n- 분해 (n-decomposable) 릴레이션 (n>2) n 개의 프로젝션으로만 무손실 분해될 수 있으며 ,

m(m<n) 개의 프로젝션으로는 무손실 분해가 불가능한 릴레이션

3- 분해 릴레이션 릴레이션 SPC 가 세 개의 프로젝션 SP,PC,CS 의 조인과 동등하다 .

≡ 분해했다가 조인하면 원래의 값을 얻을 수 있다 . (S1,P1) ∈ SP (P1,C1) ∈ PC ⇒ (S1,P1,C1) ∈ SPC (C1,S1) ∈ CS

즉 다음의 순환적 제약조건 (3D) 을 만족 (S1,P1,C2) ∈ SPC (S2,P1,C1) ∈ SPC ⇒ (S1,P1,C1) ∈ SPC (S1,P2,C1) ∈ SPC

SPC : 3- 분해 릴레이션 3D 제약조건을 만족해야 함

Page 42: 11.  데이타 종속성과 정규화

42금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (4)

정의 : 조인 종속 (JD, Join Dependency):

A,B,...,Z 이 릴레이션 R 의 속성들에 대한 부분 집합이고 ,

R 이 그의 프로젝션 A, B, ..., Z 의 조인과 동일하면 ,

R 은 JD *(A, B, ..., Z) 을 만족 .

릴레이션 R 이 JD*(A1,A2,…, An) 을 만족하면 n- 분해 릴레이션

정리 : 릴레이션 R(A,B,C) 가 JD *(AB,AC) 을 만족하면 ,

한 쌍의 MVD A ->> B|C 도 성립 .

MVD 는 JD 의 특별한 경우 (2- 분해 ), JD 는 MVD 의 일반형

SPC 릴레이션은 JD *(SP, PC, CS) 를 만족

3- 분해 릴레이션

JD 를 만족하는 n- 분해 릴레이션은 n 개의 프로젝션으로 분해해야 함 .

Page 43: 11.  데이타 종속성과 정규화

43금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (5)

릴레이션에서의 갱신이상 ① 삽입이상

– 릴레이션 SPC’ 에서 (S2,P1,C1) 의 삽입 시 (S1,P1,C1) 의 삽입 필요

– 역은 성립 않음

SK PK CKS1 P1 C2S1 P2 C1

SPC’

Page 44: 11.  데이타 종속성과 정규화

44금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (6)

릴레이션의 갱신이상 (con’t)② 삭제이상

– 릴레이션 SPC 에서 (S1,P1,C1) 의 삭제 시 다른 투플 중 어느 하나를 함께 삭제하여야 함

– (S2,P1,C1) 의 삭제는 이상 없이 가능

이상의 원인 : SPC 는 3- 분해 릴레이션 이상의 해결 : 릴레이션 SPC 를 3- 분해함

S1 P1 C2S1 P2 C1S2 P1 C1S1 P1 C1

SK PK CKSPC

Page 45: 11.  데이타 종속성과 정규화

45금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (7)

제 5정규형 (5NF) 정의

– 릴레이션 R 에 존재하는 모든 조인 종속이 R 의 후보키를 통해 성립되면 , R 은 5NF

프로젝션 - 조인 정규형 (PJ/NF)

예 1:

– SPC : JD *(SP,PC,CS) 는 후보키 (S,P,C) 를 통하지 않으므로 5NF 이 아님

– SP,PC,SC : 5NF

Page 46: 11.  데이타 종속성과 정규화

46금오공과대학 컴퓨터공학부 컴퓨터공학전공

▶ 제 5 정규형 (8)

제 5정규형 (5NF) (con’t)

예 2:

학생 ( 학번 , 이름 , 학과 , 학년 ) 릴레이션의 후보 키가 { 학번 } 과 { 이름 } 일 경우 ,

JD *(( 학번 , 이름 , 학과 ), ( 학번 , 학년 ))

JD *(( 학번 , 이름 ), ( 학번 , 학년 ), ( 이름 , 학과 ))

위의 JD 는 모두 후보키를 통해 성립되므로 5NF

5NF 이므로 분해를 하지 않아도 됨

Page 47: 11.  데이타 종속성과 정규화

47금오공과대학 컴퓨터공학부 컴퓨터공학전공

정규형들 간의 관계

정규화 과정 ( 무손실 분해 )

원자값이 아닌도메인을 분해

비정규 릴레이션

1NF

부분 함수종속 제거

2NF

이행 함수 종속 제거

3NF

결정자가 후보키가 아닌 함수종속 (FD) 제거

BCNF

함수종속이 아닌 다치종속 (MVD) 제거

4NF

후보키를 통하지 않은조인종속 (JD) 제거

5NF

Page 48: 11.  데이타 종속성과 정규화

48금오공과대학 컴퓨터공학부 컴퓨터공학전공

정규형들 간의 관계 (2)

정규형들 간의 포함 관계

☞ Note 정규화는 지침일 뿐이므로 적절하게 사용

5NF(PJ/NF)

4NF

BCNF

3NF

2NF

1NF

정규 또는 비정규 릴레이션

Page 49: 11.  데이타 종속성과 정규화

49금오공과대학 컴퓨터공학부 컴퓨터공학전공

정규형들 간의 관계 (4)

☞ Note 현실적으로 모든 릴레이션을 반드시 5NF 에 속하도록 분해할 필요는 없음

학생주소 ( 학번 , 이름 ,주소 , 전화번호 ) : 5NF 이 아님 기본키 : 학번

FD : 전화번호→주소

학생전화 ( 학번 , 이름 , 전화번호 ) : 5NF전화주소 ( 전화번호 ,주소 ) : 5NF

이름 , 전화번호 , 주소는 분리하지 않고 사용하는 것이 편리하므로 위의 5NF 으로의 분해는 무의미함