bajecm.fri.uni

Download Report

Transcript bajecm.fri.uni

Načrtovanje PB





Pristopi k načrtovanju PB
Nivojsko načrtovanje
Konceptualno modeliranje
Logično modeliranje
Fizično modeliranje
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-1-
Pristopi k načrtovanju PB
 Obstajata dva glavna pristopa k načrtovanju
podatkovne baze:
– Pristop od spodaj navzgor in
– Pristop od vrha navzdol.
 Pristop od spodaj navzgor:
– začne z atributi ter jih združuje v skupine
– Tak pristop predstavlja normalizacija
Normalizacija = identifikacija potrebnih atributov in njihovih
agregacij v normalizirane relacije na osnovi funkcionalnih
odvisnosti.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-2-
Pristop z vrha navzdol
 Pristop od spodaj navzgor primeren za enostavne
podatkovne baze z majhnim številom atributov.
 Za večje baze primeren pristop z vrha navzdol.
– Na začetku podatkovni modeli z le nekaj osnovnih entitetnih
tipov in razmerij
– Korakoma razgradnja na pod-entitete, povezave in atribute
– Tak pristop predstavlja uporaba tehnike Entiteta – Razmerje
(E-R).
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-3-
Pristop znotraj navzven
 Pristop znotraj navzven povezan s pristopom od
spodaj navzgor
– Najprej identificiramo nekaj najpomembnejših entitetnih
tipov iz domene
– Korakoma dodajamo nove entitetne tipe, razmerja in
atribute
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-4-
Pristop po delih
 V praksi najbolj uporabna strategija
 Načrtovanje razdelimo na več lažje obvladljivih
delov:
– Najprej kreiramo okvirno shemo z najpomembnejšimi
entitetnimi tipi in razmerji med njimi
– Shemo razdelimo na področja (jedra so identificirani
entitetni tipi)
– Za vsako področje so vključeni poznavalci področja
– Načrtovanje za posamezna področja lahko poteka vzporedno
– Posamezne sklope na koncu združimo v eno shemo
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-5-
Shema pristopa po delih
Delitev poslovne domene
na področja, kreiranje
osnovne sheme
Področje 1
Področna
shema 1
Področje 2 ... Področje n
Področna
shema 2
Končna
shema
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Okvirna
shema
-6-
Področna
shema n
Trije nivoji načrtovanja – trije modeli...
 Konceptualno načrtovanje – konceptualni oz.
semantični podatkovni model
 Logično načrtovanje – logični podatkovni
model
 Kreiranje fizične podatkovne baze – fizična
podatkovna baza oz. fizični podatkovni model
 Prehodi med modeli in avtomatizacija prehodov
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-7-
Trije nivoji načrtovanja – trije modeli
Konceptualni
PM
Odločitev o PB:
-Relacijska
-Hierarhična
-Objektna
i-CASE
Logični PM
Fizični PM
(skripta)
Reverse Engineering
SUPB
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Podatkovna
baza
-8-
ODBC
Konceptualno načrtovanje
 Konceptualno načrtovanje je opredelitev
podatkovnih potreb oz. zahtev poslovne domene
s pomočjo konceptualnega modela.
Model je poenostavitev
realnosti, pri čemer
 Konceptualno načrtovanje
preko konceptualnega
je abstrakcija realnosti poljubno natančna.
modela poskrbi za opis pomena podatkov,
potrebnih za poslovno
domeno.
Pomembno
je, da model prikazuje
pomembne elemente in izpušča tiste, ki nas
 Konceptualnega načrtovanja
ne moremo
ne zanimajo.
avtomatizirati, za njegovo izvedbo je odgovoren
Modele
razvijamo zato,
da bi sisteme bolje
analitik. Gre za prenos
semantike
v model.
razumeli.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
-9-
Pomen konceptualnega načrtovanja
 Je najbolj kritično – napake se prenašajo naprej
na naslednje modele.
 Zahteva sodelovanje uporabnikov. Uporabniki so
nosilci znanja o poslovni domeni, so poznavalci
semantike.
 Konceptualno načrtovanje mora upoštevati tudi
poslovna pravila.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 10 -
Umestitev konceptualnega načrtovanja
svet
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
mentalni model
konceptualni model
- 11 -
logični model
PB
Predstavitev konceptualnih modelov
 Najpogosteje uporabljana tehnika za predstavitev
konceptualnih podatkovnih modelov sta entitetni
model (model entiteta-razmerje) ter razredni
diagram. Obravnavali bomo prvega!
 Nazivi, ki se uporabljajo:
–
–
–
–
Konceptualni podatkovni model
Podatkovni model
Entitetni model
ER model
 Obstaja tudi razširjeni model entiteta razmerje
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 12 -
Gradniki entitetnega modela




Entitetni tip
Atribut
Razmerje
Enolični identifikator
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 13 -
Entitetni tip – entiteta...
 Entitete so posamezni primerki tipov objektov iz
poslovne domene: dogodki, predmeti, osebe,
pravila, dejstva
 O entitetah obstaja določena predstava o tem:
– kakšne lastnosti dejansko imajo
– kakšne lastnosti jim moramo določiti (morajo imeti), da bodo
izpolnjevale poslanstvo entitetnega modela
 Na osnovi predstave o tem in percepcije, lahko
entitete klasificiramo v entitetne tipe: vse
entitete, ki ustrezajo določeni predstavi,
pripadajo posameznemu entitetnemu tipu.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 14 -
Entitetni tip – entiteta
 Vsak trenutek pripada posameznemu
entitetnemu tipu množica entitet tega
entitetnega tipa, ki jo imenujemo entitetna
množica
 Entitetna množica je časovno spremenljiva:
entitete nastajajo, se spreminjajo in tudi izginjajo
(izstopajo iz množice).
 Entitetna množica je v nekem trenutku lahko tudi
prazna.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 15 -
Predstavitev entitetnega tipa
Ime
entitetnega
tipa
Ime entitetnega tipa
Prostor za atribute
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 16 -
Atribut...
 Entitete imajo določene lastnosti, posamezne
entitete (istega entitetnega tipa) se med seboj
razlikujejo po vrednosti njihovih lastnosti
 Entiteta ima praviloma veliko lastnosti, le del teh
lastnosti je zanimiv oz. pomemben za opazovano
poslovno domeno
 Lastnosti, ki so pomembne za opazovano
poslovno domeno, vključimo v konceptualni
model tako, da jih kot atribute določimo entiteti
(entitetnemu tipu)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 17 -
Atribut...
 Govorimo lahko o več vrstah lastnosti:
– Entitetna imena: naziv, ime, opis
– Prave entitetne lastnosti: višina, teža, cena, vrednost
– Lastnosti, ki jih določimo za potrebe poslovnih procesov,
poslovnih funkcij in poslovnih pravil: statusi
 Atribut določimo za tisto lastnost, ki je za
poslovno domeno pomembna
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 18 -
Atribut
 Kardinalnost atributa je minimalna in maksimalna
Glede na kardinalnost atributa ločimo:
–
–
–
–
Totalni atribut
Parcialni atribut
Enovrednostni atribut
Večvrednostni atribut
(1,n), kjer je n >= 1
(0,n), kjer je n >= 1
(m,1), kjer je m € {0,1}
(m,n), kjer je m € {0,1} in n>1
 Minimalna števnost 0 pomeni, da je atribut lahko
brez vrednosti (ni obvezen).
 Atribut pripada določenemu tipu: numerični,
znakovni,…
(1,1)
 Za večino tipov je potrebno
(1,3)
določiti tudi dolžino.
OSEBA
(1,1)
(0,n)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 19 -
EMŠO
Ime
Priimek
Vzdevek
Predstavitev atributa
(1,1)
(1,3)
OSEBA
(1,1)
(0,n)
EMŠO
Ime
Priimek
Vzdevek
OSEBA
EMŠO
Ime
Priimek
Vzdevek
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 20 -
Razmerja med entitetami
 Entitete niso svet zase, medsebojno se
povezujejo preko razmerij, povezav
 Razmerje ima določen pomen
 Predstavitev razmerja v modelu entiteta-razmerje
je povezava.
 Med opazovanim parom (v splošnem podmnožici)
entitet je lahko več razmerij: OSEBA, KRAJ –
stalno bivališče, začasno bivališče
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 21 -
Predstavitev razmerja...
OSEBA
OSEBA
živi
živi
Pomen razmerja
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 22 -
KRAJ
KRAJ
Predstavitev razmerja
OSEBA
OSEBA
živi v
ima
Vloga entitete v razmerju
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
KRAJ
živi
- 23 -
KRAJ
Kardinalnost razmerja...
 Kardinalnost (števnost) predstavlja število entitet
entitetnega tipa, ki so v razmerju glede na
pomen razmerja.
 Vsaka entiteta ima svojo kardinalnost v razmerju
– kardinalnost glede na vlogo. Entiteti OSEBA,
POŠTA:
– Ena (naključno izbrana) oseba ima stalno bivališče v enem
kraju
– V enem (naključno izbranem) kraju ima stalno bivališče več
oseb
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 24 -
Kardinalnost razmerja...
A
B
A
B
A
B
A
B
A
(n,m)
povezava
(p,r)
B
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 25 -
Kardinalnost razmerja
 Razmerji med entitetama OSEBA in POŠTA
Stalno prebivališče
POŠTA
OSEBA
Začasno prebivališče
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 26 -
Obveznost razmerja
 Obveznost pove, ali sta dve entiteti vedno v
razmerju ali lahko tudi nista v razmerju: obvezno,
neobvezno razmerje
 Obveznost lahko obravnavamo pod okriljem
števnosti, zaradi česar dodatno uvedemo
števnost 0
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 27 -
Razmerje tudi opisuje lastnost entitete
 Razmerje tudi opisuje lastnost entitete
 Primer: OSEBA, POŠTA
 Razmerje ima atributiven značaj
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 28 -
Enolični identifikator entitete...
 Enolični identifikator entitete je podmnožica
lastnosti entitete (atributov in razmerij – drugih
entitet), ki enolično razlikujejo posamezno
instanco entitete znotraj entitetne množice
 Z ozirom na to, ali tvorijo enolični identifikator
entitete le atributi entitete ali pa je v enoličnem
identifikatorju tudi kakšno razmerje, ločimo med
močnim entitetnim tipom in šibkim entitetnim
tipom
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 29 -
Enolični identifikator entitete
 Imamo lahko več enoličnih identifikatorjev,
vendar moramo enega izbrati – določiti
 Izbrani – določeni enolični identifikator je
podlaga za ključ v relacijskem modelu
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 30 -
Predstavitev enoličnega identifikatorja
(1,1)
(1,3)
OSEBA
(1,1)
(0,n)
EMŠO
Ime
Priimek
Vzdevek
OSEBA
EMŠO
Ime
Priimek
Vzdevek
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 31 -
Močni entitetni tip
 Enolični identifikator sestavljajo le atributi entitete
(identifikacijski atributi)
 {a1, … ak} je enolični identifikator entitete A, če
ustreza naslednjim pogojem:
a) a1, … ak so vsi totalni enovrednostni atributi, kar zagotavlja, da
imajo vsi identifikacijski atributi definirano natanko eno vrednost
(eno dimenzijo)
b) T: V1 x …x Vk  ET je totalna ali parcialna enovrednostna
funkcija, kar zagotavlja, da se vsak element kartezijskega
produkta vrednostnih množic, ki so območja identifikacijskih
atributov, preslika v največ eno entiteto tipa A
c) Je minimalna podmnožica, ne obstaja prava podmnožica, za
katero bi tudi veljal pogoj b)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 32 -
Šibki entitetni tip
 Enolični identifikator ni sestavljen le iz lastnih atributov,
temveč tudi iz razmerij oz. drugih entitet v razmerju oz.
njenih identifikatorjev.
 {a1, … ak}  IT1  ..  ITn je enolični identifikator
entitete A, če ustreza naslednjim pogojem:
a) a1, … ak so vsi totalni enovrednostni atributi, I pa identifikatorji
entitetnih tipov
b) T: V1 x …x Vkx ET1 x .. X ETn  ET je totalna ali parcialna
enovrednostna funkcija, kar zagotavlja, da se vsak element
kartezijskega produkta vrednostnih množic, ki so območja
identifikacijskih atributov, preslika v največ eno entiteto tipa A
c) Je minimalna podmnožica, ne obstaja prava podmnožica, za katero bi
tudi veljal pogoj b)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 33 -
Generalizacija in specializacija...
 Entitetni tip A s podtipoma B in C
 B in C pokrivata A totalno in ekskluzivno, če
velja: EB  EC = EA in EB  EC = {}
 B in C pokrivata A totalno in prekrivno, če velja:
EB  EC = EA in EB  EC ≠ {}
 B in C pokrivata A delno in ekskluzivno, če velja:
EB  EC  EA in EB  EC = {}
 B in C pokrivata A delno in prekrivno, če velja: EB
 EC  EA in EB  EC ≠ {}
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 34 -
Generalizacija in specializacija
OSEBA
MOŠKI
Totalno in
ekskluzivno
ŽENSKA
OSEBA
ŠTUDENT
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Delno in
prekrivno
ŠPORTNIK
- 35 -
Logično načrtovanje podatkovne baze...
 Logično modeliranje podatkovne baze nastopi za
konceptualnim modeliranjem.
 Osnova logičnega modela je jezik, ki je razumljiv
ciljnemu SUPB.
 Če izberemo relacijski SUPB, potem govorimo o
relacijskem modelu.
svet
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
mentalni model
konceptualni model
- 36 -
logični model
PB
Podpora orodij CASE
Konceptualni
PM
Odločitev o PB:
-Relacijska
-Hierarhična
-Objektna
Logični PM
i-CASE
Logično načrtovanje
Fizični PM
(skripta)
Reverse Engineering
SUPB
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Podatkovna
baza
- 37 -
ODBC
Prehod iz konceptualnega v logični model
 Prehod iz konceptualnega v logični model je
navadno avtomatiziran s strani CASE orodij.
Primer:
vrsta baze: relacijska
SUPB: Oracle
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
ANALIZA
NAČRTOVANJE
Konceptualni model
Relacijski model
Entitetni tip
Relacija / Tabela
Atribut
Atribut / Stolpec
Enolični identifikator
Ključ
Povezava 1:n
Tuji ključ
Povezava m:n
- 38 -
Vmesna tabela
Ponovitev
Funkcionalne odvisnosti...
 Relacija je model nekega stanja v svetu  njena
vsebina ne more biti poljubna.
 Realne omejitve ne omogočajo, da bi bili odnosi
v svetu kakršnikoli; možna so le določena stanja.
 Odvisnosti so sredstvo, s katerim lahko v
relacijskem modelu povemo, katere vrednosti
relacij so veljavne in katere sploh ne morejo
obstajati.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 39 -
Funkcionalne odvisnosti...
 Poznamo več vrst odvisnosti:
– Funkcionalne odvisnosti (functional dependency)
– Večvrednostne odvisnosti (multivalued dependency)
– Stične odvisnosti (join dependency)
 Obravnavali bomo funkcionalne odvisnosti; ostale
bodo obravnavane v okviru postopka razširjene
normalizacije (PB2, drugi semester).
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 40 -
Funkcionalne odvisnosti...
 Predpostavimo, da obstaja relacijska shema R z
množico atributov, katere podmnožici sta X in Y.
 V relacijski shemi R velja X  Y (X funkcionalno
določa Y oziroma Y je funkcionalno odvisen od
X), če v nobeni relaciji, ki pripada shemi R, ne
obstajata dve n-terici, ki bi se ujemali v
vrednostih atributov X in se ne bi ujemali v
vrednostih atributov Y.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 41 -
Funkcionalne odvisnosti
 Množico funkcionalnih odvisnosti, ki veljajo med
atributi funkcionalne sheme R in v vseh njenih
relacijah, označimo s F
X  Y  F   r ( Sh(r) = R   t,  u (t  r in u  r in
t.X = u.X  t.Y = u.Y )
kjer
t.X, u.X, t.Y in u.Y označujejo vrednosti atributov X
oziroma Y v n-tericah t oziroma u.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 42 -
Primeri funkcionalnih odvisnosti
 Imamo relacijo s shemo
Izpit( VpŠt, Priimek, Ime, ŠifraPredmeta, Datum izpita,
OcenaPisno, OcenaUstno)
 z naslednjim pomenom:
Študent z vpisno številko VpŠt ter priimkom Priimek in
imenom Ime je na DatumIzpita opravljal izpit iz predmeta s
šifro ŠifraPredmeta. Dobil je oceno OcenaPisno in OcenaUstno.
 Funkcionalne odvisnosti relacijske sheme Izpit
so:
F  { VpŠt  (Priimek, Ime), (VpŠt, ŠifraPredmeta,
DatumIzpita)  (OcenaPisno, OcenaUstno) }
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 43 -
Ponovitev
Ključi relacije...
 Ker je relacija množica n-teric, so v njej vse nterice ločene med seboj.
 Za sklicevanje na posamezno n-terico ni potrebno
poznati vseh vrednosti atributov n-terice, če v
shemi nastopajo funkcionalne odvisnosti.
 Množici atributov, ki določajo vsako n-terico,
pravimo ključ relacije oziroma ključ relacijske
sheme.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 44 -
Ključi relacije...

Predpostavimo, da obstaja relacijska shema z
atributi A1 A2 ... An katere podmnožica je
množica atributov X.

Atributi X so ključ relacijske sheme oziroma
pripadajočih relacij, če sta izpolnjena naslednja
dva pogoja:
(1) X  A1 A2 ... An
(2) ne obstaja X’, ki bi bila prava podmnožica od X in ki bi tudi
funkcionalno določala A1 A2 ... An
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 45 -
Ključi relacije...
 Poznamo več vrst ključev:
–
–
–
–
Kandidat za ključ (a key candidate)
Primarni ključ (primary key)
Superključ (superkey)
Tuji ključ (foreign key)
 Kandidat za ključ je vsaka podmnožica atributov
relacije, ki relacijo enolično določa.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 46 -
Ključi relacije
 Primarni ključ je tisti kandidat za ključ, ki ga
izberemo za shranjevanje relacij v fizični
podatkovni bazi.
 Superključ je vsaka množica atributov, v kateri je
vsebovan ključ  ključ je podmnožica
superključa.
 Tuji ključ je množica atributov, v okviru ene
relacije, ki je enaka kandidatu za ključ neke
druge ali iste relacije.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 47 -
Primeri ključev
ARTIKEL
Šifra
Naziv
Zaloga
A10
Telovadni copati Nike
10
A12
Trenerka Bali
4
BC80
Moška jakna QuickSilver
1
X12
Ženska jakna QuickSilver
0
Primarni ključ v tabeli Artikel
RAČUN
Primarni ključ v tabeli Račun
Račun
Šifra artikla
Količina
15/05
A10
1
15/05
X12
1
Tuji ključ v tabeli Račun  kaže na primarni ključ v tabeli Artikel
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 48 -
Normalizacija...
 Kaj si bomo pogledali?
– Namen normalizacije.
– Uporaba normalizacije pri načrtovanju relacijske podatkovne
baze.
– Problemi zaradi redundance podatkov v osnovnih relacijah.
– Postopek normalizacije.
– Osnovne normalne oblike:




PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
I. normalna oblika,
II. Normalna oblika,
III. Normalna oblika
IV. Poslovna normalna oblika
- 49 -
Namen normalizacije...
 Normalizacija je postopek, s katerem pridemo do
množice primernih relacij, ki ustrezajo potrebam
poslovne domene.
 Nekaj lastnosti primernih relacij:
– Relacije imajo minimalen nabor atributov  zgolj tiste, ki so
potrebni za pokritje potreb poslovnega sistema;
– Atributi, ki so logično povezani, so zajeti v isti relaciji;
– Med atributi relacij je minimalna redundanca  vsak atribut
(razen tujih ključev) je predstavljen samo enkrat.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 50 -
Primer
 Relacija StaffBranch ima odvečne podatke.
Atribut z odvečnimi (ponavljajočimi) podatki
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 51 -
Ažurne anomalije
 Relacije, ki vsebujejo odvečne podatke lahko
povzročajo anomalije pri spreminjanju podatkov
 govorimo o ažurnih anomalijah.
 Poznamo več vrst anomalij:
– Anomalije pri dodajanju n-teric v relacijo
– Anomalije pri brisanju n-teric iz relacije
– Anomalije pri spreminjanju n-teric
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 52 -
Anomalije pri dodajanju
 Primeri anomalij:
– Če želimo dodati podatke o novih članih (staff) za neko
organizacijsko enoto (branch) moramo vpisati tudi vse
podrobnosti o organizacijski enoti.
– Če želimo dodati podatke o novi organizacijski enoti, ki še
nima nobenega člana, moramo v vsa polja , ki člane
opisujejo, vpisati Null.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 53 -
Anomalije pri brisanju
 Primeri anomalij:
– Če iz relacije zbrišemo n-terico, ki predstavlja zadnjega člana
v neki organizacijski enoti, zgubimo tudi podatke o tej
organizacijski enoti.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 54 -
Anomalije pri spreminjanju
 Primeri anomalij:
– Če želimo spremeniti vrednost nekega atributa določene
organizacijske enote (npr. naslov), moramo popraviti vse
n-terice, v katerih takšna vrednost atributa nastopa.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 55 -
Postopek normalizacije
 Postopku preoblikovanja relacij v obliko, pri
kateri do ažurnih anomalij ne more priti, pravimo
normalizacija.
 Obstaja več stopenj normalnih oblik. Obravnavali
bomo:
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
1NO – Prva normalna oblika
2NO – Druga normalna oblika
3NO – Tretja normalna oblika in
4PNO – Četrta poslovna normalna oblika
- 56 -
1NO – prva normalna oblika
 Relacija je v prvi normalni obliki, če:
– Nima ponavljajočih atributov  ne obstajajo atributi ali
skupine atributov, ki bi imele več vrednosti pri isti vrednosti
ostalih atributov (na presečišču ene vrstice in enega stolpca
je več vrednosti)
– Ima definiran primarni ključ in določene funkcionalne
odvisnosti
 Koraki:
– Odstranimo ponavljajoče atribute
– Določimo funkcionalne odvisnosti
– Določimo primarni ključ
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 57 -
Primer – relacija v nenormalizirani obliki
Indeks( VŠ, priimek, ime, pošta, kraj, ( šifra predmeta, naziv, ocena ) )
Skupina ponavljajočih se atributov.
VŠ
ime
pošta kraj
64010632 Bratina
Simon
4100
Kranj 20020
20021
20033
IS
TPO
IPI
10
8
8
64016209 Bizjak
Tadeja
2250
Ptuj
E1
IPI
9
6
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
priime
k
- 58 -
šifra predmeta naziv ocena
20060
20033
Primer – pretvorba v 1NO...
Indeks( VŠ, priimek, ime, pošta, kraj, ( šifra predmeta, naziv, ocena ) )
Odpravimo ponavljajoče atribute
Indeks( VŠ, priimek, ime, pošta, kraj, šifra predmeta, naziv, ocena )
Identificiramo funkcionalne odvisnosti
F  { VŠ  (priimek, ime, pošta, kraj), šifra predmeta 
naziv, pošta  kraj, (VŠ, šifra predmeta)  ocena }
Določimo primarni ključ
Indeks( VŠ, priimek, ime, pošta, kraj, šifra predmeta, naziv, ocena )
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 59 -
Primer – pretvorba v 1NO
VŠ
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
priime
k
ime
pošta kraj
64010632 Bratina
Simon
4100
Kranj 20020
20021
20033
IS
TPO
IPI
10
8
8
64016209 Bizjak
Tadeja
2250
Ptuj
E1
IPI
9
6
VŠ
ime
pošta kraj
64010632 Bratina
Simon
4100
Kranj 20020
IS
10
64010632 Bratina
Simon
4100
Kranj 20021
TPO
8
64010632 Bratina
Simon
4100
Kranj 20033
IPI
8
64016209 Bizjak
Tadeja
2250
Ptuj
20060
E1
9
64016209 Bizjak
Tadeja
2250
Ptuj
20033
IPI
6
priime
k
- 60 -
šifra predmeta naziv ocena
20060
20033
šifra predmeta naziv ocena
2NO – druga normalna oblika
 Relacija je v drugi normalni obliki:
– Če je v prvi normalni obliki in
– Ne vsebuje parcialnih odvisnosti  noben atribut, ki ni del
ključa, ni funkcionalno odvisen le od dela primarnega ključa,
temveč od celotnega ključa
 Druga normalna oblika je odvisna predvsem od
ključa relacije. Relacija je avtomatsko v drugi
normalni obliki, če:
– Je njen primarni ključ sestavljen le iz enega atributa,
– Je njen primarni ključ sestavljen iz vseh atributov relacije ali
– Je njen primarni ključ sestavljen iz vseh razen enega atributa
relacije
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 61 -
Primer – pretvorba v 2NO...
!
Indeks( VŠ, šifra predmeta, priimek, ime, pošta, kraj, naziv, ocena )
!
Relacijo razbijemo
Študent( VŠ, priimek, ime, pošta, kraj)
Predmet( šifra predmeta, naziv)
Indeks( #VŠ, #šifra predmeta, ocena)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 62 -
Primer – pretvorba v 2NO
VŠ
priime
k
ime
pošta kraj
64010632 Bratina
Simon
4100
Kranj 20020
IS
10
64010632 Bratina
Simon
4100
Kranj 20021
TPO
8
64010632 Bratina
Simon
4100
Kranj 20033
IPI
8
64016209 Bizjak
Tadeja
2250
Ptuj
20060
E1
9
64016209 Bizjak
Tadeja
2250
Ptuj
20033
IPI
6
VŠ
ime
pošta kraj
VŠ
priime
k
šifra predmeta ocena
64010632 20020
10
64010632 20021
8
64010632 20033
8
šifra predmeta naziv
64016209 20060
9
20020
IS
64016209 20033
6
20021
TPO
20033
IPI
20060
E1
20033
- IPI
63 -
64010632 Bratina
Simon
4100
Kranj
64016209 Bizjak
Tadeja
2250
Ptuj
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
šifra predmeta naziv ocena
3NO – tretja normalna oblika
 Relacija je v tretji normalni obliki:
– Če je v drugi normalni obliki in
– Če ne vsebuje tranzitivnih funkcionalnih odvisnosti  med
atributi, ki niso del primarnega ključa, ni odvisnosti.
 Relacija je avtomatsko v tretji normalni obliki, če:
– Je njen ključ sestavljen iz vseh atributov relacije
– Je njen ključ sestavljen iz vseh razen enega atributa relacije.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 64 -
Primer – pretvorba v 3NO...
!
Študent( VŠ, priimek, ime, pošta, kraj)
Predmet( šifra predmeta, naziv)
Indeks( #VŠ, #šifra predmeta, ocena)
Relacijo razbijemo
Študent( VŠ, priimek, ime, #pošta)
Pošta(pošta, kraj)
Predmet( šifra predmeta, naziv)
Indeks( #VŠ, #šifra predmeta, ocena)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 65 -
Primer – pretvorba v 3NO
VŠ
VŠ
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
ime
pošta kraj
64010632 Bratina
Simon
4100
Kranj
64016209 Bizjak
Tadeja
2250
Ptuj
priime
k
priime
k
ime
pošta
64010632 Bratina
Simon
4100
64016209 Bizjak
Tadeja
2250
- 66 -
pošta kraj
4100
Kranj
2250
Ptuj
4PNO – četrta poslovna normalna oblika
 Relacija je v četrti poslovni normalni obliki, če:
– je v tretji normalni obliki in
– v relaciji ne obstajajo atributi, ki bi bili odvisni od vrednosti
primarnega ključa.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 67 -
Primer – pretvorba v 4PNO...
Študent( VŠ, priimek, ime, #pošta, datum plačila šolnine, rok diplome)
Za izredne študenta
Študent( VŠ, priimek, ime, #pošta)
Redni študent( #VŠ, rok diplome)
Izredni študent( #VŠ, datum plačila šolnine)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 68 -
Za redne študenta
Primer – pretvorba v 4PNO
VŠ
VŠ
Priimek
Ime
Datum plačila
šolnine
64010632 Bratina
Simon
64016209 Bizjak
Tadeja
19.4.2002
64010670 Berce
Marjan
12.4.2004
64620010 Mele
Silvana
1.4.2005
65120987 Leban
Tibor
15.7.2005
Priimek
Ime
VŠ
15.3.2005
Datum plačila
šolnine
64010632 Bratina
Simon
64016209 Bizjak
Tadeja
64010670 Berce
Marjan
64010670 12.4.2004
64620010 Mele
Silvana
VŠ
65120987 Leban
Tibor
64010632 15.3.2005
64016209 19.4.2002
Rok diplome
64620010 1.4.2005
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Rok diplome
65120987
15.7.2005
- 69 -
Uporaba nenormaliziranih relacij...
 Včasih zavestno uporabljamo relacije, ki ne
ustrezajo najvišjim normalnim oblikam.
 Prve in druge normalne oblike nikoli ne kršimo.
 Višjim normalnim oblikam se včasih odrečemo na
račun doseganja boljše učinkovitosti.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 70 -
Uporaba nenormaliziranih relacij
 Primer:
– Rezultat (športnik, tekmovanje, čas prvega teka, čas
drugega teka, čas skupaj)
– Relacija ni v tretji normalni formi.
– Čas skupaj je izpeljan atribut  ni odvisen od ključa, temveč
je seštevek časov obeh tekov.
– Skupen čas računamo ob vpisu v bazo, zato izboljšamo
učinkovitost pri nadaljnji obdelavi podatkov.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 71 -
Načrtovanje fizične podatkovne baze...
 Načrtovanje fizične PB je korak, ki sledi
logičnemu načrtovanju.
 Logični načrt opredeljuje “kaj”, fizični načrt pa
“kako”.
 Vhod v načrtovanje fizične PB so:
– Logični podatkovni model,
– Relacijska shema
– dokumentacija
svet
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
mentalni model
konceptualni model
- 72 -
logični model
PB
Načrtovanje fizične podatkovne baze...
Konceptualni
PM
Odločitev o PB:
-Relacijska
-Hierarhična
-Objektna
i-CASE
Logični PM
Fizični PM
(skripta)
Načrtovanje fizične PB
Reverse Engineering
SUPB
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Podatkovna
baza
- 73 -
ODBC
Načrtovanje fizične podatkovne baze
 Fizično načrtovanje PB opredeljuje proces, s
katerim izdelamo opis implementacije PB na
sekundarnem pomnilnem mediju.
 Opisuje
–
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
osnovne relacije,
datotečno organizacijo,
indekse za dosego učinkovitega dostopa do podatkov,
povezane omejitve in
varnostne mehanizme.
- 74 -
Metoda konceptualnega načrtovanja
 Možni koraki konceptualnega načrtovanja:
–
–
–
–
–
K1.1:
K1.2:
K1.3:
K1.4:
K1.5:
– K1.6:
– K1.7:
– K1.8:
– K1.9:
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Identificiraj entitetne tipe
Identificiraj povezave
Identificiraj in z entitetnimi tipi poveži atribute
Atributom določi domene
Določi kandidate za ključe; izmed kandidatov izberi
primarni ključ
Po potrebi uporabi elemente razširjenega diagrama
entiteta – razmerje
Preveri, če v modelu obstajajo odvečni elementi
Preveri, če model “zdrži” transkacije
Preveri model z uporabnikom
- 75 -
K1.1 – Identificiraj entitetne tipe...
 Na voljo različne tehnike
 Ena izmed tehnik je pregled uporabniških zahtev:
– Pregledamo vse omenjene samostalnike in fraze (npr.
profesor, predmet, izpit, rok, datum izpita,...)
– Pozorni smo na pomembne objekte (npr. ljudje, lokacije...)
– Skušamo ločiti objekte (npr. profesor, izpit,...) od
lastnosti objektov (ime, vpisna številka,...)
– Lastnosti objektov združujemo v entitetne tipe
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 76 -
K1.1 – Identificiraj entitetne tipe...
 Težave:
– Entitete niso vedno jasno predstavljene v dokumentaciji
 Uporaba primerov, analogij, sinonimov, homonimov
 Uporaba konkretnih imen oseb
– Ni vedno jasno, kaj je entitetni tip, kaj povezava in kaj
atribut (npr. izpit)
 Načrtovanje je subjektivne narave – možnih je
več (pravilnih) rešitev.
 Načrt zavisi od uporabnikove presoje in izkušenj
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 77 -
K1.1 – Identificiraj entitetne tipe
 Entitetne tipe je potrebno dokumentirati
 Primer dokumentacije:
Naziv
entitetnega
tipa
Opis
Sinonim
Število entitet
Profesor
Predstavlja pedagoškega
delavca, ki je nosilec enega
ali več predmetov
Pedagoški
delavec
Vsaka katedra ima
enega ali več
profesorjev
Izpitni rok
Predstavlja datum, na
katerega je za nek predmet in
določeno ciljno skupino
(letnik, smer,...) razpisan
izpitni rok.
Rok, pisni
izpit,
kolokvij
Na leto se razpiše
okrog 300 pisnih
izpitov. Vsak predmet
mora imeti vsaj tri roke
letno
...
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 78 -
K1.2 – Identificiraj povezave...
 Ko smo identificirali entitetne tipe, skušamo
opredeliti vse povezave med njimi
 Uporabimo lahko podoben postopek kot v K1
(pregled uporabniških zahtev):
– Iščemo glagole (npr. profesor razpiše rok, študent
polaga izpit, študent izbere mentorja, študent se
vpiše v letnik,...)
– Zanimajo nas samo tiste povezave, ki so res potrebne
(očitne povezave ali povezave, ki nas ne zanimajo z vidika
hranjenja podatkov, so odveč)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 79 -
K1.2 – Identificiraj povezave...
 Postopek identifikacije povezav (nadaljevanje)
– Pozorni smo na povezave, ki niso binarne - povezujejo več
kot dve entiteti ali so rekurzivne.
Npr. študent opravi izpit za nek predmet pri
nekem profesorju.
Ali, pedagoški delavec ima asistenta, ki je tudi
pedagoški delavec.
– Preverimo, če smo zajeli vse povezave (načeloma lahko
preverimo za vsak par entitetnih tipov, če med njima obstaja
povezava) – postopek je lahko zelo potraten, zato ga ne
izvajamo vedno (preverjanje modela je stvar K8)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 80 -
K1.2 – Identificiraj povezave...
 Postopek identifikacije povezav (nadaljevanje)
– Povezavam določimo števnost
– Preverimo, če obstajajo kakšne dvoumne ali nepopolne
povezave (ang. chasm and fan tramps)
Primer dvoumne povezave
Profesor
je član
1..*
1..1
Katedra
Pr1
Pr2
Pr3
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
vključuje
1..1
1..*
Laboratorij
L1
K1
K2
- 81 -
L2
L3
K1.2 – Identificiraj povezave....
 Dvoumno povezavo odpravimo z
restrukturiranjem modela
Profesor
je član
1..*
1..1
Laboratorij
Pr1
Pr2
Pr3
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
vključuje
1..*
1.1
Katedra
K1
L1
L2
- 82 -
K2
K3
K1.2 – Identificiraj povezave...
Primer nepopolne povezave
Katedra
ima
1..1
1..*
Član
0..1
0..*
Oprema
K1
Čl1
O1
K2
Čl2
O2
K3
Čl3
O3
Kateri katedri pripada oprema O2?
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
je skrbnik
- 83 -
K1.2 – Identificiraj povezave...
 Tudi nepopolno povezavo odpravimo z
restrukturiranjem modela
Katedra
1..1
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
ima
1..1
1..*
Član
pripada
je skrbnik
0..1
0..*
Oprema
1..*
K1
Čl1
O1
K2
Čl2
O2
K3
Čl3
- 84 -
K1.2 – Identificiraj povezave
 Povezave je potrebno dokumentirati
 Primer dokumentacije:
Entitetni
tip
Števnost
Povezava
Števnost
Entitetni
tip
Član
1..*
1..1
Pripada
Je predstojnik
1..1
0..1
Katedra
Laboratorij
1..*
Sodi v
1..1
Katedra
...
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 85 -
K1.3 – Identificiraj atribute...
 Skušamo identificirati lastnosti entitet ter
povezav
 Uporabimo lahko tehniko proučevanja
uporabniških zahtev
– iščemo samostalnike, ki predstavljajo lastnosti, opisne
vrednosti ali identifikatorje objektov
 Korak določanja atributov entitetnih tipov je
relativno enostaven
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 86 -
K1.3 – Identificiraj atribute...
 Nekaj primerov, kjer je potrebna pazljivost:
– Enostavni in sestavljeni atributi (npr. naslov  ulica,
hišna številka, številka pošte, naziv pošte).
Kaj potrebuje uporabnik?
– Eno- in več-vrednostni atributi (npr. telefonska števila
 domača, v služni, mobilna...
– Izpeljani atributi (npr. skupna cena računa, starost
študenta,...)  pogosto ne kažemo v konceptualnih
modelih. Obravnavamo pri fizičnem načrtovanju.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 87 -
K1.3 – Identificiraj atribute...
 Dodatna priporočila:
– Če identificiramo atributi, ki navidez pripadajo več entitetam,
preverimo:
 Ali je možno združiti entitete (npr. asistent in profesor
združimo v pedagoški delavec);
 Če imajo entitete več skupnih vendar tudi svoje atribute,
razmislimo o uporabi generalizacije (npr. poleg entitetnega tipa
asistent in profesor uvedemo še entitetni tip pedagoški
delavec, ki prevzame vse skupne atribute.)
– Če identificiramo atribut, ki odraža povezavo (npr. atribut
katedra v entitetnem tipu Profesor predstavlja
povezavo z entiteto katedra):
 Če povezava obstaja, potem je atribut odveč
 Če povezava ne obstaja, jo je potrebno dodati ter atribut zbrisati
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 88 -
K1.3 – Identificiraj atribute
 Atribute je potrebno dokumentirati:
– Naziv atributa, opis, podatkovni tip, dolžina, sinonimi, ali je
atribut sestavljen (iz katerih atributov je sestavljen?), ali je
atribut izpeljan (iz katerih atributov je izpeljan?),...
 Primer dokumentacije:
Entitetni
tip
Atributi
Opis
Podatkovni
tip
Dolžina
...
Študent
VpisSt
Ime
Priimek
...
Vpisna številka študenta
Ime študenta
Priimek študenta
Number
Character
Character
8
20
20
...
...
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
...
- 89 -
K1.4 – Atributom določi domene...
 Domena je množica vrednosti, ki jih lahko
zavzamejo atributi, vključeni v to domeno.
 Domeni lahko določimo:
–
–
–
–
Seznam dovoljenih vrednosti
Minimalno in maksimalno vrednost
Podatkovni tip in dolžino
Dovoljene operacije nad atributom (še v raziskavi)
 Primeri domen:
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Barva  {bela, rumena, oranžna, rdeča}
Opis elementa  character 50
Starost  [0..120]
EMSO  number 13
- 90 -
K1.4 – Atributom določi domene
 Tudi domene dokumentiramo
 Zapišemo naziv domene ter lastnosti oz. pravila,
ki jih domena določa.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 91 -
K1.5 - Določi kandidate za ključe...
 Za vsak entitetni tip določimo kandidate za ključ
ter izberemo enega za primarni ključ.
 Kandidati za ključ so minimalne podmnožice
atributov, ki enolično identificirajo vsako entiteto.
 Če je kandidatov več, izberemo enega, ki je
primeren za primarni ključ.
Primer
Študent
EMŠO
VpisSt
DavcnaSt
Ime
Priimek
DtmRoj
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 92 -
K1.5 - Določi kandidate za ključe...
 Nekaj priporočil za izbiro ključa, če je več
kandidatov:
– Kandidat z najmanj atributi;
– Kandidat, za katerega je najmanj verjetno, da se bodo
njegove vrednosti spreminjale;
– Kandidat z najmanjšo dolžino znakov (za alfanumerične
kandidate);
– Kandidat z najmanjšo maksimalno vrednostjo (za numerične
kandidate);
– Kandidat, ki ga je najlažje uporabiti s stališča uporabnika
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 93 -
K1.5 - Določi kandidate za ključe
 Dodatna priporočila:
– Imena navadno niso dober kandidat za ključ
– Bodi pozoren na šibke entitetne tipe (šibkim entitetam v
okviru konceptualnega načrtovanja ne moremo določiti
ključa)
 Tudi primarne in alternativne ključe je potrebno
dokumentirati.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 94 -
K1.6 – uporabi elemente EER diagrama...
 EER – razširjen ER diagram
 Elementi razširjenega ER diagrama so:
– Specializacija: ugotovljamo razlike med entitetami
doočenega tipa in entitetni tip razbiti na več specializiranih
entitet.
– Generalizacija: ugotavljamo skupne lastnosti entitet različnih
tipov in kreirati nov tip s skupnimi lastnostmi.
– Agregacija: modeliramo povezavo “je del” oziroma “ima”, s
katero določimo pripadnost tipa “del” tipu “celota”.
– Kompozicija: posebna vrsta agregacije z močnim lastništvom
 “del” ne more obstajati brez “celote”.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 95 -
K1.6 – uporabi elemente EER diagrama...
Primer specializacije
Znak za specializacijo/
generalizacijo.
Študent
Redni študent
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Lahko tudi:
Izredni študent
- 96 -
K1.6 – uporabi elemente EER diagrama...
Primer generalizacije
Pedagoški delavec
Profesor
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Asistent
- 97 -
K1.6 – uporabi elemente EER diagrama...
Primer agregacije
Navadna povezava
Znak za
agregacijo.
Študent
Študent
pripada
1..*
1..1
pripada
1..*
1..1
Indeks
Indeks
Agregacija povečuje semantiko modela
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 98 -
K1.6 – uporabi elemente EER diagrama...
Primer kompozicije
Navadna povezava
Znak za
kompozicijo.
Študent
Študent
pripada
1..*
1..1
pripada
1..*
1..1
Indeks
Indeks
Kompozicija povečuje semantiko modela
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 99 -
K1.6 – uporabi elemente EER diagrama
 Kdaj uporabiti elemente razširjenega ER
diagrama?
– Elementi razširjenega diagrama povečajo semantiko modela
vendar lahko negativno vplivajo na “berljivost” modela
– Berljivost, enostavnost modela naj bo vodilo pri odločanju o
uporabi naprednih modelirnih elementov (predvsem
agregacija in kompozicija)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 100 -
K1.7 - Preveri obstoj odvečnih elem....
 Preverimo, če v modelu obstajajo redundantni
elementi:
– Pregledamo povezava 1 – 1
– Odstranimo odvečne povezave
– Preverimo “časovni okvir”
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 101 -
K1.7 - Preveri obstoj odvečnih elem....
 Povezave 1 – 1
– Pri identifikaciji entitetnih tipov smo morda zajeli več tipov,
ki predstavljajo iste objekte (npr. Profesor, Pedagoški
delavec, Asistent)
– Če taki tipi obstajajo, jih je potrebno združiti
– Če so primarni ključi različni, izberemo enega
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Profesor
Pedagog
Asistent
EMŠO
DavcnaSt
Ime
Priimek
DtmRoj
EMŠO
DavcnaSt
Ime
Priimek
DtmRoj
EMŠO
DavcnaSt
Ime
Priimek
DtmRoj
- 102 -
K1.7 - Preveri obstoj odvečnih elem....
 Odstrani odvečne povezave
– Povezava je odvečna, če je možno priti do iste informacije
prek drugih povezav!
– Izdelati želimo minimalen podatkovni model  odvečne
povezave zato odstranimo.
– Zgolj pregledovanje poti med entitetnimi tipi ne zadošča
(povezave imajo lahko različen pomen)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 103 -
K1.7 - Preveri obstoj odvečnih elem....
 Ali je kakšna povezava odveč?
Profesor
je predstojnik
1..1
0..1
1..*
Katedra
1..1
pripada
1..*
je član
1..1
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 104 -
Laboratorij
K1.7 - Preveri obstoj odvečnih elem....
 Ali je kakšna povezava odveč?
Profesor
pripada
1..*
1..1
1..*
Katedra
1..1
pripada
1..*
je član
1..1
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 105 -
Laboratorij
K1.7 - Preveri obstoj odvečnih elem....
 Preveri časovni okvir
– Časovni okvir povezav je lahko pomemben
Oče
je poročen z
0..1
0..1
Mati
1..1
1..1
je oče
?
0..*
je mati
0..*
Otrok
– Kaj če ima oče otroka iz prejšnjega zakona?
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 106 -
K1.8 - Preveri če model zdrži transkacije...
 Preveriti moramo če model, ki smo ga dobili s
koraki od K1 do K7, podpira vse zahtevane
transakcije.
– Transakcije izvajamo ročno
– Če neke transkacije ne uspemo izvesti, je model pomanjkljiv
(manjka bodisi entitetni tip, povezava ali atribut)
 Možna dva pristopa:
– Preverjanje opisa transakcij
– Preverjanje transakcijskih poti
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 107 -
K1.8 - Preveri če model zdrži transkacije...
 Preverjanje opisa transakcij
– Vsako transakcijo opišemo;
– Preverimo, če model zajema vse entitetne tipe, povezave in
atribute, ki jih transakcija potrebuje.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 108 -
K1.8 - Preveri če model zdrži transkacije...
 Primer opisa transakcijskih zahtev
– Vnos podatkov:
 Vnesi podatke o študentih (npr. 24010637, Monika Jemec,...)
 Vnesi podatke o predmetih (npr. 70029, Razvoj IS, Letni,...)
 ...
– Urejanje in brisanje podatkov:
 Uredi/briši podatke o študentu
 Uredi/briši podatke o predmetih
 ...
– Poizvedbe
 Izpiši vse študente, ki so se vpisali v določen letnik, določene
smeri, določenega programa
 Izpiši vse predmete, ki jih je opravil določen študent
 ...
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 109 -
K1.8 - Preveri če model zdrži transkacije...
 Preverjanje transakcijskih poti
– Transakcije preverimo na modelu – pot transakcije narišemo
– Pristop načrtovalcu omogoča:
 Da identificira pomanjkljivosti modela (če pot za neko transkacijo ni
možna)
 Da identificira dele modela, ki so transakcijsko kritični
 Da odkrije odvečne dele modela (deli, ki jih ne potrebuje nobena
transakcija)
 Preverjanje transkacij je zamudno vendar
pomembno delo!!
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 110 -
K1.8 - Preveri, če model zdrži transkacije
a)
b)
Izpiši vse predmete, ki jih je opravil določen študent
Izpiši vse študente, ki so se vpisali v določen letnik, določene smeri,
določenega programa
b
?
Prijava
ima
Program
1..1
progID
Smer
0..1
1..*
se predava na
1..*
se nanaša na
0..*
za
Rok
1..1
rokID
0..*
Predmet
1..1
0..*
1..1
je opravljal
Študent
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
predID
1..1
pripada
vpisSt
smerID
1..1
a
Izpit
0..*
stPol
- 111 -
0..*
iz
K1.9 – Preveri model z uporabnikom
 Na koncu model preverimo z uporabnikom
 Anomalije, pomanjkljivosti, napake,... lahko
vodijo v ponovitev korakov od K1 do K9.
 V mnogih podjetjih mora uporabnik podpisati
podatkovni model
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 112 -
Metoda logičnega načrtovanja...
 Možni koraki logičnega načrtovanja:
–
–
–
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
K2.1:
K2.2:
K2.3:
K2.4:
K2.5:
K2.6:
K2.7:
Za entitetne tipe kreiraj relacije
Preveri relacije z normalizacijo
Preveri relacije s pregledom uporabniških transakcij
Preveri omejitve integritete
Preveri model z uporabnikom
Združi lokalne modele v globalni model (opcijsko)
Preveri zmožnosti modela za razširitve
- 113 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Namen
– Izdelati relacije za logični model, ki bo predstavljal entitete,
povezave in atribute, ki smo jih identificirali v okviru
konceptualnega modeliranja.
 Ta korak je navadno avtomatiziran  pretvorba
iz konceptualnega v logični model je podprta s
strani številnih CASE orodij.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 114 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Ročna pretvorba:
– Močni entitetni tipi
Enolični identifikator sestavljajo le atributi
entitete (identifikacijski atributi)
 Za vsak močan entitetni tip kreiraj relacijo, ki vključuje vse
enostavne atribute tega entitetnega tipa. Namesto sestavljenih
atributov vključi njihove atribute, ki jih sestavljajo.
– Šibki entitetni tipi
 Za vsak šibki entitetni tip kreiraj relacijo, ki vključuje vse enostavne
atribute tega entitetnega tipa. Primarni ključ šibkega entitetnega
tipa je delno ali v celoti sestavljen iz atributov, ki so ključ v
entitetnih tipih, s katerimi je opazovani entitetni tip povezan. Da bi
lahko določili ključ, moramo najprej pretvoriti vse povezave.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 115 -
Primer: močni in šibki entitetni tipi
Študent
EMŠO
VpisSt
DavcnaSt
Ime
Priimek
DtmRoj
Naslov
Predmet
Izpit
1..1
je opravil
0..*
Datum
Ocena
0..*
za
1..1
Predmet
Opis
StUr
Letni
šibki entitetni tip
Sestavljene atribute
razbijemo
Študent(EMŠO, VpisSt, DavcnaSt, Ime, Priimek, DtmRoj, Ulica, Mesto)
Predmet(Predmet, Opis, StUr, Letni)
Izpit(Datum, #VpisSt, #Predmet, Ocena)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 116 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Ročna pretvorba (nadaljevanje):
– Povezave 1:*
 Za vsako povezavo 1:* prenesi ključ entitetnega tipa, ki nastopa v
povezavi na strani 1 (oče) v entitetni tip, ki nastopa v povezavi na
strani * (otrok). Dobimo tuji ključ.
– Povezave 1:1
 Pri števnosti 1:1 ne moremo vedno enostavno določiti očeta in
otrok. Za odločitev, ali bomo entitetna tipa, ki sta povezana s
povezavo 1:1, povezali v eno relacijo ali ju predstavili z dvema,
preverimo predvsem, kako je z obveznostjo povezav. Možne
omejitve so: obveznost na obeh straneh, neobveznost na eni in
obveznost na drugi, neobveznost na obeh straneh.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 117 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Ročna pretvorba (nadaljevanje):
– Povezave 1:1 (nadaljevanje...)
 Obveznost na obeh straneh 1:1 povezave
– Entitetna tipa združi v eno relacijo. Za primarni ključ izberi enega
izmed primarnih ključev originalnih entitetnih tipov.
 Obveznost na eni strani 1:1 povezave
– Entitetni tip, ki ni obvezen v povezavi, naj bo oče, entitetni tip z
obvezno povezavo pa naj bo otrok. Kopija primarnega ključa
entitetnega tipa očeta se prenese na entitetni tip otroka.
 Neobvezna povezava na obeh straneh 1:1 povezave
– V primerih, ko sta oba entitetna tipa neobvezna, je težko določiti
očeta in otroka povezave. Ko pridobimo dovolj podatkov, določimo
ključ.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 118 -
Primer: povezave 1:*
Študent
EMŠO
VpisSt
DavcnaSt
Ime
Priimek
DtmRoj
Naslov
Diploma
1..1
je opravil
1..*
Datum
Ocena
Študent(EMŠO, VpisSt, DavcnaSt, Ime, Priimek, DtmRoj, Ulica, Mesto)
Diploma(Datum, #VpisSt, Ocena)
Prenos tujega ključa v smeri ena “proti mnogo”
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 119 -
Primer: povezave 1:1
Dekan
ID
Ime
Priimek
Fakulteta
1..1
vodi
1..1
Fakulteta
Naziv
Dekan(ID, Ime, Priimek, Naziv_fakultete)
Obveznost na obeh straneh:
entitetna tipa predstavimo z eno relacijo; izberemo ključ
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 120 -
Primer: povezave 1:1
oče
Profesor
ID
Ime
Priimek
Fakulteta
1..1
je dekan
0..1
Fakulteta
Naziv
Fakulteta(Fakulteta, Naziv, #ID)
Profesor(ID, Ime, Priimek)
Obveznost na eni strani:
entitetni tip, ki igra vlogo očeta, dobi tuji ključ  primarni ključ
drugega entitetnega tipa v povezavi se prenese.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 121 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Ročna pretvorba (nadaljevanje):
– Rekurzivne povezave 1:1
 Pri rekurzivnih povezavah tipa 1:1 upoštevaj pravila, ki izhajajo iz
obveznosti povezav.
– Obveznost na obeh straneh: rekurzivno povezavo predstavi z eno
relacijo in dvema kopijama primarnega ključa.
– Obveznost na eni, neobveznost na drugi strani: kreiraj eno relacijo
z dvema kopijama primarnega ključa ali kreiraj novo relacijo. Nova
relacija naj ima samo dva atributa – kopiji primarnega ključa.
– Neobveznost na obeh straneh: kreiraj novo relacijo. Nova relacija
naj ima samo dva atributa – kopiji primarnega ključa.
– Kopije primarnih ključev je v rekurzivnih povezavah potrebno
ustrezno poimenovati, da lahko ločimo med njimi!
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 122 -
Primer: rekurzivne povezave
je mentor
1..1
PDelavec
ID
Ime
Priimek
Naziv
0..*
PDelavec(ID, Ime, Priimek, Naziv, IDmentorja)
Obveznost na eni strani:
kreiramo relacijo z dvema kopijama primarnega ključa. Eden igra
vlogo primarnega drugi pa tujega ključa.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 123 -
Primer: rekurzivne povezave
je mentor
1..1
PDelavec
ID
Ime
Priimek
Naziv
0..*
PDelavec(ID, Ime, Priimek, Naziv)
Mentor(#IDmentorja, #IDdelavca)
Obveznost na eni strani:
Rekurzivno povezavo pretvorimo v relacijo. Relacija za vsakega pedagoškega
delavca pove, kdo mu je (bil) mentor.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 124 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Ročna pretvorba (nadaljevanje):
– Povezave med nadtipi in podtipi
 Identificiraj nadtipe kot očete ter podtipe kot otroke. Obstajajo
različne možnosti, kako takšne povezave predstaviti z relacijami.
 Izbira najbolj ustrezne opcije je odvisna od številnih faktorjev:
izključevanje, obveznost povezav, število entitet v povezavi....
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 125 -
Primer: nadtipi, podtipi
PREVOZNO SREDSTVO
Registrska št.
Datum izdelave
Datum registracije
Moč motorja
Barva
Št. motorja
x
OSEBNI AVTO
TOVORNO VOZILO
Št. sedežev
Kilovati
Vrsta motorja
Povprečna poraba
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Tip specializacije
Nosilnost
Tip
- 126 -
K2.1 – Za entitetne tipe kreiraj relacije...
 Ročna pretvorba (nadaljevanje):
– Povezave *:*
 Kreiraj relacijo, ki predstavlja povezavo ter vse njene atribute.
Primarne ključe entitetnih tipov, ki sta povezana s tako povezavo,
vključi v novo relacijo kot tuji ključ. Tuji ključi bodo obenem tudi
primarni ključi – samostojno ali v kombinaciji z drugimi atributi
relacije.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 127 -
Primer: povezave *:*
Študent
EMŠO
VpisSt
DavcnaSt
Ime
Priimek
DtmRoj
Naslov
Predmet
0..*
je opravil
0..*
Predmet
Opis
StUr
Letni
Študent(EMŠO, VpisSt, DavcnaSt, Ime, Priimek, DtmRoj, Ulica, Mesto)
Predmet(Predmet, Opis, StUr, Letni)
Izpit(Datum, #VpisSt, #Predmet, Ocena)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 128 -
K2.1 – Za entitetne tipe kreiraj relacije
 Ročna pretvorba (nadaljevanje):
– Več-vrednostni atributi
 Za predstavitev več-vrednostnih atributov kreiraj novo relacijo. V
novo relacijo vključi tudi ključ entitetnega tipa, iz katerega izhajajo
več-vrednostni atributi. V novi relaciji predstavlja tuji ključ.
Primarni ključ v novi relaciji je kombinacija tujega ključa in večvrednostnih atributov. Če več-vrednostni atributi sami predstavljajo
kandidata za ključ, potem ni potrebno, da primarni ključ zajema
tudi tuji ključ.
 Če je število vrednosti za večvrednostni atribut znano in ni veliko
(npr. je manjše d 5), lahko tak atribut predstavimo z več atributi v
relaciji. Za vsako vrednost svoj atribut.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 129 -
Primer: večvrednostni atributi…
Študent
VpisSt
Ime
Priimek
DtmRoj
Naslov
Telefon
Študent(VpisSt, Ime, Priimek, DtmRoj, Mesto, Ulica, GSM, StcTelefon)
Večvrednostni atribut:
Število vrednosti za Telefon je znano, zato za vsako določimo svoj atribut v
isti relaciji.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 130 -
Primer: večvrednostni atributi…
Konferenca
ID
Datum
NazivKonf
Kraj
Sponzor
Konferenca(ID, Datum, NazivKonf, Kraj)
Sponzor(Sponzor, Naziv)
SponzorKonference(#ID, #Sponzor)
Večvrednostni atribut:
Število vrednosti za atribut sponzor ni znano, zato kreiramo novi relaciji.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 131 -
K2.2 – Preveri relacije z normalizacijo...
 Namen tega koraka je preveriti, če so vse
pridobljene relacije v ustrezni normalni obliki. To
zagotavlja:
– Da imajo relacije minimalno, vendar zadostno število
atributov za potrebe problemske domene;
– Da ni odvečnih podatkov (razen za potrebe povezovanja)
 Prevedba konceptualnega modela v logični model
navadno da relacije, ki ustrezajo 3NO.
– Če to ne drži, so v konceptualnem modelu ali v postopku
prevedbe napake.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 132 -
K2.2 – Preveri relacije z normalizacijo...
 Včasih se zdi, da normalizirane relacije ne
omogočajo zadovoljive učinkovitosti podatkovne
baze.
 Upoštevati je potrebno:
– V normaliziranih relacijah so podatki organizirani v skladu s
funkcionalnimi odvisnostmi.
– Logični podatkovni model ni dokončen. Predstavlja le, kako
načrtovalec razume pomen in naravo podatkov, potrebnih za
obravnavano problemsko domeno; Specifične potrebe v
zvezi z učinkovitostjo lahko zahtevajo drugačen fizični
model.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 133 -
K2.2 – Preveri relacije z normalizacijo
 Upoštevati je potrebno (nadaljevanje):
– Normaliziran načrt je robusten in odporen na podatkovne
anomalije.
– Moderni računalniki so veliko zmogljivejši  včasih je
upravičeno uporabiti rešitve, ki omogočajo enostavnejšo
obdelavo na račun več procesiranja.
– Normalizacija načrtovalca prisili, da se natanko spozna z
vsakim atributom relacije.
– Z normalizacijo pridemo do fleksibilnega načrta, ki ga brez
težav razširimo.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 134 -
K2.3 – Preveri relacije z vidika transakcij
 Podobno kot konceptualni model preverimo tudi
logični model z vidika podpore transakcij, ki jih
uporabnik specificira (glej K1.8).
 Če vseh transakcij ni moč izvesti ročno, smo pri
pretvorbi naredili napako, ki jo je potrebno
odpraviti.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 135 -
K2.4 – Preveri omejitve integritete...
 V tem koraku preverimo pravila za zagotavljanje
celovitosti podatkov:
–
–
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Obveznost atributov
Omejitve domen atributov
Števnost
Omejitve entitet (celovitost entitet)
Omejitve povezav (celovitost povezav)
Splošne omejitve
- 136 -
Primeri omejitev povezav
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 137 -
K2.5 – Preveri model z uporabnikom...
 Namen tega koraka je preveriti model z
uporabnikom ter ugotoviti, če ustreza vsem
uporabniškim zahtevam.
 Model lahko zajema več uporabniških pogledov.
Pri pregledu lahko nastopa več uporabnikov.
 Odličen način za pregled celovitosti
podatkovnega modela je specifikacija
podatkovnih tokov s pomočjo diagrama
podatkovnih tokov.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 138 -
Povezava podatkovni model in DFD
DFD
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
PM
- 139 -
K2.6 – Združi lokalne modele...
 Namen tega koraka je združiti vse lokalne
modele v en globalni model, ki predstavlja vse
uporabniške vidike podatkovne baze.
 Čeprav so lokalni modeli preverjeni, lahko pri
njihovem združevanju pride do prekrivanja in
neskladnosti.
 Globalni model preverim podobno kot smo
preverjali lokalne modele.
 Če pri načrtovanju nismo zajeli več uporabniških
vidikov, lahko korak preskočimo.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 140 -
K2.6 – Združi lokalne modele
 Pri združevanju lokalnih modelov uporabimo
naslednje korake:
– K2.6.1 – Lokalne modele združi v globalni model
– K2.6.2 – Preveri globalni model
– K2.6.3 – Globalni model preveri z uporabniki
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 141 -
Pravila združevanja lokalnih modelov...
 Pravila združevanja lokalnih modelov:
– Preveri imena in vsebino relacij ter njihove kandidate za
ključ.
– Preveri imena in vsebino povezav in tujih ključev.
– Združi relacije z lokalnih podatkovnih modelov
– Brez združevanja vključi relacije, ki so unikatne v
posameznih podatkovnih modelih.
– Združi povezave in tuje ključe z lokalnih podatkovnih
modelov.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 142 -
Pravila združevanja lokalnih modelov
 Pravila združevanja lokalnih modelov
(nadaljevanje):
– Brez združevanja vključi povezave in tuje ključe, ki so
unikatni v posameznih podatkovnih modelih.
– Preveri, če morda manjkajo relacije, povezave in tuji ključi.
– Preveri tuje ključe.
– Preveri pravila za zagotavljanje celovitosti podatkov.
– Nariši globalni podatkovni model.
– Ažuriraj dokumentacijo.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 143 -
Primer
Primer
uporabniškega
pogleda
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 144 -
Primer
Primer
globalnega
logičnega
podatkovnega
modela.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 145 -
K2.7 – Preveri možnosti za razširitve...
 V primeru, da so predvidene bodoče razširitve
sistema, moramo preveriti, če logični model take
razširitve podpira.
 Podatkovni model mora biti prilagodljiv;
omogočati mora razširitve skladno z novimi
zahtevami ter z minimalnim vplivom na obstoječe
uporabnike.
 Popolnoma odprt sistem za razširitve je težko
doseči.
 Pravilo agilnega načrtovanja:
– Fool me once, shame on you, fool me twice, shame on me!
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 146 -
Metoda načrtovanja fizične PB...
 Možni koraki načrtovanja fizične PB:
– K3 – Pretvori logični model v jezik za ciljni SUPB
 K3.1 – Izdelaj načrt osnovnih relacij
 K3.2 – Izdelaj načrt predstavitve izpeljanih atributov
 K3.3 – Izdelaj načrt splošnih omejitev
– K4 – Izdelaj načrt datotečne organizacije ter indeksov




K4.1
K4.2
K4.3
K4.4
–
–
–
–
Analiziraj transakcije
Izberi datotečno organizacijo
Določi indekse
Oceni velikost podatkovne baze
Koraka K1 in K2 se nanašata na izdelavo konceptualnega in
logičnega podatkovnega modela
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 147 -
Metoda načrtovanja fizične PB...
 Možni koraki načrtovanja fizične PB
(nadaljevanje):
– K5 – Izdelaj načrt uporabniških pogledov
– K6 – Izdelaj načrt varnostnih mehanizmov
– K7 – Preveri smiselnost uvedbe nadzorovane redundance
podatkov (denormalizacija)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 148 -
K3 – Pretvorba v jezik za SUPB
 Namen koraka: iz logičnega modela izdelati
podatkovno shemo za ciljni SUPB.
 Poznati moramo funkcionalnosti ciljnega SUPB,
npr.:
–
–
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Kako izdelati osnovne relacije?
Ali ciljni SUPB podpira primarne, tuje in alternativne ključe?
Ali podpira obveznost podatkov (NOT NULL)?
Ali podpira domene?
Ali podpira pravila omejitve podatkov?
Ali podpira sprožilce (triggers) in bazne programe (stored
procedures)?
- 149 -
K3.1 – Izdelava osnovnih relacij...
 Namen: določiti, kako bodo osnovne relacije
predstavljene v ciljnem SUPB.
 Vir podatkov je podatkovni slovar, jezik za opis
pa DBDL (database definition language)
 Za vsako relacijo definiramo:
–
–
–
–
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
Naziv relacije;
Listo osnovnih atributov;
Primarni ključ ter kjer smiselno alternativne in tuje ključe;
Omejitve povezav.
- 150 -
K3.1 – Izdelava osnovnih relacij
 V podatkovnem slovarju imamo za vsak atribut :
– Domeno, ki se sestoji iz podatkovnega tipa, dolžine in
omejitev domene;
– Morebitno privzeto vrednost;
– Podatek o obveznosti atributa;
– Podatek, ali je atribut izpeljan in če je, kako ga izračunamo.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 151 -
Primer opisa osnovnih relacij z DBDL
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 152 -
K3.2 – Predstavitev izpeljanih atributov...
 Namen: določiti, kako bodo v SUPB predstavljeni
izpeljani atributi.
 Preuči logični podatkovni model in podatkovni
slovar; izdelaj seznam izpeljanih atributov.
 Za vsak izpeljani atribut določi:
– Atribut je shranjen v podatkovni bazi
– Atribut se vsakokrat posebej izračuna in se ne hrani v
podatkovni bazi.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 153 -
K3.2 – Predstavitev izpeljanih atributov...
 Pri odločitvi, kako predstaviti izpeljane atribute,
upoštevaj:
– “strošek” shranjevanja in vzdrževanja skladnosti izpeljanih
atributov z osnovnimi atributi, iz katerih je izpeljan;
– “strošek” vsakokratnega izračunavanja izpeljanega atributa.
 Izberi stroškovno ugodnejšo rešitev.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 154 -
Primer hranjenja izpeljanega atributa
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 155 -
K3.3 – Načrt splošnih omejitev
 Namen: izdelava načrta splošnih omejitev za
ciljni SUPB.
 Glede podpore splošnim omejitvam obstajajo
velike razlike med SUPB-ji.
 Primer splošne omejitve:
CONSTRAINT StaffNotHandlingTooMuch
CHECK (NOT EXISTS (SELECT staffNo
FROM PropertyForRent
GROUP BY staffNo
HAVING COUNT(*) > 100))
Pomen omejitve: nihče od zaposlenih ne sme skrbeti za več
kot 100 nepremičnin
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 156 -
K4 – Datotečna organizacija in indeksi
 Namen: izbrati optimalno datotečno organizacijo
za shranjevanje osnovnih relacij ter potrebne
indekse za doseganje ustrezne učinkovitosti.
 Načrtovalec mora dobro poznati, kakšne
strukture in organizacije SUPB podpira ter kako
deluje.
 Ključnega pomena so uporabniške zahteve v
zvezi z želeno/pričakovano učinkovitostjo
transakcij.
 Med SUPB-ji velike razlike.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 157 -
K4.1 – Analiza transakcij...
 Namen: razumeti namen transakcij, ki bodo tekle
na SUPB ter analizirati tiste, ki so
najpomembnejše.
 Poskušaj določiti kriterije učinkovitosti:
– Pogoste transakcije, ki imajo velik vpliv na učinkovitost;
– Transakcije, ki so kritičnega pomena za poslovanje;
– Pričakovana obdobja (v dnevu/ tednu), ko bo SUPB najbolj
obremenjen (peak load).
 Preveri tudi:
– Atribute, ki jih transakcije spreminjajo
– “Iskalne” pogoje v transakcijah...
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 158 -
K4.1 – Analiza transakcij...
 Pogosto ni moč analizirati vseh transakcij.
Pregledamo zgolj najpomembnejše.
 Za identifikacijo najpomembnejših transakcij
lahko uporabimo:
– Matriko transakcija/relacija, ki kaže, katere relacije se v
transakcijah uporabljajo.
– Diagram uporabe transakcij, ki kaže, katere transakcije bodo
potencialno zelo frekventno izvajane.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 159 -
K4.1 – Analiza transakcij...
 Možen pristop k obravnavi potencialno
problematičnih delov modela:
– Izdelamo matriko povezav transakcija/relacija,
– Ugotovimo, katere relacije se najpogosteje uporabljajo v
transakcijah,
– Analiziramo, kateri podatki se uporabljajo v transakcijah, ki
te relacije uporabljajo.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 160 -
Primer matrike transakcija/relacija
Dodatno lahko zapišemo število
operacij na časovno enoto
F: Identify the total number of properties assigned to each member of staff at a given
branch.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 161 -
Primer diagrama uporabe transakcij
V specifikaciji zahtev je ocenjeno:
• 100.000 nepremičnin;
• 2.000 zaposlenih v 100 agencijah;
• Vsaka agencija ima od 1.000 do 3.000 nepremičnin
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 162 -
Obrazec za podrobno analizo transakcij
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 163 -
K4.2 – Izbira datotečne organizacije
 Namen: izbrati učinkovito datotečno organizacijo
za vse osnovne relacije.
 Datotečne organizacije:
– Kopica (Heap),
– Hash,
– Metoda indeksiranega zaporednega dostopa (Indexed
Sequential Access Method - ISAM),
– Drevo B+– Gruča (Cluster).
 Nekateri SUPB-ji ne podpirajo vseh datotečnih
organizacij.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 164 -
K4.3 – Izbira indeksov...
 Namen: ugotoviti, ali lahko z dodatnimi indeksi
povečamo učinkovitost sistema.
 Možen pristop:
– Zapise pustimo neurejene.
– Izdelamo toliko sekundarnih indeksov, kolikor je potrebno.
Sekundarni indeks = indeks po atributu, ki ni obenem tudi atribut,
po katerem je urejena relacija
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 165 -
K4.3 – Izbira indeksov...
 Alternativni pristop
– Zapise uredimo po primarnem ključu ali po indeksu gruče. V
tem primeru kot atribut za sortiranje izberemo:
 Atribut, ki se največkrat uporablja za povezovanja ali
 Atribut, ki se najpogosteje uporablja za dostop do podatkov v
relaciji.
 Če je izbrani atribut za sortiranje primarni ključ, potem gre za
primarni indeks sicer za indeks gruče.
– Relacija ima lahko primarni indeks ali indeks gruče
Primarni indeks = indeks po primarnem ključu, po katerem je urejena relacija.
Vsak zapis ima svojo vrednost.
Indeks gruče = indeks po atributu, ki je obenem tudi atribut, po katerem je
urejena relacija, ni pa primarni ključ. Ključ ni unikaten!
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 166 -
K4.3 – Izbira indeksov...
 Sekundarni indeksi so način, kako omogočiti
učinkovito iskanje s pomočjo dodatnih ključev.
 Pri določanju sekundarnih indeksov upoštevamo:
– Povečanje učinkovitosti (predvsem pri iskanju po PB)
– Dodatno delo, ki ga mora sistem opravljati za vzdrževanje
indeksov. To vključuje:
 Dodajanje zapisa v vsak sekundarni indeks, kadarkoli dodamo nek
zapis v osnovno relacijo
 Spreminjanje sekundarnega indeksa vsakokrat, ko se osnovna
relacija spremeni
 Povečanje porabe prostora v sekundarnem pomnilniku
 Povečanje časovnega obsega za optimizacijo poizvedb zaradi
preverjanja vseh sekundarnih indeksov.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 167 -
K4.3 – Izbira indeksov...
 Nekaj smernic za uporabo sekundarnih indeksov:
– Ne indeksiraj majhnih relacij.
– Če datoteka ni urejena po primarnem ključu, potem kreiraj
indeks na osnovi primarnega ključa.
– Če je tuji ključ pogosto v uporabi, dodaj sekundarni indeks
na tuji ključ.
– Sekundarni indeks dodaj vsakemu atributu, ki se pogosto
uporablja kot sekundarni ključ.
– Sekundarne indekse dodaj atributom, ki nastopajo v pogojih
za selekcijo ali stik: ORDER BY; GROUP BY ali v drugih
operacijah, ki vključujejo sortiranje (npr. UNION ali
DISTINCT).
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 168 -
K4.3 – Izbira indeksov
 Nekaj smernic za uporabo sekundarnih indeksov:
(nadaljevanje):
– Dodaj sekundarni indeks atributom, ki nastopajo v vgrajenih
funkcijah;
– Izogibaj se indeksiranju atributov, ki se pogosto spreminjajo.
– Izogibaj se indeksiranju atributov v relacijah, nad katerimi se
bodo pogosto izvajale poizvedbe, ki bodo vključevale večji
del zapisov.
– Izogibaj se indeksiranju atributov, ki so predstavljeni z
daljšimi stringi.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 169 -
K4.4 – Ocena velikosti podatkovne baze
 Namen: oceniti, koliko prostora v sekundarnem
pomnilniku zahteva načrtovana podatkovna baza.
 Ocena je odvisna
– od velikosti in števila zapisov ter
– od ciljnega SUPB.
 Primer: ocena velikosti podatkovne baze s
pomočjo orodja PowerDesigner.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 170 -
K5 – Načrt uporabniških pogledov
 Namen: izdelati načrt uporabniških pogledov, ki
so bili opredeljeni v okviru zajema uporabniških
zahtev.
 Uporabimo mehanizem pogledov (view).
 Pogled je navidezna relacija, ki fizično ne obstaja
v PB, temveč se vsakokratno kreira s pomočjo
poizvedbe.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 171 -
Primer pogleda
Pedagoški delavec
Pedagog
Vrsta PD
Laboratorij
Ime
Priimek
Status
<pk>
<fk>
<fk>
Predmet
Nosilec = Pedagog
Asistent = Pedagog
<fk>
Predmet
Smer
Nosilec
Asistent
Naziv
StUr
<pk>
<fk>
<fk>
<fk>
create or replace view OBREMENITEV as
Select PMET.PEDAGOG as Predavatelj,
(PDG.PRIIMEK + PDG.IME) as Naziv_predavatelja,
count(*) as Stevilo_Predmetov,
sum(PMET.STUR) as Stevilo_ur_tedensko
from PREDMET as PMET, PEDAGOŠKI DELAVEC as PDG
where PMET.NOSILEC = PDG.PEDAGOG
group by PMET.NOSILEC, (PDG.PRIIMEK + PDG.IME); Obremenitev
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 172 -
Predavatelj
Naziv_predavatelja
Stevilo_Predmetov
Stevilo_ur_tedensko
K6 – Načrt varnostnih mehanizmov
 Namen: izdelati načrt varnostnih mehanizmov
skladno z zahtevami naročnika.
 SUPB-ji tipično podpirajo dve vrsti varnosti:
– Sistemsko varnost: varnost dostopa in uporabe podatkovne
baze (navadno zagotovljeno s pomočjo uporabniških imen in
gesel);
– Podatkovno varnost: varnost uporabe podatkov – kdo lahko
uporablja določene relacije ter kako.
 Med SUPB-ji so velike razlike v mehanizmih, ki jih
imajo na voljo za dosego varnosti.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 173 -
K7 – Uvedba nadzorovane redundance...
 Namen: ugotoviti, ali je smiselno dopustiti
določeno mero redundance (denormalizacija) ter
tako izboljšati učinkovitost.
 Rezultat normalizacije je načrt, ki je po strukturi
konsistenten ter minimalen.
 Včasih normalizirane relacije ne dajo zadovoljive
učinkovitosti.
 Razmislimo, ali se zavoljo izboljšanja učinkovitosti
odpovemo določenim koristim, ki jih prinaša
normalizacija.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 174 -
K7 – Uvedba nadzorovane redundance...
 Upoštevamo tudi:
– Implementacija denormaliziranih relacij je težja;
– Z denormalizacijo velikokrat zgubimo na prilagodljivosti
modela;
– Denormalizacija navadno pospeši poizvedbe, vendar
upočasni spreminjanje podatkov.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 175 -
K7 – Uvedba nadzorovane redundance...
 Denormalizacija:
– Denormaliacija se nanaša na dopolnitev relacijske sheme,
tako da eni ali več relacij znižamo stopnjo normalne oblike
(npr. 3NO  2NO).
– Nanaša se tudi na primere, ko dve normalizirani relaciji
združimo v eno, ki je še vedno normalizirana, vendar zaradi
združitve vsebuje več nedefiniranih vrednosti (NULL).
(4PNO  3NO).
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 176 -
K7 – Uvedba nadzorovane redundance...
 Koraki denormalizacije:
– K7.1 – združevanje 1:1 povezav
– K7.2 – Podvajanje neosnovnih atributov v povezavah 1:* za
zmanjšanje potrebnih stikov.
– K7.3 – Podvajanje tujih ključev v 1:* povezavah za
zmanjšanje potrebnih stikov.
– K7.4 – Podvajanje atributov v *:* povezavah za zmanjšanje
potrebnih stikov.
– K7.5 – Uvedba ponavljajočih skupin atributov
– K7.6 – Kreiranje tabel, ki predstavljajo izvleček osnovne
tabele.
– K7.7 – Razbitje relacij.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 177 -
Primer normaliziranega modela
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 178 -
Primeri relacij
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 179 -
K7.1 – Združevanje 1:1 povezav
Če podatke, ki so v različnih
relacijah obravnavamo skupaj,
je združitev primerna.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 180 -
K7.2 – Podvajanje neosnovnih atributov
Ko dostopamo do podatkov o nepremičninah, nas v večini
primerov zanima tudi ime lastnika (IName)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 181 -
“Lookup Tabele”...
LookUp tabele se sestoje zgolj iz šifre in naziva. Prednosti
uporabe LookUp tabel so mnoge. Vseeno obstajajo primeri,
ko je smiselno (LookUp tabele ukiniti in) podatke podvajati
v osnovnih relacijah. Taki primeri so:
•Ko se do LookUp tabele frekventno dostopa
•Ko so LookUp tabele uporabljene v kritičnih poizvedbah
•Ko je majhna verjetnost, da se bodo po vrednosti spreminjale
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 182 -
“Lookup tabele”
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 183 -
K7.3 - Podvajanje tujih ključev
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 184 -
K7.4 - Podvajanje atributov v povez. *:*
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 185 -
K7.5 - Uvedba ponavljajočih skupin
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 186 -
K7.6 – Uporaba izvlečkov
 Številne poizvedbe in poročila zahtevajo dostop
do več osnovnih relacij ter kompleksne povezave
med njimi.
 Z namenom izboljšanja učinkovitosti je v
določenih primerih smiselno uvesti novo
denormalizirano relacijo, ki vsebuje podatke z več
osnovnih relacij.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 187 -
K7.7 – Razbitje relacij
 Za povečanje učinkovitosti nad relacijami z zelo
velikim številom n-teric uporabimo pristop, kjer
relacijo razbijemo na manjše dele - particije.
 Dva načina delitve sta:
– Horizontalni in
– Vertikalni.
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 188 -
Prednosti razbitja relacije na particije
 Uporaba particioniranja prinaša številne
prednosti:
– Boljša porazdelitev vnosa (load balancing)
– Večja učinkovitosti (manj podatkov za obdelavo, paralelnost
izvajanja,...)
– Boljša razpoložljivost
– Boljša obnovljivost
– Več možnosti za zagotavljanje varnosti
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 189 -
Slabosti razbitja relacije na particije
 Particioniranje ima tudi slabosti:
– Kompleksnost (particije niso vedno transparentne za
uporabnike...)
– Slabša učinkovitost (pri poizvedbah, kjer je potrebno
poizvedovati po več particijah, je učinkovitost slabša)
– Podvajanje podatkov (pri vertikalnem particioniranju)
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 190 -
Primer – particije v SUPB Oracle
CREATE TABLE ArchivedPropertyForRentPartition(
propertyNo VARCHAR2(5) NOT NULL,
street VARCHAR2(25) NOT NULL,
...
PRIMARY KEY (propertyNo),
FOREIGN KEY (ownerNo) REFERENCES PrivateOwner(ownerNo),
...
PARTITION BY HASH (branchNo) (
PARTITION b1 TABLESPACE TB01,
PARTITION b2 TABLESPACE TB02,
...
);
PODATKOVNE BAZE
Modul: Načrtovanje PB
©Laboratorij za informatiko
- 191 -