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.