Simply a single vertical representation of data storage in database table
Once providing some columns A, the other columns B are implied. This is said to be B functionally depends on A, or
A -> B
The column that comprises key
A set of columns that is minimum, and is able to determine the rest of columns in table
partial functional dependency
Part of the key its own is able to determine some columns
full functional dependency
Only the key itself is able to determine some columns, no partial functional dependency available
transitive functional dependency
A functionally depend on another columns
B, which by its own depends on one another columns
All the columns mentioned here not necessarily be key or key column at all.
Ensure every column is atomic
Ensure key columns have full functional dependency to non-key columns.
Note that partial dependency between non-key columns is fine
Ensure no transitive functional dependency between non-key column.
This means transitive dependency between key column is fine
Ensure no transitive functional dependency between key column