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:

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

  1. Izdvojiti nazive ispitnih rokova.
  2. Izdvojiti podatke o studentima sa imenom Miloš.
  3. Izdvojiti ime i prezime studenta i nazive predmeta koje je položio.
  4. Pronaći nazive predmeta koji imaju po 6 bodova i koje je polagao student sa indeksom 21/2010.
  5. Pronaći nazive predmeta koji imaju manje bodova od predmeta sa nazivom Geometrija.
  6. Pronaći studente koji nemaju položen nijedan ispit.
  7. Pronaći šifru i naziv predmeta koji su položili svi studenti rođeni 20.01.1995.
  8. Pronaći indekse studenata koji su rođeni 20.01.1995. ili imaju bar jednu ocenu 10.
  9. Pronaći podatke o predmetima koje nije položio nijedan student sa prezimenom Markovic.
  10. Pronaći podatke o ispitnim rokovima u kojima je položen ispit iz predmeta Programiranje 1.