Download presentation
Presentation is loading. Please wait.
1
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
제 7 장 관계형 데이터베이스 설계 관계형 데이터베이스 설계에서의 함정 분해 함수적 종속을 이용한 정규화 다중값 종속을 이용한 정규화 죠인 종속을 이용한 정규화 도메인-키 정규형 데이터베이스 설계의 대안 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
2
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
관계형 데이터베이스 설계에서의 함정 관계형 데이터베이스 설계에서는 좋은 릴레이션 스키마의 집합을 찾기를 요구한다. 나쁜 설계는 다음을 유발할 수 있다. - 정보의 중복 - 특정 정보 표현의 불가능 설계 목표 - 중복 데이터의 회피 - 애트리뷰트 간의 관계가 표현되도록 보장 - 데이터베이스 무결성 제약 조건의 위배에 대한 갱신 검사의 용이성 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
3
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 다음의 관계형 스키마를 고려해 보자 Lending-schema = (branch-name, branch-city,assets, customer-name, loan-number, amount) 중복 - branch-name, branch-city, assets의 데이터가 지점에서 이루어지는 대출마다 중복된다. - 공간을 낭비하고 갱신이 복잡해진다. 널 값 - 대출이 없으면 지점에 관한 정보를 저장할 수 없다. - 널 값을 사용할 수 있지만, 다루기가 어렵다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
4
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
분해 Lending-schema를 다음과 같이 분해하자. Branch-customer-schema = (branch-name, branch-city, assets, customer-name) Customer-loan-schema = (customer-name, loan-number, amount) 원래 스키마 (R)의 모든 애트리뷰트가 분해(R1, R2)내에 나타나야만 한다. R = R1 R2 무손실 죠인 분해 스키마 R 상의 모든 가능한 릴레이션 r에 대해 r = R1(r) R2(r) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
5
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
무손실 죠인 분해가 없는 예제 R = (A, B)의 분해 A(r) B(r) A B R1 = (A) r A R2 = (B) A(r) B 1 2 B(r) A B Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
6
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
목표 - 다음을 위한 이론을 고안한다 특정 릴레이션 R이 좋은 형태인가를 결정 릴레이션 R이 좋은 형태가 아닌 경우, 그것을 아래와 같이 릴레이션의 집합 {R1, R2, , Rn)으로 분해한다. - 각 릴레이션은 좋은 형태에 있다 - 분해는 무손실 죠인 분해이다 이론은 다음에 근거한다 - 함수적 종속 - 다중값 종속 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
7
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
함수적 종속을 이용한 정규화 함수적 종속 집합 F를 가진 릴레이션 스키마 R을 R1과 R2로 분해할 때는 다음과 같이 되기를 원한다. 무손실 죠인 분해 : 다음 종속중인 적어도 하나가 F+에 있도록 - R1 R2 R1 - R1 R2 R2 중복없음 : 릴레이션 R1과 R2가 BCNF 또는 3NF에 있도록 해야 한다. 종속성 보존 : Fi를 Ri내의 애트리뷰트만을 포함하는 F+내의 종속 집합이라 하자. 다음을 만족하는지를 테스트한다. - (F1 F2)+ = F+ 그렇지 않으면, 함수적 종속 위배에 대한 갱신 검사에 비용이 많이 든다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
8
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 R = (A , B, C) F = {A B, B C} R1 = (A, B), R2 = (B, C) - 무손실 죠인 분해 R1 R2 = {B} 이고 B BC - 종속성 보존 R1 = (A, B), R2 = (A, C) R1 R2 = {A} 이고 A AB - 종속성이 보존되지 않음 (R R2 를 계산해 보지 않고는 B C를 체크할 수 없다) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
9
Boyce - Codd Normal Form(BCNF)
R이고 R일 때 형태의 F+내의 모든 함수적 종속에 대해 다음중 하나를 가지면 함수적 종속 집합 F에 대하여 릴레이션 스키마 R은 BCNF이다 가 당연하다 (즉, ) 가 R의 수퍼 키이다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
10
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 R = (A , B, C) F = {A B B C} Key = {A} R은 BCNF가 아니다 분해 R1 = (A, B), R2 = (B, C) - R1 과 R2 는 BCNF이다 - 무손실 죠인 분해 - 종속성 보존 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
11
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
BCNF 분해 알고리즘 result := {R} ; done := false; compute F+ ; while (not done) do if (there is a schema Ri in result that is not in BCNF) then begin let be a nontrivial functional dependency that holds on Ri such that Ri is not in F+ , and = 0; result := (result - Ri) (Ri - ) (,); end else done := true; 유의 : 각 Ri는 BCNF이고 분해는 무손실 죠인 분해이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
12
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
BCNF 분해의 예 R = ( branch-name,branch-city,assets, customer-name,loan-number,amount) F = {branch- name assets branch- city loan- number amount branch- name} Key = {loan- number,customer- name} 분해 - R1 = (branch-name,branch-city,assets) - R2 = (branch-name,customer-name,loan-number,amount) - R3 = (branch-name,loan-number,amount) - R4 = (customer-name,loan-number) 최종 분해 R1, R3, R4 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
13
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
BCNF와 종속성 보존 종속성이 보존되는 BCNF 분해를 항상 얻을 수 있는 것은 아니다 R = (J, K, L) F = {JK L L K} 두 개의 후보 키 = JK와 JL R은 BCNF이 아니다 R의 어떠한 분해도 아래의 종속성을 보존하는데 실패할 것이다 JK L Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
14
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
3rd Normal Form(3NF) F+내의 모든 에 대해 다음중 적어도 하나를 가지면 릴레 이션 스키마 R은 3NF이다 - 가 당연하다 (즉, ) - 가 R의 수퍼키이다 - - 내의 각 애트리뷰트 A가 R의 후보키 내에 포함된다. 릴레이션이 BCNF가 아니면 그것은 3NF이다 (왜냐하면 BCNF에 서 위의 첫 두개의 조건중 하나는 가져야 하기 때문이다). Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
15
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
3NF (계속) 예제 - R = (J, K, L) F = {JK L, L K} - 두 개의 후보 키: JK와 JL - R은 3NF이다 JK L JK는 수퍼키이다 L K K가 후보 키 내에 포함된다 릴레이션 스키마 R을 다음과 같은 릴레이션 스키마의 집합 {R1, R2, , Rn}으로 분해하는 알고리즘 - 각 릴레이션 스키마 Ri는 3NF이다 - 무손실 죠인 분해 - 종속성 보존 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
16
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
3NF 분해 알고리즘 Let Fc be a canonical cover for F; i := 0; for each functional dependency in Fc do if none of the schemas Rj , 1 j i contains then begin i :=i + 1; Ri := ; end if none of the schemas Rj , 1 j i contains a candidate key for R i := i + 1; Ri := any candidate key for R ; return (R1,R2,...,R i) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
17
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 릴레이션 스키마: Banker-info-schema = (branch-name, customer-name, banker-name, office-number) 이 릴레이션 스키마에 대한 함수적 종속은 다음과 같다 banker-name branch-name office-number customer-name branch-name banker-name 키는 아래와 같다 {customer-name, branch- name} Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
18
Banker - info - schema에 3NF 적용
알고리즘 내의 for 루프는 다음과 같은 스키마가 분해 에 내포되도록 한다 Banker-office-schema = (banker-name,branch- name, office-number) Banker-schema = (customer-name,branch-name, banker-name) Banker-schema에 Banker-info-schema의 후보 키를 내포하므로 분해 처리가 수행된다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
19
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
BCNF와 3NF의 비교 어떤 릴레이션을 3NF와 다음을 만족하는 릴레이션으로 항상 분해할 수 있다 - 분해는 무손실이다 - 종속성이 보존된다 어떤 릴레이션을 BCNF와 다음을 만족하는 릴레이션으로 항상 분해할 수 있다 - 항상 종속성을 보존하지는 않는다 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
20
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
BCNF와 3NF의 비교(계속) R = (J, K, L) F = {JK L L K} 다음 릴레이션을 고려해 보자 다음과 같은 문제점을 가진 3NF지만 BCNF는 아닌 스키마 - 정보의 중복(예를 들어, 관계 l1, k1) - 널 값을 사용할 필요가 있다(예를 들어, J에 대응하는 값이 없이 관계 l2, k2를 표현하기 위해) J L K j l k1 j l k1 j l k1 null l k2 Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
21
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
설계 목표 관계형 데이터베이스 설계의 목표는 다음과 같다 - BCNF. - 무손실 죠인 - 종속성 보존 이를 달성할 수 없으면, 다음을 허용한다 - 3NF. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
22
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속을 이용한 정규화 충분히 정규화되지 않은 BCNF 데이터베이스 스키마가 있다 다음의 데이터베이스를 고려해 보자 classes(course, teacher, book) (c, t, b) classes는 t가 c를 가르치는 것으로 한정되고 b가 c의 교재로 요구됨을 의미한다 데이터베이스는 각 과목에 대해 과목의 강사일 수 있는 선생의 집합과 과목에서 필요한 모든 교재의 집합(누가 가르치든 관계없이)을 열거하도록 되어 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
23
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속을 이용한 정규화(계속) course teacher book database Avi Korth database Avi Ullman database Hank Korth database Hank Ullman database Sudarshan Korth database Sudarshan Ullman operating systems Avi Silberschatz operating systems Avi Shaw operating systems Jim Silberschatz operating systems Jim Shaw classes 당연하지 않은 종속은 없기 때문에, (course, teacher, book)이 유일한 키이고 따라서 릴레이션은 BCNF이다. 삽입 이상 - 즉, Sara가 database를 가르칠 수 있는 새로운 선생이라면 두 개의 튜플이 삽입될 필요가 있다 (database, Sara, Korth) (database, Sara, Ullman) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
24
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속을 이용한 정규화(계속) 그러므로, classes를 아래와 같이 분해하는 것이 더 낫다 teaches text 이들 두 릴레이션은 4NF이다 course teacher database Avi database Hank database Sudarshan operating systems Avi operating systems Jim course book database Korth database Ullman operating systems Siberschatz operating systems Shaw Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
25
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속(MVD) R을 릴레이션 스키마라 하고 R 이고 R이라 하자. 아래와 같은 다중값 종속이 어떤 적법한 릴레이션 r(R)에 있어 t1[] = t2[]인 r내의 모든 튜플 t1과 t2의 쌍에 대해 r내에 다음과 같은 튜플 t3와 t4가 존재하면 R상에 존재한다 t1[] = t2[] = t3[] = t4[] t3[]=t1[] t3[R - ] = t2[R - ] t4[] = t2[] t4[R - ] = t1[R - ] Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
26
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
MVD(계속) 의 테이블 표현 R - - t1 a1 … ai ai+1 … aj aj+1 … an t2 a1 … ai bi+1 … bj bj+1 … bn t3 a1 … ai ai+1 … aj bj+1 … bn t4 a1 … ai bi+1 … bj aj+1 … an Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
27
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 R을 아래와 같은 3개의 공집합이 아닌 부분 집합으로 분할된 애트리뷰트의 집합을 가진 릴레이션 스키마라 하자. Y, Z, W Y Z(Y가 Z를 다중 결정한다)를 만족하는 필요 충분 조건은 모든 가능한 릴레이션 r(R)에 대해 아래와 같을 때이다 < y1, z1, w1 > r 이고 < y1, z2, w2 > r 이면 < y1, z1, w2 > r 이고 < y1, z2, w1 > r Z와 W의 행위는 동일하기 때문에 Y Z를 만족하는 필요 충분조건은 Y W를 따른다는 사실을 유의하라. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
28
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제(계속) 앞의 예에서: course teacher course book 위의 형식적 정의는 특정 Y값(course)이 주어지면 그것에 Z의 값(teacher) 집합과 W의 값(book)을 관련짓도록 하고 이들 두 집합은 어떤 의미에서 서로 독립적이라는 개념을 정형화하도록 한다 유의 - Y Z 이면 Y Z 이다 - 실제로 (위의 표기에서) Z1 = Z2를 가진다 요구는 다음과 같다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
29
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속의 사용 두 가지 방향으로 다중값 종속을 사용한다. 1. 릴레이션이 주어진 함수적 종속과 다중값 종속 집합하에서 적법한가의 여부를 결정하는데 2. 적법한 릴레이션의 집합에 제약 조건을 지정하는데. 따라서 주어진 함수적 및 다중값 종속의 집합을 만족하는 릴레이션에 만 관심을 두기로 한다 릴레이션 r이 주어진 다중값 종속을 만족하지 않으면, r에 튜플들 을 추가해 다중값 종속을 만족하는 릴레이션 r를 구축할 수 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
30
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속 이론 D를 함수적 및 다중값 종속의 집합이라 하자. D의 폐포 D+는 D에 논리적으로 내포된 모든 함수적 및 다중값 종속의 집합이다. 함수적 및 다중값 종속에 대한 건전하고 완전한 추론 규칙들 1. 재귀 규칙. 가 애트리뷰트의 집합이고 이면, 가 성립한다 2. 증가 규칙. 이고 가 애트리뷰트의 집합이면, 가 성립한다. 3. 이행 규칙. 이고 이면, 가 성립한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
31
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속 이론(계속) 4. 보충 규칙. 이면 R - - 가 성립한다. 5. 다중값 증가 규칙. 이고 R 및 이면 가 성립한다. 6. 다중값 이행 규칙. 이고 이면 - 가 성 립한다. 7. 중복 규칙. 이면 가 성립한다. 8. 유착 규칙. 이고 및 R 이고 = 이며 인 가 존재하면, 가 성립한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
32
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
D+ 계산의 단순화 다음과 같은 규칙 (규칙 1-8을 사용해 증명함)을 사용해 D+ 계산을 단순화할 수 있다. 다중값 합집합 규칙. 이고 이면, 가 성립한다. 공통 집합 규칙. 이고 이면, 가 성립한다. 차집합 규칙. 이고 이면, - 와 - 가 성립한다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
33
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 R = (A, B, C, G, H, I) D = {A B B HI CG H} D+의 멤버중 일부 : - A CGHI. A B이기 때문에, 보충 규칙(4)은 A R - B- A를 내포한다. R - B- A = CGHI이므로, A CGHI이다. - A HI. A B이고 B HI이므로, 다중값 이행 규칙(6)은 A HI - B를 내포한다. HI - B = HI이므로, A HI이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
34
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제(계속) D+의 멤버중 일부(계속) - B H. 유착 규칙(8)을 적용하면 B HI 가 성립한다. H HI 이고 CG HI = 이므로, 는 B, 는 HI, 는 CG및 를 H로 하는 유착 규칙을 만족해 B H를 얻는다. - A CG. A CGHI 이고 A HI. 차집합 규칙에 의해 A CGHI - HI. CGHI - HI = CG 이므로, A CG이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
35
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
4th Normal Form (4NF) R 이고 R인 형태의 D+내 모든 다중값 종속에 대해 다음중 하나를 가지면 함수적 및 다중값 종속의 집합 D에 대해 릴레이션 스키마 R은 4NF이다. - 가 당연하다 (즉, 또는 = R) - 가 스키마 R의 수퍼키이다. 릴레이션이 4NF이면, 그것은 BCNF이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
36
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
4NF 분해 알고리즘 result := {R} ; done := false; compute F+ ; while (not done) do if (there is a schema Ri in result that is not in 4NF) then begin let be a nontrivial multivalued dependency that holds on Ri such that Ri is not in F+ , and = ; result := (result - Ri) (Ri - ) ( , ); end else done := true; 유의: 각 Ri는 4NF이며, 분해는 무손실 죠인이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
37
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 R = (A, B, C, G, H, I) D = {A B B HI CG H} A B 이고 A가 R의 수퍼 키가 아니므로 R은 4NF가 아니다. 분해 a) R1 = (A, B) (R1 은 4NF이다) b) R2 = (A, C, G, H, I) (R2 는 4NF가 아니다) c) R3 = (C, G, H) (R3 는 4NF이다) d) R4 = (A, C, G, I) (R4 는 4NF가 아니다) A B이고 B HI 이므로, A HI 이고 A I 이다. e) R5 = (A, I) (R5 는 4NF이다) f) R6 = (A, C, G) (R6 는 4NF이다) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
38
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
다중값 종속 보존 R1, R2, …, Rn을 R의 분해라하고 D를 함수적 및 다중값 종속의 집합이라 하자. Ri에 대한 D의 한정은 다음으로 구성되는 집합 Di이다. - Ri의 애트리뷰트만을 내포하는 D+내의 모든 함수적 종속 - Ri 와 가 D+내에 있는 Ri 형식의 모든 다중값 종속 모든 i에 대해 ri가 Di를 만족하는 릴레이션 집합 r1(R1), r2(R2), …, rn(Rn) 각각에 대해 D를 만족하고 모든 i에 대해 ri = Ri(r)를 위한 릴레이션 r(R)이 존재하면, 분해는 D에 대해 종속성을 보존한다. 4NF로의 분해는 종속성이 보존되지 않을 수도 있다(다중값 종속에서 조차) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
39
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
죠인 종속을 이용한 정규화 죠인 종속은 스키마 R에 대한 적법한 릴레이션들의 집합을 주어 진 분해가 무손실 죠인 분해인 릴레이션들로 제한한다. R을 릴레이션 스키마라 하고 R1, R2, …, Rn을 R의 분해라 하자. R = R1 R2 … Rn이면 다음과 같을 때 릴레이션 r(R)은 죠인 종속 *(R1, R2, …, Rn)을 만족한다고 한다. r = R1(r) R2(r) Rn(r) Ri 중의 하나가 R 자신이면 죠인 종속은 당연하다. 죠인 종석 *(R1, R2)는 다중값 종속 R1 R2 R2와 동등하다. 역으로, 는 *( (R - ), )와 동등하다. 그러나, 어떠한 다중값 종속과도 동등하지 않은 죠인 종속이 있다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
40
Project - Join Normal Form (PJNF)
다음과 같은 형식의 모든 모든 죠인 종속에 대해 아래중의 적어도 하나를 가지면 함수적, 다중값 및 죠인 종속의 집합 D에 대해 릴레이션 스키마 R은 PJNF이다. *(R1, R2, …, Rn) 여기서 각 Ri R 이고 R = R1 R2 … Rn - *(R1, R2, …, Rn)은 당연한 죠인 종속이다 - 각 Ri 가 R의 수퍼키이다. 모든 다중값 종속은 또한 죠인 종속이므로, 모든 PJNF 스키마는 또한 4NF이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
41
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 다음을 고려해 보자 Loan-info-schema = (branch-name, customer-name, loan-number, amount). 하나 이상의 고객을 가진 각 대출이 하나 이상의 지점에 있으며 하나의 대출액을 가진다. 이들 관계는 독립적인 고로 다음과 같은 죠인 종속을 갖는다. *((loan-number, branch-name), (loan-number, customer-name), (loan-number, amount)) Loan-info-schema 는 위의 죠인 종속을 내포하고 있는 죠인 종속에 대해 PJNF가 아니다. Loan-info-schema 를 PJNF로 추출하려면, 그것을 죠인 종속으로 지정된 세 개의 스키마로 분해해야 한다. - (loan-number, branch-name) - (loan-number, customer-name) - (loan-number, amount) Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
42
Domain-Key Normal Form(DKNF)
도메인 선언. A를 애트리뷰트, dom을 값들의 집합이라 하자. 도메인 선언 A dom은 모든 튜플의 A값이 dom내의 값이 되도록 요구한다. 키선언. R을 K R인 릴레이션 스키마라 하자. 키 선언 Key(K)는 K가 스키마 R의 수퍼키이도록 요구한다 (K R). 모든 키 선언은 함수적 종속이지만 모든 함수적 종속이 키 선언은 아니다. 일반 제약 조건. 일반 제약 조건은 주어진 스키마상의 모든 릴레이션의 집합상의 술어이다. D를 도메인 제약 조건의 집합이라 하고, K를 릴레이션 스키마 R의 키 제약 조건의 집합이라 하자. G를 R의 일반 제약 조건이라 하자. D K가 G를 논리적으로 내포하면 스키마 R은 DKNF이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
43
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
예제 account-number 가 9로 시작하는 계좌는 최소 잔고가 2500불인 높은 이자의 특별한 계좌이다. 일반 제약 조건: “ t[account-number]의 첫째 자리가 9이면, t[balance] 2500이다 ” DKNF 설계: Regular-acct-schema = (branch-name, account-number, balance) Special-acct-schema = (branch-name, account-number, balance) Special-acct-schema의 도메인 제약 조건은 각 계좌에 대해 다음을 요구한다. - 계좌 번호 9로 시작한다. - 잔고는 2500 이상이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
44
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
PJNF 정의의 DKNF 표현 R = (A1, A2, …, An)을 릴레이션 스키마라 하자. Dom(Ai)는 애트리 뷰트 Ai의 도메인이라 하고, 이들 모든 도메인은 무한하다 하자. 그러면 모든 도메인 제약 조건 D는 Ai dom(Ai) 형식이다. 일반 제약 조건을 함수적, 다중값 또는 죠인 종속의 집합 G라 하자. F가 G내의 함수적 종속의 집합이라면, 키 제약 조건의 집합 K를 R 형식의 F+내의 그들 당연하지 않은 함수적 종속이라 하자. 스키마 R이 PJNF가 되는 필요 충분 조건은 R이 D, K 및 G에 대해 DKNF인 것이다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
45
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
데이터베이스 설계의 대안 허상 튜플 - 죠인 계산으로 사라지는 튜플 - r1(R1), r2(R2), …, rn(Rn) 을 릴레이션의 집합이라 하자 - 다음 릴레이션내에 t가 존재하지 않으면, 릴레이션 ri 의 튜플 t는 허상 튜플이다. Ri (r r … rn) 릴레이션 r r … rn 을 R1 R2 … Rn으로 정의된 모집단내의 모든 애트리뷰트를 내포하기 때문에 만능 릴레이션이라 한다. 만능 릴레이션을 분해하는 대신 데이터베이스내에 허상 튜플이 허용되면, 주어진 애트리뷰트의 집합으로 부터의 정규형 스키마의 집합을 합성하는 것이 더 낫다. Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
Similar presentations