1 - Baza Podataka

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 39

Predavanje 01 – Baze podataka

 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 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 podataka
 Relacijski model – podaci su spremljeni u
tablicama, koje su međusobno povezane.
Za nas najvažniji model.
 Hijerarhijski model
 Mrežni model
 Objektni model

Predavanje 01 - Baze podataka 3


Model podataka (Data Model)
 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 model
 Podaci 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.
 Za slijedeće entitete odredite vrstu
(objekt/događaj)

Učenik

Prijava ispita

Predmet

Profesor

Škola
Predavanje 01 - Baze podataka 6
Tipovi podataka u Accessu
 Text – niz bilo kakvih znakova, duljine do 255 znakova.
 Memo – isto kao Text, samo duljina do 65535 znakova
 Number – 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 datuma
 Currency – 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.
 U prethodnom zadatku je spomenut
entitet Učenik. Navedite neka svojstva
tog entiteta i odredite im tip podataka!
• Naziv učenika (T) • Ime roditelja (T)
• Datum rođenja (D/T) • Adresa (T)
• Matični broj(T) • Broj telefona (T)
• JMBG (T) • Koju školu pohađa
• OIB (T) (T)

Predavanje 01 - Baze podataka 8


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!
• Naziv (T) • Lučki grad (Y/N)
• Broj stanovnika (N) • Proračun (C)
• Država (T) • Pokrajina/županija/oblast (T)
• Broj automobila (N) • Broj mostova (N)
• itd.

Predavanje 01 - Baze podataka 9


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!
• Naziv robe (T) • PDV (C)
• Naziv kupca (T) • Broj računa (T ili N)
• Količina (N) • Datum izdavanja računa (D/T)
• Jedinična cijena (C) • Tko izdaje račun (osoba) (T)
• Ukupna cijena (C) • Način plaćanja (T)
• Račun plaćen (Y/N)
Predavanje 01 - Baze podataka 10
Relacijski model (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 Grad

Redak koji opisuje “Zagreb”


Stupac u kojem su
navedni nazivi
gradova (polje Naziv)
Koliko instanci entiteta Grad je predstavljeno u tablici?

Predavanje 01 - Baze podataka 12


Veze između entiteta
 Izmeđ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:
 kreirati entitete grad i adresa i povezati
ih!
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
Primjer
 Zadani su entiteti Student, Kolegij, Predavač, Studij
 Utvrdite veze između onih entiteta između kojih
postoji direktna veza!

Učenik - Predmet više-više


Učenik - Profesor ne postoji
Učenik - Škola više-više
Predmet - Profesor više-više
Predmet - Škola više-više
Profesor - Škola jedan - više
Predavanje 01 - Baze podataka 16
Primjer
Zadani su entiteti
Država – države u Europi
Grad – svi gradovi sa više od 100000
stanovnika u Europi
Glavni grad – glavni gradovi europskih država
Jezik – svi službeni jezici u europskim
državama
Odredite veze među entitetima.

Predavanje 01 - Baze podataka 17


Vrste veze
Država - Grad jedan-više
Država - Glavni grad jedan-jedan
Država - Jezik više-više
Grad - Jezik ne postoji
Grad - Glavni grad ne postoji
Glavni grad - Jezik ne postoji

 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


Veza 1-1
 Između entitet Država i Glavni grad
 Drž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žava i Glavni grad (uklapanje)
Država Država
◦ Naziv države – Naziv države
◦ Stanovnika – Stanovnika
◦ Veličina – Veličina
◦ Uređenje – Uređenje
– Naziv grada
Glavni grad – Broj stanovnika
– Naziv grada
– Broj stanovnika Realizacija veze uklapanjem Glavnog
grada u Državu (može i obrnuto)

Predavanje 01 - Baze podataka 20


Veza 1-∞
 Između entiteta Država i Grad
 Država ima više gradova, a grad pripada točno jednoj
državi.
 Realizacija veze: ili umetanjem primarnog ključa ili
novom tablicom
 Umetanje 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žava i Grad (umetanje prim. ključa)
Država Entitet Država se ne mijenja
◦ Naziv države
◦ Stanovnika Grad
◦ Veličina – Naziv grada
◦ Uređenje – Broj stanovnika
– Naziv države
Grad
– Naziv grada Umetnuti primarni ključ entiteta
– Broj stanovnika Država

Predavanje 01 - Baze podataka 22


Veza ∞-∞
 Između entiteta Država i Jezik
 U državi se može govoriti više jezika, a jedan
jezik se može govoriti u više država.
 Realizacija veze: novom tablicom
 Nova 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žava i Jezik (nova tablica)
Država Država i Jezik se ne mijenjaju
– Naziv države
Primarni ključ nove tablice
– Stanovnika
– Veličina Govori_se Umetnuti
primarni
– Uređenje – ID ključevi
– Naziv jezika entiteta
Jezik i
– Naziv države Država
Jezik
– Broj stanovnika
– Naziv jezika
– Pismo Dodatno svojstvo

Predavanje 01 - Baze podataka 24


Oblikovanje modela podataka - pripaziti
 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 – 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 ... Razdvojiti grad od adrese
Više podataka u jednoj ćeliji

 U tablici imamo podatke o dva entiteta, Zaposlenik i Odjel,


tablicu treba razbiti na dvije.
 Koja je veza između Zaposlenik i Odjel?

• Što je primarni ključ za Zaposlenik ?


• Treba dodati novo polje: ID ili JMBG

Predavanje 01 - Baze podataka 27


Bolje ...

 Mana: dosta praznog prostora u tablici


Zaposlenik
Predavanje 01 - Baze podataka 28
Još bolje ...

Predavanje 01 - Baze podataka 29


Oblikovanje modela podataka
 Pri 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 pitanja
 Koji 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


Primjer
 Ž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 veze
Entiteti

 Član – podaci o članovima


 Film – podaci o filmovima
 Posudba – podaci o posudbi
 Djelatnik – podaci o djelatniku

Veze
Član - Posudba 1-∞
Film - Posudba 1-∞
Djelatnik - Posudba 1-∞
Predavanje 01 - Baze podataka 33
Svojstva
Član Posudba Film
 Šifra člana (T)  Šifra posudbe (AN)  Šifra filma (AN)
 Ime i prezime (T)
 Šifra člana (T)  Naziv filma (T)
 Adresa (T)
 Broj telefona (T)  Šifra filma (N)  Žanr (T)
 Napomena (M)  Id djelatnika (N)
 Datum (D/T)
 Cijena (C)
Djelatnik
 Film vraćen (Y/N)
 Id djelatnika (AN)
 Ime i prezime (T)
U raznim tablicama povezujemo polja koja imaju  Adresa (T)
isto značenje.  Broj telefona (T)
Ta polja trebaju biti istog tipa.  Napomena (M)
Izuzetak je polje tipa Autonumber koji se
povezuje s poljem tipa Number u drugoj tablici!
Predavanje 01 - Baze podataka 34
Nove ž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 model
Član Djelatnik
Posudba  Id djelatnika (AN)
 Šifra člana (T)
 Šifra posudbe (AN)  Ime i prezime (T)
 Ime i prezime (T)
 Šifra člana (T)  Adresa (T)
 Adresa (T)
 Šifra filma (N)  Broj telefona (T)
 Broj telefona (T)
 Id djelatnika (N)  Napomena (M)
 Napomena (M)
 Datum (D/T)
 Cijena (C)
 Film vraćen (Y/N)

Glumac
Film  Id glumca (AN)
 Šifra filma (AN) GlumacFilm
 Ime i prezime (T)
 Naziv filma (T)  Id (AN)
 Godina rođ. (N)
 Žanr (T)  Šifra filma (N)
 Nagrade (M)
 Id glumca (N)
Predavanje 01 - Baze podataka 36
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 model
 Tablice Član, Djelatnik, Glumac, GlumacFilm ostaju
iste kao u prethodnom modelu

Stavka Posudba
Film  Šifra posudbe (AN)
 Id stavka (AN)
 Šifra filma (AN)  Šifra člana (T)
 Šifra filma (N)
 Naziv filma (T)  Id djelatnika (N)
 Šifra posudbe (N)
 Žanr (T)  Datum (D/T)
 Film vraćen (Y/N)
 Cijena (C)

Predavanje 01 - Baze podataka 38


Posljednji model
Član Djelatnik
 Šifra člana Posudba  Id djelatnika
 Ime i prezime  Šifra posudbe  Ime i prezime
 Adresa  Šifra člana  Adresa
 Broj telefona  Id djelatnika  Broj telefona
 Napomena  Napomena
 Datum
 Cijena
Glumac
Stavka
 Id glumca Film
 Id Stavka
 Ime i prezime  Šifra filma
 Šifra posudbe
 Godina rođ.  Naziv filma
 Šifra filma
 Nagrade  Žanr
 Film vraćen
GlumacFilm
 Id
 Šifra filma
 Id glumca
Predavanje 01 - Baze podataka 39

You might also like