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:

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

  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 1992. godine.
  8. Pronaći indekse studenata koji su rođeni 1992. godine 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.