Professional Documents
Culture Documents
Uvod UBaze Podataka 01
Uvod UBaze Podataka 01
1
Općenito o predmetu
Predavači, konzultacije
Damir.Kalpic@fer.hr
Kresimir.Fertalj@fer.hr
Predavanja
15.03., 05.04., 03.05 - 12-16 u C8 (prof. Kalpić)
25.05. i 31.05. - 12-17 u C8 (doc. Fertalj)
Folije s predavanja
Laboratorijske vježbe
Božidar Kovačić[bkovacic@mapef.pefri.hr]
Ispit
Pismeni
Usmeni
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 2
Povijesni razvoj
CILJ – POHRANITI I PO POTREBI PRONAĆI INFORMACIJE
Informacija je skup povezanih podataka:
Ante – podatak o osobnom imenu
Split – podatak o imenu grada
Ante je rođen u Splitu - informacija
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 3
Sustavi datoteka i prve baze podataka
1970.-1980.
Sustavi direktnih datoteka s međusobnim pokazateljima (rednim brojem)
zapisa
Indeks sekvencijalne datoteke
Hijerarhijske baze podataka
• Pogodne za opis hijerarhijskih struktura
– Sastavnica stroja/uređaja
» Automobil
Karoserija
Šasija
Kabina
Limarija
Pogon
Motor
Mjenjač
Elektrika
Akumulator
Razvodnik paljenja
…
Kotači
…
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 4
Hijerarhijske baze
– Organizacijska struktura poduzeća
» Direktor
Pomoćnik direktora
Tajnica direktora
Šef računovodstva
Tajnica šefa računovodstva
Daktilografkinja tajnice šefa računovodstva
Šef pravne službe
Tajnica šefa pravne službe
Daktilografkinja tajnice šefa prvna službe
…
Šef pogona A
Šef pripreme rada pogona A
Šef pogona B
…
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 5
Mrežne baze podataka
Većina struktura nije striktno hijerarhijska
Kuda pripada rasvjeta kabine automobila?
Što ako šef računovodstva i šef pravne službe imaju istu tajnicu, ali
svaki svoju daktilografkinju?
Kako prikazati iste osobe u hijerarhiji članova sindikata, ako je
daktilografkinja predsjednik sindikata?
• Prepisati u novu bazu
• Ažurirati uvijek na oba mjesta
Mrežne baze podataka
Poopćenje hijerarhijskih baza
Moguće veze među datotekama izvan hijerarhijskih
Unaprijed predvidjeti sve potrebne veze
Relacijske baze podataka
Veze svih sa svima (troši se više memorije, računalo ima više posla,
ali to danas više nije problem!)
Objektne baze podataka
Podaci o složenim objektima u nesinkronoj interakciji
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 6
Terminologija
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 7
Problemski prostor
Pojednostavnjena slika stvarnog svijeta
Da li se mogu prikupiti SVI podaci o nekoj osobi?
• DNK?
• znanja, iskustva, sjećanja, osjećaji?
Da li se mogu prikupiti svi podaci o nekom automobilu?
• Stvarno stanje materijala svakog detalja?
• Ostvariva maksimalna snaga, trenutno?
Da li se mogu prikupiti svi podaci o nekom vjenčanju?
• Što misli mlada, mladoženja, roditelji, prijatelji, bivše ljubavi?
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 9
Pohrana podataka
NULL vrijednost (razlikovati od broja 0):
Ne postoji uopće (predmet iz kojeg nema ispita)
Još ne postoji (nije još ispitivanje završeno)
Ne zna se (nastavnik nije upisao)
Neće je niti biti (student nije izašao na prijavljeni ispit)
Podaci se pohranjuju kao zapisi u tablici
REDAK = Entitet
STUPAC = Atribut
Istovrsni entiteti (skup entiteta, entity set) opisani su uređenim
skupom istovrsnih atributa
n atributa koji opisuju neki entitet -> n-torka (tuple)
Redosljed redaka nevažan
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 10
Relacijske baze podataka
“Podaci su u tablicama, a tablice
su povezane relacijama” Ime Prezime
Uobičajena pogreška! Ana Anić
Pero Ivić
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 11
Relacijske baze podataka
Tablica je podskup Kartezijevog
produkta Ime Prezime
Domena imena: Ana Ivić
• Ana, Ivo, Pero
Domena prezimena: Ivo Anić
• Anić, Ivić, Perić
Ana Perić
i nosi informaciju o imenima i
prezimenima osoba Pero Anić
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 12
Primjer tablice
DatumIspita Predmet Student Ocjena
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 13
Elementi tablice
Ime tablice (relacije, skupa entiteta ili skraćeno: entiteta)
nominativ singulara
• Osoba, Ispit, Vozilo,…
Naslov
Ime atributa
• jedinstveno za cijelu bazu:
– Datum -> DatumIspita, DatumUpisa, DatumRodjenja,…
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 14
Redundancija i višeznačnost
Tekst “Baze podataka” upisan 5 puta.
Mijenja se naziv predmeta u “Uvod u baze podataka” ,
• 5 puta raditi izmjenu.
• Zaboraviti u zadnjem retku?
– Ostanu 2 različita predmeta!
• Pogriješiti/varirati negdje u nazivu?
– Nastanu 2 predmeta: Uvod u baze podataka i Uvod baza podataka
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 15
Jednoznačna identifikacija
DatumIspita NazivPredmeta ŠifraStud ImePrezime Ocjena
enta
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 17
Uklanjanje redundancije (zalihosti)
Zašto pisati isto ime i prezime više puta?
Zašto pisati ime istog predmeta više puta?
RJEŠENJE
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 18
Šifrarnici
Tablica Predmet
ŠifraPredmeta NazivPredmeta
1 Baze podataka
2 Programiranje
3 Algoritmi
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 19
Jedinstvenost identifikatora
Tablica Student ŠifraStudenta Student
3 Ana Ivić
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 20
Uvođenje datuma promjene
Šifra DatumPr Ime Prezime
Tablica Student ezimena
Studenta
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 21
Tablica Ispit
DatumIspita ŠifraPredmeta ŠifraStudenta Ocjena
20.03.2003. 1 1 2
20.03.2003. 1 2 1
20.03.2003. 1 3 5
20.03.2003. 1 4 NULL
24.04.2003. 2 4 4
24.04.2003. 2 2 3
24.04.2003. 3 3 3
24.04.2003. 1 4 2
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 22
Kompozitni primarni ključ
Jedinstveni identifikator u tablici Ispit
DatumIspita + ŠifraPredmeta + ŠifraStudenta
Poslovna pravila pohranjena u jedinstvenom identifikatoru:
Student u istom danu može isti predmet polagati samo jednom
Na isti datum mogu se održavati ispiti iz više predmeta
Na isti datum student može polagati više ispita
Student smije pasti na ispitu i doći ponovno neki drugi dan
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 23
Surogatni ključ
Nejasna ili izmjenjiva poslovna pravila
Uvodi se surogatni primarni ključ (redni broj)
RbrIspita DatumIspita ŠifraPredmeta ŠifraStudenta Ocjena
1 20.03.2003. 1 1 2
2 20.03.2003. 1 2 1
3 20.03.2003. 1 3 5
4 20.03.2003. 1 4 NULL
5 24.04.2003. 2 4 4
6 24.04.2003. 2 2 3
7 24.04.2003. 3 3 3
8 24.04.2003. 1 4 2
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 24
Kandidat za ključ
Skup atributa koji jednoznačno određuje n-torku u relaciji je kandidat za ključ.
Može postojati više kandidata za ključ u relaciji. Ako bi se u relaciji našlo više
entiteta s istom vrijednosti kandidata za ključ, znači da se radi o istom entitetu.
Kandidat za ključ se ne može utvrditi eksperimentalno, temeljem postojećih
podataka. Kandidat za ključ se određuje razumijevanjem semantike (značenja)
podatkovnog modela.
Npr. u tablici u kojoj bi bili upisani studenti prve godine nakon prvog termina
za neki ispit, moglo bi se pomisliti da je šifra studenta kandidat za ključ.
Nadajmo se da to nije istina i da će ti studenti položiti još poneki ispit!
Po definiciji, svaka relacija (zbog zabrane ponavljanja identičnih redaka) mora
imati barem jedan kandidat za ključ: skup svih atributa u relaciji. Kandidat za
ključ može biti jednostavni ključ koji se satoji od jednog atributa ili kompozitni
ključ od više atributa. Kompozitni kandidat za ključ mora biti minimalan –
uklanjanjem bilo kojeg ad atributa od kojih je složen, mora gubiti svojstvo da
jednoznačno određuje svaku n-torku.
U tablici Ispit kandidati za ključ su:
• DatumIspita + ŠifraPredmeta + ŠifraStudenta
• RbrIspita
RbrIspita + DatumIspita nije kandidat za ključ jer je DatumIspita nepotreban za
jednoznačno određivanje retka
Za podatke u primjeru ŠifraStudenta + Ocjena jedinstveno određuju redak.
Semantički je jasno da to ne može biti kandidat za ključ jer bi implicirao apsurdno
pravilo da nijedan student ne smije dobiti iz različitih predmeta istu ocjene.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 25
Prva normalna forma
Relacija je u prvoj normalnoj formi ako su domene njenih
atributa skalari.
Tablica upisanih predmeta Upis
ŠifraStudenta ŠifrePredmeta
1 1, 2, 3
2 1, 2
3 1, 3, 2
4 1, 3
5 2, 1, 3
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 26
Tablica upisanih predmeta Upis
ŠifraStudenta ŠifraPredmeta_1 ŠifraPredmeta_2 ŠifraPredmeta_3
1 1 2 3
2 1 2 NULL
3 1 3 2
4 1 3 NULL
5 2 1 3
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 27
Uklanjanje ponavljajućih atributa
Atributi ŠifraPredmeta_1, ŠifraPredmeta_2 i ŠifraPredmeta_3 su nad istom
domenom i imaju isto značenje.
Prva normalna forma ne dopušta ponavljanje istovrsnih atributa jer je to samo
drugi oblik neskalarnog atributa.
ŠifraStudenta ŠifraPredmeta
1 1
1 2
1 3
2 1
2 2
3 1
3 3
4 1
4 3
5 2
5 1
5 3
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 28
Prednosti prve normalne forme
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 30
Funkcijska zavisnost
Za bilo koju n-torku s dva skupa atributa {X1...Xn} i {Y1…Ym}, koji se
mogu i preklapati, skup Y je fukcijski zavisan od skupa X, ako za svaku
od dopuštenih vrijednosti u X ima samo jedna vrijednost u Y.
Na primjer ako znamo datum ispita, šifru studenta i šifru predmeta,
jednoznačno ćemo odrediti ocjenu. Ne vrijedi obrat; znajući ocjenu, ne
možemo jednoznačno utvrditi o kojem se ispitu radi.
Znajući šifru predmata jednoznačno određujemo naziv. Iz šifre studenta
određujemo studentovo ime i prezime. Međutim iz imena na slijedi
jednoznačano šifra studenta, kao niti iz prezimena. Ima 2 Anića i 2
različite Ane.
Kandidat za ključ nužno funkcijski određuje sve atribute u relaciji. Ako
skup {X} nije kandidat za ključ a određuje neki {Y} koji nije trivijalno
podskup od {X}, slijedi da ima redundancije jer se nepotrebno zapisuje
nešto što jednoznačno slijedi iz {X}.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 31
Druga normalna forma
Relacija je u drugoj normalnoj formi ako je u prvoj normalnoj
formi i ako su svi atributi funkcijski zavisni o cijelom kandidatu
za ključ.
Skupili smo ponovno sve atribute u tablici Ispit i dopunili s
podacima o ispitivačima. Korisnici to vole jer “onda sve vide na
jednom mjestu”.
Kandidat za ključ i ujedno jedini primarni ključ je kompozitni
ključ:
DatumIspita + ŠifraPredmeta + ŠifraStudenata
• Neprikladnost imena, prezimena i naziva za jednoznačnu
identifikaciju smo već razmatrali!
O cijelom ključu zavisi ŠifraIspitivača, PrezimeIspitivača i ocjena
ImeStudenta i PrezimeStudenta ne ovise o DatumIspita ni o
ŠifraPredmeta (recimo da se Iva nije udavala!)
NazivPredmeta ne ovisi o DatumIspita ni o ŠifraStudenta
Svođenjem na drugu normalnu formu ponovno dobivamo
izdvojene tablice Student i Predmet te Ispit u drugoj normalnoj
formi.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 32
Tablica Ispit u drugoj normalnoj formi
Datum ispita ŠifraPredmeta ŠifraStudenta ŠifraIspitivača PrezimeIspitivača Ocjena
20.03.2003. 1 1 1 Kalpić 2
20.03.2003. 1 2 2 Fertalj 1
20.03.2003. 1 3 1 Kalpić 5
24.04.2003. 2 2 3 Mornar 3
24.04.2003. 3 3 3 Mornar 3
24.04.2003. 2 4 2 Fertalj 2
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 33
Treća normalna forma
Prezimena ispitivača ponavljaju se toliko puta koliko su ispita
održali. Uvedena je ŠifraIspitivača jer prezime ne mora biti
jednoznačni identifikator osobe.
ŠifraIspitivača nije dio kandidata za ključ. Kad bi se postojeći
kandidat za ključ proširio sa ŠifraIspitivača, to bi impliciralo
pravilo studiranja po kojem student kad padne na nekom ispitu,
može isti dan pokušati položiti taj isti predmet, ali kod drugog
ispitivača.
ŠifraIspitivača međutim jednoznačno određuje
PrezimeIspitivača i odatle redundancija.
Relacija je u trećoj normalnoj formi ako je u drugoj normalnoj
formi, i ako su usto i svi neključni atributi međusobno funkcijski
nezavisni.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 34
Tablica Ispit u trećoj normalnoj formi
Datum ispita ŠifraPredmeta ŠifraStudenta ŠifraIspitivača Ocjena
20.03.2003. 1 1 1 2
20.03.2003. 1 2 2 1
20.03.2003. 1 3 1 5
24.04.2003. 2 2 3 3
24.04.2003. 3 3 3 3
24.04.2003. 2 4 2 2
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 35
Tablice šifrarnici
Ispitivač Predmet
2 Fertalj 2 Programiranje
3 Mornar 3 Algoritmi
Student
ŠifraStudenta ImeStudenta PrezimeStudenta
1 Ana Ivić
2 Ivo Anić
3 Ana Perić
4 Pero Anić
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 36
Prednosti normalizacije
Normalizacija nije hir teoretičara!
Paradoksi nenormaliziranih relacija:
Ne bi se moglo evidentirati ispitivača sve dok nije obavio barem
jedan ispit
Ako se izbriše posljednji zapis o ispitu koji je neki ispitivač održao,
gubi se podatak o njegovom prezimenu
Isti podatak se mora više puta unositi/ažurirati. Ako se pri tome
pogriješi, ne zna se više što je istina
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 37
Vremenska dimenzija
Ne mogu se mijenjati podaci o prošlim događajima (Orwell!)
Ako sa Ana Perić ipak udala i promijenila prezime u Ivić
PromjenaPrezimena
ŠifraStudenta DatumPromjene StaroPrezime
3 29.04.2003 Perić
Student
ŠifraStude ImeStudenta PrezimeStudenta
nta
1 Ana Ivić
2 Ivo Anić
3 Ana Ivić
4 Pero Anić
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 38
Evidencija promjena
Sad postoje dvije Ane Ivić, ali imaju različite šifre i različite su
osobe
Svi dokumenti izdani za osobu # 3 glasili su na Anu Perić sve do
29.03.2003.
Nakon 29.03.2003. radi se o Ani Ivić, ali je ŠifraStudenta ostala
ista
U praksi JMBG garantira jednoznačnu identifikaciju osobe
Preko JMBG se povezuju razni podaci o istoj osobi
Evidentiranje promjena
Brišu se/mijenjaju samo podaci koji su unešeni pogreškom i to je
ustanovljeno prije nego ih je itko koristio (teško sa sigurnošću
utvrditi!)
Stari podaci se zadržavaju ali mijenjaju status jer postoje novi
Ako treba iz baze ispisati prijavnicu za studenta # 3 za položene
Baze podataka 20.03.2003, ispis će sadržavai podatke
• 3, Ana Perić, Baze podataka, 5, 20.03.2003, Kalpić
Za istu osobu, ali za ispit od 24.04.2003
• 3, Ana Ivić, Algoritmi, 3, 24.04.2003, Mornar
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 39
Statusi dokumenata - Ispit
Podaci o ispitu studenta prolaze kroz različite faze
Status podatka o ispitu:
• Student nema pravo prijave ispita (nema pravo na potpis)
• Student ima pravo prijave
• Student se prijavio
– Student se odjavio, Kraj
• Student polaže pismeni dio
– Student nije pristupio, Kraj
– Student je pao
» Student dolazi na reklamacije
» Rekalmacija odbijena, Kraj
• Student polaže usmeni dio
– Student nije pristupio, Kraj
– Student je položio, Kraj
• Student je pao
– Student prihvaća pad, Kraj
• Student se žali na ocjenu
– Komisijski ispit, Kraj
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 40
Statusi dokumenata - Račun
Pogrešno izdan račun se ne briše, radi se storno. Mogući statusi
računa:
Oblikovan predračun
Poslan predračun
Naplaćen predračun
Oblikovan račun
Poslan račun
Djelomično plaćeni račun
Plaćeni račun
Proknjiženo plaćanje
Storniran dokument
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 42
Zadaci za vježbu
1. Treba svesti na prvu, drugu i treću normalnu formu sljedeće podatke:
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 43
Zadaci za vježbu
2. Treba svesti na prvu, drugu i treću normalnu formu sljedeće
podatke sa skladišne primke koji se evidentiraju u nekom
skladištu:
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 44
Zadaci za vježbu
3. Normalizirati relacijsku shemu za evidentiranje podataka o
uplatama:
JMBG
Prezime
Ime
BrojRacuna
SifraBanke
NazivBanke
PostBrojSjedistaBanke
NazivMjestaBanke
DatumUplate
SifraValute
NazivValute
IznosUplate Ponavlja se!
SifraUplatitelja
NazivUplatitelja
PostBrojMjestaUplatitelja
NazivMjestaUplatitelja
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 45
Zadaci za vježbu
4. Evidentiraju se sljedeći atributi:
a1, a2, a3, a4, a5, a6, a7, a8
Postoje sljedeće funkcijske zavisnosti:
a1:> a2, a3, a4, a7, a8
a4, a5 :> a6
a3, a4 :> a7, a8
a7 :> a8
Napisati relacijsku shemu u 3. normalnoj formi.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 46
Modeliranje podataka
Model Entiteti-Veze
Pretvorba modela entiteti-veze u relacijski model podataka
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 47
Dijagram entiteti-veze
Dijagram entiteti-veze
eng. Entity-Relationship Diagram, ERD
naziva se još i dijagram objekti-veze (izbjegavati!)
postoje različite notacije, npr. Chen, Martin
osim osnovnih, koriste se i prošireni modeli
ne postoje jednoznačni standardi postupka izrade
0,1
Mjesto Zanimanj e Pri pada
NadJed
1,1 1,N
0,N
PodJed
1,1 0,M
0,N
0,N
Cj elina
Racun
1,1 1,1
Proi zvod Sastav
1,1
NS
1,1 Di o
RacStRac OdnosiSeNa
0,N
ES
0,1 0,N 1,N 0,1 0,1
0,N
Djel atni k Suradni k StavkaRacuna Igl a Avion
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 48
Entiteti
Entitet (entity)
bit, biće, suština, bitnost
nešto što postoji u stvarnom svijetu
posjeduje značajke koje ga opisuju i po kojima se razlikuje od
svoje okoline
pojedinačne pojave (instance) entiteta grupiraju se u skupove →
tip entiteta (entity type), skup entiteta (entity set), naziva se još i
klasa podataka
u praksi se može poistovjetiti pojam entitet sa skupom entiteta
označava se imenicom (u jednini)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 49
Entiteti
Entitet može biti:
objekt, npr. mjesto (Zagreb), proizvod (video Prohujalo s vihorom)
osoba, koja se može pojaviti u različitim ulogama, npr. stanovnik,
djelatnik, član videoteke, student (Kit Karson)
apstraktni pojam, npr. boja, jezik (hrvatski), iskustvo (poznavanje
jezika, služenje jezikom)
ustanova ili organizacija, npr. fakultet (FER), poduzeće (Hotel
Proljeće) ili organizacijska jedinica (Ured za istraživanje ruda i
gubljenje vremena)
događaj (situacija, stanje) - prošli, sadašnji ili budući, npr. rođenje,
školovanje, zaposlenje, smrt
povezanost različitih objekata stvarnog svijeta, npr. srodstvo
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 50
Atributi i domene
Atribut
atribut predstavlja neko obilježje/svojstvo entiteta
vrijednosti atributa pohranjuju se u bazu podataka → elementarni
podatak (data element, data item)
po vrijednostima koje predstavljaju, atributi mogu biti:
• jednostavni atributi (simple attribute) - vrijednost atributa je
pojedinačni podatak, npr. Prezime, Ime
• složeni, sastavljeni atributi (composite attribute) - vrijednost je
uređena n-torka raznovrsnih podataka, npr. datum = (dan,
mjesec, godina)
• višeznačni atributi (multivalued attribute) - atributi koji
predstavljaju ponavljajuće grupe podataka, to jest atributi s
više istovrsnih vrijednosti, npr. Osoba.Telefon =
(TelefonNaPoslu, TelefonKodKuce, MobilniTelefon)
s obzirom na pohranu vrijednosti, atributi mogu biti
• atributi pohrane (stored attribute)
• izvedeni/derivirani atributi (derived attribute) - vrijednost im
se može odrediti na temelju drugih atributa npr.
starost =(DanašnjiDatum-DatumRođenja), staž
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 51
Atributi i domene
Domena
skup mogućih vrijednosti koje nad njom definirani atributi mogu
poprimiti
• Identifikator osobe: skup dozvoljenih kratkih cijelih brojeva
• Adresa: skup nizova slova i znamenki
domene također mogu biti jednostavne i složene
nad svakom domenom može se definirati po volji mnogo atributa
8746 Ford Alan Melrose place xx
37528 Karson Bob Sunset boulevard 2958
1164 Rock Kit Vukovar avenue 58
... ... ... ...
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 52
Ključevi
Ključ (key)
skup atributa koji (svojim vrijednostima) jednoznačno identificira
svaki od entiteta u nekom skupu entiteta
• mora se sastojati od bar jednog atributa → jednostavan ključ
– primjer: OSOBA = @JMBG + Prezime + Ime …
– primjer: MJESTO = @ŠifraMjesta + NazivMjesta ...
• može se sastojati od više atributa → složeni ili kompozitni ključ
– primjer: MJESTO = @ŠifraDržave+@ŠifraMjesta
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 53
Ključevi
entitet može imati jedan ili više ključeva
• entitet mora imati barem jedan ključ
• entitet može imati više mogućih ključeva, tj. kandidata za
primarni ključ (candidate key), koji ne moraju biti međusobno
disjunktni, tj. mogu imati atribute presjeka
– jedan od ključeva odabire se za primarni ključ (primary key), npr.
Osoba.IdOsobe, Mjesto.ŠifraMjesta
– nakon odabira primarnog ključa, ostali mogući ključevi postaju
alternativni ključevi (alternate key), npr. Mjesto.PostBr
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 54
Ključevi
Strani ključ (foreign key)
skup atributa koji se odnosi na ključ drugog skupa entiteta, tj. skup
atributa čije se vrijednosti odnose na vrijednosti ključa drugog
entiteta (Osoba.SifMjesta odnosi se na Mjesto.SifMjesta)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 55
Ključevi
Strani ključ
• može poprimiti vrijednost primarnog ključa drugog entiteta ili
• može poprimiti nul-vrijednost (null value)
• ukazuje na povezanost između entiteta, odnosno skupova
entiteta
Primjer:
• Osoba.SifMjesta odnosi se na Mjesto.SifMjesta, odnosno
• Entitet Osoba (IdOsobe=8746) ima SifMjesta=038, koja se
odnosi na entitet Mjesto s IdMjesta=038
Napomena
nul-vrijednost označava nepoznatu vrijednost atributa ili
nadomiješta vrijednost atributa koji se ne koristi
Primjer:
• Osoba (IdOsobe=37528) boravi u nepoznatom mjestu, pa joj je
SifMjesta ima nedefiniranu vrijednost
nul-vrijednost nije 0 (nula) niti “” (prazan znakonvni niz)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 56
Elementi dijagrama Entiteti-Veze
Primjer, atributi i ključevi u oglednom modelu stvarnog svijeta
Telefon – višeznačni atribut (1NF ?)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 57
Veze
Veza (relationship)
pokazuje odnos između entiteta
može izražavati ulogu entiteta koje povezuje
imenuje se glagolom ili glagolskom imenicom
Primjer (veza i uloge)
Osoba STANUJE u Mjestu (Osoba je STANOVNIK Mjesta)
u Mjestu STANUJE Osoba (Mjesto je MJESTO STANOVANJA)
Aktiv – Pasiv:
• Osoba STANUJE u Mjestu (Mjesto je NASTANJENO Osobom)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 58
Veze
Stupanj veze (degree of relationship)
broj entiteta koji sudjeluju u vezi
općenito, može se povezati bilo koji broj entiteta (oprez!)
• veza drugog stupnja → binarna veza
• veza trećeg stupnja → ternarna veza
• općenito, veza može biti n-tog stupnja → n-arna veza
posebni slučaj binarne jest veza nekog entiteta s tim istim
entitetom → unarna veza (refleksivna, rekurzivna, involucijska)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 59
Veze
Tip i kardinalnost veze (cardinality)
tip veze označava način pridruživanja (pojava) entiteta u vezi (type
of relationship)
• jedan-prema-jedan (1:1)
• jedan-prema-više (1:N)
– može postojati više (paralelnih) veza između dva entiteta
• više-prema-više (M:N)
donjom i gornjom granicom kardinalnosti brojčano se iskazuje
učešće entiteta u vezi
• donja granica može biti 0, 1, pozitivni cijeli broj ili znak (npr. M)
– donja granica = 0 → djelomično, neobavezno (optional)
pridruživanje
– donja granica ≠ 0 → potpuno, obavezno (mandatory) pridruživanje
• gornja granica može biti 1, pozitivni cijeli broj ili znak (npr. N)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 60
Veze
Primjer: binarna veza 1:N
1,1 0,N
Mjesto Stanuje Osoba
0,M 0,N
OrgJed Proizvodi Proizvod
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 61
Veze
Primjer, ternarna veza
Zanimanje
1,N
1,N 1,N
Osoba Zaposlen OrgJed
PodJed Dio
0,N 0,N
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 62
Specijalizacija/Generalizacija
Specijalizacija/Generalizacija
takozvana "jest" veza (“is a” relationship)
veza koja opisuje posebne slučajeve u nekom skupu entiteta, to
jest odnos nekog entiteta (nadtip) i njegovih posebnosti (podtip)
podređeni entiteti stvaraju se na temelju njima nadređenog
entiteta u kojem dijele zajedničke atribute
• nadtip (supertype) - sadrži zajedničke atribute i predstavlja
generalizaciju podređenih entiteta
• podtip (subtype) - sadrži samo njemu svojstvene atribute i
predstavlja specijalizaciju nadređenog entiteta
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 63
Specijalizacija/Generalizacija
B jest podtip od A ako: B jest uvijek A, A jest ponekad B
Djelatnik je uvijek Osoba, Osoba je ponekad Djelatnik (Suradnik)
Igla jest uvijek Proizvod, Proizvod jest ponekad Igla (Avion)
specijalizacija može biti:
• neekskluzivna - Osoba jest Djelatnik ili Suradnik, ali u isto
vrijeme može biti i Djelatnik i Suradnik
• ekskluzivna - Proizvod jest Igla ili Avion, ali ne može
istovremeno biti i Igla i Avion
Osoba Proizvod
1,1 1,1
NS ES
0,1 0,N 0,1 0,1
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 64
Jaki i slabi entiteti
Jaki i slabi entiteti
jaki entitet - entitet koji postoji (egzistira) samostalno,
nezavisan/dominantan entitet, pr. Mjesto
slabi entitet (weak entity) – postoji samo ako postoji jaki entitet u
vezi, zavisan/podređen entitet
• egzistencijalno slab entitet - entitet koji ne postoji samostalno
→ entitet sa stranim ključem (pr. Osoba)
• identifikacijski slab entitet - entitet koji se ne identificira
samostalno → entitet koji nema vlastiti ključ, nego se njegov
ključ tvori od ključa jakog entiteta i (opcionalno) vlastitog
atributa (deskriptora), pr. Djelatnik, Suradnik, StavkaRacuna
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 65
Jaki i slabi entiteti
Primjer, egzistencijalno slab entitet Osoba
1,1 0,N
Mjesto Stanuje Osoba
1,1 1,N
Racu n Ra cStRac Stavka Ra cun a
Dio
NadJed
1,1 1,N
0,N
PodJed
1,1 0,M
0,N
0,N
Cj elina
Racun
1,1 1,1
Proi zvod Sastav
1,1
NS
1,1 Di o
RacStRac OdnosiSeNa
0,N
ES
0,1 0,N 1,N 0,1 0,1
0,N
Djel atni k Suradni k StavkaRacuna Igl a Avion
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 68
ERD notacija
Primjer, dijagram modela poduzeća (Martin)
Mjesto Zanimanj e
Pri pada
Stanuj e
Sastav
Proi zvod
Racun
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 69
Razvoj modela
Izrada modela entiteti-veze
Pretvorba modela entiteti-veze u relacijski model podataka
Ugradnja referencijskog integriteta
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 70
Izrada modela entiteti-veze
Odrediti entitete
razlučiti, imenovati i opisati entitete
• opisati značenje i uporabu entiteta
• popisati osnovne atribute
odrediti specijalizaciju entiteta
• odrediti klasifikacijski atribut nadtipa
– npr. Proizvod.TipProizvoda ∈ { “Igla”, “Avion” }
• odrediti podtipove
– npr Igla, Avion
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 71
Izrada modela entiteti-veze
Odrediti veze
utvrditi, imenovati i opisati veze
• opisati značenje veza
odrediti zavisnost entiteta
• odrediti obične veze, tj. veze tipa 1,1:1,N (0,N)
utvrditi veze višeg stupnja
• npr. “zaposlenje osobe u organizacijskoj jedinici na radnom
mjestu” → Zaposlen
odrediti kardinalnost veza na temelju odgovora na pitanja oblika
“mora/može” → donja/gornja granica
• Koliko X mora/može imati Y ?
• Koliko se Y mora/može nalaziti u X ?
• mogući odgovori su “ni jedan” (0), “barem jedan” (1), “više”
(N)
izbaciti redundantne veze, to jest one koje se daju izvesti iz drugih
• pripaziti na kardinalnost veza u lancu
– primjerice Osoba 0,N:1,1 Mjesto 0,N:1,1 Drzava
– naspram Osoba 0,N:0,1 Mjesto 0,N:0,1 Drzava
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 72
Izrada modela entiteti-veze
Odrediti ključeve
ključ jakog entiteta = identifikacijski atribut
ključ identifikacijski slabog entiteta = ključ jakog entiteta i vlastiti
atribut
pripaziti na ključeve sastavljene od više atributa
• atributi ključa koji su ujedno ključevi drugih entiteta upućuju
na veze
Odrediti (ostale, zavisne) atribute entiteta
utvrditi, imenovati i opisati atribute
• odrediti značenje atributa
• odrediti domenu atributa (tip vrijednosti i skup/raspon
vrijednosti)
odrediti kardinalnost atributa
• kardinalnost 0 → opcionalna vrijednost (null)
• kardinalnost 1 → zahtijevana vrijednost (not null)
• kardinalnost N → višeznačni atribut (npr. Osoba.Telefon)
grupirati povezane atribute, npr. (dan, mjesec, godina) → datum
po mogućnosti izbaciti izvedene atribute
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 73
Izrada modela entiteti-veze
Provjeriti model
pripaziti na sinonime, tj. različite nazive istih objekata
pripaziti na homonime, tj. jednake nazive različitih objekata
provjeriti moguće redundantne veze i po potrebi ih ukloniti
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 74
Pretvorba modela entiteti-veze u relacijski
model podataka
Entiteti (skupovi entiteta)
entitet (skup entiteta) → relacija, npr. Mjesto, Osoba
Atributi
atribut → atribut, npr. Osoba.Prezime
izvedeni atribut → atribut pohrane ili se izostavlja, npr. Osoba.Staz
složeni atribut → atribut (grupiranjem elemenata), npr. (dan,
mjesec, godina) → datum
Osob a
IdOsob e
Prezim e
Im e
Adres a
DatRo d
Staz
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 75
Pretvorba modela entiteti-veze u relacijski
model podataka
višeznačni atribut →
• skup odgovarajućih atributa, npr. samo entitet Osoba:
Osoba.Telefon → Osoba.TelefonNaPoslu,
Osoba.TelefonKodKuce, Osoba.MobilniTelefon
ili
• + Telefon: slabi entitet, npr.
Telefon (IdOsobe, VrstaTelefona, BrojTelefona)
IdOsob e
Prezim e
Im e
Te lefo n
Te lefo nNaPosl u
Tele fonKo dKuce
Mobil niTe lefo n VrstaTel efon a
Adres a Bro jTel efon a
DatRo d
Staz
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 76
Pretvorba modela entiteti-veze u relacijski
model podataka
Ključevi
ključ → primarni ključ, npr. Osoba.IdOsobe, Mjesto.SifMjesta
alternativni ključ → indeks nad jedinstvenim vrijednostima (unique
index) + oznaka zahtijevane vrijednosti (not null), npr.
Mjesto.PostBr
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 77
Pretvorba modela entiteti-veze u relacijski
model podataka
Veze
binarna veza 1:N → strani ključ
• egzistencijalni slabi entitet → obični strani ključ
– pr. Stanuje → Osoba.SifMjesta, Pripada → OrgJed.SifNadJed,
RacunOsoba → Racun.SifOsobe
O soba
IdOsobe O rgJed
Mjesto Prezime SifOrgJed
SifMjesta Ime NazO rgJed
PostBr <A K> SifMjesta <FK1> SifNadJed <F K1>
NazMjesta Adresa
DarRod
Staz
Osoba
IdOsobe
Prezi me Ra cun
Ime BrRa c
SifMjesta <FK1> Da tRac
Adresa IdOsobe <FK>
Da rRod IznosRac
Staz
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 78
Pretvorba modela entiteti-veze u relacijski
model podataka
Veze
binarna veza 1:N → strani ključ
• identifikacijski slabi entitet → nasljeđuje ključ jakog entiteta
– spojni ključ (compound key), npr. StavkaRacuna (BrRacuna,
SifProizvoda, JedCijena, Kolicina)
– kompozitni ključ (composite key), npr. StavkaRacuna (BrRacuna,
RbrStRac, SifProizvoda, JedCij, Kolicina)
O soba
Stavka Ra cun a IdOsobe
Prezime Telefon
BrRac <FK> Ime IdOsobe < FK>
RbrStRac SifMjesta <FK1> VrstaTelefona
Adresa BrojTelefona
Si fProizvoda <FK>
DarRod
Je dCijen a Staz
Koli cin a
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 79
Pretvorba modela entiteti-veze u relacijski
model podataka
Veze
binarna veza 1,1:0,1 → strani ključ
• moze se svesti na (identifikacijski) slabi entitet bez deskriptora
– Osoba (IdOsobe, Prezime, …, Staz),
– SlikaOsobe (IdOsobe, Slika)
• opcionalno se može razmotriti udruživanje entiteta u binarnoj
vezi 1,1:1,1 (1,1:0,1) u jednu relaciju
– Osoba (IdOsobe, Prezime, …, Staz),
– Komentar (IdOsobe, TekstKom)
– Osoba (IdOsobe, Prezime, …, Staz, TekstKom)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 80
Pretvorba modela entiteti-veze u relacijski
model podataka
Veze
agregacija n entiteta → entitet čiji se ključ sastoji od ključeva
agregiranih entiteta + n binarnih veza 1:N 0,M 0,N
OrgJed Proizvodi Proizvod
• npr. Zaposlen, Proizvodi, Sastav
Zanimanje 0,M
Zanimanje
SifZanim Cjelina
1,N NazZanim
Proizvod Sastav BrDijelova
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 81
Pretvorba modela entiteti-veze u relacijski
model podataka
Veze
specijalizacija nadtipa u n podtipova → n binarnih veza
• nadtip → (jaki) entitet, kojemu se po potrebi određuje
klasifikacijski atribut, npr. Proizvod.TipProizvoda
• podtip → (identifikacijski) slabi entitet, npr. Igla, Avion,
Djelatnik, Suradnik
O soba Proizvod
Osoba
IdOsobe
1,1 Prezime 1,1
Ime
SifMjesta <FK1> ES
NS 0,1 0,1
0,1 0,N Adresa
Proizvod
DarRod
SifProizvoda
Djelatnik Suradnik Staz Igla Avion NazProizvoda
JedCijena
TipProizvoda
Djelatnik Suradnik
Igla Avion
IdOsobe <FK1> IdOsobe <FK>
SifProizvoda <FK> SifProizvoda <FK>
BrRadKnj BrUgovora Duljina BrSjedala
BrTekRac BrZiroRac Promjer DoletKM
UvjetiSuradnje
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 82
Mjesto Zanimanje
SifMjesta SifZani m
PostBr <AK> NazZani m
NazMjesta
OrgJed
SifOrgJed
NazOrgJed
Osoba Zaposlen SifNadJed <FK1>
IdOsobe IdOsobe <FK1>
Pr ezime Si fOrgJed <FK2>
Ime SifZanim <FK3>
SifMjesta <FK1> DatPoc
Adresa DatZav
DarRod KoefPlace Proizvodi
Staz Si fOrgJed <FK1>
SifPr oizvoda <FK2>
Racun
BrRac
DatRac
IdOsobe <FK>
IznosRac
Dj elatnik Suradnik
IdOsobe <FK1> IdOsobe <FK>
BrRadKnj BrUgovora Pr oizvod
BrTekRac BrZiroRac SifProizvoda Sastav
Uvj etiSuradnje StavkaRac NazProizvoda SifPr oizvoda <FK1>
BrRac JedCijena SifDij ela <FK2>
SifProizvoda <FK> Ti pProizvoda BrDijelova
JedCij
Kolicina
Igla Avion
SifProizvoda <FK> SifProizvoda <FK>
Duljina BrSjedala
Promj er DoletKM
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 83
Zadaci za vježbu
1. Izraditi E-R i relacijski model podataka o upisu izbornih predmeta. Za studenta
se evidentira JMBG, prezime, ime i koje je izborne predmete upisao. Izborni
predmet sadrži šifru od 4 znamenke i puni naziv.
2. U nekom skladištu evidentiraju se sljedeći podaci s primke:
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 84
Zadaci za vježbu
3. U nekoj knjižnici evidentiraju se podaci:
Inventarski broj knjige
Šifra 1. autora
Prezime 1. autora
Šifra 2. autora
Prezime 2. autora
…
Naslov knjige
Datum 1. posudbe
JMBG 1. posuđivača
Prezime 1. posuđivača
Datum 2. posudbe
JMBG 2. posuđivača
Prezime 2. posuđivača
…
Izraditi E-R i model relacijske baze podataka za opisanu
evidenciju.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 85
Zadaci za vježbu
4. Na nekom fakultetu evidentiraju se podaci o klasifikacijskom ispitu:
rbr_pr Redni broj prijave
prezime Prezime pristupnika
ime Ime pristupnika
sif_sk Šifra škole
naz_sk Naziv škole
pbr Poštanski broj mjesta škole
naz-mj Naziv mjesta škole
sif_zup Šifra županije škole
sif-pred Šifra predmeta koji se polaže
naz_pred Naziv predmeta koji se polaže
rbr_zad Redni broj zadatka za gore navedeni predmet
txt_zad Tekst zadatka
br_bod Broj dobivenih bodova na zadatku
Oblikovati E-R model podataka.
Izraditi relacijski model podataka.
Obvezatno označiti primarne ključeve relacija.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 86
Zadaci za vježbu
5. Treba evidentirati podatke o dnevnom voznom redu zrakoplova.
sif_rel Šifra relacije: polazište - odredište
sif_pr Šifra prijevoznika
naz_pr Naziv prijevoznika
sif_pol Šifra mjesta polaska
naz_pol Naziv mjesta polaska
sif_dol Šifra mjesta dolaska
naz_dol Naziv mjesta dolaska
vr_pol Vrijeme polaska
min_let Broj minuta trajanja leta
tip_zr Tip zrakoplova
br_sjed Broj sjedala u zrakoplovu
Isti dan može na istoj relaciji letjeti više zrakoplova, ali u različita
vremena. U isto vrijeme na određenoj relaciji leti samo jedan
zrakoplov.
Oblikovati E-R model podataka. Izraditi relacijski model podataka.
Obvezatno označiti primarne ključeve relacija.
6. Napisati relacijski i E-R model s autorefleksivnom vezom za prikaz
sastavnice automobila. Evidentira se šifra pojedinog sastavnog dijela,
naziv dijela i broj takvih dijelova u nadređenom sklopu.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 87
Zadaci za vježbu
7. Treba evidentirati podatke o dnevnom voznom redu tramvaja:
broj_linije Broj tramvajske linije
smjer Smjer (A odlazak, B povratak)
sif_polazista Šifra polazišta
naz_pol Naziv polazišta
sif_odredista Šifra odredišta
odrediste Naziv odredišta
vr_pol Vrijeme polaska s polazišta
vr_dol Vrijeme dolaska na odredište
br_prik Broj prikolica
Broj linije i smjer određuju polazište i odredište. Tijekom dana broj
prikolica na jednoj liniji može varirati ovisno o vremenu polaska s bilo
koje početne stanice. Oblikovati E-R model podataka. Obvezatno
označiti kardinalnost veza. Izraditi relacijski model podataka.
Obvezatno označiti primarne ključeve relacija.
8. Napisati relacijski i E-R model s autorefleksivnom vezom za prikaz
ustroja vojske. Evidentira se šifra pojedine postrojbe, njen naziv i
pripadnost nadređenoj postrojbi.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 88
Ugradnja referencijskog integriteta
Bez obzira na način izrade modela, treba odrediti ograničenja
na unos, brisanje i promjenu primarnog ključa.
Podsjetnik: pravilom referencijskog integriteta osigurava se da će
vrijednost stranog ključa uvijek biti
• ili jednaka vrijednosti primarnog ključa entiteta pozvanog
stranim ključem,
• ili jednaka nul-vrijednosti.
Neka ograničenja inicijalno su definirana donjom granicom
kardinalnosti veza (opcionalnost)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 89
Ugradnja referencijskog integriteta
Postupci prilikom brisanja
Prilikom brisanja n-torke pozvane preko stranog ključa može se:
• zabraniti brisanje (restrict)
• obrisati n-torke koje imaju odgovarajuću vrijednost stranog
ključa (cascade)
• ažurirati odgovarajuće vrijednosti stranih ključeva (set null)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 90
Ugradnja referencijskog integriteta
Navedene postupke podržava SUBP ili se ugrađuju programski
Neposredno upravljanje referencijskim integritetom od strane
SUPB (DRI - Direct Referential Integrity), koje se svodi na:
• postojanje opcionalnog, tj. nedefiniranog stranog ključa (null)
• restrikciju pri unosu, tj. obvezni unos (not null) stranog ključa
• provjeru postojanja referenciranog n-torke pri unosu stranog
ključa
• kaskadno brisanje n-torki koje referenciraju neki strani ključ pri
brisanju referencirane n-torke
Upravljanje referencijskim integritetom okidačima (trigger)
• elastičniji pristup, koji omogućava ugradnju i ostalih postupaka
prilikom unosa/izmjene/brisanja n-torki
Aplikativno upravljanje integritetom
• postupci unosa/izmjene/brisanja podržani programskim kodom
• pojavljuje se problem umnažanja programskog koda, naročito
kod hibridnih sustava (4GL + GUI)
Mješovito
• kombinacija navedenih mogućnosti, s tim da DRI ima prednost
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 91
Ugradnja referencijskog integriteta
Mogući problemi
Neki atribut stranog ključa može biti primarni atribut.
• Pokušaj ažuriranja na nul-vrijednost stranog ključa koji je dio
primarnog ključa u suprotnosti je s pravilom entitetskog
integriteta i ne smije ga se dozvoliti.
• Prilikom ažuriranja stranog atributa koji je ujedno i primarni
atribut ne smije se narušiti jedinstvena vrijednost ključa.
Postupak kaskadnog ažuriranja ili brisanja n-torki treba provesti
rekurzivno, da bi se referencijski integritet očuvao u svim
dijelovima baze podataka, a ne samo na mjestu obrade.
• Problem kaskadnog brisanja “pola baze podataka”
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 92
Zadaci za vježbu
ROBA
sifra_robe naziv_robe sif_jedinice_mjere kolicina
0321 platno 1 100
kukuruz 2 50
2456 računalo 5 12
1333 pšenica 2 120
JEDINICA_MJERE
sif_jedinice_mjere naziv_jedinice_mjere
1 kvadratni metar
2 tona
3 litra
4 kilogram
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 93
Zadaci za vježbu
U nekom zavodu za zapošljavanje evidentiraju se sljedeći podaci:
JMBG
Prezime
Ime
Poštanski broj mjesta rođenja
Naziv mjesta rođenja
Poštanski broj mjesta boravka
Naziv mjesta boravka
Datum prijave u mjestu boravka
Šifra poduzeća
Naziv poduzeća
Datum zapošljavanja
Datum prestanka radnog odnosa
Ista osoba može više puta mijenjati mjesto boravka i vraćati se u isto
mjesto. Može također mijenjati mjesto zaposlenja i vraćati se u isto
poduzeće. Podaci o svim boravištima i zaposlenjima moraju se
pohraniti.
Izraditi E-R model.
Izraditi relacijski model.
Opisati kako bi se trebalo paziti na integritet baze podataka.
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 94
Kontrola ispravnosti vrijednosti atributa
Atribut iz zatvorenog skupa vrijednosti
Stručna sprema
• NSS, SSS, VŠS, VSS, NKV, KV, VKV
Nema mogućnosti izbora izvan domena
Atribut iz otvorenog skupa vrijednosti
Datum
• 07.12.2003. 29.02.2003. 29.02.2004. 37.15.2001.
Šifre s kontrolnom znamenkom
Zadnja znamenka se izračunava iz svih ostalih
Detektira se jednostruka pogreška u znamenci ili zamjena mjesta
dvije znamenke
JMBG, Tekući račun, Žiro račun,…
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 95
Primjer: Kontrola ispravnosti JMBG
JMBG se sastoji od 13 znamenki. Zadnja znamenka je kontrolni broj i
može se, ali i ne mora pohranjivati ako se zna pravilo po kojem je
izračunata.
Preporuke za izradu
Šifre moraju biti dovoljno velike da opišu željene karakteristike, ali
dovoljno male da se mogu interpretirati bez računala
Sustav šifriranje bi trebao biti smislen i prikladan da dodavanje
novih šifara bude jednostavno
Izbjegavati samogovoreće šifre
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 98