tteguayco / relearn

Web application to provide support for learning relational query languages.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Relearn Open Source Love License

What is it?

Relearn is a software tool thought to help students when they are starting to learn Relational Algebra, which is a relational query language proposed by Edgar F. Codd in his 1970 paper called "A Relational Model of Data for Large Shared Data Banks".

This project has actually emerged as a web version of the existing JITRAX, which was a end-of-degree project carried out in La Laguna University in the academic year 2016/17.

Features

  • Execution of complex Relational Algebra queries (see the table below).
  • Translation of Relational Algebra queries into SQL equivalent statements.
  • Easy specification for the database you are working with: from file or GUI.
  • Detection and explanation of both syntax and semantic errors when executing queries.
  • Exportation of queries and database specifications to files.

Relational Algebra operators

Operator Syntax Example
PROJECTION PROJECT attrlist (expression); PROJECT A, B (R);
SELECTION SELECT [condlist] (expression); SELECT [(A < 1) AND (B = 'b')] (R);
RENAME RENAME attrlist (expression); RENAME C, D (R);
CARTESIAN PRODUCT expression x expression; R x S;
UNION expression UNION expression; R UNION S;
DIFFERENCE expression - expression; R - S;
INTERSECTION expression INTERSECT expression; R INTERSECT S;
NATURAL JOIN expression * expression; R * S;
DIVISION expression / expression; R / S;
JOIN expression JOIN expression [condlist] R JOIN S [R.A = S.A];
LEFT OUTER JOIN expression LEFT OUTER JOIN expression [condlist] R LEFT OUTER JOIN S [R.A = S.A];
RIGHT OUTER JOIN expression RIGHT OUTER JOIN expression [condlist] R RIGHT JOIN S [R.A = S.A];
FULL OUTER JOIN expression FULL OUTER JOIN expression [condlist] R FULL OUTER JOIN S [R.A = S.A];

Documentation

There is a user guide containing usages and examples available here. Furthermore, it is expected to generate some useful documentation for developers in the future.

How to contribute

Do you want to collaborate? We will really appreciate that!

  • If you detect any error while using the app which should be fixed, you can open a new issue on GitHub to let the contributors know about it. Please, give as many details about the incidence as you can: screenshots, steps to reproduce the error, etc.

  • You may also want to make improvements on the app on your own or to contribute by adding new functionality. If so, you can clone the project's repo, make all the changes you want in a new branch and then send them through a Pull Request to be reviewed by the contributors. You can find further information about GitHub's Pull Requests here.

Heroku deploy

The app is currently running on a domain thanks to Heroku :-)

Check it out here: https://relearn-ull.herokuapp.com/

Authors

The authors of this project are Jesús Manuel Jorge Santiso and Teguayco Gutiérrez González, professor and former student of La Laguna University, respectively.

Screenshots

database database1 query_execution

About

Web application to provide support for learning relational query languages.

License:GNU General Public License v3.0


Languages

Language:Java 78.7%Language:JavaScript 9.7%Language:HTML 7.9%Language:ANTLR 2.2%Language:CSS 1.5%