Go to file
Salvo 'LtWorf' Tomaselli fd645a20c7
Merge pull request #33 from ltworf/readme
Improve readme
2020-08-24 14:42:25 +07:00
.github codeql 2020-08-13 14:34:00 +07:00
debian Version bump to 3.0 2020-08-12 21:12:55 +07:00
feedback-ltworf Return 3.0 from the online thingy 2020-08-12 21:25:55 +07:00
relational Use fstrings 2020-08-15 21:25:35 +07:00
relational_gui Update copyright 2020-08-24 10:41:50 +07:00
relational_readline Don't feel like writing stubs 2020-08-15 21:25:35 +07:00
samples - Change from 0.12 to version 1.0 2011-03-04 12:38:00 +07:00
setup Version bump to 3.0 2020-08-12 21:12:55 +07:00
tests_dir Test the load function 2020-08-15 20:53:46 +07:00
windows Rename launch command 2020-08-24 10:26:41 +07:00
.gitignore .gitignore 2020-08-12 19:36:26 +07:00
.travis.yml Run mypy on travis 2020-06-18 17:34:55 +07:00
CHANGELOG Make relation immutable 2020-08-13 14:34:54 +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 Copy also cli package 2020-08-24 10:40:01 +07:00
README.md README.md 2020-08-24 14:38:45 +07:00
SECURITY.md Better specify 2020-08-12 19:36:25 +07:00
complexity s/outher join/outer join/ 2016-01-03 09:05:15 +07:00
driver.py Use the new API 2020-08-13 14:34:57 +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 Fixes to the .desktop file 2016-04-27 19:48:00 +07:00
relational.py Update copyright 2020-08-24 10:41:50 +07:00

README.md

Relational

Relational an educational tool to provide a workspace for experimenting with relational algebra, an offshoot of first-order logic.

screenshot

I test it on GNU/Linux and Windows. It probably works on other systems too.

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 https://ltworf.github.io/relational/

Install

Run from sources

For the dependencies, check debian/control for the build dependencies.

You will need to run

make

to generate some .py files.

To launch the application, run

./relational.py

Syntax

These are some valid queries (using the provided example dataset)

# Join people and skills
people ⋈ skills

# Select people within a certain age range
σ age > 25 and age < 50 (people)

# Selection with complicated expression requires an extra set of () around the expression
σ (name.upper().startswith('J') and age > 21) (people)

# Cartesian product of people with itself, including only name and id
ρ id➡i, name➡n (people) * π name, id (people)

For the selection, python expressions are used.

The syntax is explained here: https://ltworf.github.io/relational/allowed_expressions.html