File: README.md

package info (click to toggle)
relational 3.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,184 kB
  • sloc: python: 2,982; makefile: 101
file content (70 lines) | stat: -rw-r--r-- 1,825 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Relational
==========

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

![screenshot](https://ltworf.codeberg.pages/relational/screenshots/3.png)

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

[![Donate to LtWorf](docs/donate.svg)](https://liberapay.com/ltworf/donate)


Official website
================

More documentation can be found here https://ltworf.codeberg.pages/relational/


Install
=======

* Windows:https://ltworf.codeberg.pages/relational/download.html?exe
* Debian based: `apt-get install relational`
* Everyone else: Download the sourceshttps://ltworf.codeberg.pages/relational/download.html?tar.gz


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.codeberg.pages/relational/allowed_expressions.html