/sql2rela

sql to relational algrebra

Primary LanguageC

Translator - SQL to Relation algebra

Develop a translator which shall translate a given select statement of SQL into an equivalent expression in relational algebra. Your translator must include SELECTION, PROJECTION, JOIN and SET operation.

Note: no subqueries

examples

SELECT A, B
	FROM r
	WHERE A > 100

$\Pi_{A,B}(\sigma_{A>100}(r))$

SELECT *
	FROM r
	WHERE A > 100

sigma_{A>100}(r) $\sigma_{A>100}(r)$

SELECT *
	FROM r JOIN s
	WHERE A > 100

$\sigma_{A>100}(r \Join s)$

SELECT A
	FROM r
INTERSECT
SELECT A
	FROM s

$\Pi_{A}$(r) $\cap$ $\Pi_{A}$(s)

Plan

lexical analysic $\rightarrow$ parsing $\rightarrow$ substitution

symbols

SQL operation relational algebra
SELECTION $\sigma$
PROJECTION $\Pi$
UNION $\cup$
INTERSECTION $\cap$
SET DIFFERENCE $\minus$
LEFT JOIN $\leftouterjoin$
RIGHT JOIN $\rightouterjoin$
FULL OUTER JOIN $\fullouterjoin$
INNER JOIN $\bowtie$

grammar

S $\rightarrow$ S0 | S0 Tset S0

S0 $\rightarrow$ Ts A Tf R Tw C

R $\rightarrow$ T