Download - 1 - Baza Podataka
PredavanjePredavanje 01 – Baze 01 – Baze podatakapodataka Definicija i osnovni pojmovi baza podataka Entitet, svojstvo Relacijski model baza podataka Programi za upravljanje s bazama podataka Veze među entitetima Modeliranje podataka
Predavanje 01 - Baze podataka 1
Baza podatakaBaza podataka
Baza podataka je organizirana zbirka podataka.
Razlikujemo bazu podataka od programa za upravljanje bazom podataka!
Program za upravljanje bazom podataka (Database Management System, DBMS) podrazumijeva da su podaci na neki organizirani način pohranjeni u obliku dostupnom programu.
Predavanje 01 - Baze podataka 2
Načini organizacije Načini organizacije podataka podataka Relacijski model – podaci su
spremljeni u tablicama, koje su međusobno povezane. Za nas najvažniji model.
Hijerarhijski modelMrežni modelObjektni model
Predavanje 01 - Baze podataka 3
Model podataka (Model podataka (Data Data ModelModel))Model podataka je prikaz
◦Stvari (objekata, događaja) važnih za opis poslovnih procesa
◦Kako su stvari međusobno povezane Model podataka se stvara i
mijenja sve dok ne predstavlja poslovne procese dovoljno dobro da se na osnovu modela može napraviti baza podataka
Predavanje 01 - Baze podataka 4
Relacijski modelRelacijski modelPodaci su organizirani u tablicama. Svaka tablica predstavlja (najčešće) neki
objekt (proizvod, tvrtku, zaposlenika) ili događaj (transakciju, račun).
Objekt/događaj koji je predstavljen u tablici zovemo entitet.
Entitet ima svoja svojstva (atribute). Svako svojstvo treba biti nekog tipa
podataka.Objekt opisuje neku pojavu, stvar,
osobu.Događaj načelno opisuje vezu između
dva ili više entiteta (uglavnom objekata).Predavanje 01 - Baze podataka 5
Primjer 1.Primjer 1.Za slijedeće entitete odredite
vrstu (objekt/događaj)
Predavanje 01 - Baze podataka 6
Učenik
Prijava ispita
Predmet
Profesor
Škola
Tipovi podataka u AccessuTipovi podataka u AccessuText – niz bilo kakvih znakova, duljine do 255 znakova.Memo – isto kao Text, samo duljina do 65535 znakovaNumber – prikaz brojčanih vrijednosti potrebnih za
razna računanja. Zbog načina prikaza broja u računalu, ponekad su potrebna dodatna podešavanja.
Date/Time – služi za prikaz vremena i datumaCurrency – služi za računanje i prikaz novčanih
vrijednosti. Novčane vrijednosti se mogu računati točno do na 4 decimalna mjesta.
AutoNumber – Access sam generira vrijednosti u polju ovog tipa i time osigurava da se te vrijednosti ne ponavljaju. Idealan tip za polje koje predstavlja primarni ključ.
Yes/No – dvije vrijednosti, Da ili Ne (0 ili 1)OLE object – binarni objekt kojeg umećemo u našu
bazu. Može biti neki Office dokument, slika ili nešto drugo.
Hyperlink – veza prema nekom drugom dokumentu bilo na disku bilo na Internetu
Predavanje 01 - Baze podataka 7
Primjer 2. Primjer 2. U prethodnom zadatku je
spomenut entitet Učenik. Navedite neka svojstva tog entiteta i odredite im tip podataka!
Predavanje 01 - Baze podataka 8
• Naziv učenika (T)• Datum rođenja (D/T)• Matični broj(T)• JMBG (T)• OIB (T)
• Ime roditelja (T)• Adresa (T)• Broj telefona (T)• Koju školu pohađa
(T)
Primjer 3.Primjer 3.Želimo napraviti bazu podataka u
kojoj će među ostalim entitetima biti i entitet Grad koji će sadržavati podatke o gradovima u Europi. Navedite neka svojstva tog entiteta i odredite im tip podataka!
Predavanje 01 - Baze podataka 9
• Naziv (T)• Broj stanovnika (N)• Država (T)• Broj automobila (N)
• Lučki grad (Y/N)• Proračun (C)• Pokrajina/županija/oblast (T)• Broj mostova (N)• itd.
Primjer 4.Primjer 4.Želimo napraviti bazu podataka u kojoj će
među ostalim entitetima biti i entitet Račun, koji će sadržavati podatke o računima koje neka tvrtka izdaje Pretpostavite da se račun izdaje samo za jednu vrstu proizvoda!
Predavanje 01 - Baze podataka 10
• Naziv robe (T)• Naziv kupca (T)• Količina (N)• Jedinična cijena (C)• Ukupna cijena (C)
• PDV (C)• Broj računa (T ili N)• Datum izdavanja računa (D/T)• Tko izdaje račun (osoba) (T)• Način plaćanja (T)• Račun plaćen (Y/N)
Relacijski model Relacijski model (nastavak)(nastavak)U jednom retku tablice držimo sve
podatke o konkretnoj realizaciji jedne instance entiteta.
Stupac u tablici sadrži podatke o nekom svojstvu za sve entitete.
Redak tablice zovemo zapis (record). Stupac tablice zovemo polje (field)Među poljima treba postojati jedno polje
koje na jedinstven način određuje zapis. To polje zovemo primarni ključ
Predavanje 01 - Baze podataka 11
Primjer – tablica GradPrimjer – tablica Grad
Redak koji opisuje “Zagreb”
Predavanje 01 - Baze podataka 12
Stupac u kojem sunavedni nazivi gradova (polje Naziv)
Koliko instanci entiteta Grad je predstavljeno u tablici?
Veze između entitetaVeze između entitetaIzmeđu entiteta mogu postojati tri
vrste veza◦Veza 1:1 (jedan-jedan)◦Veza 1:N (jedan-više, piše se i 1:∞)◦Veza M:N (više-više, piše se i ∞:∞)
Ovisno o tipu veze, vezu realiziramo◦ili uklapanjem entiteta u drugi entitet ◦ili umetanjem primarnog ključa jednog
entiteta među svojstva drugog entiteta ◦ili stvaranjem posebne tablice (entiteta)
Predavanje 01 - Baze podataka 13
Zadatak:Zadatak:kreirati entitete grad i adresa i
povezati ih!
Kako otkriti vrstu veze?Kako otkriti vrstu veze?Promatramo entitete za koje znamo
da su povezani (u stvarnom svijetu). Nazovimo ih A i B
Pitamo se s koliko zapisa iz B možemo povezati neki zapis iz A. Odgovor je 1 ili više.
Pitamo se s koliko zapisa iz A možemo povezati neki zapis iz B. Odgovor je ponovo 1 ili više.
Spojimo odgovore i dobijemo vezu.
Predavanje 01 - Baze podataka 15
PrimjerPrimjerZadani su entiteti Student, Kolegij,
Predavač, StudijUtvrdite veze između onih entiteta između
kojih postoji direktna veza!
Predavanje 01 - Baze podataka 16
Učenik - Predmet
Učenik - Profesor
Učenik - Škola
Predmet - Profesor
Predmet - Škola
Profesor - Škola
više-više
jedan - više
više-više
više-više
više-više
ne postoji
PrimjerPrimjer
Zadani su entiteti Država – države u EuropiGrad – svi gradovi sa više od 100000
stanovnika u EuropiGlavni grad – glavni gradovi
europskih državaJezik – svi službeni jezici u
europskim državama
Odredite veze među entitetima.
Predavanje 01 - Baze podataka 17
Vrste vezeVrste veze
Između entiteta Jezik i Grad, te Jezik i Glavni grad ne postoji direktna veza već se ona realizira preko Države!
Predavanje 01 - Baze podataka 18
Država - Grad
Država - Glavni grad
Država - Jezik
Grad - Jezik
Grad - Glavni grad
Glavni grad - Jezik
više-više
jedan-više
jedan-jedan
ne postoji
ne postoji
ne postoji
Veza 1-1Veza 1-1Između entitet Država i Glavni gradDržava ima točno jedan glavni
grad, a glavni grad pripada točno jednoj državi
Realizacija veze: sva tri načina su moguća, ovisi o konkretnoj situaciji u bazi
Prikazat ćemo realizaciju uklapanjem.
Predavanje 01 - Baze podataka 19
DržavaDržava i i Glavni grad Glavni grad (uklapanje)(uklapanje)
Država◦Naziv države◦Stanovnika◦Veličina◦Uređenje
Predavanje 01 - Baze podataka 20
Glavni grad– Naziv grada– Broj stanovnika
Država– Naziv države– Stanovnika– Veličina– Uređenje– Naziv grada– Broj stanovnika
Realizacija veze uklapanjem Glavnog grada u Državu (može i obrnuto)
Veza 1-∞Veza 1-∞Između entiteta Država i GradDržava ima više gradova, a grad pripada
točno jednoj državi. Realizacija veze: ili umetanjem primarnog
ključa ili novom tablicomUmetanje primarnog ključa: imamo
entitete A i B. Neka jednom zapisu entiteta A može odgovarati više zapisa entiteta B, a jednom zapisu entiteta B odgovara točno jedan zapis entiteta A. Tada među svojstva eniteta B umećemo primarni ključ entiteta A!
Predavanje 01 - Baze podataka 21
DržavaDržava i i Grad Grad (umetanje prim. (umetanje prim. ključa)ključa)
Država◦Naziv države◦Stanovnika◦Veličina◦Uređenje
Predavanje 01 - Baze podataka 22
Grad– Naziv grada– Broj stanovnika
Grad– Naziv grada– Broj stanovnika– Naziv države
Umetnuti primarni ključ entiteta Država
Entitet Država se ne mijenja
Veza ∞-∞Veza ∞-∞Između entiteta Država i JezikU državi se može govoriti više jezika,
a jedan jezik se može govoriti u više država.
Realizacija veze: novom tablicomNova tablica treba imati svoj
primarni ključ, sadržavati primarne ključeve Države i Jezika, te eventualna dodatna svojstva
Predavanje 01 - Baze podataka 23
DržavaDržava i i Jezik Jezik (nova (nova tablica)tablica)
Država– Naziv
države– Stanovnika– Veličina– Uređenje
Predavanje 01 - Baze podataka 24
Jezik– Naziv jezika– Pismo
Govori_se– ID– Naziv jezika– Naziv države– Broj stanovnika
Umetnuti primarni ključevi entiteta Jezik iDržava
Država i Jezik se ne mijenjaju
Primarni ključ nove tablice
Dodatno svojstvo
Oblikovanje modela podataka - Oblikovanje modela podataka - pripazitipripaziti
Tablice trebaju imati značenje ◦Svaki redak bi trebao predstavljati jedno
pojavljivanje entiteta◦Jedna tablica ne bi trebala sadržavati
podatke o nekoliko entiteta Izbjegava se ponavljanje podataka Olakšavaju se izmjene
Različiti stupci za podatke kojima treba neovisno pristupati.◦Ako trebate pristupati samo dijelu
podataka u nekom stupcu, razdvojite stupac!
Predavanje 01 - Baze podataka 25
Oblikovanje modela – Oblikovanje modela – pripaziti (2)pripaziti (2)Svaka ćelija sadrži točno jednu
vrijednost◦ U prošlom primjeru ne bi bilo dobro
da smo u entitetu Država imali svojstvo Jezik koje ima vrijednost talijanski, francuski
Svaka tablica treba imati primarni ključ
Izbjegavati nepotrebno ponavljanje podataka
Predavanje 01 - Baze podataka 26
Loše ...Loše ...
U tablici imamo podatke o dva entiteta, Zaposlenik i Odjel, tablicu treba razbiti na dvije.
Koja je veza između Zaposlenik i Odjel?
Predavanje 01 - Baze podataka 27
Više podataka u jednoj ćelijiRazdvojiti grad od adrese
• Što je primarni ključ za Zaposlenik ?• Treba dodati novo polje: ID ili JMBG
Bolje ...Bolje ...
Mana: dosta praznog prostora u tablici Zaposlenik
Predavanje 01 - Baze podataka 28
Još bolje ...Još bolje ...
Predavanje 01 - Baze podataka 29
Oblikovanje modela Oblikovanje modela podatakapodatakaPri oblikovanju modela podataka
treba voditi računa o slijedećem:◦Koji su entiteti potrebni za
funkcioniranje baze◦Koje upite želimo postavljati na bazi◦Kakva izvješća želimo imati u bazi◦Kakve su veze među entitetima◦Koja su svojstva svakog entiteta◦Trebaju li se neka svojstva entiteta
izdvojiti u posebnu tablicu?
Predavanje 01 - Baze podataka 30
Oblikovanje modela – još neka Oblikovanje modela – još neka pitanjapitanjaKoji su entiteti? Postoje li veze između njih? Kakva je vrsta veze? Postoje li neki dodatni uvjeti? Kakve tablice trebamo za prikaz
entiteta?Što je primarni ključ svake tablice?Koja su ostala polja u tablici? Koja polja/tablice trebamo za prikaz
veze?Jesmo li nešto zaboravili???
Predavanje 01 - Baze podataka 31
PrimjerPrimjerŽelimo napraviti model podataka za
videoteku. Potrebno je pratiti podatke o članovima, o filmovima te o posudbama koje članovi rade. Zbog jednostavnosti pretpostavljamo da članovi posuđuju jedan film. Također, treba znati koji je djelatnik posudio film. Za film se treba znati kojeg je žanra da bi filmove mogli složiti na police, te da li je vraćen ili ne. Pretpostavljamo da imamo točnu jednu kopiju filma.
Napravite model!
Predavanje 01 - Baze podataka 32
Entiteti i vezeEntiteti i veze
Član – podaci o članovimaFilm – podaci o filmovimaPosudba – podaci o posudbiDjelatnik – podaci o djelatniku
Predavanje 01 - Baze podataka 33
Član - Posudba 1 - ∞
Film - Posudba 1 - ∞
Djelatnik - Posudba 1 - ∞
Veze
Entiteti
SvojstvaSvojstvaČlan Šifra člana (T) Ime i prezime
(T) Adresa (T) Broj telefona
(T) Napomena (M)
Predavanje 01 - Baze podataka 34
Film Šifra filma (AN) Naziv filma (T) Žanr (T)
Posudba Šifra posudbe (AN) Šifra člana (T) Šifra filma (N) Id djelatnika (N) Datum (D/T) Cijena (C) Film vraćen (Y/N)
Djelatnik Id djelatnika (AN) Ime i prezime (T) Adresa (T) Broj telefona (T) Napomena (M)
U raznim tablicama povezujemo polja koja imaju isto značenje. Ta polja trebaju biti istog tipa. Izuzetak je polje tipa Autonumber koji se povezuje s poljem tipa Number u drugoj tablici!
Nove željeNove željeŽelimo omogućiti članovima
videoteke da mogu dobiti popis filmova u kojima nastupa njihov omiljeni glumac. Koje preinake (dodavanje novih entiteta, dodavanje novih svojstava postojećim entitetima) treba napraviti?
Predavanje 01 - Baze podataka 35
Novi modelNovi modelČlan Šifra člana (T) Ime i prezime
(T) Adresa (T) Broj telefona
(T) Napomena (M)
Predavanje 01 - Baze podataka 36
Film Šifra filma (AN) Naziv filma (T) Žanr (T)
Posudba Šifra posudbe (AN) Šifra člana (T) Šifra filma (N) Id djelatnika (N) Datum (D/T) Cijena (C) Film vraćen (Y/N)
Djelatnik Id djelatnika (AN) Ime i prezime (T) Adresa (T) Broj telefona (T) Napomena (M)
Glumac Id glumca (AN) Ime i prezime (T) Godina rođ. (N) Nagrade (M)
GlumacFilm Id (AN) Šifra filma (N) Id glumca (N)
Novo proširenje...Novo proširenje...Prethodni model je napravljen uz
pretpostavku da član posuđuje točno jedan film. Međutim, u praksi članovi mogu posuditi više filmova.Prepravite model tako da omogući i taj slučaj!
Predavanje 01 - Baze podataka 37
Novi modelNovi modelTablice Član, Djelatnik, Glumac, GlumacFilm
ostaju iste kao u prethodnom modelu
Predavanje 01 - Baze podataka 38
Film Šifra filma (AN) Naziv filma (T) Žanr (T)
Posudba Šifra posudbe (AN) Šifra člana (T) Id djelatnika (N) Datum (D/T) Cijena (C)
Stavka Id stavka (AN) Šifra filma (N) Šifra posudbe (N) Film vraćen (Y/N)
Posljednji modelPosljednji modelČlan Šifra člana Ime i prezime Adresa Broj telefona Napomena
Predavanje 01 - Baze podataka 39
Stavka Id Stavka Šifra posudbe Šifra filma Film vraćen
Film Šifra filma Naziv filma Žanr
Posudba Šifra posudbe Šifra člana Id djelatnika Datum Cijena
Djelatnik Id djelatnika Ime i prezime Adresa Broj telefona Napomena
Glumac Id glumca Ime i prezime Godina rođ. Nagrade
GlumacFilm Id Šifra filma Id glumca