Currently supported functionality: (July 31, 2017)
- Correctly parses user input for relation schema, functional dependencies, and multivalued dependencies.
- Calculates the closure of each element in the power set of given attributes.
- Calculates minimum-set (candidate) keys and superkeys.
- Calculates a minimum (canonical) cover of functional dependencies on the given set of functional dependencies.
- Derives complete set of functional dependencies based on input set.
- Checks if given relation schema is in First (1NF), Second (2NF), Third (3NF), Boyce-Codd (BCNF), and Fourth (4NF) normal forms.
- If given relation schema is not in 3NF, will decompose input relation in a lossless and functional dependency preserving manner.
- If given relation schema is not in BCNF, will decompose input relation in a lossless but not necessarily functional dependency preserving manner.
To-do in the future:
- Improve output interface.
- If given relation schema is not in Fourth Normal form, decompose into 4NF relations.
This is a personal project and not a professionally managed service. If you find a programming mistake please report it so it can be fixed.