1
II KOLOKVIJ iz vježbi kolegija BAZE PODATAKA I 5. lipanj 2007. Grupa 10 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 građevinsko poduzeće koja se sastoji od sljedećih relacija: RADNIK sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije) ime (znakovni niz do 20 znakova, ne smije poprimiti vrijednost null) prezime (znakovni niz do 20 znakova, ne smije poprimiti vrijednost null) sprema (znakovni niz od točno tri znaka, smije poprimiti isključivo vrijednosti 'NSS', 'SSS' ili 'VSS') GRADILISTE sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije) naziv (znakovni niz do 50 znakova, ne smije poprimiti null, jedinstven u relaciji) RASPOREDJEN radnik (cjelobrojna vrijednost, referencira se na relaciju RADNIK) gradiliste (cjelobrojna vrijednost, referencira se na relaciju GRADILISTE) datum (vremenski tip dana u vremenu, ako se ne upiše vrijednost upisuje se trenutni datum) ograničenje – primarni ključ čine svi atributi relacije organičenje – atributi radnik i datum zajedno su jedinstveni u relaciji Zadatak 2. (1 bod) U sve relacije unesite po 10 podataka tako da je svaki radnik raspoređen na neko gradilište. Zadatak 3. (1 bod) Kreirajte pogled dnevna_statistika koji će sadržavati naziv gradilišta, broj na to gradilište raspoređenih radnika i to na današnji dan (dakle prikazivati će se uvijek dnevna statistika bez obzira kada se pristupalo pogledu). Zadatak 4. (1 bod) Napravite upit koji će vratiti naziv gradilišta na koje je bio raspoređen najveći broj radnika. Zadatak 5. (1 bod) Napravite upit koji će vratiti broj radnika prema stručnim spremama. Zadatak 6. (2 boda) Napravite upit koji će vratiti ime i prezime onog radnika koji je radio na najvećem broju gradilišta. Zadatak 7. (3 boda) Implementirajte funkciju rasporedi koja će za zadano ime i prezime radnika, te zadani naziv gradilišta dotičnog radnika danas rasporediti na dotično gradilište. Zadatak 8. (1 bod) Promijenite tablicu GRADILISTE tako da dodate kolonu 'opis' koja će biti tipa neograničeno tekstualno polje u koje se upisuje prazan znakovni niz ('') ako se ne definira vrijednost pri upisu. Zadatak 9. (2 boda) Implementirajte transakciju koja će prvo unesti novog radnika u tablicu RADNIK te nakon toga tog radnika rasporediti na neko gradilište upisom u tablicu RASPOREDJEN.

Document01

Embed Size (px)

DESCRIPTION

bp2

Citation preview

Page 1: Document01

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

Grupa 10

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 građevinsko poduzeće koja se sastoji od sljedećih relacija:

RADNIK● sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije)● ime (znakovni niz do 20 znakova, ne smije poprimiti vrijednost null)● prezime (znakovni niz do 20 znakova, ne smije poprimiti vrijednost null)● sprema (znakovni niz od točno tri znaka, smije poprimiti isključivo vrijednosti 'NSS', 'SSS' ili 'VSS')

GRADILISTE● sifra (cjelobrojna vrijednost, povećava se samostalno, primarni ključ relacije)● naziv (znakovni niz do 50 znakova, ne smije poprimiti null, jedinstven u relaciji)

RASPOREDJEN● radnik (cjelobrojna vrijednost, referencira se na relaciju RADNIK)● gradiliste (cjelobrojna vrijednost, referencira se na relaciju GRADILISTE)● datum (vremenski tip dana u vremenu, ako se ne upiše vrijednost upisuje se trenutni datum)● ograničenje – primarni ključ čine svi atributi relacije● organičenje – atributi radnik i datum zajedno su jedinstveni u relaciji

Zadatak 2. (1 bod)U sve relacije unesite po 10 podataka tako da je svaki radnik raspoređen na neko gradilište.

Zadatak 3. (1 bod)Kreirajte pogled dnevna_statistika koji će sadržavati naziv gradilišta, broj na to gradilište raspoređenih radnika i to na današnji dan (dakle prikazivati će se uvijek dnevna statistika bez obzira kada se pristupalo pogledu).

Zadatak 4. (1 bod)Napravite upit koji će vratiti naziv gradilišta na koje je bio raspoređen najveći broj radnika.

Zadatak 5. (1 bod)Napravite upit koji će vratiti broj radnika prema stručnim spremama.

Zadatak 6. (2 boda)Napravite upit koji će vratiti ime i prezime onog radnika koji je radio na najvećem broju gradilišta.

Zadatak 7. (3 boda)Implementirajte funkciju  rasporedi  koja će za zadano ime i prezime radnika, te zadani naziv gradilišta dotičnog radnika danas rasporediti na dotično gradilište.

Zadatak 8. (1 bod)Promijenite tablicu GRADILISTE tako da dodate kolonu 'opis' koja će biti tipa neograničeno tekstualno polje u koje se upisuje prazan znakovni niz ('') ako se ne definira vrijednost pri upisu.

Zadatak 9. (2 boda) Implementirajte transakciju koja će prvo unesti novog radnika u tablicu RADNIK te nakon toga tog radnika rasporediti na neko gradilište upisom u tablicu RASPOREDJEN.