Go to file
Caleb Fontenot cf65462979 Modify Makefile for macOS 2023-02-16 10:07:40 +07:00
.github Add actions 2020-11-23 22:50:14 +07:00
debian Fix d/watch 2021-10-27 09:48:43 +07:00
feedback-ltworf Return 3.0 from the online thingy 2020-08-12 21:25:55 +07:00
po Modify Makefile for macOS 2023-02-16 10:07:40 +07:00
relational Ignore case to decide format 2022-01-23 13:44:01 +07:00
relational_gui Add parent widget 2020-12-30 12:27:29 +07:00
relational_readline Do not replace values before passing to gettext 2020-10-24 18:23:59 +07:00
samples - Change from 0.12 to version 1.0 2011-03-04 12:38:00 +07:00
setup Bump version 2020-09-20 21:50:27 +07:00
tests_dir Python test for multiline 2020-08-26 17:15:24 +07:00
windows Bump version 2020-09-20 21:50:27 +07:00
.gitignore .gitignore 2020-08-12 19:36:26 +07:00
CHANGELOG CHANGELOG 2020-10-22 08:16:54 +07:00
CODE_OF_CONDUCT.md Update CoC 2021-08-27 14:26:29 +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 Modify Makefile for macOS 2023-02-16 10:07:40 +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 Colorize failed test output 2020-08-26 21:17:05 +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 Add some localization 2020-10-22 08:16:54 +07:00
requirements.txt Add requirements file 2020-09-21 22:39:03 +07:00
test-requirements.txt File with requirements to run the tests 2020-11-23 22:47:04 +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