|=--------------------------------------------------=|
     _________________  .____     ___________________
    /   _____/\_____  \ |    |    \_   _____/\______ \
    \_____  \  /  / \  \|    |     |    __)_  |    |  \
    /        \/   \_/.  \    |___  |        \ |    `   \
   /_______  /\_____\ \_/_______ \/_______  //_______  /
           \/        \__>       \/        \/         \/


   |=--------------------------------------------------=|
   . |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.



   |=--------------------------------------------------=|
   |=--------------------------------------------------=|