Skip to content

A relational database query processor that implemented relational algebra (select, project, union, difference, rename and cartesian product). It also supports nested queries.

Notifications You must be signed in to change notification settings

cryptomanic/Relational-Algebra-Calculator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title author date output
Relational Algebra Calculus
Deepak Yadav
17 October 2016
pdf_document

How to use Relation Algebra Calculator

1. select ($)

  syntax: $(table)(conditions)
  conditions support <, >, =, &, !, |, +, -, * operators only
  <= is not supported but same is possible using <, &, =
  similarly >= using >, &, =
  and != using !, =

2. project (#)

  syntax: #(table)(column1, column2, column3, ....)

3. union (U)

  syntax: U(first_table)(second_table)      

4. difference (D)

  syntax: D(first_table)(second_table)   

5. rename (R)

  syntax: R(old_table)(new_table_name[, new_column1_name, ...])      

6. cartesian product (C)

  syntax: C(first_table)(second_table)     

Calculator also support nested queries

project inside select

  $(#(table)(column1, column2, column3, ....))(conditions)

select inside project

  #($(table)(conditions))(column1, column2, column3, ....)

nesting can be complex

  C(R(U(#(table1)(column1, column2, column3, ....))($(table3)(conditions)))
   (new_table_name[, new_column1_name, ...]))
   (R(D($(table2)(conditions))(#(table4)(column1, column2, column3, ....)))
   (new_table_name[, new_column1_name, ...]))

Steps to run calculator

  1. open the terminal
  2. change the directory to Relational-Algebra-Calculator
  3. g++ -std=c++11 nested_query.cpp -o output.out
  4. ./output.out

About

A relational database query processor that implemented relational algebra (select, project, union, difference, rename and cartesian product). It also supports nested queries.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages