Stare vjezbe Baze podataka

Vjezbe 1
(Primjer za analizu potreba - radimo bazu za bolnicu)
Pacijenti koji zauzimaju sobe Pacijent se obicno smjesta u bolnicku sobu prilikom dolaska u bolnicu. Svaka soba moze primiti mnogo pacijenata, i imamo sobe razlicitih tipova. Konzultanti (stariji kirurzi) bolnice smiju imati i svoje pacijente, koji su smjesteni u jednokrevetnim privatnim sobama. Informacije koje treba pamtiti o pacijentu ukljucuju jedinstveni broj zdravstvenog osiguranja, ime, adresu itd.
Medicinske sestre zaduzene za sobe Sestra moze ili ne mora biti zaduzena za sobu. Pritom jedna sestra moze biti zaduzena za najvise jednu sobu, no za istu sobu moze biti zaduzeno vise sestara. Sestra je jednoznacno odredjena svojom identifikacijskom oznakom.
Operacije koje se obavljaju nad pacijentima Nad istim pacijentom moze se obaviti vise operacija. Informacije o jednoj operaciji su: tip operacije, pacijent, kirurg, datum i vrijeme.
Kirurzi koji obavljaju operacije jednu operaciju obavlja samo jedan kirurg, a za ostale prisutne kirurge se smatra da oni asistiraju operaciji. Kirurge nadgledaju stariji kirurzi, tzv. konzultanti, koji takodjer mogu obavljati operacije ili asistirati. Informacije o jednom kirurgu su ime (pretp. jedinstveno), adresa, br. telefona itd. Svaki konzultant ima svoju specijalnost.
Operacione sale u kojima se obavljaju operacije Jedna operacija se odvijau samo jednoj sali, no ista sala moze biti mjesto mnogih operacija. Svaka sala ima svoj identifikacijski broj. Neke sale su specijalno opremljene za neke vrste operacija.
Medicinske sestre zaduzene za sale Sestra moze ili ne mora biti zaduzena za salu, no ne moze biti zaduzena za vise od jedne sale. Za jednu salu moze biti zaduzeno mnogo sestara.

Vjezbe 2
Jos jedan primjer:
str 1, str 2, str 3, str 4, str 5, str 6

Vjezbe 3
Zadatci:
Zad 1 Ispisati citav sadrzaj svake od 4 tabele u demo bazi.
Zad 2 Ispisati imena i datume rodjenja za sve studente.
Zad 3 Recimo da fakultet odluci svim nastavnicima udvostruciti placu od iduce godine. Ispisite kolike ce biti place nastavnika iduce godine.
Zad 4 Ispisite imena nastavnika koji predaju bar jedan kolegij.
Zad 5 Ispisati sve podatke o nastavnicima iz sobe 1024. Ispisati imena nastavnika s placom vecom od 40 000. Ispisati imena nastavnika koji ne sjede u sobi 1024.
Zad 6 Ispisati sve podatke o nastavnicima koji sjede u sobi 1024 ili 2014. Ispisati sve podatke o nastavnicima koji ne sjede ni u sobi 1024 ni u sobi 2014.
Zad 7 Ispisati sve podatke o nastavnicima koji zaradjuju izmedju 35 000 i 40 000 godisnje. Ispisati sve podatke o nastavnicima koji zaradjuju manje od 35 000 ili vise od 40 000.
Zad 8 Ispisati brojeve svih studenata koji su iz kolegija br. 216 dobili ocjenu izmedju 70 i 80. Ispisati brojeve studenata koji su bar iz jednog kolegija dobili izmedju 70 i 80.
Zad 9 Ispisi imena studenata koja pocinju slovom 'B', zatim sva imena studenata u kojima se pojavljuje niz znakova 'urn'. Na kraju, ispisati imena studenata kojima se kao trece slovo pojavljuje 'g'.
Zad 10 Ispisati podatke o nastavnicima, uzlazno sortirane po placi. Ispisati sve podatke o nastavnicima, silazno sortirano po placi.
Zad 11 Ispisite imena studenata rodjenih 1972 godine, koji su na 2. stupnju studija. Ispis treba biti abecedno sortiran po imenima.
Zad 12 Ispisati podatke o nastavnicima koji zaradjuju izmedju 35 000 i 40 000, tako da im imena budu sortirana po abecedi. Ispisati podatke o svim nastavnicima, sortirano po sobama, s time da nastavnici iz iste sobe slijede po abecedi.
Zad 13 Ispisite studente sortirano po starosti (pocevsi od najstarijeg).
Zad 14 Ispisati imena i udvostrucene place nastavnika, sortirano po udvostrucenim placama.

Vjezbe 4
Zadatci:
Zad 15 Stvoriti tablice koje odgovaraju onima u demo bazi "manger".
Zad 16 U direktoriju /math/manger/bp nalaze se datoteke s podacima za demo bazu. Jedna datoteka odgovara jednoj tabeli, jedan redak datoteke jednoj n-torki. Vrijednosti atributa razdvojene su znakovima tab. Imena datoteki su data-COURSE itd. Inicijalizirajte sadrzaj za vlastite tabele COURSE i LECTURER t. d. ucitate podatke iz odgovarajucih datoteka.
Zad 17 Inicijalizirajte sadrzaj za vlastite tabele REPORT i STUDENT t. d. prepisete podatke iz odgovarajucih tabela demo baze "manger".
Zad 18 Upisite u bazu novog nastavnika s imenom Jones, koji ce sjediti u sobi 2014 i imati ce placu 35500.
Zad 19 Realizirajte situaciju u kojoj je nastavnik Black dobio otkaz. Sve njegove kolegije preuzima Jones.
Zad 20 Nastavnika Jonesa premjestite u sobu 1017 i dajte mu povisicu u visini 20% dosadasnje place.
Zad 21 Izbacite s fakulteta sve studente rodjene prije 9. mjeseca 1970. godine.
Zad 22 Dajte svim nastavnicima placu od 10000
Zad 23 Stvorite indeks po primarnom kljucu za svaku od 4 tablice.
Zad 24 Provjerite da "unique indeks" zaista sprecava upis 2 n-torke s istom vrijednoscu primarnog kljuca.
Zad 25 Stvorite indekse kojima se ubrzava: trazenje studenata na zadanoj godini (stupnju), trazenje kolegija koje predaje zadani nastavnik, trazenje nastavnika koji sjede u zadanoj sobi.
MySQL Reference Manual
Ponvno stvori i napuni bazu

Vjezbe 5
Zadatci:
Zad 1 Ispisati listu imena studenata zajedno s naslovima kolegija koje su oni upisali. Ispisati naslove onih kolegija koje je upisao studnet Burns.
Zad 2 Ispisati listu imena studenata zajedno s nazivima kolegija koje su oni upisali, s time da iskljucimo studente na stupnju 3. Ispisati nazive onih kolegija koje je upisao bar jedan student na stupnju 2.
Zad 3 Ispisati sve parove nastavnika koji sjede u istoj sobi.
Zad 4 Ispisati imena i place svih nastavnika koji imaju vecu placu od nastavnika Blacka.
Zad 5 Ispisati listu imena studenata zajedno s naslovima kolegija koje ti studenti nisu upisali.
Zad 6 Ispisati brojeve i imena studenata koji nisu upisali ni jedan kolegij.
Zad 7 Ispisati imena studenata koji su upisali bar jedan kolegij. Ispisati sobe nastavnika koji predaju bar jedan kolegij.
Funkcije u MySQL-u: funkcije 1, funkcije2
Zad 8 Izracunaj izraz e^sinx + e^cosx za x=1.2 rad.
Zad 9 Ispisi place svih nastavnika u stranoj valuti, kao cijeli broj. Jedinica strane valute vrijedi kao 7.8 jedinica domace.
Zad 10 Ispisi parove studenata koji su se rodili istog dana u tjednu.
Zad 11 Prikazi uspjeh studenata koji su polozili predmet 216 u obliku histograma (veca ocjena-dulji niz zvjezdica. )
Zad 12 Ispisite svoje korisnicko ime i trenutnu verziju MySQL-a.

Vjezbe 6
Grupne funkcije u MySQL-u: funkcije3
Zadatci:
Zad 13 Ispisati: zbroj svih placa nastavnika, prosjecnu placu nastavnika, ime i placu nastavnika s najvecom placom.
Zad 14 Ispisati: broj studenata na stupnju 1, broj studenata na stupnju 2, broj svih stupnjeva, broj svih studenata.
Zad 15 Ispisati koliko studenata ima na svakom od stupnjeva.
Zad 16 Ispisati maksimum, minimum i raspon place za nastavnike iz svake od soba. Zatim ispisati iste podatke samo za sobu 2014.
Zad 17 Ispisite srednje ocjene i standardne devijacije za ocjene po svim kolegijima.
Zad 18 Ispisite maksimalnu ocjenu koju su studenti s pojedine godine ostvarili iz pojedinog kolegija.
Zad 19 Ispisite prosjecnu placu za nastavnike iz iste sobe, no samo za sobe u kojima ima vise od jednog nastavnika.
Zad 20 Zbrojite place po sobama i ispisite rang listu soba po placama.
Zad 21 Ispisite imena i place za tri najbolje placena nastavnika.

Vjezbe 7
Zad 1 Stvorite nove tablice STUDENT, LECTURER, COURSE, REPORT, ali tako da u sto vecoj mjeri stitite integritet. Naounite nove tablice podatcima iz demo-baze manger.
Zad 2 Sastavite transakciju kojom se novcani iznos od 10 000 prebacuje iz place nastavnika Blacka u placu nastavnika Holta. Pod cuvanjem konzistencije smatramo cinjenicu da je ukupan zbroj placa ostao isti.
Zad 3 Napisite naredbu kojom se neregistiriranom (anonymus) korisniku, prijavljenog sa studentskog racunala, dozvoljava pretrazivanje demo baze manger.
Zad 4 Napisite naredbe kojima se stvara korisnik somestudent s lozinkom loz000, koji se prijavljuje sa studentskog racunala, moze raditi sto zeli u svojoj bazi s imenom somestudent, smije pretrazivati demo bazu manger i smije ucitavati ili ispisivat ASCII datoteke.
Zad 5 Oduzmite korisniku somestudent pravo citanja tabele COURSE u demo bazi manger.
Stvori tablice, integritet

Vjezbe 8

Zad 1 Datoteka s najboljim rezultima neke kompjuterske igre sastoji se od zapisa oblika::

Bodovi Ime Datum

Duljina zapisa je 40 byte-a. Datoteka nikad ne sadrzi vise od 100 zapisa. Najcesca operacija je ispis "rang-liste" najboljih rezultata. Predlozite pogodnu organizaciju datoteke!

Zad 2 Datoteka automobila u nekom gradu sastoji se od zapisa oblika:

Registarski broj Tip automobila Godina proizvodnje Ime i prezime vlasnika ....(jos neki podaci)....

Duljina zapisa je 150 byte-a. Ocekujemo da ce datoteka sadrzati nekoliko tisuca zapisa. Najcesca operacija je trazenje podataka o automobilu sa zadanim registarskim brojem, a povremeno treba dodavati nove i brisati ili mijenjati postojece zapise. Predlozite pogodnu organizaciju datoteke!

Zad 3 Datoteka sadrzi rijecnik stranih rijeci i sastoji se od zapisa oblika:

Strana rijec Prijevod

Strana rijec zauzima 15 znakova, a prijevod 35 znakova, dakle duljina zapisa je 50 byte-a (jedan znak zauzima jedan byte). Rjecnik sadrzi oko 10000 rijeci. Najcesca operacija je ispis prijevoda zadane strane rijeci. Pritom se dozvoljava zadavanje pocetka strane rijeci (prvih nekoliko slova) - tada treba ispisati sve rijeci koje pocinju tim slovima i njihove prijevode. Predlozite pogodnu organizaciju datoteke!

Zad 4 Datoteka sadrzi meteoroloske podatke koji se odnose na jedan grad. Zapis je oblika:

Datum Padaline (l/m2) Temperatura u 13h (°C) Tlak u 13h (mbar) .....

Duljina zapisa je 90 byte-a. Ocekujemo da ce datoteka sadrzati nekoliko tisuca zapisa. Osim trazenja podataka za zadani dan ili zadani mjesec, potrebno je brzo naci dane za koje je kolicina padalina (l/m2) bila u zadanom intervalu. Predlozite pogodnu organizaciju datoteke!

Zad 5 Datoteka sadrzi tehnicke karakteristike vijaka koji se koriste u nekoj tvornici. Zapis je oblika:

Id. broj Promjer vijka (mm) Duljina navoja (mm) Promjer glave (mm) .......

Duljina zapisa je 120 byte-a, a datoteka ce sadrzati vise od tisucu zapisa. Osim trazenja po id. broju, javlja se potreba za odgovaranje na iduce upite: Predlozite pogodnu organizaciju datoteke!

Zad 6 Datoteka sadrzi podatke o zaposlenicima u nekom poduzecu. Zapis je oblika:

Maticni broj Prezime i ime Zanimanje Odjel .......

Duljina zapisa je 200 byte-a. Ukupan broj zaposlenih je nekoliko stotina. Cesta su ubacivanja i izbacivanja zapisa (fluktuacija kadra). Osim trazenja na osnovu maticnog broja, traze se i zaposleni sa zadanim zanimanjem ili iz zadanog odjela. Cesto se traze i zaposleni koji istovremeno zadovoljavaju dva uvjeta, dakle oni sa zadanim zanimanjem iz zadanog odjela. Predlozite pogodnu organizaciju datoteke!

Vjezbe 9

Zad 1 Zapisi osnovne datoteke sadrze sljedece vrijednosti primarnog kljuca: 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256. Prikazite gusti indeks za tu datoteku pomocu B-stabla reda 3.
Zad 2 U osnovnu datoteku iz prethodnog zadatka ubacen je novi zapis s vrijednoscu primarnog kljuca 32. Uskladite indeks (B-stablo) s tom promjenom.
Zad 3 Iz osnovne datoteke iz prethodnog zadatka izbacuje se zapis s vrijednoscu kljuca 64. U skladu s tim modificirajte indeks (B-stablo).
Zad 4 Iz osnovne datoteke iz prethodnog zadatka u nastavku se izbacuje zapis s vrijednoscu kljuca 81. Azurirajte indeks (B-stablo).