Normalization: Convert a schema to normal form that guarantees good design.
Redundant Data: If some fields in the database can be inferred from others when removed, they are redundant.
e.g. Don’t store this: (part → manufacturer, manufacturer → manAddress, seller → sellerAddress)
Update Anomaly: When a change must update many entries to stay consistant (e.g. when updating seller addresses, all tuples with that seller must change)
Deletion Anomaly: When a deletion removes more data than intended (e.g. when deleting the 1983 Walmart entry, Walmart’s address is lost)
Functional Dependency: $X \rightarrow Y$ (x functionally determines y)
Superkey: A superkey is a FD that determines every other attribute
Online Checkers: raymondcho.net
Equivalent Sets of FDs: $S_1$ is equivalent to $S_2$ when $S_1$ holds $\Leftrightarrow S_2$ holds (e.g. $S_1=\{A \rightarrow BC\}, S_2=\{A\rightarrow B, A\rightarrow C\}$)
Closure Test: To determine if an FD follows from a set of FDs: (e.g. S = {A → B, B → C}, want to know if FD = A → BC follows)