|=--------------------------------------------------=|
      _________________  .____     ___________________
     /   _____/\_____  \ |    |    \_   _____/\______ \
     \_____  \  /  / \  \|    |     |    __)_  |    |  \
     /        \/   \_/.  \    |___  |        \ |    `   \
    /_______  /\_____\ \_/_______ \/_______  //_______  /
            \/        \__>       \/        \/         \/
    
    
    |=--------------------------------------------------=|
    . |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.
    
    
    
    |=--------------------------------------------------=|
    |=--------------------------------------------------=|