2015-02-11 09:56:21 +07:00
|
|
|
|
Relational an educational tool to provide a workspace for experimenting with *relational* *algebra*, an offshoot of first-order logic.
|
|
|
|
|
|
|
|
|
|
It provides GUI that can be used for executing relational queries, and also provides a command line interface.
|
|
|
|
|
|
|
|
|
|
Provides a standalone Python module that can be used for executing relational queries, parsing relational expressions and optimizing them.
|
|
|
|
|
|
2015-05-31 12:12:10 +07:00
|
|
|
|
Official website
|
|
|
|
|
================
|
|
|
|
|
|
|
|
|
|
More documentation can be found here http://ltworf.github.io/relational/
|
|
|
|
|
|
|
|
|
|
|
2015-02-11 09:56:21 +07:00
|
|
|
|
Install
|
|
|
|
|
=======
|
|
|
|
|
|
2015-05-31 12:12:10 +07:00
|
|
|
|
Binary download for Windows can be obtained from the website.
|
2015-02-11 09:56:21 +07:00
|
|
|
|
|
|
|
|
|
For Linux, check your distribution's packages, relational is available on Debian and Ubuntu.
|
|
|
|
|
|
|
|
|
|
|
2015-02-11 10:07:39 +07:00
|
|
|
|
Syntax
|
|
|
|
|
======
|
|
|
|
|
|
|
|
|
|
These are some valid queries
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
σage > 25 and rank == weight(A)
|
|
|
|
|
σ (name.upper().startswith('J') and age>21 )(people)
|
2015-05-31 12:12:10 +07:00
|
|
|
|
Q ⋈ π a,b(A) ⋈ B
|
|
|
|
|
ρid➡i,name➡n(A) - π a,b(π a,b(A)) ∩ σage > 25 or rank = weight(A)
|
2015-02-11 10:07:39 +07:00
|
|
|
|
π a,b(π a,b(A))
|
|
|
|
|
ρid➡i,name➡n(π a,b(A))
|
2015-05-31 12:12:10 +07:00
|
|
|
|
A ⋈ B
|
2015-02-11 10:07:39 +07:00
|
|
|
|
```
|
2015-02-11 09:56:21 +07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Run from sources
|
|
|
|
|
================
|
|
|
|
|
|
|
|
|
|
To launch the application, run
|
|
|
|
|
|
2015-02-11 10:07:39 +07:00
|
|
|
|
```
|
|
|
|
|
./relational_gui.py
|
|
|
|
|
```
|
2015-02-11 09:56:21 +07:00
|
|
|
|
|
|
|
|
|
If it needs some dependencies:
|
2015-02-19 07:00:47 +07:00
|
|
|
|
Qt5, Python 3.4 or greater, PyQt5
|
2015-02-11 09:56:21 +07:00
|
|
|
|
|
2015-05-31 12:12:10 +07:00
|
|
|
|
It can run on osx but bugreports about that will be rejected.
|
2015-02-11 09:56:21 +07:00
|
|
|
|
|