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:
- Definisati upit koji će prikazati matične brojeve radnika koji rade na projektima:
RANGE OF x IS Radnik
RETRIEVE UNIQUE (x.MBR)
- 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
- 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