In Database System Concepts 6ed,
6.2 The Tuple Relational Calculus
When we write a relational-algebra expression, we provide a sequence of procedures that generates the answer to our query.
The tuple relational calculus, by contrast, is a nonprocedural query language. It describes the desired information without giving a specific procedure for obtaining that information. A query in the tuple relational calculus is expressed as:
{t | P(t)}
. That is, it is the set of all tuplest
such that predicateP
is true for t.
Does the above mean that relational algebra is a procedural language?
Is relational algebra a declarative language?
Is the tuple relational calculus a declarative language?
Is the tuple relational calculus more declarative than relational algebra is?
Is a procedural language an imperative language? (This is always what I heard, but I also heard that SQL is a declarative language (so is relational algebra) so is not imperative.)
What is the correct or most reasonable or most accepted definition of procedural languages, imperative languages, and declarative languages?
Thanks.