Giter Site home page Giter Site logo

dbis-uibk / relax Goto Github PK

View Code? Open in Web Editor NEW
276.0 276.0 96.0 44.91 MB

RelaX - a relational algebra calculator

Home Page: http://dbis-uibk.github.io/relax/

License: MIT License

HTML 0.24% CSS 0.57% JavaScript 0.71% TypeScript 81.59% Python 0.35% SCSS 3.28% EJS 0.56% PEG.js 12.69%

relax's People

Contributors

0x03a9 avatar 3ap avatar ciromoura avatar danielsbastos avatar dependabot[bot] avatar evazangerle avatar frodito avatar mafo3186 avatar martinaagata avatar michaelrampl avatar peblo-code avatar physikerwelt avatar r-prem avatar ragtime avatar rlaiola avatar rprem1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

relax's Issues

[Test] Top menu doesn't work

The top menu in the test version (the one that says "Calculator", "Sprache", "Feedback", "Hilfe (en)") doesn't work correctly. Clicking "Calculator" or selecting a different language with "Sprach" leads to a 404 error.

The same happens when clicking on "Feedback" and then using the browser's back button.

Division result is not expected

Test case:

gist ID: 0c3296418a9053b5132034885511e4d9

Relational Algebra

(π SID, CID (Grade)) ÷ (π SID (Student))

The expected result should be:

Grade.CID
---
CS305

but the actual result is empty

Not sure if my understanding is correct


The interesting thing is, it works for another working example:

(π SID, CID (Grade)) ÷ (π CID (Course))

The expected and actual result is

Grade.SID
---
1000

Couple of Missing Clauses and Subqueries ❗️

Hello!

First of all, fantastic product! Great tool to easily see the relational algebra equivalent of SQL code.

The only downsides I noticed were:

  1. It doesn't seem to understand the IN or EXISTS clause.
  2. I'm not sure it understands subqueries.

Do you plan on implementing this? Let me know if I can help in any way!

Cheers!

SQL conversion to relational algebra not working for this SELECT statement

This SQL script is not converting to a functioning relational algebra statement: select distinct teaches.course_id from teaches join instructor on instructor.ID = teaches.ID where instructor.name = 'Brandt'. This statement was used on the Silberschatz - UniversityDB database and works perfectly fine but when it is converted to relational algebra it returns a error, this is the relational algebra statement it returns: π teaches.course_id σ instructor.name = 'Brandt' teaches ⨝ instructor.ID = teaches.ID instructor. Here is the error: Error: could not find column "instructor.name" in schema [teaches.ID : number, teaches.course_id : string, teaches.sec_id : number, teaches.semester : string, teaches.year : number].

Translation in Spanish?

This is an awesome tool and it's used in my university (computer science) based in Mexico, I'd like to contribute with a Spanish translation for now and maybe any new features that can be added.

I've never worked with i18next to be honest, but I'd like to know what the process would be to do the translation. I see the json file under /locales/, but I'm not sure if that's all I'd have to do.

Add UTF-8 support and option to use case-insensitive attributes

Hello,
it would be great if UTF-8 support and option to use case-insensitive attributes were added.

Test case (UTF-8):
Group editor:
student = {
studentid:number, firstname:string, lastname:string, fieldofstudy:string
6, Lukas, Novotný, N-AplInf
}

Error: Expected "\n", "\r\n", "}", [-_a-z0-9.]i or delimiter but "ý" found.

Add sample queries to gist

For newbies, adding one or multiple example queries to the underlying gist and showing/adding these example queries to the query input field might help getting started (as only the execute query-button needs to be clicked to run a first query).

University Database from textbook Database System Concepts by Silberschatz, Korth and Sudarshan

I've created a dataset for the University schema from the Database System Concepts book by Silberschatz, Korth and Sudarshan, as a gist available at:
https://gist.github.com/ssudarshaniitb/f45feaaa1c7543085408ef4d9b1c13b1
If you can add it as one of the datasets that are available on the menu, it would be great!

Thanks for creating a very useful tool, I will put up a link to your site on the home page of the textbook.

Sudarshan

Execute parts of query

For developing, analysing and debugging queries, it would be quite convenient to be able to mark parts of a query (e.g., a subquery) and execute only this marked part.

Date comparison

Hello!
Thanks for the excellent project, it actually helps me understand relational algebra by writing SQL queries.

I am trying to do a date comparison, but there is always an error message coming up saying I am comparing to a number.
Dates are stored properly in my dataset, and I am trying like this date = '2016-01-01' with or withour quotes.
Any hints? The documentation didn't mention something about that.
Thanks

Cross browser tests

At the moment, there are only unit-tests which can be found in test.html when executing "yarn serve".
Additionally, cross browser selenium tests would make sense to have a fully working CI.

Github Project Overhaul

  • How does relax work
  • How to build
  • How to contribute (add languages)
  • Wiki
  • Pull Requests
  • Issues, Labels, Milestones
  • Branches

ERROR with project / select

I used this program for an assignment and for practice.
Now i am using it again, with the same exact codes i had before, and the outputs are different now.
Please fix it!

Keep up the good work

One issue to fix ;-)

The tool is very helpful to verify logical developments!
Please keep up your motivation and continue the good work!

Thanks!

Export query to file

For submitting solutions e.g., to teachers, a standardized export (e.g., to a file) would be convienient. This could be a simple text-file holding either the greek symbols or the symbol names (pi, sigma). I'd prefer to user symbol names due to possible encoding problems.

Add UNION ALL and δ

UNION ALL is basically Union without the elimination of multiple equal values, and small delta eliminates the multiple equal values

Extend Language Support

Support the following languages

  • English
  • German
  • French
  • Spanish
  • Portuguese
  • Italian
  • Dutch
  • Polish
  • Russian

Add a list of recently used gists

While the process of uploading data through gists is quite smooth, it can be a pain to need to re-enter gist id again and again. This might come up if you are switching between gists frequently or accidentally close the page. To address this, I propose maintaining a list of recently used gists in localstorage and populating either a dropdown or straight list just below the "load dataset stored in gist" section of the data selection tab.

Thanks for making such a great project, it's very fun.

Left arrow operator doesn't work

When using the left arrow operator to rename columns, the built-in arrow from the toolbar doesn't seem to work, no matter how you format it.

rho manufacturer <- maker (Product) --this works
rho manufacturer ← maker (Product) --this throws errors

If the left arrow operator is meant to work as the assignment operator (like in some dialects of relational algebra), that too doesn't seem to be working.

Build instructions

It would be great to have instructions on how to build the bundle for deployment myself especially since there seem to be external dependencies.

anti-join bug

Code:
(π P.code, P.name, P.size, S.name, S.location, S.phone (S ⨯ E ⨯ P))

(π P.code, P.name, P.size, S.name, S.location, S.phone (S ⨯ E ⨯ P))

Dataset:
group: UIBK - R, S, T
description: Tables from and for the lecture Databases: Foundations, Data Models and System Concepts - University of Innsbruck chapter 3

PIZZA = {
code, name, size
0, 'magaritta', 10
1, 'magaritta', 12
2, 'salat og kebab', 12
3, 'khaans', 12
4, 'ananas', 8
13, 'cursed pizza', 69
}

STORE = {
name, location, phone

'khans pizza', 'Vejle', 1111
'Sunshine', 'Randers', 2222
'Pizza cafe', 'Aarhus', 3333
'Forladt shop', 'Aarhus', 3333
}

SELLS = {
store_name, code, price

'khans pizza', 3, 90
'khans pizza', 1, 65
'Sunshine', 1, 84
'Sunshine', 2, 10
'Sunshine', 4, 70
'Pizza cafe', 1, 60
'Pizza cafe', 2, 40
'Pizza cafe', 4, 45
}

Show cardinalities in execution plan

In the current version, cardinalities (sizes of intermediary results) are only shown when hovering the mouse over a specific node. To get a better overview of the sizes of the intermediary results, I'd rather display the cardinality of any given node within the node (e.g., below the operator in smaller font).

Introduce Group restrictions

  • restrict set of usable operators for a group
  • restrict language/mode for a group
  • provide exercises/instructions for a group

Could I add the Korean translation?

I think this calculator is very useful for education in "Database Lecture & Study".
I'd like to add the Korean translation by "pull request" and introduce this calculator to my Korean friends!

Export execution plan tree to file

Instead of having to take a screenshot of the execution plan, it would be convenient to be able to export the tree to e.g., some image format or pdf.

relalgFromSQLAstRoot

Hey,
I cant find the implementation of relalg.relalgFromSQLAstRoot anywhere.
Where is it?
Thank you

Unable to use popup menus in group editors

When you hover on the "import SQL-dump" or "add new relation" buttons a popup menu appears with other options, but as soon as you move the cursor (and stop hovering the main button) the popup menu disappear, so for example I'm unable to use he "import SQL-content" button

How translate from SQL to algebra?

Hi,

you write on your start page.

translates simple SQL-statements to RelAlg

But how to translate simple sql statements to RelAlg.

I can't find a button for this cool option. See my screenshot

thx for help

grafik

GitHub Pages Down

Not sure if a migration is currently being performed since the site can also be found at http://138.232.66.66/ra/, but I figured if this was unintentional, it'd be worth pointing out that this link now results in a 404.

Support conversion of a subquery to an atomic value

The following query is rejected by relax:

select distinct * from R where R.a = (select max(a) from R);

In this case, the challenge is for relax to discover that this query returns a single tuple and a single value (always).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.