A CLI for basic algorithms on functional dependencies. Most of the algorithms are from A Guided Tour of Relational Databases and Beyond by Levene, Mark and Loizou, George.
See the lessons here (in French) on YouTube.
Basic algorithms on sets of Functional Dependencies (FD) Attributes are strings, FD are written "attr_A attr_B -> attr_C attr_A" Uses the algorithm by Gely et al. to enumerate closed sets [Gely10] Options: -h [ --help ] Help screen -i [ --input ] arg Input file: a set of FD -a [ --attrs ] arg A set of attributes -o [ --operation ] arg (=4) Operation to compute Available operations: SCHEMA: computes the set of attributes appearing in the input CLOSURE: computes the closure of the given attributes MINIMIZE: minimizes the given set of FDs CLOSED: computes the sets of closed sets ARMSTRONG: generates an Armstrong's base in SQL [Gely10] Gély, A.; Medina, R. & Nourine About the Enumeration Algorithms of Closed Sets You may need https://www.boost.org/doc/libs/release/libs/program_options/, to be installed using a command similar to sudo apt install libboost-program-options1.74-dev on Debian-based systems.