Just a tool to simplify relation normalization process.
python3 main.py
- Attribute closure
- Armstrong: ir2, ir3, ir4, ir5
- Check two Functional Dependency (FD) set is equivalent
- Find closure Functional Dependency set (FDs) from Armstrong rule set
- Minimal cover of FDs
- Find key from FDs
- Check collection of attribute is super key of relation
- Decompose relation to 3NF from FDs
- Decompose relation to BCNF from FDs
- Menu interactive
- Check current Normal Form of relation (in general normal form definition)
- Test Nonadditive Join Property after decomposition relation
- Args parser integrate click
- Reduce random order of set iterator in minimal_cover method
If you encounter any issues while using feel free to open a new issue. When reporting an issue, please include any relevant logs or screenshots.
All code is kept in one file for portability and ease of execution.
Manually providing user inputs became tedious, so I implemented dynamic input injection.