Procedural Language: The Purpose of a Query Language

It appears that Programming Languages encompass a variety of languages such as query languages (like SQL), markup languages (like HTML), and programming languages (like C#). These languages are standardized by a committee but are not considered procedural languages.


The writing quality is subpar as the term “Declarative” is used informally and in multiple ways. Its overarching definition is to describe a result rather than a process. However, some result descriptions can also be interpreted as a process, leading to confusion. The first statement suggests that notations can describe results without a specific process in mind, while the second statement emphasizes that the algebra has a procedural interpretation, unlike the calculi.

However, the latter claim is a fallacy that echoes the popular notion, with regards to the algebraic and calculi operations. While algebraic operations can be interpreted procedurally as operators on arguments, the same cannot be said for calculi. They lack an apparent procedural interpretation when it comes to standard relational operators.

The concept is that the calculi are not utilized for the purpose of soliciting such procedures.

The calculi can be interpreted procedurally in multiple ways. Firstly, they can be converted mechanically to prenex normal form and then to standard relational algebra using Codd’s reduction algorithm. Secondly, they can be interpreted procedurally (but not in terms of relational algebra) by testing every possible tuple for membership in the result, similar to standard Tarskian semantics for predicate calculus. Lastly, an algebra with two impractical operators added – a generalized UNION operator (which corresponds to OR) and an operator that returns the tuples not in a relation (which corresponds to NOT) – can be used for their procedural interpretation. Already, NATURAL JOIN corresponds to AND and projecting out corresponds to EXISTS, similar to Tarskian cylindric-algebra semantics for predicate calculus.

The contrast between Relational Algebra and Relational Calculus lies in the difference between procedural and non-procedural query languages.

Frequently Asked Questions

Posted in Uncategorized