Skip to content

Using relation algorithms on functional dependencies to nomalize relation into 3NF and BCNF

Notifications You must be signed in to change notification settings

trung-kieen/decomposition-relational-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Just a tool to simplify relation normalization process.

menu decompose 3nf decompose bcnf

Usage

python3 main.py 

Todos

  • 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

Issues

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.

Disclaimers

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.