Upitni jezik QUEL

Do sada smo u ovoj rubrici spominjali samo jedan upitni jezik – SQL, koji inače ima najrašireniju upotrebu. Ali, to nije jedini upitni jezik. Danas ćemo se detaljnije upoznati sa još jednim relacionim upitnim jezikom – QUEL-om. QUEL (Query Language) je homogeno relacioni upitni jezik koji predstavlja direktnu implementaciju relacione algebre n-torki. To je upitni jezik koji se uglavnom nalazi u okviru sistema za upravljanje bazama podataka – INGRES, koji se inicijalno razvijao na Univerzitetu Berkli u Americi, a kasnije je razvoj preuzela kompanija Relational Tehnology. Da bismo vam dočarali ovaj jezik, ilustrovaćemo ga sa nekoliko primera uz objašnjenja.

Instrukcije za definisanje podataka su:

  • CREATE – kreiranje osnovnih tabela
  • INDEX – kreiranje indeksa
  • DEFINE VIEW – definisanje pogleda
  • DESTROY – instrukcija za brisanje osnovnih tabela, pogleda ili indeksa
  • MODIFY – instrukcija za modifikaciju struktura osnovnih tabela i indeksa

Evo kako bi mogla da izgleda jedna naredba za kreiranje proste tabele:


CREATE Radnik
(MBR = TEXT(13)
Ime = TEXT(15)
Prezime = TEXT(20)
Mesto = TEXT(20)
Starost = I2
ORG_JED = TEXT(2))

Jezik QUEL podržava sledeće tipove podataka: I1, I2, I4 (celi brojevi od 1, 2 ili 4 bajta); F4, F8 (brojevi sa pokretnim zarezom od 4 i 8 bajtova); MONEY (dolarski tip podatka); TEXT(n) (niz karaktera veličine n) i DATE (datum). Definisanje promenljivih u delu jezika za rukovanje podacima (Data manipulation) deklarišu se na sledeći način:


RANGE OF naziv_promenljive IS naziv_relacije

čime određujemo da određena promenljiva uzima vrednosti n-torke date relacije. U slučaju da se klauzula RANGE ne koristi, QUEL će izjednačiti naziv varijable sa nazivom relacije.

Nakon kratkog upoznavanja sa sintaksom jezika, preći ćemo na primere upita:

  1. Definisati upit koji će prikazati matične brojeve radnika koji rade na projektima:


    RANGE OF x IS Radnik
    RETRIEVE UNIQUE (x.MBR)

  2. Definisati upit kojim se prikazuju matični brojevi i prezimena svih radnika koji su iz Novog Sada i imaju između 20 i 30 godina, pri tome u opadajućem rasporedu:


    RANGE OF x Radnik
    RETRIEVE (x.MBR, x.Prezime)
    WHERE x.Starost >= 20 AND x.Starost <=30
    AND x.Mesto = ‘Novi Sad’
    SORTED BY Starost: DESCENDING

  3. Definisati upit kojim će se prikazati srednji i ukupni broj dana radnika koji rade na projektu 1:


    RANGE OF z IS ANGAZOVANJE
    RETRIEVE (S=SUM(z.DANARADA), L=AVG(z.DANARADA))
    WHERE z.BR_PROJ=’pr1′


QUEL jezik koji je implementiran u određeni programski jezik – domaćin (COBOL, FORTRAN, PASCAL, C), naziva se i EQUEL i primenjuje se na mnogo jednostavniji način nego poznati SQL. Razlog ovome je što se SQL instrukcije u jeziku domaćinu prevode pre samog izvršenja programa, dok se naredbe EQUEL-a interpretiraju u toku izvršenja programa.

Pratite Krstaricu na www.krstarica.com