




Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
Pripremite ispite
Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u
Nabavite poene za preuzimanje
Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan
baze podataka sa petlje koje se rade u sqlu
Tipologija: Vežbe
1 / 8
Ova stranica nije vidljiva u pregledu
Ne propustite važne delove!





Baza podataka označava skup međusobno povezanih podataka koji se čuvaju zajedno i među kojima ima tačno onoliko ponavljanja koliko je neophodno za njihovo optimalno korišćenje pri višekorisničkom radu. Osnovne karakteristike baza podataka su: ▫ Konzistentnost ( valjanost ) podataka
Najrasprostranjeniji model predstavljanja podataka u bazama je relacioni model , koji podrazumeva da su svi podaci zapisani u tabelama. Tabele imaju svoje ćelije , organizovane u horizontalne redove (vrste) i vertikalne kolone. Svaka relacija ima svoj naziv po kome se razlikuje od ostalih relacija u bazi.
U vrstama (slogovima) tabele nalaze se podaci o pojedinačnim entitetima (instancama entiteta) relacije. Entiteti ili objekti su stvari, lica, pojave ili događaji koji se mogu jednoznačno idetifikovati. U kolonama tabele se nalaze svojstva entiteta ( atributi ). Svaki atribut ima svoj naziv, a sve vrednosti u relaciji moraju biti atomične (ne mogu se razložiti na komponente). Ukoliko je ćelija prazna, tada se kaže da sadrži specijalnu nedostajuću vrednost (NULL). Na primer, skup svih podataka o učenicima predstavićemo tabelom pod nazivom Ucenik. U njoj će se po vrstama nalaziti podaci o učenicima, a po kolonama će biti data svojstva učenika (JMBG, Ime, Prezime, Ime oca, MestoRodjenja, DatRodjenja). Primer sadržaja relacije Ucenik prikazan je u sledećoj tabeli: Relaciju Ucenik zapisaćemo kao: Ucenik (JMBG,Ime, Prezime, ImeOca, MestoRodjenja, DatRodjenja) Skup svih mogućih vrednosti nekog atributa zvaćemo domen atributa. To moraju biti vrednosti istog tipa, kao što je, na primer, skup svih ličnih imena. Tako, na primer, atributi Ime i ImeOca uzimaju vrednosti na skupu svih ličnih imena, atribut Prezime na skupu svih prezimena, atribut DatRodjenja na skupu svih datuma. Kao što vidimo u slučaju imena učenika i imena njegovog oca, dva atributa iste relacije mogu imati isti domen. Jedan od principa relacionog modela je da se tabela posmatra kao skup vrsta, kao i da je redosled vrsta u tabeli nebitan. U relacionom modelu važi da u tabeli ne smeju postojati dve identične vrste. U relacijama se često uvodi jedinstveni identifikator (ključ relacije) , koji ne sme imati istu vrednost na različitim entitetima. Ostale relacije u bazi podataka Škola su: Predmet(IdPredmeta, Naziv,Godina,Fond,Obavezan) Profesor(IdProfesora, Ime, Prezime) Predaje(IdProfesora, IdPredmeta, SkolskaGod) Ocena(JMBGUcenika, IdPredmeta, Ocena, DatumOcenjivanja) Neka je sadržaj ovih relacija sledeći:
veza među relacijama (ostvaruje se preko
Razmislimo kako bismo mogli tabelarno da predstavimo sve izostanke koje je neki učenik napravio tokom tekuće školske godine. Za svaki izostanak želimo da prikažemo što više detalja: koji je datum u pitanju, o kom se času radi i koji je status tog izostanka (opravdan, neopravdan ili neregulisan). Proširivanje tabele učenika ne rešava problem jer u ćelijama te kolone ne možemo da istovremeno čuvamo podatke o većem broju izostanaka. Ni dodavanje više kolona nije rešenje jer bi bilo potrebno napraviti onoliko kolona koliko je izostanaka moguće nepraviti. Ćelije u ovim kolonama bi bile uglavnom prazne, a to bi bilo neracionalno korišćenje resursa. Zbog toga je najbolje napraviti posebnu tabelu, gde će u svakoj vrsti biti sačuvani podaci o tačno jednom izostanku. Pored navedenih podataka o izostanku, vrsta mora da sadrži i podatke o učeniku na koje se izostanak odnosi. Prvi pokušaj ove tabele može biti sledeći: Međutim, ukoliko postoje dva učenika sa istim imenom i prezimenom, postaje nejasno na kog se učenika odnose izostanci. Da bismo to prevazišli, u tabelu ćemo dodati podatke o učeniku: Problem je sada u većem broju slučajeva rešen, međutim, postoji šansa i da se u istom odeljenju nađu dva učenika sa istim imenom i prezimenom i istim datumom rođenja. Dalje dodavanje podataka je moguće, ali je neefikasno i zbog toga je najbolje uzeti samo podatak koji jednoznačno opisuje svakog učenika. U tom slučaju tabela bi izgledala ovako:
Prilikom definisanja ovakvih tabela u SUBP važno je naglasiti da su vrednosti u nekoj koloni tabele primarni ključevi unutar neke druge tabele. Kolone poput id_ucenik u tabeli izostanak čine strani ljuč. Definisanjem stranih ključeva se osigurava da nije moguće u tabeli izostanaka dodati izostanak učeniku koji ne postoji u tabeli učenika. Iako se podaci o učenicima i izostancima čuvaju u odvojenim tabelama, podaci iz tih tabela se po potrebi mogu prikazati spojeno korišćenjem odgovarajućih upita, kao što je prikazano na slici ispod. Tabele u bazi i veze između njih se često predstavljaju dijagramima. Jedna vrsta dijagrama koja se često koristi prilikom projektovanja baza podataka su dijagrami entiteta veza (engl entity-relationship diagram, ERD). Na narednoj slici je prikazan dijagram koji prikazuje učenike, izostanke i vezu između njih. Između učenika i izostanaka postoji sledeća veza: svakom izostanku odgovara tačno jedan izostanak, a avakom učeniku odgovara nula ili više izostanaka. Ovaj tip veze se naziva jedan
- prema – više. Najjednostavniji način da se ostvari veza jedan prema više između dva entiteta jeste da se u tabelu kojom se predstavlja jedna vrsta eniteta upiše primarni ključ iz tabele kojom se predstavlja druga vrsta entiteta, tj. uspostavljanjem stranog ključa (u tabelu izostanaka je upisan primarni ključ iz tabele učenika).
Još jedan primer veze jedan – prema više je veza između učenika i odeljenja: svakom učeniku odgovara tačno jedno odeljenje, dok jednom odeljenju odgovara više učenika. U bazi dnevnik je potrebno čuvati i podatke o predmetima, ali i o ocenama učenika. Ako znamo da svaki učenik može imati više ocena iz nekog predmeta, i da iz svakog predmeta više učenika može biti ocenjeno, onda je veza između učenika i predmeta više – prema – više. Ova veza je sastavljena iz dve veze jedan – prema – više: