Tabela DOSIJE
| INDEKS | IME | PREZIME | GOD_RODJENJA |
Tabela PREDMET
| ID_PREDMETA | SIFRA | NAZIV | BODOVI |
Tabela ISPITNI_ROK
| GODINA_ROKA | OZNAKA_ROKA | NAZIV |
Tabela ISPIT
| INDEKS | ID_PREDMETA | GODINA_ROKA | OZNAKA_ROKA | OCENA | DATUM_ISPITA |
Rešiti na relacionoj algebri
Primer 1: Prikazati šifru i naziv predmeta. (primer sa projekcijom)
PREDMET[SIFRA, NAZIV]
Primer 2: Prikazati podatke o predmetima koji imaju po 6 bodova. (primer sa restrikcijom)
PREDMET WHERE BODOVI=6
Primer 3: Izdvojiti ime i prezime studenta sa indeksom 25/2010. (primer sa restrikcijom i projekcijom)
(DOSIJE WHERE INDEKS=20100025)[IME, PREZIME]
Primer 4: Izdvojiti nazive rokova koji su održani posle 2009. godine. (primer sa restrikcijom i projekcijom)
(ISPITNI_ROK WHERE GODINA_ROKA>2009)[NAZIV]
Primer 5: Izdvojiti indekse studenata koji imaju:
(ISPIT WHERE OCENA=10)[INDEKS]
UNION
(ISPIT WHERE OCENA=9)[INDEKS]
ili
(ISPIT WHERE OCENA=10 OR OCENA=9)[INDEKS]
(ISPIT WHERE OCENA=10)[INDEKS]
INTERSECT
(ISPIT WHERE OCENA=9)[INDEKS]
(ISPIT WHERE OCENA=10)[INDEKS]
MINUS
(ISPIT WHERE OCENA<10)[INDEKS]
Primer 6: Pronaći studente koji su rođeni u godini kada je održan neki ispitni rok. Izdvojiti indeks i godinu rođenja studenta i naziv ispitnog roka. (primer sa slobodnim spajanjem)
((DOSIJE TIMES ISPITNI_ROK)
WHERE DOSIJE.GOD_RODJENJA=ISPITNI_ROK.GODINA_ROKA)
[DOSIJE.INDEKS, DOSIJE.GOD_RODJENJA, ISPITNI_ROK.NAZIV]
Primer 7: Za svakog studenta izdvojiti predmete koje je polagao. Izdvojiti indeks studenta, naziv predmeta i ocenu koju je dobio. (I rešenje: primer sa slobodnim spajanjem, II rešenje: primer sa prirodnim spajanjem)
((ISPIT TIMES PREDMET)
WHERE ISPIT.ID_PREDMETA=PREDMET.ID_PREDMETA)
[ISPIT.INDEKS, PREDMET.NAZIV, ISPIT.OCENA]
ili
(ISPIT JOIN PREDMET)[ISPIT.INDEKS, PREDMET.NAZIV, ISPIT.OCENA]
Primer 8: Izdvojiti indekse studenata koji su polagali sve predmete. (primer sa deljenjem)
ISPIT[INDEKS, ID_PREDMETA]
DIVIDEBY
PREDMET[ID_PREDMETA]
Primer 9: Izdvojiti parove predmeta koji imaju isti broj bodova. Izdvojiti šifre i nazive predmeta. (primer sa aliasom)
DEFINE ALIAS PREDMET1 FOR PREDMET
((PREDMET TIMES PREDMET1)
WHERE PREDMET.BODOVI=PREDMET1.BODOVI AND PREDMET.ID_PREDMETA<PREDMET1.ID_PREDMETA)
[PREDMET.SIFRA, PREDMET.NAZIV, PREDMET1.SIFRA, PREDMET1.NAZIV]
Primer 10: Izdvojiti indekse studenata koji su položili predmet Geometrija. (primer sa restikcijom, prirodnim spajanjem i projekcijom)
((PREDMET WHERE NAZIV=' Geometrija')[ID_PREDMETA] JOIN (ISPIT WHERE OCENA>5))[ISPIT.INDEKS]
Primer 11: Izdvojiti podatke o studentima koji su polagali u januarskom ispitnom roku 2011. godine. (primer sa poluspajanjem)
DOSIJE SEMIJOIN (ISPIT WHERE GODINA_ROKA=2011 AND OZNAKA_ROKA='jan')
Primer 12: Izdvojiti podatke o predmetima koje je položio bar jedan student rodjen 1992. godine. (primer sa poluspajanjem)
PREDMET SEMIJOIN ((ISPIT WHERE OCENA>5) SEMIJOIN (DOSIJE WHERE GOD_RODJENJA=1992))
Primer 13: Izdvojiti podatke o studentima koji nisu polagali ispite u januarskom ispitnom roku. (primer sa poluoduzimanjem)
DOSIJE SEMIMINUS (ISPIT WHERE OZNAKA_ROKA='jan')
Zadaci za vežbu