Relational Database Normalization Calculator

v.1.1.0 | Last update:

This tool verifies and calculates all normalforms up to 4NF for a given relation schema and its functional dependencies. It will calculate in which normal form the original schema was and its canonical cover of functional dependencies. The schema is then normalized via both the synthesis and decomposition algorithms, alongside an explanation for each step.

How to use:

  1. Enter the relational schema in the first input box. Every character is interpreted as an attribute.
  2. Enter the set of functional dependencies in the second input box.
    Separate each functional dependency with a newline.
    Utilize -> for regular functional dependencies
    Utilize ->> for multivalued dependencies.
  3. Press the "Solve" button.
  4. Expand the menus below to see the solution.

Candidate Keys and Normal Forms

Normal Forms

1NF2NF3NFEKNFBCNF4NF

Candidate Keys

Canonical Cover of Functional Dependencies

The canonical cover of functional dependencies is a minimal set of FDs which is equivalent to the original set of functional dependencies. It is needed for normalizing into 3NF via the synthesis algorithm.

Please note that there can exist multiple canonical covers depending on the order of operations!
The solution given here may not be the only valid one.

I. Left Reduction
II. Right Reduction
III. Remove FDs with empty sets
IV. Combine FDs with same domain
Synthesis Algorithm (3NF)

The synthesis algorithm converts any relation losslessly and dependency-preserving into (at least) 3NF.

Please note that different relations can be synthesized depending on the order of operations!
The solution given here may not be the only valid one.

I. Calculate the canonical cover of FDs (see above)
II. Convert every FD into its own relation
III. Add a relation with a candidate key if no relation already includes it
IV. Remove all relations which are already included in other relations
Decomposition Algorithm (BCNF, 4NF)

The decomposition algorithm converts any relation losslessly into any desired normal form up to 4NF. The algorithm splits every non-conforming relation into two until every relation fulfills the target normal form. Note that the decomposition may not produce dependency-preserving relations, unlike the synthesis algorithm!

Please note that different relations can be synthesized depending on the order of operations!
The solution given here may not be the only valid one.

Decomposition into BCNF

Decomposition into 4NF