Rešiti na SQL-u:
- Napisati naredbu na SQL-u koja:
- pravi tabelu predmet_student koja čuva podatke koliko studenata je položilo koji predmet. Tabela ima kolone:
idpredmeta (tipa integer) i student (tipa smallint).
- unosi u tabelu predmet_student podatke o obaveznim predmetima na smeru Informatika na osnovnim akademskim studijama
(može se uzeti da je id 103). Za svaki predmet uneti podatak da ga je položilo 5 studenata.
- ažurira tabelu predmet_student, tako što predmetima o kojima postoji evidencija ažurira broj studenata koji su ga položili,
a za predmete o kojima ne postoji evidencija unosi podatke.
- Napisati naredbu na SQL-u koja:
- pravi tabelu student_podaci sa kolonama: indeks (tipa integer), broj _predmeta (tipa smallint),
prosek (tipa float) i datupisa (tipa date).
- u tabelu student_podaci unosi indeks, broj položenih predmeta i prosek za studente koji imaju prosek iznad 8 i za studente
koji su diplomirali. Za studente koji su diplomirali kao broj predmeta uneti vrednost 10, a kao prosek vrednost 10.
- ažurira tabelu student_podaci tako što studentima o kojima u tabeli postoje podaci
i koji su:
- diplomirali ažurira datum upisa na fakultet
- trenutno na budžetu ažurira broj položenih predmeta i prosek.
Naredba podatke o studentima koji su ispisani briše iz tabele, a unosi podatke o
studentima koji nisu ispisani i o njima ne postoje
podaci u tabeli student_podaci. Za studente o kojima nema podataka uneti indeks,
broj položenih predmeta i prosek.
- uklanja tabelu student_podaci.
- Napraviti okidač koji sprečava brisanje studenata koji su diplomirali.
- Napraviti okidač koji dozvoljava ažuriranje broja espb bodova predmetima samo za jedan bod.
Ako je nova vrednost espb bodova veća od postojeće, broj bodova se povećava za 1, a ako je manja smajuje se za 1.
-
- Napraviti tabelu broj_predmeta koja ima jednu kolonu broj tipa smallint i u nju uneti jedan
entitet koji predstavlja broj predmeta u tabeli predmet.
- Napraviti okidač koji ažurira tabelu broj_predmeta tako što povećava vrednosti u koloni broj za
1 kada se unese novi predmet u tabelu predmet.
- Napisati okidač koji ažurira tabelu broj_predmeta tako što smanjuje vrednost u koloni broj za
1 kada se obriše predmet iz tabele predmet.
- Uneti podatke o novom predmetu čiji je id 2002, oznaka predm13, naziv Predmet 13,
i ima 15 espb.
-
- Napraviti tabelu student_polozeno koja za svakog studenta koji je položio barem jedan predmet sadrži
podatak koliko je espb bodovoa položio. Tabela ima kolone indeks i espb.
- Napraviti tabelu predmet_polozeno koja za svaki predmet koji je položio barem jedan student sadrži
podatak koliko je studenata položilo taj predmet. Tabela ima kolone idpredmeta i brojstudenata.
- Uneti podatke u tabelu student_polozeno za studente koji su položili sve obavezne predmete na smeru
koji studiraju.
- Napisati naredbu koja menja tabelu student_polozeno tako što ažurira broj položenih espb bodova za
studente o kojima sadrži podatke, a unosi informaicje za studente o kojima ne postoje podaci u
tabeli student_polozeno.
- Uneti podatke u tabelu predmet_polozeno.
- Napraviti okidač koji nakon unosa položenog ispita ažurira tabele student_polozeno i
predmet_polozeno tako da sadrže podatak o novom ispitu.
- Uneti podatak da je student sa indeksom 20150320 polagao predmet sa id 2010 u ispitnom roku
jun2 2017/2018. šk. godine. Student je ispit položio sa 95 poena i dobio ocenu 10.
- Uneti podatak da je student sa indeksom 20152003 polagao predmet sa id 1695 u ispitnom roku
jun1 2017/2018. šk. godine. Student je ispit položio sa 95 poena i dobio je ocenu 10.
Za vežbu:
-
Fakultet organizuje putovanje za studente. Puna cena putovanja je 25000 RSD.
- Napraviti tabelu putovanje koja čuva podatke o studentima zainteresovanim za putovanje.
Tabela ima kolone:
- indeks - indeks studenta
- cena - cena putovanja za studenta
- status_placanja - status plaćanja
Definisati primarni ključ i strani ključ na tabelu dosije.
- Napisati naredbu koja u tabeli putovanje postavlja ograničenja:
- vrednost kolone status_placanja može biti placeno, oslobodjen,
neplaceno
- podrazumevana vrednost kolone status_placanja je neplaceno
- Napisati naredbu koja u tabelu putovanje unosi podatke za studente koji su u
2016/2017. školskoj godini položili bar polovinu upisanih ESPB u toj školskoj godini.
- Napisati naredbu koja menja tabelu putovanje tako da sadrži prijave svih studenata
koji nisu diplomirali. Studentima o kojima postoje podaci u tabeli putovanje ažurirati podatke na
sledeći način:
- ako je student bar na polovini položenih ispita dobio ocenu 10 oslobođen je plaćanja putovanja.
Postaviti cenu na 0 i status plaćanja na oslobodjen
- ostalim studentima izračunati cenu prema formuli: cena putovanja se umanjuje za procenat koji
odgovara procentu ispita koje je student položio sa ocenom 10 u odnosu na njegov broj
položenih ispita.
Za studente o kojima ne postoje podaci u tabeli putovanje uneti podatke. Uneti indeks i cenu.
Punu cenu putovanja umanjiti za procenat koji odgovara procentu ispita koje je student položio
sa ocenom 10.
- Napisati naredbu za brisanje tabele putovanje.
- Napraviti okidač koji sprečava brisanje predmeta sa brojem espb bodova većim od 15.
-
Za sve studente osnovnih studija izdvojiti pregledne podatke o količini ispunjenih obaveza.
Izdvojiti broj indeksa, oznaku smera, ukupan broj ESPB potrebnih za završetak studija, ukupan broj ESPB iz
položenih predmeta, procenat položenosti ESPB, ukupan broj ESPB koje nose obavezni predmeti,
ukupan broj ESPB koje nose položeni obavezni predmeti, procenat položenosti ESPB koje nose obavezni položeni predmeti.
Izveštaj urediti po procentu položenosti ESPB.