Just a tool to simplify relation normalization process, evaluate database design.
And more!
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
All code is kept in one file for portability and ease of execution.
User input binding with dynamic injection, same idea how Spring implement IoC 🤞. I love Spring btw.
Follow TDD but in a suck way 💀.