1
II KOLOKVIJ iz vježbi kolegija BAZE PODATAKA I 5. lipanj 2007. Grupa 12 NAPOMENA: Svi zadaci trebaju biti pohranjeni u jednoj datoteci te poslani na zato predviđenoj adresi http://arka.foi.hr/~mschatten/bp1/kolokvij2/. Za sve kreirane tablice, sekvence, poglede i eventualne indekse podrazumijeva se implementacija njihovog brisanja. Preporuča se da se prvo implementiraju eventualne sekvence, zatim tablice, indeksi, unos podataka, upiti i ažuriranja i na kraju brisanje kako bi se omogućilo testiranje s psql < zadatak_kolokvij. Zadatak mora biti bez sintaktičkih pogrešaka kako bi se za njega priznao bod. Zadatak 1. (3 boda) Implementirajte parcijalnu bazu podataka za hidrometeorološku stanicu koja se sastoji od sljedećih relacija: LOKACIJA sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije) naziv (znakovni niz do 200 znakova, jedinstven u relaciji) STANJE sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije) lokacija (cjelobrojna vrijednost, referencira se na relaciju LOKACIJA) datum (vremenski tip dana u vremenu, ako se ne upiše vrijednost upisuje se trenutno vrijeme) temp_zraka (decimalna vrijednost) temp_vode (decimalna vrijednost) vodostaj (decimalna vrijednost) Zadatak 2. (2 boda) U sve relacije unesite po 10 podataka. Zadatak 3. (1 bod) Kreirajte pogled dnevno_stanje koji će sadržavati naziv lokacije, temperaturu zraka, temperaturu vode te vodostaj svih danas izmjerenih vrijednosti (koristite funkciju date(now()) kako biste dobili današnji datum – funkcija pretvara timestamp vremenski tip u date tip). Zadatak 4. (1 bod) Napravite upit koji će vratiti naziv u prosjeku najtoplije lokacije (obzirom na temperaturu zraka). Zadatak 5. (1 bod) Napravite upit koji će vratiti naziv najhladnije lokacije (obzirom na temperaturu vode). Zadatak 6. (1 bod) Napravite upit koji će vratiti prosječan vodostaj prema nazivima lokacija. Zadatak 7. (3 boda) Implementirajte funkciju novo_mjerenje koja će za zadani naziv lokacije, temperaturu vode i zraka te zadani vodostaj u relaciju stanje upisati da je na današnji datum izvršeno mjerenje. Zadatak 8. (1 bod) Promijenite tablicu STANJE tako da dodate ograničenje jedinstenosti nad kolonama lokacija i datum. Zadatak 9. (2 boda) Implementirajte transakciju koja će lokaciji pod šifrom 1 prvo postaviti vodostaj na 200, zatim istoj lokaciji temperaturu zraka na 27 te na kraju istoj lokaciji temperaturu vode na 23 (sve izmjene se vrše u tablici STANJE).

Document03

Embed Size (px)

DESCRIPTION

baze podataka

Citation preview

Page 1: Document03

II KOLOKVIJ iz vježbi kolegija BAZE PODATAKA I 5. lipanj 2007.

Grupa 12

NAPOMENA:   Svi   zadaci   trebaju   biti   pohranjeni   u   jednoj   datoteci   te   poslani   na   zato   predviđenoj   adresi http://arka.foi.hr/~mschatten/bp1/kolokvij2/.   Za   sve   kreirane   tablice,   sekvence,   poglede   i   eventualne   indekse podrazumijeva se  implementacija njihovog brisanja. Preporuča se da se prvo implementiraju eventualne sekvence, zatim tablice, indeksi, unos podataka, upiti i ažuriranja i na kraju brisanje kako bi se omogućilo testiranje s psql < zadatak_kolokvij. Zadatak mora biti bez sintaktičkih pogrešaka kako bi se za njega priznao bod. 

Zadatak 1. (3 boda)Implementirajte parcijalnu bazu podataka za hidrometeorološku stanicu koja se sastoji od sljedećih relacija:

LOKACIJA● sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije)● naziv (znakovni niz do 200 znakova, jedinstven u relaciji)

STANJE● sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije)● lokacija (cjelobrojna vrijednost, referencira se na relaciju LOKACIJA)● datum (vremenski tip dana u vremenu, ako se ne upiše vrijednost upisuje se trenutno vrijeme)● temp_zraka (decimalna vrijednost)● temp_vode (decimalna vrijednost)● vodostaj (decimalna vrijednost)

Zadatak 2. (2 boda)U sve relacije unesite po 10 podataka.

Zadatak 3. (1 bod)Kreirajte pogled  dnevno_stanje  koji će sadržavati naziv lokacije, temperaturu zraka, temperaturu vode te vodostaj svih danas izmjerenih vrijednosti (koristite funkciju date(now()) kako biste dobili današnji datum – funkcija pretvara timestamp vremenski tip u date tip).

Zadatak 4. (1 bod)Napravite upit koji će vratiti naziv u prosjeku najtoplije lokacije (obzirom na temperaturu zraka).

Zadatak 5. (1 bod)Napravite upit koji će vratiti naziv najhladnije lokacije (obzirom na temperaturu vode).

Zadatak 6. (1 bod)Napravite upit koji će vratiti prosječan vodostaj prema nazivima lokacija. 

Zadatak 7. (3 boda)Implementirajte funkciju novo_mjerenje koja će za zadani naziv lokacije, temperaturu vode i zraka te zadani vodostaj u relaciju stanje upisati da je na današnji datum izvršeno mjerenje.

Zadatak 8. (1 bod)Promijenite tablicu STANJE tako da dodate ograničenje jedinstenosti nad kolonama lokacija i datum.

Zadatak 9. (2 boda)Implementirajte transakciju koja će lokaciji pod šifrom 1 prvo postaviti vodostaj na 200, zatim istoj lokaciji temperaturu zraka na 27 te na kraju istoj lokaciji temperaturu vode na 23 (sve izmjene se vrše u tablici STANJE).