CalculateFDClosure(F)

Closure of a Set of Functional Dependencies Algorithm to compute the closure F⁺, given F

input : Set F of Functional Dependencies
output : Closure F⁺ of F

CalculateAttributeClosure(F, A)

The algorithm for calculating attributes closure A⁺ is based on the repeated use of the transitivity rule and has a runtime complexity that is quadratic in the size of F

input : A set F of Functional Dependencies over a relation schema R and a set A ⊆ R of attributes
output : The closure A⁺ of attributes for which A→A⁺ holds

CalculateMinimalCover(F)

Algorithm for computing a minimal cover

input : A set F of FDs
output : A minimal cover Fc

DetermineAllCandidateKeys(F)

Determine all candidate keys

input : The relational schema R and a set F of Functional Dependencies over a relation schema R
output : Candidate keys

RelationSchemaIsIn3NF(R, F)

Algorithm to check if a relation schema R with a set F of FDs is in the 3NF

input : A relation schema R and a set F of FDs on R
output : true, if the relation schema is in the 3NF; false, otherwise

RelationSchemaIsInBCNF(R, F)

Algorithm to check if a relation schema R with a set F of FDs is in the BCNF

input : A relation schema R and a set F of FDs on R
output : true, if the relation schema is in the BCNF; otherwise, false and X → Y that first violates the BCNF

Calculate3NFDecomposition(R, F)

Decompose a relation into the 3NF

input : A relation schema R and a set F of FDs on R
output : A decomposition of R into the 3NF relation schemas R1, ..., Rn with the corresponding sets F1, ..., Fn of FDs

Chasetest(R, F, DR)

Chase test calculator that helps determine if decomposition is lossless or not.

input : A relation schema R, a set F of FDs on R, and decomposed relations DR
output : Determining whether this decomposition is lossless or not

CalculateBCNFDecomposition(R, F)

Decompose a relation into the BCNF

input : A relation schema R and a set F of FDs on R
output : A decomposition of R into the BCNF relation schemas R1, ..., Rn with the corresponding sets F1, ..., Fn of FDs