Tabela DOSIJE
INDEKS | IME | PREZIME | DATUM_RODJENJA | MESTO_RODJENJA | DATUM_UPISA |
---|
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 | BODOVI |
---|
Rešiti na relacionoj algebri
Primer 1: Izdvojiti šifru i naziv predmeta. (primer sa projekcijom)
PREDMET[SIFRA, NAZIV]
Primer 2: Izdvojiti 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/2014. (primer sa restrikcijom i projekcijom)
(DOSIJE WHERE INDEKS=20140025)[IME, PREZIME]
Primer 4: 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 5: Pronaći studente koji su rođeni dana kada je održan neki ispit. Izdvojiti indeks, ime i prezime studenta. (primer sa slobodnim spajanjem)
((DOSIJE TIMES ISPIT)
WHERE DATUM_RODJENJA=DATUM_ISPITA)
[DOSIJE.INDEKS, DOSIJE.IME, DOSIJE.PREZIME]
Primer 6: Za svakog studenta izdvojiti podatke o ispitima koje je polagao. Izdvojiti indeks, ime, prezime studenta, identifikator predmeta i ocenu koju je dobio. (I rešenje: primer sa slobodnim spajanjem, II rešenje: primer sa prirodnim spajanjem)
((ISPIT TIMES DOSIJE)
WHERE ISPIT.INDEKS=DOSIJE.INDEKS)
[DOSIJE.INDEKS, DOSIJE.IME, DOSIJE.PREZIME, ISPIT.ID_PREDMETA,
ISPIT.OCENA]
ili
(ISPIT JOIN DOSIJE)[INDEKS, IME, PREZIME, ID_PREDMETA, OCENA]
Primer 7: Izdvojiti indekse studenata koji su polagali sve predmete. (primer sa deljenjem)
ISPIT[INDEKS, ID_PREDMETA]
DIVIDEBY
PREDMET[ID_PREDMETA]
Primer 8: 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 9: 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))[INDEKS]
Primer 10: Izdvojiti podatke o studentima koji su polagali u januarskom ispitnom roku 2015. godine. (primer sa spajanjem)
(ISPIT WHERE GODINA_ROKA=2015 AND OZNAKA_ROKA='jan')[INDEKS] JOIN DOSIJE
Primer 11: Izdvojiti indekse studenata koji nisu polagali ispite u januarskom ispitnom roku. (primer sa oduzimanjem)
DOSIJE[INDEKS] MINUS (ISPIT WHERE OZNAKA_ROKA='jan')[INDEKS]
Primer 12: Pronaći ispitni rok u kome su isti predmet polagali svi studenti. Izdvojiti godinu roka, oznaku roka i identifikator predmeta. (primer sa deljenjem)
(ISPIT[GODINA_ROKA, OZNAKA_ROKA, ID_PREDMETA,
INDEKS]
DIVIDEBY
DOSIJE[INDEKS]
Primer 13: Pronaći studente koji su položili neki predmet od 6 bodova. Izdvojiti indeks, ime, prezime i naziv predmeta. (primer sa prirodnim spajanjem, restrikcijom i projekcijom)
(DOSIJE JOIN (ISPIT WHERE OCENA>5) JOIN (PREDMET WHERE BODOVI=6)[ID_PREDMETA, NAZIV])[INDEKS, IME, PREZIME, NAZIV]
Primer 14: Izdvojiti identifikatore predmeta koji imaju više od 5 bodova ili ih je položio neki student 20.01.2015. (primer sa restrikcijom, projekcijom i unijom)
(PREDMET WHERE BODOVI>5)[ID_PREDMETA]
UNION
(ISPIT WHERE OCENA>5 AND DATUM_ISPITA='20.1.2015')[ID_PREDMETA]
Primer 15: Izdvojiti identifikatore predmeta koji imaju više od 5 bodova i nije ih položio nijedan student 20.01.2015. (primer sa restrikcijom, projekcijom i razlikom)
(PREDMET WHERE BODOVI>5)[ID_PREDMETA]
MINUS
(ISPIT WHERE OCENA>5 AND DATUM_ISPITA='20.1.2015')[ID_PREDMETA]
Zadaci za vežbu