Tehnika Krstarice > Programiranje > Upitni jezik QUEL

Upitni jezik QUEL

21.12.2001.

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.

Preporučite ovaj članak

Članak još uvek nije ocenjen.