Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


baze podataka sa petlje, Vežbe od Računarstvo i informatika

baze podataka sa petlje koje se rade u sqlu

Tipologija: Vežbe

2023/2024

Učitan datuma 19.03.2024.

dusan-stoiljkovic
dusan-stoiljkovic 🇸🇷

2 dokumenti

1 / 8

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
Uvod u baze podataka
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
Na primer, podatke treba redovno ažurirati kako bi bilo omogućeno:
da se ista avionska karta se ne može prodati više puta,
dobiti spisak prodavnica u kojima se može kupiti proizvod i
slično.
Efikasnost rada
koja podrazumeva što brže dobijanje traženih podataka.
Za efikasan rad sa podacima i za održavanje konzistentnog stanja baze podataka koriste se
sistemi za upravljanje bazama podataka (SUBP).
Karakteristike SUBP:
skladištenje velike količine podataka uz minimalno ponavljanje
nezavisnost struktura podataka od programa koji ih obrađuju (podela posla
programeri koji prave SUBP i aplikativni programeri)
kontrola pristupa podacima
više korisnika može istovremeno da koristi podatke
sigurnost baze podataka koja se obezbeđuje replikacijom baze na više
različitih mesta.
Korisnici baza podataka komuniciraju sa SUBP korišćenjem upita (query). Upiti su zahtevi
kojima se pretražuju i izdvajaju podaci prema određenom skupu uslova. Upiti se pišu
korišćenjem specijalizovanog jezika koji se naziva upitni jezik. Najrasprostranjeniji upitni
jezik je SQL (Structured Query Language).
Tabelarna organizacija 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.
pf3
pf4
pf5
pf8

Delimični pregled teksta

Preuzmite baze podataka sa petlje i više Vežbe u PDF od Računarstvo i informatika samo na Docsity!

Uvod u baze podataka

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

  • Na primer, podatke treba redovno ažurirati kako bi bilo omogućeno:  da se ista avionska karta se ne može prodati više puta,  dobiti spisak prodavnica u kojima se može kupiti proizvod i slično. ▫ Efikasnost rada  koja podrazumeva što brže dobijanje traženih podataka. Za efikasan rad sa podacima i za održavanje konzistentnog stanja baze podataka koriste se sistemi za upravljanje bazama podataka ( SUBP ).
  • Karakteristike SUBP : ▫ skladištenje velike količine podataka uz minimalno ponavljanje ▫ nezavisnost struktura podataka od programa koji ih obrađuju (podela posla – programeri koji prave SUBP i aplikativni programeri) ▫ kontrola pristupa podacima ▫ više korisnika može istovremeno da koristi podatke ▫ sigurnost baze podataka koja se obezbeđuje replikacijom baze na više različitih mesta. Korisnici baza podataka komuniciraju sa SUBP korišćenjem upita (query). Upiti su zahtevi kojima se pretražuju i izdvajaju podaci prema određenom skupu uslova. Upiti se pišu korišćenjem specijalizovanog jezika koji se naziva upitni jezik. Najrasprostranjeniji upitni jezik je SQL (Structured Query Language).

Tabelarna organizacija 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:

vrednost

atributa domen

atributa

entitet (tabela, relacija Ucenik)

instanca entiteta

(red, vrsta, n-torka)

primarni

ključ

primarni ključ (složen)

(JMBGUcenika+IdPredmeta+DatumOcenjivanja)

strani ključ

(preuzet iz

tabele Ucenik)

strani ključ

(preuzet iz tabele

Predmet)

veza među relacijama (ostvaruje se preko

primarnog ključa iz jedne i

odgovarajućeg stranog

ključa iz druge tabele)

tabela (relacija)

Ocene

atribut

(kolona)

Povezane tabele

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:

Strani ključ

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:

  • Veza između učenika i ocene: svaka ocena odgovara tačno jednom učeniku, a učenik može imati više ocena;
  • Veza između predmeta i ocene: svaka ocena odgovara tačno jednom predmetu, a iz jednog predmeta može biti više ocena. Dijagramom entiteta i veza, ovakva organizacija baze se može predstaviti na sledeći način: Za razliku od veze jedan – prema – više, koja se implementira dodavanjem kolone koja je strani ključ u jednu od dve tabele, veza više – prema – više se uvek implementira dodavanjem zasebne tabele. U ovom slučaju to je tabela ocena. U tabeli ocena primarni ključ čine strani ključevi iz tabela ucenik i predmet ( id_ucenik i id_predmet ) i datum ocenjivanja. Još jedan primer veze više – prema – više je veza između predmeta i nastavnika: svaki predmet predaje više nastavnika, ali i nastavnik može predavati više predmeta. U ovom slučaju veza više – prema – više se može ostvariti tabelom predaje i dvema vezama jedan – prema – više: između tabela predmet i predaje i između tabela nastavnik i predaje. Isti princip važi i u drugim bazama. Na primer, veza između računa i proizvoda u bazi o prodaji proizvoda je takođe više – prema – više: svaki račun može da sadrži više proizvoda i svaki proizvod se može naći na više računa. Pored ove dve vrste veza, među entitetima se može javiti i veza jedan – prema – jedan. U tom slučaju je moguće da se oni prikažu jednom tabelom ili da se stavi strani ključ u jednu od tabela, ali tako da se u toj koloni ne ponavljaju vrednosti.