Relational
Calculus
- Relational
calculus is a non-procedural query language. In the non-procedural query
language, the user is concerned with the details of how to obtain the end
results.
- The
relational calculus tells what to do but never explains how to do.
Types of Relational
calculus:
1. Tuple Relational
Calculus (TRC)
- The
tuple relational calculus is specified to select the tuples in a relation.
In TRC, filtering variable uses the tuples of a relation.
- The
result of the relation can have one or more tuples.
Notation:
1.
{T | P (T)} or {T | Condition (T)}
Where
T is the resulting tuples
P(T) is the condition used to fetch T.
For example:
1.
{ T.name | Author(T) AND T.article = 'database' }
OUTPUT: This query selects the tuples from the AUTHOR relation. It
returns a tuple with 'name' from Author who has written an article on
'database'.
TRC (tuple relation calculus) can be quantified. In TRC, we can
use Existential (∃) and Universal Quantifiers
(∀).
For example:
1.
{ R| ∃T ∈ Authors(T.article='database' AND R.name=T.name)}
Output: This query will yield the same result as the previous one.
2. Domain Relational
Calculus (DRC)
- The
second form of relation is known as Domain relational calculus. In domain
relational calculus, filtering variable uses the domain of attributes.
- Domain
relational calculus uses the same operators as tuple calculus. It uses
logical connectives ∧ (and), ∨
(or) and ┓
(not).
- It
uses Existential (∃) and Universal Quantifiers (∀) to bind the variable.
Notation:
1.
{ a1, a2, a3, ..., an | P (a1, a2, a3, ... ,an)}
Where
a1, a2 are attributes
P stands for formula built by inner attributes
For example:
1.
{< article, page, subject > | ∈ javatpoint ∧ subject = 'database'}
Output: This query will yield the article, page, and subject from
the relational javatpoint, where the subject is a database.
0 Comments