Relational an educational tool to provide a workspace for experimenting with relational algebra, an offshoot of first-order logic.
It works on GNU/Linux, Windows and OS X.
It provides:
- A GUI that can be used for executing relational queries
- A standalone Python module that can be used for executing relational queries, parsing relational expressions and optimizing them
- A command line interface
More documentation can be found here http://ltworf.github.io/relational/
Binary download for Windows can be obtained from the website.
For Linux, check your distribution's packages, relational is available on Debian and Ubuntu.
These are some valid queries
σage > 25 and rank == weight(A)
σ (name.upper().startswith('J') and age>21 )(people)
Q ⋈ π a,b(A) ⋈ B
ρid➡i,name➡n(A) - π a,b(π a,b(A)) ∩ σage > 25 or rank = weight(A)
π a,b(π a,b(A))
ρ id➡i,name➡n(π a,b(A))
A ⋈ B
If it needs some dependencies:
- Qt5
- Python 3.4 or greater
- PyQt5
- pyuic5 and pyrcc5
You will need to run
make
to generate some .py files.
To launch the application, run
./relational_gui.py
or
python3 relational_gui.py