Relational Database Normalizer πŸ—ƒοΈ

R()R_{}()

Features:

  • Verify normal forms and possible candidate keys.
  • Normalize relation schemas up to 4NF including EKNF.
  • Calculate the canonical cover of your functional dependencies.
  • Perform the synthesis algorithm and decomposition algorithm.
  • Get a full explanation of every step in the process.
  • View the result in a nice LaTeX output.

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 "Calculate & Show Result" button.
  4. Expand the menus below to see the solutions.
Candidate Keys and Normal Forms

Normal Forms

1NF2NF3NFEKNFBCNF4NF

Candidate Keys

βˆ…\empty
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
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