F closure 유도하기
<Armstrong’s axioms>
<additional rules>
8.9 Modeling Temporal Data
BCNF Process
- E-R Data를 relational data로 변환하기(1NF)
- business rule이나 constraints에 의한 functional dependencies 정의하기
- trivial(좌변이 우변을 포함)하지 않는 functional dependency의 좌변에 나오는 attribute sets에 대한 closure 계산 (A→B일 때 A+)
- closure of attribute set(A+)이 relation의 모든 attributes(R)가 아니라면(A+≠R) 그 attribute set은 relation의 superkey가 아니고, 해당 functional dependency는 BCNF 조건을 위반
- BCNF를 위반하는 functional dependency를 중심으로 lossless decomposition 실행
- relation R-(B-A)가 BCNF인지 검사 후 lossless decomposition하는 과정을 재귀적으로 반복
<aside>
💡 언제 쪼개나? >> fd 좌변 중 하나(A)의 closure(A+)가 R이 아닐 때
</aside>
fd 좌변 중 하나(A)의 closure(A+)가 R이 아니다.
= A가 R의 superkey가 아니다.
= A → B가 BCNF의 조건을 위배한다.
<aside>
💡 어떻게 쪼개나? >> R1 = A-B and R2 = R-(A-B)
</aside>