Go to file
Salvo 'LtWorf' Tomaselli 6315bebc61 Fix crash in case of empty history
Without that check, an empty history causes a crash
2016-01-02 15:59:02 +07:00
debian Merged debian changes from revision -2 2015-10-23 17:10:41 +07:00
feedback-ltworf Prepare for next release 2015-09-15 01:58:17 +07:00
relational Added function to split an assignment expression 2016-01-02 15:25:43 +07:00
relational_gui Fix crash in case of empty history 2016-01-02 15:59:02 +07:00
relational_readline Use split_query function 2016-01-02 15:27:51 +07:00
samples - Change from 0.12 to version 1.0 2011-03-04 12:38:00 +07:00
setup Prepare for next release 2015-09-15 01:58:17 +07:00
test New query optimization 2015-12-31 14:26:28 +07:00
windows Removed windows fonts 2015-11-11 16:35:22 +07:00
.gitignore Use resource file 2015-09-11 13:57:34 +07:00
CHANGELOG Changes 2016-01-02 12:37:20 +07:00
COPYING renamed equijoin to thetajoin 2008-07-17 22:53:32 +07:00
CREDITS - termcolor modified to use bold by default 2011-04-01 10:28:47 +07:00
Makefile Install manpages from Makefile 2015-10-09 08:52:42 +07:00
README.md Hopefully improved the README 2016-01-01 12:35:12 +07:00
TODO - Using more the colored class 2011-05-02 10:02:06 +07:00
complexity Get rid of the last remains of galileo 2013-12-27 00:47:48 +07:00
driver.py Change how python tests are executed 2015-11-18 12:05:56 +07:00
relational-cli.1 Refreshed manpages 2015-11-06 16:13:36 +07:00
relational.1 Refreshed manpages 2015-11-06 16:13:36 +07:00
relational.desktop Installs icon for .desktop file 2015-09-11 14:05:23 +07:00
relational_gui.py Better suggestion on error 2015-11-11 17:04:47 +07:00

README.md

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

Official website

More documentation can be found here http://ltworf.github.io/relational/

Install

Binary download for Windows can be obtained from the website.

For Linux, check your distribution's packages, relational is available on Debian and Ubuntu.

Syntax

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

Run from sources

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

Running on OS X

You can follow the instructions on running from sources to run on OS X.

If you encounter problems, don't ask me for help. I don't have an Apple.

If you encounter problems and overcome them, please tell me how to update this README.