Functional Dependancies
These describe a relationship between attributes (columns) in a table. So we can think of these as relationships inside same table. This is the main component we need to do database normalizations and avoid huge messy tables and make consistent smaller simpler tables.
Notation
This means determines .
- - Determinant
- - Dependent
Rule 1
Right Side depends on Left Side.
If is given, must be only one possible value nothing else.
Rule 2
Multiple Determinants () can share same value, but one can have only ONE value.
Simply ask, If I know , can I tell ?
- if its yes, functionally dependent.
- otherwise not.
Armstrong's Axioms
These are a set of axioms like in Boolean Algebra, we use to combine different functional dependancies to find hidden relationships. These are useful to further normalize a database.

Reflexivity
If is inside , then
- eg:
Augmentation
If , you can add to both sides: .
- eg: , then .
Transitivity
If and , then .
- eg: , and , so .
Derived Axioms (Shortcuts)
Union
If and , then .
Decomposition
If , then and .
Pseudo Transitivity
If and , then
Attribute Closure ()
These are useful to determine if a attribute set is a candidate key or a given functional dependency holds.
Attribute closure is a set of attributes () such that, if I know the set of attributes , I can determine all attributes present in
- This is Always true for all attributes in
Algorithm
- Initialize
- Search for any dependency in where is in but is not
- Add to
- Repeat until no new attributes can be added
If includes all attributes of a relation , then is a super key of
Functional Dependency Closure ()
This is the set of all possible functional dependencies that can be logically derived from the functional dependency set
Used to evaluate equivalence between sets of dependencies and determine schema normalization (e.g., 3NF, BCNF)
| Attribute Closure (X+) | Dependency Closure (F+) | |
|---|---|---|
| What it contains | Attributes / Columns (e.g., ) | Functional Dependencies / Rules (e.g., ) |
| Input | A specific set of attributes and rules | A set of functional dependencies |
| Core Question | "What attributes can uniquely determine?" | "What are all valid rules that logically follow from ?" |
| Size & Computation | Small, fast to compute (linear/polynomial time) | Huge, exponential in size (computing directly is computationally expensive) |