normalizacija baza podataka - sveznadar · 2014. 12. 30. · anomalija promjene (ažuriranja)...
TRANSCRIPT
-
1
Normalizacija baza podataka
Sadržaj Normalizacija baze podataka ......................................................................................................................... 2
Funkcionalna zavisnost ...................................................................................................................................................................... 3
Anomalije ........................................................................................................................................................................................... 5
Tehnike normalizacije ........................................................................................................................................................................ 6
Forme normalizacije ........................................................................................................................................................................... 7
Prva normalna forma .......................................................................................................................................................................... 7
Problem sa nestandardnim atributima ........................................................................................................................................... 8
Druga normalna forma ....................................................................................................................................................................... 9
Treća normalna forma ...................................................................................................................................................................... 10
Praktičan primjer normalizacije ....................................................................................................................................................... 11
Svođenje modela na prvu normalnu formu ................................................................................................................................. 11
Svodjenje modela na drugu normalnu formu .............................................................................................................................. 12
Svođenje modela na treću normalnu formu ................................................................................................................................ 13
Primjer i analiza anomalija ............................................................................................................................................................... 14
1NF i anomalije .......................................................................................................................................................................... 14
2NF „ .......................................................................................................................................................................................... 14
3NF… ......................................................................................................................................................................................... 15
Dalje normalizovanje ....................................................................................................................................................................... 15
Razlozi zbog kojih se može odustati od normalizacije ................................................................................................................ 16
Dodatak: Procedure i algoritmi ........................................................................................................................................................ 17
GENERAL PROCEDURE FOR ACHIEVING A NORMALIZED SET OF RELATIONS ...................................................... 17
Algoritam 2NF normalizacije ..................................................................................................................................................... 18
Algoritam 3NF normalizacije ..................................................................................................................................................... 18
-
2
Normalizacijabazepodataka Normalizacija baze podataka je proces efikasnog organizovanja podataka u bazi podataka. Normalizacija je tehnika dizajna baze podataka kojom se na osnovu izvjesnih kriterijuma određuje sadržaj tabela (tj.koje kolone treba da obuhvataju tabele i njihova struktura ključa). Normalizacija baze podataka je postupak kojim se iz danog modela bez podataka nastoji otkloniti potreba za višestrukim ponavljanjem istih podataka (redudansa podataka). Naime, osim što (nekorisno) troši prostor, višestruko zapisivanje istog podatka otežava (i/ili onemogućava) mijenjanje sadržaja baze podataka. Osnovna ideja je da se eliminiše nepotrebno dupliranje ne-ključnih podataka u tabelama te da se tako smanji veličina prostora koju baza zauzima na disku i da su podaci logično uskladišteni. Cilj normalizacije možemo izraziti riječima: Baza podataka treba biti oblikovana tako da se svaki podatak upisuje samo jednom (ili: samo na jednom mjestu). Dva osnovna cilja procesa normalizacije su:
1. Eliminisanje redudantnih podataka (skladištenje istih podataka na više mjesta u bazi podataka) 2. Osiguravanje da su zavisnosti podataka logične (u jednoj tabeli se nalaze samo povezani podaci)
Odnosno, osnovni cilj relacionog modela podataka je da odgovarajuća baza podataka koja: 1. ne sadrži redundansu, 2. se može jednostavno koristiti i mjenjati.
Pod redundansom podrazumjevamo višestruko memorisanje iste informacije u bazi podataka. Potpuno eliminisanje redundanse podataka u bazi podataka je skoro nemoguće ostvariti. Realni cilj pri projektovanju baze podataka je kontrolisana redundansa podataka. Bitna osobina koja se očekuje od normalizacije je reverzibilnost tj. da ne smije doći do gubitka informacija sadržanih u polaznoj relaciji. Polazeći od skupa normalizovanih relacija, mora biti moguća rekonstrukcija polazne nenormalizovane relacije. Jedan od ključnih ciljeva relacione baze podataka je da se spriječi nepotrebno dupliranje podataka. U stvari, ovo je jedan od glavnih razloga zašto se koriste relacione baze podataka, a ne fajlovi, koji podatke skladište u jednoj tabeli. Ponekad se klasa ili objekat dizajnira korektno (zavisi koji model podataka se koristi), a u relacionoj šemi se tek uoči problem. Normalne forme daju formalne kriterije prema kojima se utvrđuje da li model podataka ispunjava prethodne zahtjeve. Normalizacija je proces provjere uslova normalnih formi i po potrebi svođenje šeme relacije na oblik koji zadovoljava isti. Normalizacija je proces primjene skupa pravila na postojeći dizajn baze, uglavnom da bi se postigla minimalna redudansa podataka. Uobičajeno se normalizacija predstavljaju kao proces od tri koraka, koji se vezuje za normalne forme, koje se mogu obaviti u skoro algoritamskom poretku. U praksi, češće se pravila postepeno primjenjuju, dok se šema svake relacije ne razvije na način na koji se dobija iz dijagrama E-R modela ili nekog drugog modela (npr. UML). Konačna struktura tabela treba da bude ista bez obzira koji se metod (ili kombinacija metoda) primenjuje. Teorija normalizacije nije ništa drugo nego formalizacija nekih intuitivno prihvatljivih principa o "zdravom" oblikovanju šeme. Ukoliko već na početku dobro uočimo sve potrebne entitete, atribute i veze, tada nam nikakva daljnja normalizacija neće biti potrebna. No ako je polazna relaciona šema bila loše oblikovana, tada će postupak normalizacije ispraviti te greške.
-
Funkcion Loša funkcneke atributKoncept fupodataka. Ako je datmeđusobno X, postoji sa Funkcionalnpredstaviti izražava kao Na primjer{CategoryNCategoiyNaImajte u viatributa Des Dijagrami fU praktičnirazumljivo u svakoj tor Prema tomfunkcionalnAko {X} nijće obaveznoAtribut možNije moguđatributa koji
Trivijalna fTrivijalna fu Potpuna fuAtribut je pfunkcionaln
nalnazav
cionalna zavte, ali ne i zaunkcionalne
ta torka T i isključivi. Samo jedna le
nu zavisnokao na sli
o X→Y, što
r, u relaciji Name}, imaćame funkcionidu da funkcscription ne o
funkcionalneim aplikacijsamo po sebrci; ako su te
e, ako imamno zavisni odije kandidat zo sadržati izvže biti funkciđe odrediti nii čine isti.
funkcionalnfunkcionalna
unkcionalna potpuno funno zavistan n
visnost
visnost se dea cijelu relaci zavisnosti
dva skupa Skup Y je funegalna vrijed
ost između ci. U tekstuse čita kao „
prikazanoj će istu vrijenalno određujcionalna zavomogućava n
e zavisnosti ojama, funkcibi: svaka relae vrijednosti p
mo torku {Xd {X}; to proza ključ i funvjesnu redunionalno zavisivo normaliz
na zavisnost zavisnost je
zavisnost nkcionalno zni od jednog p
ešava kada piju. Ovakvi a
(functional
njenih atribnkcionalno z
dnost u skupu
skupova u se funkci
„X funkciona
na predhodednost i atruje atrribut Dvisnost ne vnam da utvrd
obično su jasnionalna zavi
acija će uvijepoznate, mog
X, Y}, gdje izlazi iz defi
nkcionalna zandantnost i bistan ili u odnacije DB mo
funkcionaln
avistan od spodskupa set
3
postoji atribuatributi se naz
dependency
buta, {X1.. .zavisan od sku Y.
atributa mionalna zavalno određuje
dnoj slici, svributa {DescDescription. važi uvijek dimo i odgov
ni sami po seisnost je zg
ek imati odregu se odredit
je {X} kaninicije kandidavisnost nijeiće potrebno nosu na drugodela bez raz
na zavisnost a
seta atributata X.
ut ili skup atzivaju podkljy) izuzetno
.Xn } i {Y1kupa X ako,
možete visnost e Y“.
vaka torka kcription}. Z
i u suprotnvarajuću vrije
ebi. godan oblik eđeni skup atti i vrijednos
ndidat za kldata za ključ
e trivijalna (tjnormalizova
gi atribut ili uzumevanja m
atributa prem
X ako je f
tributa koji pjučevi (subkje kotistan
1... Yn} (ti za svaku leg
koja sadrži bog toga m
nom smjeru:ednost atribu
da se izraztributa čije susti atributa ko
ljuč, onda a. j. {Y} nije panje. u odnosu na k
međusobnih fu
ma supersetu
funkcionalno
predstavljajukey) relacije.
za rad sa
skupovi ne galnu vrijedn
istu vrijednmožemo reć
: poznavanjeuta CategoiyN
zi nešto štou vrijednostioje nisu jedin
atributi {Y}
podskup od {
kombinaciju funkcionalnih
sebe.
o zavistan od
nadključ za
strukturama
moraju bitinost u skupu
nost atributai da atribut
e vrijednostiName.
o je priličnoi jedinstvenenstvene.
moraju biti
X}), relacija
atributa. h zavisnosti
d X ali nije
a
a
i u
a t
i
o e
i
a
e
-
TranzitivnaTranzitivna
VišeznačnaVišeznačna višeznačna slučaj tuple- Vezna zaviEntitet T jeatributa enti Za zadatu rvrijednost ojednakom vAnalogna d Kao primjeIZVESTAJ (BR_SOB E_Pretpostavimfunkcionaln
Za zadatu rvrijedi: B jeSvaki atribu Na primjer druge stranključu, buduZa BR_SOBIME_NASTAParcijalne ipoželjno uk
a zavisnost zavisnost je
a zavisnost zavisnost j
zavisnost za-generisane z
isnost e vezno zaviteta T.
relaciju R, aod A jednoznvrijednošću Adefinicija prim
er, razmotri BR INDEKS
_NAST AVNI mo da svaknih zavisnost
relaciju R, ae funkcionalnut relacije je
OCJENA je ne, NASLOV_ući da su zavBE_NASTAV
TAVNIKA, koi tranzitivne
kloniti.
e indirektna z
je potpuna ahjteva da odzavisnosti. O
vistan ako se
atribut B odnačno određuA, tada te n-tomijenjuje se
imo sljedećuSA, BR ISPITA KA, OCJENA
ki ispit ima jti:
atribut B od no zavisan o funkcionalno
potpuno fun_ISPITA, IMvisni samo o VNIKA se koji je opet zave zavisnosti
zavisnost gdj
veza dva sređeni tuplov
Ova vrsta zav
e može rekr
d R je funkcuje vrijednosorke moraju i za slučaj ka
u (loše oblikoA, NASLOV_
A ) . jednog nasta
R je potpunA, no B nijeo zavisan o k
nkcionalno zME_NASTAVN
BR_ISPITA,aže da je trvisan o BR_Imogu uzrok
4
je A→C sam
eta atributa vi butu prisuvisnosti igra
reirati veziva
cionalno zavst od B. Dakimati jednak
ad su A i B sl
ovanu) relaci_ISPITA, IME
avnika, a sv
no funkcionae funkcionalnključu, no ta
zavisna o priVNIKA i BR_, a ne i o BR_ranzitivno zISPITA. kovati probl
mo zato što A
u relaciji. utni u relacijiulogu kod če
anjem više t
visan o atribkle ako u istoku vrijednostloženi atribu
iju: E_NASTAVNI
vaki nastavn
alno zavisanno zavisan nizavisnost ne
imarnom klju_SOBE_ NAS_INDEKSA.zavisan o B
leme kod m
A→B i B→C.
Za razliku i te je višeznaetvrte norma
tabela od ko
butu A od Ro vrijeme pot B. uti (dakle sku
IKA,
nik jednu so
n o (složenomi o jednom pre mora biti po
uču (BR_ INSTAVNIKA
BR_ISPITA, b
manipulisanja
.
od potpuneačna zavisno
alne forme.
ojih svaka im
R (oznaka: Aostoje u R dv
upovi atributa
obu. Navodim
m) atributu ravom podskotpuna.
NDEKSA, BRsu parcijaln
budući da j
a s podacim
e zavisnosti,ost specijalni
ma podskup
A → B) akovije n-torke s
a).
mo neke od
A od R akokupu od A.
R_ISPITA). Sno zavisni o
e zavisan o
ma, pa ih je
, i
p
o s
d
o
S o
o
e
-
5
Anomalije
Jednostavno korišćenje i mijenjanje podataka podrazumjeva prije svega sprečavanje anomalija održavanja podataka. Pod anomalijama održavanja podataka podrazumjevamo:
1. anomaliju dodavanja, 2. anomaliju brisanja, 3. anomaliju promjene.
Anomalija dodavanja (unošenja) javlja se u onim slučajevima kada su informacije o svojstvima jednog objekta memorisane u bazi podataka kao dio opisa nekog drugog objekta. Na primjer, u okviru opisa nastavnika memorisane su informacije o predmetu koji predaje ili katedre na kojoj radi. Informacije o predmetu, odnosno katedri, nije moguće unijeti u bazu podataka sve dok ne postoji bar jedan nastavnik koji taj predmet predaje, odnosno, dok ne postoji najmanje jedan nastavnik koji na toj katedri radi. Anomalija brisanja je inverzija anomalije dodavanja. Neka su u okviru opisa svojstava nastavnika memorisane informacije o predmetu koji predaje. Svakim brisanjem opisa nastavnika briše se i jedna kopija podataka o predmetu koji predaje. Kada se obrišu podaci o posljednjem nastavniku koji predaje neki predmet, biće obrisana i poslednja kopija podataka o predmetu. S obzirom na to da pri brisanju podataka o nastavniku ne mislimo na druge posljedice, na ovaj način moguće je uništiti podatke o predmetu, koji su potrebni i važni. Anomalija promjene (ažuriranja) javlja se u slučaju kada promjenu podataka o jednom objektu treba izvršiti na više od jedne kopije podataka. Razmotrimo ponovo prethodni primjer gdje su podaci o predmetu i katedri memorisani u okviru opisa nastavnika. U bazi podataka u jednom trenutku postoji toliko opisa katedre koliko nastavnika radi na toj katedri. Ako treba promjeniti podatke o opisu katedre (na primjer, naziv katedre), tada tu promjenu treba izvršiti na onoliko mjesta koliko nastavnika radi na toj katedri. Ako se promjena ne izvrši na svim kopijama nastaje situacija u kojoj o istom svojstvu jednog objekta imamo više različitih tvrdnji od kojih bar jedna nije istinita. Ovakvo stanje smatramo nekonzistentnom bazom podataka.
-
6
Tehnikenormalizacije Postoje sledeće dve tehnike normalizacije:
1. Horizontalna normalizacija. 2. Vertikalna normalizacija,
Horizontalnom normalizacijom relacija se rastavlja na podskupove n-torki – fragmente relacije koji zadovoljavaju određene uslove. Horizontalna normlizacija zasniva se na operacijama selekcije i unije. Sama tehnika se koristi kod distribuiranih baza podataka. Kod distribuiranih baza podataka relacija ne mora u potpunosti biti memorisana na jednoj lokaciji. Fragmenti relacije memorišu se na pojedinim lokacijama, što bi se moglo koristiti za samu normalizaciju. Vertikalna normalizacija je postupak kojim se proizvoljna nenormalizovana šema relacije transformiše u skup manjih i normalizovanih šema relacija. Vertikalna normalizacija zasniva se na operacijama projekcije i prirodnog spajanja.
1. Pomoću operacije projekcije relaciju vertikalno razbijamo na dve ili više manjih relacija. Pri tome, dolazi do cjepanja svake pojedine n-torke u relaciji.
2. Operaciju prirodnog spajanja koristimo da bi dokazali reverzibilnost, tj. da bi rekonstruisali polaznu, nenormalizovanu relaciju.
Postoje sljedeće dvije varijante vertikalne normalizacije:
1. normalizacija sintezom, 2. normalizacija dekompozicijom,
Normalizacija sintezom polazi od skupa obilježja i od skupa zavisnosti zadatih na tom skupu obilježja. Postupak se ne izvodi u koracima već se direktno formiraju relacione šeme koje ispunjavaju uslove zahtjevane normalne forme. Normalizacija dekompozicijom započinje od proizvolje nenormalizoovane relacione šeme i izvodi se u koracima. Svakim korakom normalizacije relaciona šema prevodi se u višu normalnu formu, tako da se polazni skup obilježja deli u dva skupa i od svakog formira posebna relaciona šema. Svaki korak normalizacije mora biti reverzibilan. Vertikalna normalizacija dekompozicijom je najćešće korištana tehnika normalizacije, pa ćemo i mi analizirati samo ove tehnike. O normalizaciji se obično govori u obliku formi, a ovdje ćemo opisati samo prve tri forme mada se koriste i ostale, složenije forme (četvrta, peta, Boyce-Codd forma).
-
Formeno Kratke i upr1.normalnaili više atribne smiju bit2.normalna3.normalna Osnovna pr
1. svak2. svak3. za s
kojo4. mor
bilo Sa aspekta dprimarnom Druga praviza tabele i k Standardne automatski j Prvanor Prva normaključa za svPrva norma
1. Elim2. Kre
jedi To je istovratribut torpojedinačne Relacija je Za svođenjeAli šta je tačU relaciji slici, atribuočigledno vrijednosti što znači daprvoj norma Pojam skalveličine kojkoordinatno Prva normaključa za sv
ormalizac
roštene defina forma–svi buta. Svako pti sastavljeni a forma–svi a forma–svi
ravila normalko polje tabeka tabela mosvaku jedinstoj koloni podra postojati mo koje drugo
dizajna baze ključu zavisila kojih se t
kolone, kao i
normalne fje u drugoj i
rmalnafor
alna forma ovaku tabelu. alna forma (1minisanje dueiranje poseinstvenom ko
remeno i najjrke mori sae vrijednosti,
u prvoj nore relacije na čno prosta vr
prikazanoj ut Items (stav
sadrži v(tj. nije pro
a relacija nijalnoj formi.
lar se ovdje je možemo ioj osi, takoi k
alna forma vaku tabelu.
cije
nicije prve trientiteti mor
polje u tabeliod više atribatributi koji atributi koji
liziranih tabeele trebalo biora imati primtvenu vrijedndataka, a ta smogućnost ppolje.
podataka to e samo od čitreba pridržav upotreba pu
forme su ad prvoj norma
rma
odnosi se na
NF) postavluplih kolona iebne tabele olonom (prim
jednostavnijiadržati sam, ne grupe ili
rmalnoj form1NF, treba rrijednost?
na vke) više ost), je u
(kod BP) kizraziti samokod baza ska
odnosi se na
i normalne foaju imati jedi mora sadržabuta) nisu dio kljunisu dio klju
ela: i predstavljatmarni ključ knost primarnse vrijednost romjene bilo
znači da poditavog primavati u dizajn
unih riječi u s
ditivne, dakalnoj formi.
a grupisanje
lja dva osnoviz iste tabeleza istu gr
marni ključ)
i i najteži konmo prostu (
kompozitne
mi ako su skazložiti svak
koristi kao so jednim podalarni podata
a grupisanje
7
forme bi glasdinstveni idenavati samo je
uča moraju uuča ne smiju
ti jedinstven koji se sastojnog ključa m
mora odnoso kojeg polja
datke treba oarnog ključa.nu baze podasamoj bazi p
kle ako je n
sličnih poda
vna pravila ze rupu poveza
ncept model(atomsku) ve objekte.
kalarni svi dku ne-atomsk
U ovoj
inonim za pdatkom i meak bi trebao i
sličnih pod
ile: ntifikator (klednu vrijedn
u potpunosti u biti međuso
tip informaci od jednog iora postojatiiti na subjek
a (osim polja
organizovati
ataka su dobrodataka.
neki model
ataka u odvo
za organizova
anih podata
lovanja podavrijednost. T
domeni u kojku vrijednost
j relaciji Item
prost podataeđusobno se imati samo je
dataka u odvo
ljuč) koji se mnost (atributi
zavisiti o njeobno zavisni
cije ili više polja i jedna i samt tabele u primarnom
tako da sve k
ra, konzistent
sveden na
ojene tabele
anu bazu pod
aka i identi
ataka. PrincipTo znači da
jima su defi.
ms nije skalar
k. Slično mamogu uspor
ednu odredn
ojene tabele
može sastojamoraju biti j
emu
u tabeli mo jedna vrije
m ključu) be
kolone koje
ntna, logička,
treću norm
i definisanj
dataka:
ifikovanje s
p se lako razua u tabeli t
inisani njeni
ran
atmatici gdjređivati sam
nicu.
i definisanj
ati od jednogjednostavni–
ednost u bilo
z utjecaja na
ne pripadaju
puna imena
malnu formu,
e primarnog
svakog reda
umije: svakitreba unositi
i atributi.
je su skalarimo po jednoj
e primarnog
g –
o
a
u
a
,
g
a
i i
i j
g
-
NInnkuku
Problems Međutim, togotovo samNpr. datumičuvati kao tDo odgovorAko vaš sisUkoliko sistatribute. Nasamo dan i mU specifičnživot ako dadatuma plusMeđutim, anaročito važJoš jedna oindikatori (Mnoge komnalik na REmalo vjerovsvom modeDugoročno RedniBrojPu datoj godina performatributa moprenosi puteJoš jedna konvenciongrupiše u jeU konvencinije. Ne saneefikasno. Nažalost, tomogućnost Kad morateverzije unes Postoji još jprvoj norma
Na slici je prnvoice (faktekom trenuupcima nećeupe više od tPitam se dograničenjeloša, a u ovoJoš jedan pse ponavljslici. Greočigledna, asistemi naosnovu sličn
anestanda
o nije uvijekma nameće).
i su nezgodntri odvojena ara možete dostem najčešćtem češće ob
a primjer, momesec. ali neom slučaju datumske atris vreme. atributi tipa ži kada u poloblast u koj(flags).
mpanije dodeEF0010398, švatno da će lu podataka je znatno l
Predmeta, Mjini svodi se n
manse, naročiože biti potreem mreže), avrsta neska
nalnim okružednu riječ i dionalnim okr
amo što se t
o je vrsta oizbora po tom
e da radite ssete u skup z
jedna vrsta nalnoj formi, arikazana je rtura). Nekoutku odluče biti dozvoljtri različita a
da li je prethe koje je namom slučaju i rimjer grupea prikazanj
eški nije a mnogi usp
apravljeni sunih modela.
ardnimatri
k tako očigl
na oblast. Onatributa ili ka
oći jeino na oće koristi svebrađuje kompožda vam je e i godina. Tdatuma, buduibute kao tip
DateTime mlju zanemarujoj ljudi ima
eljuju šifre pšto bi moglokompanija ppokušate da
lakše da dijejesec, Godinna jednostavaito u klijentebno da se sa ne na servealarnog atribženjima za pa se zatim teruženjima zaime narušav
ograničenja km pitanju, ne nasljeđenom
zapisa.
neskalarnih va to su gruperelacija
o je u čio da jeno da
artikla. hodno razgo
metnuo sistembesmislena.
e koja e na tako
pješni u na
butima
edno i jedno
ni se sastoje oao kombinac
osnovu semane tri komponponente datudan nebitanakvi slučajevući da progra podataka D
mogu biti uzrujete komponaju problema
predmeta ili o značiti da jeprihvatiti da pojedinačno
elove referenna). S takviman upit nad jt/server okrusvaki zapis pru baze podabuta s kojimprogramiranjee vrijednosti ua programira
va prva norm
koje je čestemojte kodim strukturom
vrijednosti oe koje se pon
Ovaj mode
ovarao o tomm, a ne sam n
8
ostavno kao
od tri kompociju? ntike prostornente datumuma pojedinan, a zanimamvi nisu baš čeamiranje datu
DateTime (da
zrok problemnentu vremena s neskalam
referentne oe u pitanju pmijenja svoj
o manipulišetntne oznake
m rješenjem, ednim atribuuženjima, gpojedinačno ataka. m ljudi ime, uobičajenučitavaju i isanje, to je pmalna forma
to nametnutoirati više od m podataka,
o kojima trebnavljaju.
el podataka o
me s direktonačin poslov
Ov
u predhodn
onente: dana,
ra problema ma zajedna dačno, bolje je
m samo mjeseesti, ali postoumske aritbu
atum/vreme)
ma kada se pna.
mim (složeni
oznake koje prvi predmet ja pravila nate dijelovima čuvate kaoodređivanje
utom i ne zahdje za izdvaispituje na
maju problemna praksa je spituju pomopotpuno priha, već je to
o iz istorijskjednog poduvijek može
ba voditi raču
ograničava b
orom prodajvanja. Vješta
vo je grupa k
nom primjeru
, mjeseca i g
koji razmatraatum treba de da ih čuvatec i godina. oje. uter nije jednkoji kombin
porede pojed
m) vrijdnost
su izračunatzapočet mar
a vaš zahtjeva referentne oo zasebne atr
narednog brhtjeva dodataajanje vrijedlokalnom kl
ma jeste jedda se više v
oću operatoravatljivo. U rizuzetno nez
kih razloga. atka u jedanete da raspak
una kada isp
broj artikala
e? To je goačka sistemsk
koja se ponav
u (gdje se n
godine. Da li
ate. da bude skalte u bazi podIli, možda s
nostavno, olanuje sve tri
dinačne kom
tima jesu šif
te vrijednostrta 1998. godv, bila bi lošoznake. tribute: (Vrstroja predmetan rad. To zndnosti iz srelijentskom ra
dnobitni invrijednosti loa nad bitovimrelacionim ozgrapno i -
Ako imaten atribut. kujete podat
pitujete da li
a koje kupac
otovo sigurnka ograničen
vlja
normalizacija
bi ih trebalo
larni atribut.datci zasebneu vam važni
akšaćete sebikomponente
mponente. To
fre (codes) i
ti. npr. neštodine. Iako ješa ideja da u
taReference,ta otvorenognačajno utičeedine nekogačunarima (i
ndikator. Uogičkog tipa
ma. okruženjima,uglavnom -
bilo kakvu
tke i da obje
je relacija u
može da kup
no vještačkonja veoma su
a
o
. e i
i e
o
i
o e u
, g e g i
U a
, -
u
e
u
pi
o u
-
Međutim, toZamislite kakom trenutk Šema relacijatributa u sprikazati u o Drugano Relacija je od primarnoSmještanje zavisni samOsnovni zah
1. Ukl2. Kre
Dakle, 2NFu nove tabe Na primjer, ProductNamSupplierNamdobavljača)SupplierPho(telefonski bsamo od atra ne od cijelključa.
Već smo naproblemi od
U primjeru podatak o aprimarnog k
o je zapravo ako bi izgledku prvog trom
ije je u 1NF,svakoj n-torobliku pod-ta
ormalnaf
u Drugoj noog ključa (nepodataka u d
mo od dijela khtjevi 2NF sulanjanje podseiranje veza i
F ima za cilj sle i kreiraju v
ključ na slicme (naziv artme (naziv )}, ali polje oneNumber broj dobavljaributa —Suplog kombino
apomenuli ddržavanja usk
na slici, postartiklima kojeključa ne mo
ista strukturadao upit kojimesečja.
ako se možerki relacije pablela
forma
ormalnoj formeključni atribdrugu normaključa. u skupova podizmeđu novih
smanjenje koveze između
ci tikla),
ača) zavisi lierName,
ovanog
da je posljediklađenosti po
taje moguće e vam on dob
ože da se izos
a kao ona nai treba da utv
e prikazati upojedinačni
mi (2NF) akbuti su atribualnu formu sa
dataka koji seh tabela i tab
oličine redudu ovih tabela.
ica toga reduodataka.
da podatke obavlja. To nestavi.
9
a predhodnojvrdi kor. arti
u obliku potp(jednostavni)
ko je u 1NF iuti koji nisu kastoji se od p
e nalaze u višbela sa kojim
dantnih poda.
Svi aundantnost,
o određenome bi bilo mog
slici i uzrokikli premašili
une dvodimei) podaci ili
i svi njeni nekandidati za premještanja
še redova i nma su spojene
ataka, tako št
atributi relaca posljedica
Ovo p Logičnormda dvi SuprelaciAko relaciredunmehana dr
m dobavljačuguće u prvoj
k je istih probi plan za više
enzionalne tase vrijednos
eključni atribključ, niti diou druge tabe
njihovo smešte korišćenjem
to se oni “izv
ije treba da redundantno
predstavlja b
čki gledano,malnu formu,va različita eppliers (dobaijom.
entitete ijama, time ćndantnost, anizam za skugi način ne
unesete prijrelaciji zato
blema. e od 10 proc
abele i ako suosti atributa
buti funkciono kandidata ele onih poda
štanje u posebm spoljnih klj
vlače” iz tabe
budu zavisniosti mogu b
bolji model.
, da biste d, pokušajte dentiteta Prodavljači) preds
predstavite ćete ne samoveć ćete
kladištenje poe biste mogli
e nego što upo što nijedna
cenata u bilo
u vrijednostine mogu se
nalno zaviseza ključ) ataka koji su
bne tabele. ljučeva
ele, stavljaju
i od cijelog kiti neprijatni
dobili druguda izbjegneteucts (artikli)stavite istom
odvojenimo eliminisati
dobiti iodataka kojeda unesete.
pišete ijedankomponenta
o
i e
e
u
u
ključai
u e )
m
m i i e
n a
-
Trećano Relacija je nijednog klključa). Osnovni zah
1. Tab2. Uk
Praktično p Treća normključa. Drutreba premje
Ova relacija Dvije relacij
Jedina stvapoštanski bzanemarljivpotrebna do I ovde je iskako ćete reNemoguće jzasebnu rela
• Ent• Pod• Sigu
Poštanski btabela poštaodređivanje
ormalnafo
u trećoj norljuča međus
htjevi 3NF bela je u 1NF
klonjene su kpostavlja se p
malna forma sgim riječimaestiti u nove
a nije striktn
ije prikazane
arna prednosbroj pri unošva prednost, odatna operac
sti princip kaealizovati treje navesti praciju u sljedetitet je važan daci se često urni ste da će
rojevi se mijanskih brojeve poštanskih b
orma
rmalnoj formsobno nezav
F i 2NF kolone koje npitanje: Da li
sastoji se od a, treba zadrtabele i form
no u trećoj no
e na slici ispo
t koju pružašenju novih ali vjerovatncija spajanja
ao i pri donoeću normalnuravila koja bećim slučajevdio modela,mijenjaju, ile vam to pru
jenjaju, ali nva ne bi bila brojeva (u S
mi ako je u dvisni, (ako sv
nisu potpuno i postoje kolo
uklanjanja sržati samo pmirati primar
ormalnoj form
od su tehničk
a ovo rješenzapisa, što
no postoje borelacija kad
ošenju svih du formu možbi uvijek važvima: ili
li užiti određene
ne često, a u praktična u AD).
10
drugoj normvi njeni nekl
zavisne od pone koje ne z
svih podatakodatke koji
rni ključ za n
rmi
ki su ispravni
nje jeste mokorisniku št
olji načini dagod se refer
drugih odlukete odrediti sžila, ali post
e tehničke pr
većini sistemvećini aplik
malnoj formi ljučni atribu
primarnog klzavise u potp
ka u tabelamasu zavisni o
njih.
ije
ogućnost da tedi nekolika se objezberencira određ
ka tokom posamo na osnooje određene
rednosti pri r
ma nisu samiacija iz stvar
i ako su svti netranzitiv
ljuča. punosti od pr
a koji ne zavod primarnog
Ono
se automatso pritisaka ndi takva funkđena adresa.
stupka modeovu semantike smjernice.
realizovanju
i po sebi važrnog života z
vi atributi kvno zavise o
rimarnog klju
vise jedino og ključa, a o
Ova relacija ormalnoj for
ski potraži ona tastere. T
nkcionalnost,
elovanja podke modela. Trebalo bi
modela.
žni. Osim togzbog različit
koji nisu diod primarnog
uča?
d primarnogone koji nisu
je u trećojrmi
odgovarajućiTo nije tako
u kojoj nije
dataka: kad i
da napravite
ga, odvojenaih pravila za
o g
g u
j
i o e
i
e
a a
-
11
Praktičanprimjernormalizacije Daćemo primjer kako da od neuređene (nenormalizovane) baze dobijemo model u 3NF formi. Krenućemo od jednostavne strukture; imamo spisak članova foruma koji imaju nekakvo znanje o raznim materijama. Neki članovi znaju o muzici, neki o hardware-u dok se neki bolje snalaze sa linux-om; naravno, postoje i oni koji vrlo dobro poznaju i hardware i muziku. Primjer jednostavne tabele bi izgledao ovako:
TABELA:KOMPLET Id korisnik Zivi Znanje 1 Pera Perić Srbija Audio 2 Mika Mikić Srbija Video 3 Žika Žikić Srbija Audio, Video, Hardware,, Windows 4 Mali Perica Srbija Audio, Video, Baze, Hardware, Windows, Linux, Programiranje 5 Mali Žika BiH Programiranje, Hardware
Ovo je tipičan primjer loše dizajnirane baze sa samo jednom tabelom u kojoj se nalaze svi podaci. Ako želimo da saznamo koji korisnik zna “video” moramo proći kroz sve korsnike, provjeriti sadržaj polja “znanje” i pregledati prilično nepregledno polje “znanje” te otkriti da li dotični korisnik zna “video” ili ne. Mane ovakve organizacije su očigledne (brzina, preglednost…) te je ovo vrlo nepraktičan način za čuvanje informacija. SvođenjemodelanaprvunormalnuformuRazdvajanje repetitivnih podataka u zasebne tabele našu strukturu dovodi u prvu normalnu formu. Iz našeg primjera (gdje je sve bilo nagurano u istu tabelu), dobijamo 2 odvojene tabele:
TABELA: KORISNIK Id Korisnik Zivi 1 Pera Perić Srbija 2 Mika Mikić Srbija 3 Žika Žikić Srbija 4 Mali Perica Srbija 5 Mali Žika BiH
TABELA: ZNANJE
Znaje_ID korisnik_ID Znanje_IME 1. 1 Audio 2. 2 Video 3. 3 Audio 4. 3 Video 5. 3 Hardware 6. 3 Windows 7. 4 Audio 8. 4 Video 9. 4 Baze 10. 4 Hardware 11. 4 Windows 12. 4 Linux 13. 4 Programiranje 14. 5 Hardware 15. 5 Programiranje
-
Svodjenje Ako pogledprimjetićemdefiniše slognekim slučarelaciji sa kšto se odražAko na primzvukom”) mDalje, pretpu tom slučbrisanju). Da bi ste zaDa bi “razvključa koji d
ZNANJ1. 2. 3. 4. 5. 6. 7.
modelana
damo tabelu mo da nam se
g tabele, u taajevima mož
korisnikom i žava na prostmjer želite dmorate to impostavite da “čaju, potpuno
aobišli ove anili” našu bazdefinišu tabe
TABELJE_ID
drugunorm
“ZNANJE” e podaci dupabeli KORISže da ima sbezrazložno
tor potreban da promjenitme promjenit“mali perica”o će nestati
nomalije, potzu u drugu noelu “ZNANJE
LA: ZNANJEZNANJE_Audio Video Hardware Windows Baze Linux Programira
malnuform
iz prethodnpliciraju. Za NIK slog demisla, ali u
o se multiplicza čuvanje iste ime jednoti na više m” ode sa foru
referenca d
trebna vam jormalnu formE”. Rezultat
E _IME
anje
12
mu
og primjera razliku od ta
efinišu KORInašem sluč
cira u tabeli, stih, otežavaog “znanje”
mjesta, umjesuma; u tom slda je znanje
e druga normu, potrebnoće biti dve ta
Z
gdje smo svabele “KORISNIK_ID i Zčaju, gdje im
možemo zaki usporava o(na primjer
sto samo nalučaju treba oe “Linux” p
rmalna formo je da razdvoabele:
TABEZNANJE_ID
1 2 1 2 3 4 1 2 3 4 5 6 7 3 7
veli model nISNIK” gdjeZNANJE_ID
me “znanja” ključiti da naoperacije sa b
želite da “Aa jednom (anobrisati sve sostojalo na
ma. ojimo atribut
LA: KORISN KO
1 2 3 3 3 3 4 4 4 4 4 4 4 5 5
na prvu norme atribut KOD atributi zajrealno nije am se podacbazom. Audio” postanomalija prslogove vezaforumu (an
te koji zavise
NIK_ZNANJORISNIK_ID
malnu formu,ORISNIK_ID
edno. Ovo uni u kakvoj
ci “dupliraju
ane “Rad sai promjeni).ane za njega;nomalija pri
e od oba
JE
, D u j u
a . ; i
-
Svođenjem Ako pogledispunjava i ključa). Da uzmemo na“BIH” (anomoramo prozahjteva da
DRZAVA1 2
modelanat
damo malo bprvu i drugubi postigli t
a primjer da omalija pri bomjeniti na vpodatak o “Z
TABELA: A_ID
trećunorm
bolje tabelu u normalnu fotreću normal“mali zikica
brisanju) ili više od jednoZIVI” prebac
DRZAVA DRZAVA_IMSrbija BiH
malnuformu
“KORISNIKformu, atribulnu formu, taa” napusti foako “Srbija”
og mjesta (ancimo u zaseb
ME
13
u
K” iz primjeut “ZIVI” nijeaj podatak m
orum, te se s” ponovo prnomalija priban entitet.
KORISN1 2 3 4 5
ra za drugu e direktno za
mora da se oslogovi koji nromjeni ime i promjeni).
TABNIK_ID K
pemizikmama
normalnu foavistan od IDodvoji u zasenjega definišu “Uža SrbiRazlaganje n
BELA: KORIORISNIK_IM
era peric ika mikic kica zikic ali perica ali zikica
ormu, videćeD-a korisnikaebnu tabelu. šu obrišu, neija sa okolinna treću norm
ISNIK ME DRZ
1 1 1 1 2
emo da iakoa (primarnogZašto? Ako
estaće trag onom”, to imemalnu formu
AVA_ID
o g o o e u
-
Primjeri Analiza annajjednostavprincipa koj 1NFianomNeka na poč
INSERT anUPDATE aDELETE an 2NF 1NF nije u 2ali i{PredmNastavnik funkcionaln
Rješeni proProblemi u INSERT – NUPDATE –mora se uraDELETE – U 2NF prva
ianalizaa
nomalija i fovnije usvajaji se trebaju p
maliječetku imamo
nomalije Neanomalije Prnomalije Ak
2NF Postojmet} →{Nasta
i Odjel u ne zavisnosti
oblemi sa 2N1NF Ne može se d
– Izmjena podaditi u dva za
Ako se izbri
a dva problem
1NF
anomalija
formalna pria praksom. Ppoštovati da
o nenormaliz
e može se dorilikom promko izbrišemo
i FZ{Predmavnik, Odjelparcijalnoj :
NF
dodati predmdataka nastav
apisa (reda). iše P3, briše
ma su otklonj
a
mjena relacPrimjer i kobi mogli diz
zovanu bazu
dati predmetmjene podatao P3, brišemo
et, Lekcija} } zavisnosti o
met bez Lekcvnika za pred
se iN2.
njena, ali ne i
14
cionoh računomentari kojzajnirati bazu
koje jednost
t bez lekcijeaka predmetao i N2.
→{Nastavni
od primarno
cije. dmet P1,
i treći
na je kompi slijede su
u podataka.
tavno „atomi
a P1, moraju
ik, Odjel}
og ključa.sv
Preostali prINSERT anNe može se nijedan predUPDATE anDa bi promiizmijeniti 2 DELETE anAko se obri
leksan probdovoljno il
ziramo“ i sv
se izmjeniti
ođenje na 2
roblemi u 2Nomalije dodati nasta
dmet. nomalije ijenili odjel nreda.
nomalije še P3 briše s
blem koji selustrativani z
vedemo na 1N
dva reda tab
2NF preko
NF
avnik koji ne
nastavniku N
sei N2
e najbolje iza shvatanje
NF.
bele.
objašnjenja
predaje
N1 moraju se
i e
a
-
3NF
Problemi u INSERT anUPDATE aDELETE anU 3NF svi o
DaljenorPrve tri normslučajeva onViše norma Četvrta norm Peta normal
pojednostPrvu normatributa Prva normalnpostavlja najoEliminisanje dKreiranje posključ) Druga norsu svi neRelacija je u Dfunkcionalno Treća norne sadržifunkcionaili je A Uklonjene su Postoji i poboRelacija i kandidarelacije Norme 4NF i5NF.
2NF nomalije- Ne anomalije Dnomalije Akovi problemi
rmalizovamalne formene su dovoljn
alne forme su
malna forma
lna forma uk
tavljeno: malna for jednostru
na forma (1NF)osnovnija pravduplih kolona sebne tabele za
rmalna formprimarni aDrugoj normalzavise od prim
rmalna formi tranzitilnu zavisnprimarni akolone koje n
oljšana 3NFa sje u Boyceat za ključkoje su u
i 5NF su prven
može se dodDa bi promije
ko se obriše i su riješeni(z
anjee bile su opisne. u bazirane na
a uklanje više
klanja zavisn
rma (1NF):uka i nedj
F) vila za organizo
iz iste tabele a istu grupu p
ma: Relaciatributi plnoj formi (2Nmarnog ključa ma: Relaciivne zavisnost X → Aatribut. isu potpuno zae zove i Boycee-Codd-ovoč. Očito r3NF, no n
nstveno od teor
dati nastavnikenili odjel nasP3 briše sei
za ovu relacij
sane u Coddo
a drugoj vrsti
e-vrjednosne
osti udruživa
: Relacijeljiva.
ovanu bazu pod
ovezanih poda
ija je u dpotpuno funNF) ako je u 1N
(neključni atribija je u tsnosti. PrA u R, tak
avisne od prime-Coddova nooj normalnorelacija knisu u BCNFrijskog značaja
15
k koji ne prestavniku N1 N2.
iju – ali 3NF
ovoj prvobitn
i zavisnosti.
e zavisnosti.
anja.
a zadovol
dataka:
ataka i identifi
drugoj nornkcionalno
NF i svi njeni nbuti su atributitrećoj norreciznije,kvu da A n
marnog ključa.ormalna forma oj formi (koja je u F. a, jer je teško
edaje nijedanmoraju se iz
i dalje može
noj formulac
ljava 1NF
fikovanje svako
rmalnoj foro zavisni oneključni atribui koji nisu kandrmalnoj for, relacijanije u X,
(BCNF). (BCNF) akoBCNF takođ
u praksi naći r
n predmet. zmijeniti 2 re
e imati anom
ciji relacione
ako je
og reda jedins
rmi (2NF) o primarno
uti didati za ključ,rmi (3NF) a R je u vrijedi: X
o je svaka đe i u 2NF
relacije koje je
eda.
malije!)
e teorije. U v
vrijednos
nstvenom kolon
ako je u om ključu.
, niti dio kandiako je u 3NF ako
X sadrži k
njena detF i 3NF. N
esu u BCNF, a
elikoj većini
st svakog
nom (primarni
1NF i ako
idata za ključ)2NF i akoza svaku
ključ za R
terminantaNo postoje
a nisu u 4NF i
i
g
i
o
o u R
a e
i
-
16
Razlozizbogkojihsemožeodustatiodnormalizacije Za većinu praktičnih primjera dovoljno je relacije normalizovati do 3NF. Ponekad je potrebno neku relaciju i dalje normalizovati do BCNF ili 4NF. Peta normalna forma, koja se takođe navodi u literaturi, nije od praktičnog značaja. Postoje razlozi zbog kojih ponekad možemo odustati od pune normalizacije. Pogledajmo dva takva razloga. 1.Složeni atribut . Dešava se da nekoliko atributa u relaciji čine cjelinu koja se u aplikacijama nikad ne rastavlja na sastavne djelove. Na primjer, posmatrajmo relaciju KUPAC ( PREZIME IME, POŠTANSKI_BROJ, GRAD, ULICA ) . Strogo govoreći, GRAD je funkcionalno zavisan o POŠTANSKI_BROJ, pa relacija nije u 3NF. No mi znamo da POŠTANSKI BROJ, GRAD i ULICA čine cjelinu koja se zove adresa. Budući da se podaci iz adrese koriste i ažuriraju "u paketu", ne može doći do prije pominjanih anomalija. Nije preporučljivo razbijati ovu relaciju na dvije. 2.Efikasno čitanje podataka . Normalizacijom se velike relacije razbijaju na mnogo manjih. Kod čitanja je često potrebno podatke iz malih relacija ponovo sastaviti u veće n-torke. Uspostavljanje veza medu podacima u manjim relacijama traje znatno duže nego čitanje podataka koji su već povezani i upisani u jednu veliku relaciju. Projektant baze podataka treba da procjeni kada treba provesti normalizaciju do kraja a kada ne. Za tu procjenu je važno razumjevanje značenja podataka i načina kako će se oni koristiti.
-
17
Dodatak:Procedureialgoritmi
GENERALPROCEDUREFORACHIEVINGANORMALIZEDSETOFRELATIONS 1.Identify the attributes of the database. 2. Group related attributes into relations. 3. Identify the candidate keys for each relation. 4. Select the most useful primary key from among the set of candidate keys. 5. Identify and remove all repeating groups. The result is a relation in 1NF. 6. If any of the resulting relations have identical primary keys, then combine them into a single relation. 7. Identify all functional dependencies between the attributes of a relation and its primary key. 8.Decompose the relations to a form where each nonkey attribute is dependent on all the attributes of the key. Do this by taking projections of the 1NF relation that eliminate any non full functional dependencies. The result is a set of relations in 2NF. 9. If any of the resulting relations have identical primary keys, then combine them into a single relation. 10. Identify any transitive dependencies in the relations decomposed to this point.
1. Examine relations for dependencies among nonkey attributes. 2.Examine relations for dependencies among key within the primary key.
11. Remove transitive dependencies by decomposition. Do this by taking projections of the 2NF relations produced by steps 8 and 9 that eliminate any transitive functional dependencies. The result is a set of relations in 3NF. 12. If any of the resulting relations have identical primary keys, then combine them into a single relation if and only if no transitive dependencies result from the combination. 13. Remove any remaining functional dependencies from the 3NF set of relations. Do this by taking projections of the 3NF relations produced by steps 8 and 9 that eliminate any remaining functional dependencies where the determinant is not a candidate key. The result is a set of relations in BCNF. 14. Remove any multivalued dependencies that are not also functional dependencies. Do this by taking projections of the BCNF relations produced by step 13. The result is a set of relations in 4NF. 15. The likelihood that any join dependencies not implied by the candidate keys remain by this point is virtually nil. If you can identify any such relations, then take projections of them to eliminate the non-implied join dependencies. The result is a set of relations in 5NF. 16. Particularly for temporal data, but sometimes to eliminate nulls as well, take projections to 6NF. 17. End of procedure.
-
Algoritam
Algoritam
2NFnorma
3NFnorma
alizacije
alizacije
18