## Description

Relational calculus is the mathematical basis for relational databases developed by E.F. Codd. It consists of two calculi, the tuple relational calculus and the domain relational calculus, that are part of the relational model for databases and provide a declarative way to specify database queries. This in contrast to the relational algebra which is also part of the relational model but provides a more procedural way for specifying queries. The motivation behind this thesis is to explore ways to learn relational calculus with database systems practically. Relational Calculus Emulator is a tool which interprets tuple relational calculus queries and executes them on a database. This application will help serve the students build relational queries and execute them to verify their correctness, and would be of great help to professors in explaining the subject with ease. The fundamental goal is to allow students to submit relational calculus homework solutions to the interpreter, and determine if their answer is correct, before submitting their answers for grading. Relational calculus specifies a database query by using predicate calculus notation. Thus the alphabet for relational calculus includes {Є,∃,∀,v,^} and can also include {⇒,¬}. The usual "well-known" identities and tricks permits omission of some characters, for example _x W is equivalent to ¬∀x¬(W) so¬(i.e. NOT) could be omitted, but this would be very inconvenient. Similarly, W1 _ W2 is equivalent to (NOT W1) v W2 so _ can be omitted, and this is very tempting since _ is not natural in very many queries. SQL does not use implies.