pizzaroot
데이터베이스 기말고사 공부 기록 본문
Get ready 하셔야죠
Canonical Cover 구하기
Extraneous attribute를 좌항에서 지운 FD를 F1이라 하면 F⊆F1은 보장됨
Extraneous attribute를 우항에서 지운 FD를 F2이라 하면 F2⊆F은 보장됨
따라서,
α→β의 좌항에서 attribute A를 지울때는 F에서 α-{A}→β가 유도될수 있는지만 확인하면 됨
α→β의 우항에서 attribute B를 지울때는 F2에서 α→β가 유도될수 있는지만 확인하면 됨
또한 F-(α→β)≡F를 만족하면 α→β를 아예 삭제하면 됨
즉,
α→β에서 α-{A}의 closure가 β를 포함하면 A는 extraneous attribute임
F2에서 α의 closure가 β를 포함하면 α→β의 우항에서 attribute B가 extraneous attribute임
참고로,
α→β에서 겹치는 attribute가 있으면 우항에서 모두 지우면 됨. (α→β를 α→β-α로 바꾸면 된다.)
예제)
R = (A, B, C, D, E, G)
F : {AB→CD, ADE→DEG, B→CG, G→DE}
ADE→DEG에서 DE가 겹치므로 ADE→G
AB→CD에서 B의 closure은 B→BCDEG이므로 A는 extraneous attribute
B→CD에서 C를 제거한 후 B의 closure은 B→BCDEG이므로 C는 extraneous attribute
B→D에서 D를 제거한 후 B의 closure은 여전히 B→BCDEG이므로 D도 extraneous attribute
Fc : {ADE→G, B→CG, G→DE}
참고로 attribute closure을 쉽게 구하는 방법은 위의 Fc에서 AB의 closure을 구해보자.
1. 먼저 AB를 적는다
2. Functional dependency f들의 좌항 중에서 AB에 포함된 것이 존재하면 우항도 적은 것에 추가한다.
B→CG에서 B는 AB에 포함되므로 CG를 추가
ABCG
3. 반복한다.
G→DE에서 G는 ABCG에 포함되므로 DE를 추가
ABCDEG
따라서 AB의 closure은 ABCDEG
'공부' 카테고리의 다른 글
컴퓨터그래픽스 중간고사 공부 기록 (0) | 2023.10.19 |
---|---|
데이터베이스프로그래밍 중간고사 공부 기록 (0) | 2023.10.19 |
3학년 1학기 후기 (0) | 2023.06.26 |
데이터베이스 중간고사 공부 기록 (0) | 2023.04.15 |