|=--------------------------------------------------=|
. |02.06 - Query language .
|=--------------------------------------------------=|
Typical programming language consists of 3 main
constructs. First is the language construct for
data construction and definition. Using the language
construct it's possible to create program's data
structure. The second programming construct is the
library of procedures and functions. These can be
delivered together with the programming language
or programmer can create own libraries. The third
construct is the main algorithm translation to the
programming language as a commands sequence. This
sequence then controls the flow of the program.
Formal language is composed from the alphabet or
dictionary and contains final set of symbols. Word is
composed from the alphabet's symbols of finite size.
The sentence is composed from words. The language is
any set of sentences. Grammar serves for exact
definition of syntactical correctness of the composed
sentence in given language. Except this grammar
provides structural sentence description. Formal
grammar and formal language come from the attempt to
describe abstract principles of language structure.
Formal grammar could be used for example to write a
program to allow language analysis (Hopcroft and
Ullman, 1969).
The conceptual basis of query language is the
formal language based on formal grammar apparatus.
Formal language grammar in the context of query
language is the complete set of rules to describe
principle of composing word from syllable and
sentences from words. Linguistic knows the term
of generative grammar as structured set of basic
elements. On this set applies rules. By application
of rules on the elements structure it generates new
data elements. There are two main principles for it's
generation in generative grammar. The first principle
advances from sentences categorization and applies
rules for given part of sentences. In the next phase
applies rules on the level of words. Second principle
consists in the second direction so-called bottom-up.
Second method implementation is more frequent in the
field of categorical grammar and the initial point is
the use of lexical elements called generators. To the
generators are in the next phases applied rules. That
create base. On the generators base are built more
complex structures.
Query language intended for communication with data
basis is formal non-procedural language based on the
principles of formal grammar. In the field of query
languages the theoretical concept of formal language
is applied as a mechanism to secure syntactical
validity of queries.
Codd specified relational operations for Query
languages. It were operations of cartesian product,
projection, joins, divisions and constraints.
The relation operators provides different type
of associative referencing. Except the principle
of associative referencing there are other
characteristics of non-procedural languages as
aggregation operators. Aggregation operator are the
basic principle enabling replacement of iteration
known from procedural languages. Codd used concept of
algebraic operators applied to relations. This is yet
another character of non-procedural language.