Concept Flow - Closure of attributes
Start with attribute set S
Find all FDs where LHS is subset of S
Add RHS attributes of these FDs to S
Check if S changed
Repeat process
Return S+
Start with a set of attributes, repeatedly add attributes implied by functional dependencies until no new attributes can be added.