What is 1NF?
No multivalued columns
What is 2NF?
1NF & no partial dependencies
What is 3NF?
2NF & no transitive dependencies
What is BCNF?
3NF & every dependency has the form X -> Y where, Y ⊆ X or X is a super key
What are the 3 Armstrong Axioms?
Reflexivity
Augmentation
Transitivity
What is Reflexivity?
If X ⊆ Y
then Y -> X
If you have A, B, C -> A, B, C
What is Augmentation?
If X -> Y
then X, Z -> Y, Z
If we have A, B -> C then we can say A, B, Z -> C, Z
What is Transitivity?
If X -> Y and Y -> Z
then X -> Z
What are the 6 steps in ‘Table Decompositions’?
When decomposing tables. What does T1 contain?
When decomposing tables. What does T2 contain?
Contain all columns from the largest PD
The determinant of the largest PD becomes the PK of T2
What is ‘Determinant’?
Left side of all functional dependencies
What are ‘Dependent Columns’
Right side of all functional dependencies
What are ‘Partial Dependencies’?
A FD where 1 or more non-key attributes are dependent on only part of a candidate key
What are ‘Transitive Dependency’?
A FD where 1 or more non-key attributes are dependent on a determinant that includes a non-key attribute
Decompose T into a normalized set of tables (BCNF)
T(A, B, C, D, E, F)
A, B -> C
A, B -> D, E
C -> D, E
E -> F
Non-trivial FDs:
C -> F
A, B -> F
CK: (A,B)
T1(#A, #B, <u>C</u>)
T2(#C, D, E)
T3(#E,F)
Decompose T into a normalized set of tables (BCNF)
T(A, B, C, D)
A, B -> C
A, B -> D
B, C -> D
A -> D
Non-trivial FDs:
A -> D
B, C -> D
CK: (A,B)
T1(<u>#A</u>, #B, C)
T2(#A, D)
What is 4NF?
BCNF &
Table has no multi-valued dependencies
What are the anomalies that lead to issues due to redundancy?
What is an ‘Insertion Anomaly’?
To insert redundant data for every new row