1) 필드의 집합 Closure = {A,B} 정의
2) 위의 주어진 함수 종속성에서 (1)에 해당하는 함수 종속 관계를 통해 A->C 임을 알 수 있다.
그러므로, 필드 집합인 Closure에 C를 추가
3) 함수 종속 관계 (2)에 대해서는 해당사항 X
4) 함수 종속 관계 (3)에 의해 B->E 라는 사실을 알 수 있으므로, 총합에 E를 추가
5) 함수 종속 관계 (4)에 대해서는 해당하는 사항 없음
6-1) 총합에 변화가 있다? 2)의 과정으로 돌아가서 알고리즘 실행
6-2) 총합에 변화가 없다? 알고리즘 종료
=> 총합의 결과는 {A,B,C,E,F} D가 빠졋으니 집합 {A,B}는 후보키가 아니다.
1) 필드의 집합 Closure = {A,B,D}
2) (1) 을통해 총합에 C를 추가 Closure = {A,B,C,D}
3) (2)는 해당 사항 없음
4) (3)에 의해서 총합에 E를 추가 Closure = {A,B,C,D,E}
5) (4)에 의해서 총합에 F를 추가 Closure = {A,B,C,D,E,F}
6-1) 총합에 변화가 있다? 2)의 과정으로 돌아가서 알고리즘 실행
6-2) 총합에 변화가 없다? 알고리즘 종료
=> 총합에 결과는 Closure = {A,B,C,D,E,F} 이므로, ABD는 후보키이다.
각 함수 종속성의 좌변을 초기값으로 해서 계산을 시작
{A, B}
→ {A, B, D, F} (AB → DF)
→ {A, B, C, D, E, F} (A →C, D → AE)
{A}
→ {A, C} (A → C)
{D}
→ {A, D, E} (D → AE)
→ {A, C, D, E} (A → C)
-> 이 문제같은 경우는 주어진 조건 내에서 바로 초기값이 나왔는데,
초기값에서 바로 안나오는 경우는 여러 종속성을 조합해서 풀어야 함