Download as pdf or txt
Download as pdf or txt
You are on page 1of 98

UVOD U BAZE PODATAKA

Prof.dr.sc. Damir Kalpić


Doc.dr.sc. Krešimir Fertalj
Grupa Računarske znanosti
Zavod za primijenjenu matematiku
Fakultet elektrotehnike i računarstva
Unska 3
10000 Zagreb
www.fer.hr

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

‰ Prije pojave računala


„ Kartoteke s podacima sortirane po nekom od upisanih podataka
• Redni broj
• Šifra
• Datum (kronološki slijed)
• Abeceda
• …
‰ Do 1970.
„ Skupi i ograničeni računalni resursi (memorije – RAM 64 kB, Disk 1 MB)
„ Aplikacije za obavljanje pojedinčnih funkcija
• Slijedne datoteke (magnetska traka)
– Čita se redom dok se ne nađe traženi zapis
– Ubacivanje samo na kraj ili prijepis cijele datoteke
• Direktne datoteke (disk)
– Šifra = radni broj zapisa

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?

„ Stvarnost je beskončno složenija od mogućnosti njena zapisivanja, bez


obzira na tehnologiju

‰ Entitet je nešto o čemu postoje podaci


„ Osoba
„ Automobil
„ Vjenčanje
„ Ispit
„ Ono nešto u BiH
„ …
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 8
Podatkovni model stvarnosti
‰ Ograničeni skup podataka o entitetima iz realnog svijeta
„ Atributi opisuju entitet
„ Osoba (ime, prezime, datum rođenja, mjesto rođenja, zanimanje,
boravište,…)
„ Automobil (broj šasije, broj motora, marka, model, kubikaža, snaga
motora, boja,…)
„ Vjenčanje (osoba-mladenka, osoba-mladoženja, osoba-kum, datum
vjenčanja,…)
„ Ispit (osoba-student, osoba-nastavnik, predmet, datum ispita,
ocjena,…)
„ Ono nešto u BiH (naziv, glavni grad, osoba-predsjednik,…)
‰ Atributi poprimaju vrijednosti iz svojih domena
„ Ime (niz slova – nije svaki niz ime: “zljknjvg”)
„ Datum (dopušteni datumi – 29.02.2000, ali ne i 29.02.2001)
„ Ocjena (1, 2, 3, 4, 5 – ako/dok nije izašao na ispit, NULL)

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ć

‰ TABLICA = RELACIJA Ivo Ivić


„ Relacija je podskup
Kartezijevog produkta Pero Perić

„ Domena imena: Ana Ivić


• Ana, Ivo, Pero
Ivo Anić
„ Domena prezimena:
• Anić, Ivić, Perić
Pero Anić
Kartezijev produkt (svatko sa
Ana Perić
svakim) ne nosi nikakvu
informaciju
Ivo Perić

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

20.03.2003. Baze podataka Ana Ivić 2

20.03.2003. Baze podataka Ivo Anić 1

20.03.2003. Baze podataka Ana Perić 5

20.03.2003. Baze podataka Pero Anić NULL

24.04.2003. Programiranje Pero Anić 4

24.04.2003. Programiranje Ivo Anić 3

24.04.2003. Algoritmi Ana Ivić 3

24.04.2003. Baze podataka Pero Anić 2

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,…

„ Domena atributa (izostavlja se u naslovu)


‰ Tijelo tablice
„ n – torke (retci tablice, zapisi)
• Redosljed nevažan
• Bez ponavljanja identičnih redaka

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

‰ Ana Perić je položila ispit 20.03.2003. i 24.04.2003. Udala se


29.03.2003. za Ivića i zove se od tada Ana Ivić.
„ Da li promijeniti njeno ime za ispit od 20.03.2003. (i sve prethodne ispite)?
• Već ima na tom roku jedna Ana Ivić koja je dobila 2, a ne 5! Koja je
koja?
• Da su obje dobile istu ocjenu, da li bismo znali da su to dvije osobe, ili
da li je isti redak pogreškom dva puta upisan?
„ Ako upišu Ana Ivič, neće moći diplomirati dok ne dokaže pogrešku!

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

20.03.2003. Baze podataka 1 Ana Ivić 2

20.03.2003. Baze podataka 2 Ivo Anić 1

20.03.2003. Baze podataka 3 Ana Perić 5

20.03.2003. Baze podataka 4 Pero Anić NULL

24.04.2003. Programiranje 4 Pero Anić 4

24.04.2003. Programiranje 2 Ivo Anić 3

24.04.2003. Algoritmi 3 Ana Ivić 3

24.04.2003. Baze podataka 4 Pero Anić 2


Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 16
Rješavanje višeznačnosti
‰ Ana Perić koja se udala za Ivića:
„ ŠifraStudenta = 3
„ Pod djevojačkim prezimenom položila je Baze podataka s 5
„ Pod muževljevim prezimenom položila je Algoritme s 3
„ Nema veze s Anom Ivić koja je položila samo Baze podataka i to s 2

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

‰ Zamjena (duljeg) teksta (kraćom) numeričkom šifrom


‰ Smanjena mogućnost pogreške zbog varijacija u tekstovnom
podatku
‰ Dodavanje nove tablice – šifrarnika (Look-up Table)

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

ŠifraPredmeta je jedinstveni identifikator entiteta


(retka, zapisa)
PRIMARNI KLJUČ
Ako dođe do promjene naziva predmeta,
mijenja se samo jedan tekst!

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

‰ Dva zapisa o studentu s istom 1 Ana Ivić


šifrom!
‰ Ime i prezime su dva odvojena
atributa 2 Ivo Anić
„ Koliko studenata se zove Ivo?
„ Koliko studenata ima prezime
na “ić”? 3 Ana Perić
‰ Ana Perić je 29.03.2003.
promijenila prezime u “Ivić”
4 Pero Anić

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

‰ Jedinstveni identifiktor = 1 01.10.2002 Ana Ivić


= ŠifraStudenta + DatumPrezimena
‰ Gotovo svi studenti imaju 2 01.10.2002 Ivo Anić
DatumPrezimena = DatumUpisa
Posebna tablica PromjenaPrezimena 3 01.10.2002 Ana Perić
4 01.10.2002 Pero Anić
ŠifraStudenta DatumPromj StaroPrezime 3 29.03.2003 Ana Ivić
ene
3 29.03.2003 Perić

Iz tablice STUDENT može se izbaciti atribut “DatumPrezimena” i


redak sa starim prezimenom.

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

Rastavom početne tablice na više tablica


NIJE DOŠLO DO GUBITKA INFORMACIJE

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

‰ Kad bi jedinstveni identifikator bio:


„ ŠifraPredmeta + ŠifraStudenta
• Student ne bi smio pasti na ispitu ili bi se upisivale samo
prolazne ocjene
„ DatumIspita + ŠifraStudenta
• Student ne bi smio isti dan polagati više od jednog predmeta
„ DatumIspita + ŠifraPredmeta
• Na jedan datum samo bi jedan student mogao polagati pojedini
predmet

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

Domena za ŠifrePredmeta očito nije skalar!

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

‰ŠifraPredmeta_1, ŠifraPredmeta_2 i ŠifraPredmeta_3 jesu


skalari.
‰Kako saznati tko je sve upisao predmet sa šifrom 2?
SELECT SifraStudenta FROM Upis WHERE ŠifraPredmeta_1 = 2 OR ŠifraPredmeta_2
= 2 OR ŠifraPredmeta_3 = 2;
‰Što ako netko upiše 4 predmeta?

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

‰ Kako saznati tko je sve upisao predmet sa šifrom 2?


„ SELECT SifraStudenta FROM Upis WHERE SifraPredmeta = 2;
‰ Jedan student može upisati proizvoljno mnogo predmeta
‰ Pohranjuju se vrijednosti samo za upisane predmete

‰ Nepoštivanje već prve normalne forme je često kod ljudi koji


nauče alat (npr. Access), a ne znaju ništa o oblikovanju baza
podataka, pa rade tablice kao u Excelu. Kako to prepoznati?
Zahvaljujući izjavama:
„ Program ne dopušta da itko upiše više od 10 predmeta
„ Na jednom računu može biti najviše 15 stavki
„ Naš djelatnik može imati najviše petero djece
„ Uz jednu osobu ne može biti vezano više od 3 telefona
„ Ne mogu pronaći stavku na Vašoj narudžbi ako mi ne kažete koja
je bila po redu
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 29
Kompletna tablica Ispit u prvoj normalnoj formi
Datum ŠifraPr NazivPredmet ŠifraStud ImeStude PrezimeS ŠifraIsp PrezimeI Ocjena
ispita edmet a enta nta tudenta itivača spitivača
a
20.03.200 1 Baze podataka 1 Ana Ivić 1 Kalpić 2
3.
20.03.200 1 Baze podataka 2 Ivo Anić 2 Fertalj 1
3.
20.03.200 1 Baze podataka 3 Ana Perić 1 Kalpić 5
3.
20.03.200 1 Baze podataka 4 Pero Anić NULL NULL NULL
3.
24.04.200 2 Programiranje 4 Pero Anić 2 Fertalj 4
3.
24.04.200 2 Programiranje 2 Ivo Anić 3 Miornar 3
3.
24.04.200 3 Algoritmi 3 Ana Perić 3 Mornar 3
3.
24.04.200 1 Baze podataka 4 Pero Anić 2 Fertalj 2
3.

Pretpostavimo, zbog jednostavnosti,


da se Ana Perić nije udavala!

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

20.03.2003. 1 4 NULL NULL NULL

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

20.03.2003. 1 4 NULL NULL

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

ŠifraIspitivača PrezimeIspitivača ŠifraPredmeta NazivPredmeta

1 Kalpić 1 Baze podataka

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

‰ Neki od navedenih statusa mogu izostati (trenutno ne postoje


predračuni), a može ih biti i više
‰ Propisane su mogućnosti prijelaza iz jednog statusa u drugi
„ Ne može se proknjižiti plaćanje računa koji nije bio poslan
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 41
Preciznost evidencije promjena
‰ Ovisi o relativnoj važnosti/osjetljivosti podataka
„ Bankovni račun
• Tko je zatražio transakciju (korisnik računa)
• Kako se je identificirao
• Tko je obavio transakciju (bankovni službenik ili sam korisnik
preko Interneta ili na bankomatu)
• Na kojem uređaju je obavljena transakcija (mrežna adresa)
• Dan, sat, minuta i sekunda transakcije
• Iznos transkakcije
„ Nastavni materijali na Webu
• Tko ih je stavio
• Kad ih je stavio (datum, sat)

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:

Matični broj studenta mbr


Ime studenta ime_st
Prezime studenta prez_st
Poštanski broj mjesta boravka post_br
Naziv mjesta boravka naz_mj
Šifra predmeta sif_pred ponavlja se
Naziv predmeta naz_pred ponavlja se
Datum polaganja ispita dat_isp ponavlja se
Ocjena na ispitu ocjena ponavlja se
Šifra ispitivača sif_isp ponavlja se
Prezime ispitivača prez_isp ponavlja se

U jednom danu student može samo jednom polagati određeni predmet!

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:

broj_primke, datum_primke, sif_partnera, naziv_partnera, post_broj, mjesto,


sif_robe_1, naziv_robe_1, jed_mjere_1, kolicina_robe_1
sif_robe_2, naziv_robe_2, jed_mjere_2, kolicina_robe_2
...
sif_robe_n, naziv_robe_n, jed_mjere_n, kolicina_robe_n

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

0,N 1,N 1,N


Stanuj e Osoba Zaposlen Or gJed 0,M Proizvodi

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
... ... ... ...

Identifikator Prezime Ime Adresa Šifra mjesta


osobe (Prezime) (Ime) (Adresa) (SifMjesta)
(IdOsobe)
8746 Karson Kit Melrose place 666 … 038
37528 Ford Alan Vukovar avenue 58 …
1164 Rock Bob … 001
765 Ford Kit Sunset boulevard 2958 … 282

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

„ ključ mora zadovoljavati


• uvjet jednoznačnosti (u skupu entiteta ne smiju postojati dvije
pojave s istim vrijednostima svih ključnih atributa)
– primjer: ne smiju postojati 2 osobe s JMBG=020946330097
• uvjet minimalnosti (ne postoji podskup atributa ključa koji
također zadovoljava uvjet jednoznačnosti)
– primjer loš: OSOBA = @JMBG + @Prezime ...
– primjer dobar: TEČAJ = @KraticaValute + @DatumTečaja + ...

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

Šifra mjesta Poštanski Naziv mjesta


(SifMjesta) broj (NazMjesta)
(PostBr)
038 10000 Zagreb
001 20000 NewYork
282 30000 Los Angeles

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)

Identifikator Prezime Ime Adresa Šifra mjesta


osobe (Prezime) (Ime) (Adresa) (SifMjesta)
(IdOsobe)
8746 Karson Kit Melrose place 666 … 038
37528 Ford Alan Vukovar avenue 58 …
1164 Rock Bob … 001
765 Ford Kit Sunset boulevard 2958 … 282

Šifra mjesta Poštanski Naziv mjesta


(SifMjesta) broj (NazMjesta)
(PostBr)
038 10000 Zagreb
001 20000 NewYork
282 30000 Los Angeles

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 ?)

SifMjesta PostBr NazMjesta IdOsobe Prezime Ime

Mjesto Osoba Adresa

SifMjesta Staz Telefon

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)

Mjesto Stanuje Osoba


MjestoStan Stanovnik

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

‰ Primjer, binarna veza M:N

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

‰ Primjer, unarna veza 1:N i unarna veza M:N


0,1 0,M
NadJed Cjelina

OrgJed Pripada Proizvod Sastav

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

Djelatnik Suradnik Igla Avion

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

„ Identifikacijski zavisan entitet ujedno je i egzistencijalno zavisan.


„ Egzistencijalno zavisan entitet nije ujedno i identifikacijski zavisan.

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

‰ Primjer, identifikacijski slab entitet StavkaRacuna

1,1 1,N
Racu n Ra cStRac Stavka Ra cun a

‰ Primjer, podtipovi: Djelatnik, Suradnik, Igla, Avion


Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 66
Agregacija
0,M 0,N
‰ Agregacija (agregacijska veza) OrgJed Proizvodi Proizvod

„ binarna veza M:N, npr. Proizvodi


„ ternarna veza ili veza višeg stupnja, npr. Zaposlen
„ veza o kojoj se želi pohraniti neke podatke (veza s opisnim
atributima), pr. Sastav
„ veza koja sudjeluje u vezama s drugim entitetima
„ u nekim metodama naziva se
• agregacijski entitet (aggregate entity),
• konkatenirani entitet (concatenated entity),
Zanimanje
• asocijativni entitet (associative entity),
• kompozitni entitet (composite entity) 1,N

0,M 1,N 1,N


Osoba Zaposlen OrgJed
Cjelina

Proizvod Sastav BrDijelova

Dio

0,N DatPoc DatZav


Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 67
ERD notacija
‰ Primjer, dijagram modela poduzeća (Chen)
0,1
Mjesto Zanimanj e Pri pada

NadJed

1,1 1,N
0,N
PodJed

0,N 1,N 1,N


Stanuj e Osoba Zaposlen Or gJed 0,M Proizvodi

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

Osoba Zaposlen Or gJed

Sastav

Proi zvod

Racun

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. 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)

Osob a 1,1 0,N


Osoba Telefon

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

Oso baSKlj uce m


IdOsob e Mjesto
Prezim e Si fMjesta
Im e PostBr <AK>
Adres a NazMjesta
DatRo d
Staz

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)

Racu n StavkaRac Pro izvo d


BrRac BrRac <FK> SifProi zvod a
DatRac Si fProizvoda <FK> NazProi zvod a
IdOsobe <FK> Jed Ci j Je dCijen a
IznosRac Koli cin a TipProi zvod a

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

1,N 1,N Dio


Osoba Zaposlen OrgJed 0,N
O soba
IdOsobe Zaposlen
Prezime IdOsobe <F K1> O rgJed
Ime SifOrgJed < FK2> SifOrgJed
SifMjesta < FK1> SifZanim <FK3> NazO rgJed
DatPoc DatZav Adresa DatPoc SifNadJed < FK1>
DarRod DatZav
Staz KoefPlace

Sastav Proizvod Proizvodi


SifProizvoda <FK1> SifProizvoda SifOrgJed < FK1>
SifDijela <F K2> NazProizvoda SifProizvoda <FK2>
BrDijelova JedCijena
TipProizvoda

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:

broj_primke, datum_primke, sif_partnera, naziv_partnera,


sif_robe_1, naziv_robe_1, jed_mjere_1, kolicina_robe_1
sif_robe_2, naziv_robe_2, jed_mjere_2, kolicina_robe_2
...
sif_robe_n, naziv_robe_n, jed_mjere_n, kolicina_robe_n

Za neke od roba zadane su sastavnice kao N:N autorefleksivne veze.


Izraditi E-R i relacijski model podataka.

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)

‰ Postupci prilikom unosa


„ Prilikom unosa nove n-torke u bazu podataka, odnosno izmjene
postojeće n-torke:
• mora se postaviti postojeća vrijednost stranog ključa
(mandatory→ not null)
• strani ključ može se postaviti na nul-vrijednost (optional→ null)

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)

‰ Postupci prilikom izmjene


„ Prilikom izmjene n-torke pozvane preko stranog ključa može se:
• zabraniti izmjena vrijednosti primarnog ključa (restrict)
• ažurirati odgovarajuće vrijednosti stranih ključeva na novu
vrijednost (cascade)
• ažurirati odgovarajuće vrijednosti stranih ključeva na nul-
vrijednost (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

a) Gdje je narušen entitetski integritet?


b) Gdje je narušen referencijalni integritet?
c) Po vlastitom nahođenju dopuniti tablice da oba integriteta budu zadovoljena i
napisati tablicu koja nastane prirodnim spajanjem ovih dviju tablica

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.

int Kontrola (char JMBG[]) {


int i, kz;
long suma;
char tez [12+1] = "765432765432";
suma = 0;
for (i = 0; i < 12; i++) {
suma += (JMBG[i] - '0') * (tez[i] - '0');
}
kz = 11 - (suma % 11);
if (kz == 10) kz = -1; // pogr. kontrolna znamenka
if (kz == 11) kz = 0;
return kz;
}
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 96
Šifarski sustav
‰ Serijske šifre
„ brojevi koji se slijedno pridjeljuju svakoj novo dodanoj instanci entiteta
„ u modernim SUBP mogu se generirati uz opcionalna ograničenja
• primjer: SQL Server IDENTITY [ ( seed , increment ) ]
‰ Blok šifre
„ slično serijskim šiframa, s tim da su serijski brojevi grupirani prema
značenju
• primjer satelitskih TV kanala: 100-199 PAY PER VIEW, 200-299 CABLE
CHANNELS, 300-399 SPORT, 400-499 ADULT, 500-599 MUSIC-ONLY, ...
‰ Alfanumeričke oznake
„ ograničeni skup znakovnih oznaka, često kombiniranih s brojevima
• primjer, oznake država: HR, DE, IT, SI
‰ Samogovoreće šifre (significant position codes)
„ svaka znamenka ili grupa znamenki opisuje neko stvojstvo instance
• primjer: JMBG, a često se koriste i u skladišnoj evidenciji (dimenzije
automobilske gume, električne žarulje)
‰ Hijerarhijski kodovi
„ podjela u grupe, podgrupe itd.
• primjer, šifre predmeta: ZPM03A1 - ZPM 3. izborni u 1. semestru,
hijerarhija vojnih sredstava n*m znamenki
• primjer, IUCN kriteriji ugroženosti vrsta: kriterij-podkriterij-temelj
(A1a - redukcija, reverzibilna, direkto opažanje)
Damir Kalpić & Krešimir Fertalj (FER/ZPM/GRZ): Uvod u baze podataka – Tehnički fakultet Rijeka - ak.g. 2003/04. 97
Šifarski sustav
‰ Izrada šifarskog sustava
„ Tamo gdje je to moguće treba preuzeti postojeće šifrarnike, od
drugih ustanova ili iz postojećih sustava
„ Kod promjene šifriranja, stare šifre voditi jedno vrijeme kao atribut
„ Oznake definirane zakonom ili drugim propisima treba preuzeti i
prilagoditi
„ Ostale šifrarnike definirati tako da se naknadno mogu
nadograđivati

‰ 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

You might also like