## 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