Professional Documents
Culture Documents
Erwin
Erwin
Alempije Veljovi Modeliranje podataka je nae apstraktno vidjenje stanja realnog sistema tj. definisanje strukture podataka. Model podataka je pojednostavljeno predstavljanje realnog sistema preko skupa objekata(entiteta), veza izmedju objekata i atributa objekata. Model podataka(u literaturi definisan kao Model Objekti-Veze(MOV) ili E-R(Entity-Relatioship) model ili Entitetni dijagram), preko skupa podataka i njihovih medjusobnih veza, predstavlja stanje sistema u jednom trenutku vremena i sadri skup informacija o prolosti i sadanjosti sistema koja je potrebna da se pod dejstvom buduih poznatih ulaza mogu odrediti njegovi budui izlazi. Modeliranje podataka je svojevrstan grafiki jezik za predstavljanje strukture podataka. CASE(Computer Aidid Software Engineering) alati kao software-ska podrka modeliranju predstavlja samo alat za definisanje modela podataka realnog sistema, odnosno za opisivanje skupa povezanih objekata realnog sistema i dogaaja u njemu preko jednog sloenog apstraktnog tipa podataka(strukture podataka, ogranienja i operacija). Izbor odgovarajueg CASE alata sam po sebi je manje ili vie formalan, dok postupak modeliranja realnog sistema, zavisi od sposobnosti, znanja i iskustva analitiara. Ne mogu se dati strogo formalna pravila modeliranja koja bi vodila do jedinstvenog modela sloenog realnog sistema, bez obzira na to ko modeliranje vri. Mogu se dati samo opte metodoloke preporuke, opti metodoloki pristupi, kao pomo u ovom sloenom poslu. Modeliranje podataka se oslanja na izvreno modeliranje procesa o emu je vie bilo rei u predhodnom poglavlju gde je definisan odgovarajui renik podataka. Ovde je na zadatak da izvrimo modeliranje podataka u dva koraka modeliranjem pogleda i modeliranjem zahteva. Osnova za modeliranje pogleda su definisani dijagrami tokova podataka do kojih se dolo postupkom itervjua sa zaposlenima. Modelirani pogledi zahtevaju integraciju u generalni model podataka tako da ovaj pristup prestavlja tzv. pristup odozgo na dole(top-down). U modeliranju pogleda prvo je potrebno odrediti "oblasti" pogleda gde treba da budu definisane jasne granice. Ove granice su definisane procesom u dijagramima tokova podataka(DTP) i one nesmeju da bude isuvie mala da bi imalo smisla obradjivati ih a ni suvie kompleksne da se nemogu sagledati u celosti. Dakle, modeliranje pogleda poinje sa formiranjem okvirnog modela podataka pa pristupom proirivanja generiemo model podataka pritom vodei rauna o sinonimima(razliita imena za iste tipove entiteta), homonimima(ista imena oznaavaju razliite tipove objekte) kao i o tome da isti entiteti na razliitim pogledima budu iste vrste(slab, agregacija i dr.), da ista preslikavanja na razliitim podmodelima imaju iste kardinalnosti pritom treba otkriti da li veze izmedju istih tipova entiteta po razliitim putanjama imaju istu semantiku pa neku od tih veza treba prekinuti. O svim ovim elementima kasnije e biti vie rei. Na osnovu izmodeliranih pogleda i izvedene njihove integracije pristupa se modeliranju zahteva kojima se precizno definiu atributi na osnovu postojee dokumentacije(obrasci, kartoteke, fascikle i dr.). Ovo je pristup odozdo na gore (bottum-up). Osnovni zakljuak je je da irinu u pristupu nam daje modeliranje pogleda a preciznost omoguuje modeliranje zahteva. Da bi se postupak modeliranja podataka korektno korienje CASE alati omoguava nam: Definisanje sistemske dokumentacije koja moe biti koriena od strane baze podataka i osoblja za razvoj aplikacija da definiu sistemske zahteve
Bolju komuniciju medjusobno i sa krajnjim korisnicima. Jasnu sliku o ogranienjima referencijalnog integrita. Odravanje referencijanog integriteta je bitan u relacionom modelu jer su relacije kodirane implicitno. 'Logike' sliku baze podataka koja moe biti koriena od strane automatskih alata za generisanje SUBP-specifinih informacija.
Model podataka je intelektualno sredstvo pomou koga se prikazuje u kakvom su meusobnom odnosu podaci u nekom realnom sistemu. Neki model podataka je potpuno odreen ako su definisane sledee tri komponente : STRUKTURU PODATAKA, kojima se definiu statike karakteristike sistema(opis entiteta, atributi i veze) odnose se na kreiranje ER modela i Atributi ER modela. OGRANIENJA-logika ogranienja na podatke(pravila integriteta) koja se ne mogu definisati preko strukture modela podataka(strukturna i vrednosna ogranienja) i odnosi se na definisanje poslovnih pravila . SKUP OPERATORA(OPERACIJE)-definie dinamiku interpretaciju podataka kroz njihovu obradu(odravanje BP i pretraivanje) ima uticaja na definisanje fizikog nivoa modela i verifikaciju finalnog dizajna.
1. KREIRANJE ER MODELA
ER model definisan je entitetnim dijagramom kojim se definiu odgovarajui tipovi entiteta i uspostavljaju veze izmeu njih, kao i definisanje detalja vezanih za opis sadraja entiteta (atributi i njihove karakteristike). Strukturu podataka definisana je sa tri komponente: Entitete koji se dele u dve grupe i to: Nezavisne entitete, to su entiteti koji imaju vlastitu identifikaciju, tj. nisu zavisni od drugog entiteta. Zavisni entiteti, to su entiteti ija je egzistencija i identifikacija zavisna od drugog ili drugih entiteta Atribute koji se mogu nalaziti u: Oblasti kljueva ili Oblasti podataka Veze koje se dele na: Identifikujue veze koje entitet dete identifikuje kroz njegovu vezu sa entitetom roditelj. Neidentifikujue veze koje ne identifikuju entitet dete preko identifikatora entiteta roditelja. Neodreujue veze koje se smatraju veze vie prema vie. Veza prema podtipovima uspostavlja vezu izmeu entiteta i njegovih zavisnih, klasnih entiteta. Entitetni dijagram definie se entitetima (entities) i pritom svaki entitet ima svoje osobine tj. atribute (attributes) i sve je to povezano relacionim vezama (relationships). Entiteti se definiu i kao generalizovane hijerarhija o emu e kasnije biti vie rei. Atributi imaju domene (domain) koji predstavljaju skup vrednosti ili interval vrednosti koje taj atribut moe da primi. Na sledeem nivou definiu se primerci (instance) koje predstavljaju pojedinane vrednosti entiteta. Svaki entitet se identifikuje preko atributa koji se zove primarni klju. Relaciona veza povezuje dva entiteta i ona ima svoje osobine koje se nazivaju kardinalnost koja pokazuje koliko neega od dva entiteta moe biti ukljueno (sadrano). Relaciona veza definisana je prenesenim kljuem (foreign key) od roditelja ka detetu. Preneseni klju moe imati i ime uloge (rolenames ) o emu e kasnije vie biti rei. Entitetni dijagram je svojevrsan grafiki jezik gde se 'reenica' sastoji od entiteti koje su imenice, atributi kao pridevi i veze kao glagoli. Entiteti i veze definiu se analizom strukture
teksta gde se mogu definisati sledee analogije vezane za razlikovanje entiteta, atributa ili veza: TEKST IMENICA GLAGOL PRIDEV PRILOG GLAGOL.IMENICA RECENICA POGLAVLJE E-R KONCEPT ENTITET VEZA ATRIBUT ENTITETA ATRIBUT VEZE MESOVITI TIP ENTITETA-VEZA OBJEKTI POVEZANI VEZAMA LOKALNI PODMODEL Slika 1
5. Na osnovu atributa na dokumentima je mogue identifikovati entitete i veze kao npr.: ATRIBUT BOJA STAROST DATUM PITANJE BOJA CEGA? STAROST CEGA? DATUM CEGA? ODGOVOR PROIZVOD RADNIK NARUDZBE
6. Stvarni
fizicki objekti su objekti(entiteti) u modelu. Prikladni kandidati za entitete su: Fiziki objekti(vozilo, maina, jedinica opreme...) Osobe Mesta(adresa, koordinate na karti,...) Organizacije(preduzea, zavod,...) Grupe/klase/tipovi(tip proizvoda, klasa poslova,...) Ugovori Potraivanja(narudbe, fakture,...) Prenos/ premetaj(stvari, vozila, novca,...)
7. Atribut
Pridruenje(zadatak-osoba, vozila vonja,...) Pripadnost/lanstvo( komponente-sastavi,...) prelazi u entitet: ako sam atribut ima neko posebno znaenje u realnom sistemu, atribut u osnovi identifikuje drugi tip entiteta(sifra), atribut je istovremeno atribut drugog entiteta
8. Ako postoji struktura tipa generalizacija pristupa se od vrha na nie gde se definiu prvo neki opti tipovi entiteta pa zatim definiu podtipovi ovih entiteta(ENTITET-RACUN podtipove TEKUCI RACUN RACUN DUGOVANJA i CEKOVNI RACUN)
U sledeoj tablici dat je predlog moguih fraza kojima se definisu veze izmendu entiteta.
OSOBA
Slika 3 Kao to moemo viseti na slici 1 entitet OSOBA predstavlja skup svih moguih osoba sa kojima se komunicira. Svaki primerak entiteta OSOBA je jedan korisnik. Sa stanovita relacionih baza, jedan entitet odgovara tabeli iji se redovi sastoje od moguih primeraka( instance) datog entiteta.
Zavisni entitet Zavisni entiteti, su entiteti ija je egzistencija i identifikacija zavisna od drugog ili drugih entiteta. Zavisni entiteti se dele u etiri grupe i to: Karakteristini entiteti, tj., entitete koji se ponavljaju vie puta za odreeni nezavisni entitet. Asocijativne entitete koji predstavljaju vezu vie entiteta. Projektne entitete koji je slian asocijativnom entitetu, samo to nema sopstvene atribute. Klasne entitete koji predstavljaju podkategoriju entiteta. Grafiki se zavisni entiteti prikazuju kao zaobljeni pravougaonici u okviru koga se upisuje naziv tipa entiteta u jednini. Razmotrimo svaki od ovako definisanih zavisnih entiteta. Karakteristini entitet ili slab entitet prestavlja grupu atributa koji se ponavljaju vie puta za jedan entitet i koji se identifikuju preko nezavisnog. Npr. Entiteti OSOBA i ISPLATA. Za entitet ISPLATA se kae da je karakteristian entitet od entiteta OSOBA.To se moe videti na slici 4.
je primio prima
ISPLATA
OSOBA
Slika 4 Asocijativni entitet su sastavljeni od vie relacionih veza izmeu dva ili vie entiteta kao to se moe videti na slici 3. Npr. ako OSOBA zna vie JEZIKa i jedan JEZIK poznaje vie OSOBA, tada je SARTIFIKAT asocijativni entitet koji opisuje veza izmeu entiteta OSOBA i JEZIK. Dakle, asocijativni entiteti nose informaciju o relacionoj vezi.
O SO BA
j dat/ e poseduj e
vaz / i odosise
JEZI K
SARTI KAT FI
Slika 5 Projektni entitet (designative) je slian asocijativnom entitetu, izuzev to nema sopstvene atribute.U predhodnom primeru, SERTIFIKAT se moe koristiti kao projektni entitet pod uslovom da ne nosi nikakvu informaciju izuzev identifikacionih oznaka za OSOBA i JEZIK. Klasni (category) entitet je zavistan entitet u pod-klasnoj (sub-category) relacionoj vezi. Ovaj tip emo detaljnije kasnije objasniti.
Slika 6
Identifikujue relacije su prikazane punom linijom koja povezuje entitete sa takom na kraju. Sve relacije koje smo videli do sada bile su identifikujue. U identifikujuoj relaciji preneseni klju prenosi se u oblast kljueva ( iznad linije slika 7). Entt iet A Kluc ati aj rbut A
Entt r t j iet odiel
Slika 7 Identifikujua veza Ako posmatramo primer sa slike 8 definisaemo reenicu gde je glagol <koristi> veza izmedju entiteta OSOBA i TELEFON. OSOBA <koristi> vie TELEFONa U ovom primerku veze izmedju dva entiteta je izabrana tako da ima oblik koji poznat kao 1 prema "vie". To znai da jedan (i samo jedan) primerak entiteta osoba(entitet roditelj) je povezan sa vie primeraka entitet telefon(entitet dete). Identifikujua veza nam govori da ne moe biti definisan primerak entiteta TELEFON ako ne postoji namanje jeda primerak entiteta OSOBA. Notacije "vie" ovde ne znai da je ovde bilo vie od jednog primerka 'deteta' povezanog za datog 'roditelja'. Umesto 'vie' u 'jedan prema vie' kao to je upotrebljeno gore realno znai da je nijedan, jedan ili vie primeraka entiteta-deteta povezano sa jednim roditeljskim entitetom. Na osnovu definisane reenice korienjem glagolske fraze <koristi> definie primer relacije izmedju entiteta roditelj OSOBA i entiteta dete TELEFON (Slika 8) TELEFON koristi OSOBA
P Slika 8 Primer relacije Ako svaki primerak entiteta dete moe se jedinstveno identifikovati bez znanja veze sa primerkom entiteta roditelj, onda se takva veza definie kao ne-identifikujue veze. Ne-identifikujue veze su prikazane isprekidanom linijom koja povezuju roditelj-entitet i deteentitet sa takom na kraju. Jedan ne-prazan podskup prenesenih kljueva prenosi se preko neidentifikujue relacije postavlja se u oblast podataka ( ispod linije slika 9). Neidentifikujua ili slaba veza zavisi od naina definisanja kljueve od roditelja ka detetu. Ovo znai da identifikacija detata nee zavisiti od njegovog roditelja. Ovde je sluaj gde entitet na many kraju veze moe postojati bez roditelja (parent), tj. nije egzistencijalno zavistan. Ako je relaciona veza (relationships) obavezna (No Nulls ili Mandatory) iz perspektive roditelja, onda je dete egzistencijalno zavisno od roditelja.
Nazv vez i e
Entt ietB Kluc ati aj rbut B Kluc ati a- ( j rbut A FK) Entt det iet e
Ako je veza neobavezna(Nulls Allowed ili Optional), tada dete niti je egzistencijalno niti identifikaciono zavisno ali potuje tu vezu. Entt ietA Kluc ati aj rbut A Entt r t j iet odiel
Nazv vez i e
Entt ietB Kluc ati aj rbut B Kluc ati a- ( j rbut A FK) Entt det iet e
Slika 10 Neidentifikujua neobavezna veza ERwin koristi romb (diamond) da naznai sluaj egzistencijalne i identifikacione zavisnosti. Romb moe postojati samo u slabim vezama (poto je jaka veza u oviru primarnog kljua, a primarni klju ne moe da ima NULL vrednost). Kad god su entiteti u ERwin dijagramu povezani preko relacije, relacija prenosi klju entitetaroditelj ( ili skup kljueva) u entitet-dete. Dakle, preneseni kljuni atributi koji su definisani kao primarni kljuni atributi entiteta 'roditelja' preneseni su entitetu 'dete' kroz relaciju. Preneseni(foreign key) kljuevi odredjeni su oznakom (FK) i dolaze iza imena atributa(slika 9). U okviru ERwin-a mogue je definisati i ime uloge(rolename). Ime uloge je novo ime za spoljne kljune atribute koji definisu ulogu koju ti atributi igraju u tom entitetu. Ime uloge deklarise novi atribut ije ime treba da opise poslovno pravilo ugradjeno preko relacije koja zahteva spoljanji klju.
JEZIK
ISPLATA
Pol
Vrsta
MUSKARAC
ZENA
KONSULTANT
REDOVNI
Slika 12
2. Atributi ER modela
Svaki objekat realnog sveta definisan je osobinama pa po toj analogiji i entiteti imaju atribute kojima se opisuju karakteristina svojstva.
Dakle, svaki entitet ima svoja obeleja koja se nazivaju atributi. Atributi imaju
Slika 13 U oblasti kljueva je atribut 'Sifra Osobe' a atributi u oblasi podataka su 'Ime i Prezime', 'Adresa' i dr. Dakle, skup atributa koji identifikuju entitet zovu se kljuevi tj. kljuni atribut je atribut koji sam za sebe ili u kombinaciji sa drugim kljunim atributima formira jedinstven identifikator entiteta. U principu se definiu dve vrste identifikatora: Primarni klju i alternativni klju. Osnovno pitanje koje se postavlja ovde je kako izbrati primarni klju kojim se identifikuje jednoznano entitet. Izbor kljua nekog entiteta moe biti nekoliko atributa ili kombinacija atributa koji bi mogli biti korieni kao primarni kljuevi. Atributi ili grupe atributa koji mogu biti izabrani kao primarni kljuevi nazivaju se 'atributi kandidati za klju'. Kandidat za klju mora jedinstveno identifikovati svaki primerak entiteta. Iz toga sledi da nijedan deo primarnog kljua ne moe biti NULL, odnosno prazan ( empty) ili nedostajui (missing). Ako pogledamo entitet OSOBA ona ima sledee atribute: Sifra osobe Pezime i Ime Adresa JMBG Datum rodjenja i Pol
Uzmimo da je, prvi kandidat za klju atribut 'Sifra Osobe' zato to je jedinstven za svaku osobu. Atribut JMBG bi mogao biti kandidat za klju ako su nae pretpostavke o jedinstvenosti broja korektne, medjutim, verovatan je sluaj da nee sve osobe imati JMBG jer koristiemo usluge i stranaca. Mada se na prvi pogled inilo da ovaj atribut moe biti kandidat za klju, ostaviemo ga postrani. Atribut 'Ime i Prezime' ne bi mogao biti dobar kandidat za klju. Moemo imati dva Zorana Petrovia. Kombinacija 'Ime i Prezime' i 'datum-rodjenja' bi mogao biti kandidat za klju (osim ako nemamo npr. dva Zorana Petrovia rodjena istog dana ). Premda je to verovatno nekorektno, hajde da uzmemo u obzir za nas primer da e kombinacija 'Ime i Prezime' i 'datum-rodjenja' odredjivati specifinu osobu. Tako smo nali naeg drugog kandidata za klju-kombiaciju 'Ime i Prezime' i 'datum-rodjenja'. Dakle, sada imamo dva kandidata za klju-jedan je 'Sifra Osobe' a drugi je grupa atributa koja sadri atribute 'Ime i Prezime' i 'datum-rodenja' i potrebno je izabrati primarni klju. Osnovna pravila za izbor primarnog klju su: Prvo i najvanije prilikom izbora primarnog kljua je nai neki atribut koji nee menjati vrednost za vreme 'ivota' svakog primerka entiteta, jer, klju odredjuje identitet primerka entiteta(ako se promeni klju, to je ve drugi primerak). Drugo, traite razumno male kljueve. Ako se moe nai jedan atribut, imamo generalno gledeno, dobar klju. Ako je potrebno koristiti klju koji je kombinacija kljueva iz drugih entiteta obezbedite da svaki deo kljua zadovoljava prva dva principa. Tree, izbegavati upotrebu 'inteligentnih' kljueva, na primer, gde struktura brojeva identifikuje grupisanje, lociranje, klasifikaciju, datume itd. Ovo emo obrazloiti kasnije.
Na osnovu ovako obrazloenih elemenata za izbor primarnog kljua bira se za entiteta 'OSOBA' atributa 'Sifra Osobe' kao primarni klju jer zadovoljava sva tri kriterijuma.
Na slici 14 u ERwin notaciji primarni klju se nalazi iznad crte u oblasti kljueva. Medjutim, kandidati za klju koji nisu izabrani za primarne kljueve mogu se definisati kao alternativni kljuevi(Akn). Alternativni kljuevi(AKn) je atribut ili grupa atributa koji jedinstveno identifikuju primerke entiteta. ERwin generie jedinstven indeks za svaki alternativni klju. O indeksima e kasnije vie biti rei. Ako je potrebno definisati indeks nad atributom ili grupom atributa koji ne identifikuju jedinstveno prmerke entiteta definie se tzv. Inversion Entry(IEn) indeks. Tako na primer sa slike 5 poprima sledei izgled ako atribute 'Ime i Prezime' i 'datum-rodjenja' prihvatiemo kao sloen alternativni klju.
Slika 14
Proces normalizacije modela je uklanjanje svih struktura koje stvaraju redundansu podataka. Slogan normalizacije je : Jedna injenica na jednom mestu. Da bi se mogao opisati postupak normalizacije, potrebno je prethodno opisati pojam funkcijske zavisnosti. Ako je svakoj vrednosti atributa A u relaciji R prikljuena samo jedna vrednost atributa B u istoj relaciji, onda je atribut B funkcijski zavisan od atributa A asocijacijom tipa 1. Funkcijska zavisnost se moe definisati izmedju sloenog klju(vie atributa) i jednostavnog atributa. Ako je mogue svakom paru vrednosti atributa A i B relacije R prikljuiti tano jednu vrednost C iste relacije, tada je atribut C funkcijski zavisan od sastavljenog atributa A i B. Na osnovu definicije funkcijske zavisnosti potpuna funkcijska zavisnost se definie. Atribut B je potpuno funkcijski zavisan od atributa A iste relacije, ako je funkcijski zavisan od atributa A, a ne od nekog sastavnog dela atributa A. Postupak normalizacije podataka ima za cilj pravilno dizajniranje baze podataka koja ima strukturu, kojom osigurava da u radu sa njom nee biti neeljenih anomalija, kao to su npr., unitavanje odredjenih podataka ili neuskladjenost izmedju memorisanih podataka kao posledica auriranja baze podataka. Dakle, postupak koji dovodi dizajnera baze podataka do eljenog rezultata naziva se "normalizacija" baze podataka. Drugim reima postupak normalizacije predstavlja transformaciju poetnog entiteta u jednu ili
vie korektnih entiteta ili veza u kojima su svi atributi potpuno funkcijski zavisni od kljua, a medjusobno funkcijski nezavisni. Definisanje prve normalne forme(1NF) Posmatrajmo entitet OSOBA sa slike 15. Moemo li uoiti greku?
Slika 15 Entitet OSOBA Prevedimo zbog lakeg razumevanja entitet OSOBAa u tabelu sa definisanim primerom. OSOBA Sifra Osobe Ime Adresa Imena dece E1 Toma Beograd Jana E2 Ljubisa Cacak Aleksandar, Vladimir, Stefan E3 Boban Prizren E4 Jovan Nis Lana E5 Mirjana Beograd Slika 16 Problem je u atributu "Imena dece". U predhodnim poglavljuma u vezi entiteta i atributa naglasili smo da sva imena moraju biti u jednom primerku, tj u jedan atribut ne moemo da smestiti vie imena dece. Nije nam poznato koliko imena dece treba zapamtiti, koliko je prostora za to potrebno i to onda ako ima vie imena nego prostora ? Dakle, ovakva tabela kri prvu normalnu formu. Da bi popravili prethodnu tabelu moramo na neki nain ukloniti listu dece OSOBA. Jedan nain je da to uradimo je prikazan na slici 17.
DETE Sifra Osobe E1 E2 E2 E2 E4 Slika 18. rbr C1 C1 C2 C3 C1 Primer promerka entiteta Ime deteta Jana Aleksandar Vladimir Stefan Lana za Sliku 17.
Otkrili smo grupu podataka koji se ponavljaju i od njih smo stvorili entitet time smo uinili prvi korak prema normalizovanom modelu. Takodje, 1NF nastaje i kod vieznane upotrebe istog atributa kao to je pokazano na slici 19.
Slika 19 OSOBA Sifra Osobe E1 E2 E3 E4 E5 E6 Ime Toma Ljubisa Boban Jovan Mirjana Petar Adresa Beograd Cacak Prizren Nis Berklej Negotin Pocetak ili rada 10.01.1998 22.05.1997 15.03.1997 30.09.1998 22.04.1997 15.10.1998 kraj
Slika 20. Primerak entiteta sa Slike 19. Problem je u atributu poetak ili kraj rada koji predstavlja jednu od dve injenice, poetak rada u firmi i prestanak rada u firmi. Nismo u mogunosti da otkrijemo to taj datum predstavlja kao to nismo u mogunosti da zapamtimi oba datuma iako su nam moda oba poznata. Reenje nije u tome da atribut moe da sadri dve injenice ve da imamo dva atributa koji govore o poetku i zavretku rada. Potrebno je da ugradimo dva atributa koji nose dve razliite informacije. Slika 21 i 22.
Slika 21
Oba pogrena prethodna reenja ne zadovoljavaju prvu normalnu formu. Menjajui strukturu moemo biti sigurni da se jedan atribut pojavljuje samo jedanom u entitetu i da nosi samo jednu injenicu. Dakle, prva normalna forma je ako svaki od njegovih atributa ima jedno znaenje i ne vie od jedne vrednosti za svaki primerak. Ako ste sigurni da svi entiteti i atributi ne nose vie injenica uinili ste veliki korak u tome da model zadovoljava prvu normalnu formu. Drugim reima entitet zadovoljava prvu normalnu formu ako svi domeni sadre samo atomaske vrednosti. CASE alat ERwin prihvata bilo koje ime za definiciju entitetat ili atributa ali postoje izuzeci: ERwin e obavestiti o ponovnom korienju imena entiteta zavisno o postavci opcije o jedinstvenom imenu. ERwin e obavestiti o ponovnom korienju imena atributa osim ako je to ime rolename. Kada je pridrueno rolename za atribut moe biti korieno u razliitim entitetima. Erwin nee dozvoliti ulazak prenesenih kljueva u entitet vie nego jednom osim ako mu je dodeljeno rolename svaki put.
Spreavajui vas u viestrukom korienju istog imena ERwin vas vodi da svaki podatak smestite tano na jedno mesto. Druga normalna forma Entitet A zadovoljava drugu normalnu formu ako zadovoljava prvu i ako svaki atribut koji nije klju potpuno zavistan od primarnog kljua. Za opis ove definicije posmatrajmo primer viestrukog pojavljivanja istih injenica. Pokaimo ovu trvrdnju na jednom primeru. Ako bi smo u entitet DETE stavili atribut 'Adresa' uoili bi da ovaj atribut zavisi od dela kljua entiteta DETE(Sifra Osobe) a ne od celog klju entiteta DETE. Da bi smo zadovoljili drugu normalnu formu potrebno je prebaciti atribut 'Adresa' u entitet OSOBA. Dakle, entitet kri drugu normalnu formu ako podatak moe biti pronaena znajui samo deo kljua entiteta. Moe da nastane greka druge normalne forme ako postavite neki atribut nekorektno ali ne postoji algoritam koji bi bez jo dodatnih informacija pored onih u modelu otkrio greku. U entitetnom dijagramu Erwin ne moe znati da ime koje ste dodelili atributu moe predstavljati listu objekata (primer imena dece ). Stoga ne postoji direktna garancija da model zadovoljava prvu normalnu formu. DBMS ema funkcija od Erwina ne podrava podatak tipa lista jer ema baze je u fizikom relacionom sistemu tako da se i na ovom nivou mogu spreiti greke. Spreavajui viestruko pojavljivanje prenesenih kljueva bez rolenamea Erwin vas podsea da razmisklite o onom to struktura predstavlja. Ako se preneseni klju pojavljuje dvaput u istom entitetu onda se treba zapitati: Da li mi pamtimo kljueve dva odvojena primerka(instance) drugog entiteta ili oba kljua predstavljaju istu instancu. Kada preneseni kljuevi predstavljaju razliite instance odvojen rolname imena su potrebna.
Ako dva uvezena kljua predstavlkjaju istu instancu verovatno negde postiji greka pri normalizaciji. Preneseni klju koji se dvaput pojavljuje u entitetu bez rolname predstavlja redundantnu vezu u modelu. Trea normalna forma Entitet A zadovoljava treu normalnu formu, ako zadovoljava drugu normalnu formu, i ako atribut koji nije klju ne zavisi od drugog atributa koji nije klju. Ako injenica moe biti pronaena znajui neku vrednost entiteta koja nije klju naruena je trea normalna forma. Dakle, definicija tree normalne forme je: Entitet zadovoljava treu normalnu formu ako svaki aribut koji nije klju zavisi o kljuu, itavom kljuu i niemu drugom osim kljua. Na primer, bila bi povreena trea normalna forma ako u entitetu dete ugradimo atribute starosti i datum roenja kao atribute koji nisu kljuevi. Starost je zavisna od datuma roenja i moemo je izraunati na osnovu dananjeg datuma i datuma roenja. Pored ovih formi postoje i etvrta peta i Boyce-Codd-ova forma. Njihova upotreba zavisi od skupa transakcija koje se trebaju izvriti(vidi ]).
Identifikacija atributa definie se na osnovu zahteva korisnika, poslovne dokumentacije i dokumentacije za razvoj IS. Alociranje atributa se izvodi u zavisnosti da li je atribut zavisan od kljua ili je opisni. Revizijom atributa se eliminie viestruko nastupanje vrednosti atributa pojedinog entiteta i pritom se za svaki atribut pitamo: Da li je potrebno traiti viestruke vredosti za isto pojavljivanje entiteta(sifra odelenja, Naziv odelenja) Da li atribut moe pripadati nekom drugom entitetu(Npr.Broj, Prezime, Naziv projekta) Da li postoje atributi koji ne nastupaju za neko pojavljivanje entiteta Da li postoje izvedeni atributi(koje treba ili ostraniti ili dodati) Da li postoje atributi bez entiteta Prikladnost identifikatora/ kljua
Mogu se za atribute definisati : Set vrednosti pravila dozvoljenih vrednosti Nill vrednosti Dosledno znaenje tj. medjusobno iskljuivanje Atribut : Pol ; Vrednost: mukarac, ena
zaposljava / radi
prima / je primio
Vrsta
rukovodi / je rukovodioc
Ogranienja definisana strukturom model objekti-veze Ova ogranienja vezana su za: Identifikaciju entiteta-gde je nemogue da postoje dva primerka entiteta u istom tipu entiteta takva da imaju istu vrednost atributa koji ine identifikator tj. ne postoje dva tipa entiteta koji imaju isti skup atributa kao identifikator. Ogranienje postojanja(Egzistencijalna zavisnost) jednog tipa objekta u zavisnosti od drugog tipa objekta Ogranienje mogunosti identifikacije jednog objekta bez poznavanja identifikatora nekog drugog objekta Specijalni tipovi veze kojima se definie podtipovi o u e kasnihe vie bite rei.
Ogranienja koja se posebno definiu Ogranienja koja se posebno definiu mogu se podeliti na: Ogranienja na vrednost atributa i to: Tip podatka(character, numeric, boolen ) Duina podatka Opseg dozvoljenih vrednosti i to kao Lista vredosti koji se definiu eksplicitnim navodjenjem svih dozvoljenih vrednosti (Klasa projekta kao IN 'A,B,C']. sl...). Opseg dozvoljenih vrednosti gde atributi objekata i veza uzimaju vrednosti iz domena ali uz postavljena ogranienja na ove vrednosti tako da atribut moe poprimiti samo ui skup vrednosti iz domena( npr. BETWEEN 10 AND 200) Ogranienja na kardinalnost veza izmedju entiteta roditelja i entiteta deteta i to: Kardinalnost tipa(Zero or OneZ]) gde se jedan primerak jednog tipa entiteta pridruuje nijednom ili jednom primerku drugog tipa. Kardinalnost tipa(Zero, One or More) gde se jedan primerak jednog tipa entiteta pridruuje nijednom, jednom ili veem broju primeraka drugog tipa. Kardinalnost tipa(One or MoreP]) gde se jedan primerak jednog tipa entiteta pridruuje najmanje jednom ili veem broju primeraka drugog tipa. Kardinalnost tipa konktretne vrednosti(Exactly) gde se jedan primerak jednog tipa entiteta pridruuje tano definisanom broju drugog tipa entiteta. Sveobuhvatnost objekta u vezi vezana za kardinalnost entiteta dete prema entitetu roditelj:: Totalno uee gde svi primerci jednog tipa entiteta uestvuju bar u jednoj vezi (No Nulls) PARCIJALNO(delimino) uee gde pojedini primerci entiteta uestvuju u vezi(Nulls Allowed)
Slika 23
Entitet dete prema entitetu roditelj moe biti u vezi: 0 ili 1 (dozvoljena null vrednost stranog kljua i ovakav sluaj je mogu samo za neidentifikujue veze, i obeleava se sa strane roditelja). 1 (nije dozvoljena null vrednost stranog kljua, i nema posebni simbol u modelu)
pa se oni nazivaju i semantiki domeni. Tako na sl.... je prikazan spisak domena i odgovarajuih tipova podataka za definisane domene. U oviru kolone naziv domena(vidi sl....) definie se default domen(<default>) koji se ERwin predifinisani domen koji se automatski setuje i svi ostali domeni nasledjuju osobine ovog domena koji je roditelj. Default specificira vrednosti koje e biti insertovane u kolonu. Validaciono pravilo(validation rule) specificira fiksiranu listu validacionih vrednosti(valid values) Na sl... takodje su prikazane i tzv default vrednosti sa odgovarajuim default nazivima. Default vrednost je specificirana vrednost koja se ubacuje(insert) u kolonu kada se unose podaci. Takoe, pretpostavlja se da svaki domen ukljuuje u sebe i nula vrednost, specijalnu vrednost koja se dodjeljuje nekom atributu objekta kada se njegova vrednost ne poznaje. Da bi smo iskazali da neki atribut ne moe da ima nula vrednost uvodi se i specifian predikat NOT NULL, preko koga se definie odgovarajui domen. Osnovna veza izmedju atributa i domena je u tome to se atribut koji je identian sa svojim domenom moe koristiti kao klju entiteta.
Nad ovako definisane dogadjaje mogue je definisati sledee akcije: 1. RESTRICT (R)-odbijanje operacije; 2. CASCADE(C)-prosleivanje operacije na vezni entitet; 3. DEFAULT(D)- ukoliko se narui kardinalnost veza primerak entiteta se povezuje sa definisanim default objektom vezanog entiteta;
4.SET NULL (SN)- ukoliko primerak entoteta visi u sistemu, atribut koji uspostavlja vezu setuje se na null vrednost.
Posmatrajmo primer prikazan na slici 25.
Slika 25 U ovom primeru postoji jaka veza izmeu PROJEKTa i ANGAZOVANJE. Primarni klju entiteta PROJEKTa postaje deo primarnog kljua ANGAZOVANJE . Pravila kardinalnosti govore da za svaku instancu ANGAZOVANJE postoji jedna instanca PROJEKTa. Priroda jake relacione veze specificira da ANGAZOVANJE je egzistencijalno zavistan od PROJEKT-a. ta se moe desiti ako mi obriemo jednu instancu PROJEKT-a? Mi bismo, takoe, hteli obrisati sve instance ANGAZOVANJE iji je deo njihovog nasleenog kljua iz obrisane instance PROJEKT-a. Zato ? Zbog toga to je deo kljua postao NULL vrednost, a NULL vrednost nije dozvoljena kao vrednost bilo kog dela primarnog kljua. Pravila brisanja Mi imamo dva izbora a to je da prvo moemo obrisati svaku instancu ANGAZOVANJE iji je nasleeni klju obrisana instanca PROJEKT-a, ili drugi izbor spreiti brisanje PROJEKT-a ako postoji bilo koji ANGAZOVANJE iji bi deo primarnog kljua bio nekompletan. Ove situacije koje su u vezi sa pravilima brisanja nazivaju se CASCADE i RESTRICT i odluka koje se pravilo koristi bie definisano u modelu. CASCADE prikazuje da sve instance ANGAZOVANJE koje e biti obuhvaene brisanjem instance PROJEKT-a bie takoe obrisane.
Slika 26
RESTRICT prikazuje da PROJEKT prikazuje da instanca PROJEKT-a ne moe biti obrisana dok sve instance ANGAZOVANJE koji imaju nasleeni klju ne budu obrisane. Ako postoji neki nasleeni, brisanje je ogranieno.
Slika 27 Zato elimo da ograniimo brisanje? Jedan rezon moe biti da mi elimo da znamo i druge injenice o ANGAZOVANJE kao to su Datum Angazovanja na projektu. Ako mi imamo kaskadno brisanje, izgubiemo ovu dopunsku informaciju. Izuzev ogranienoig brisanja, ako mi odluimo da ANGAZOVANJE nije egzistencijalno ili identifikaciono zavistan od PROJEKT-a, moemo promeniti referencijalni integritet upotrebom slabe relacione veze izmeu dva entiteta.
Slika 28 Uovom sluaju, IRD situacija je bitno razliita. Kao to je ve poznato, spoljnom kljuu koji je doneen preko slabe veze su dozvoljene NULL vrednosti. Tako za slabe relacione veze imamo treu opciju koja se zove Set-Null. Set-Null pokazuje da ako je instanca PROJEKT-a obrisana ali je klju PROJEKT-a zadran kao podatak u entitetu ANGAZOVANJE. Brisanje nije kaskadno kao predhodnom primeru i mi ne moemo zabraniti brisanje. Mi postavljamo klju kao NULL vrednost. Prednost ovog pristupa je da mi moemo sauvati informacije o ANGAZOVANJE dok je efektivna veza izmeu PROJEKT i ANGAZOVANJE prekinuta.
Slika 29 Pravila za ubacivanje i zamenu Upotrebom IRD pravila je dodatan nain da snimimo pravila poslovanja. Odluka da se upotrebljava kaskada ili set-null odraava se na poslovne odluke o odravanju istorije znanja o relacionoj vezi prestavljene preko prenesenih kljueva. Kao to smo videli, pravila brisanja(DELETE) upravljaju ta e se desiti u bazi podata kada se red u tabeli obrie. Pravila za ubacivanje(INSERT) i auriranje(UPDATE) upravljaju ta e biti kada je red u tabeli dodat ili auriran. Auriranje je, u sutini, ubacivanje ali sa nekim dodatnim pravilima Za ubacivanje, red moe biti dodat samo ako svi referencirani preneseni kljuevi odgovaraju postojeim redovima u referenciranim tabelama, izuzev ako relaciona veza to dozvoljava(P). Pogledajmo ovo na primeru OSOBA/TELEFON. TELEFON zadrava klju odgovarajue OSOBA. Zbog toga, mi ne moemo ubaciti TELEFON za koji ne postoji OSOBA. P na relacionoj vezi takoe govori nam da NE moemo ubaciti OSOBU bez ubacivanja TELEFONA.
Slika 30 Prikaz strukturnih pravila integriteta Nain prestavljanja tabele SPI za objekte je data na sledei nain(sl....): ime objekta roditelja-ime objekta deteta-ime veze-dogaaj Dogaaji koji se mogu desiti su: Ubacivanje roditelja (Parent Insert-PI) Brisanje roditelja (Parent Delet-PD) Izmena roditelja (Parent Update-PU) Ubacivanje deteta (Child Insert-CI) Brisanje deteta (Child Delet-CD) Izmena deteta (Child Update-CU).
INSERT DELETE
DOGADJAJI
I-Restrict D-Cascade CU-Restrict PII- Set Null D- Set Null CU- Set Null PII-Restrict D-Restrict CUPI-
ODELENJE JEZIK
I-Set Null D-Set Null CU-Set Null PII-Restrict D-Restrict CU-Restrict PI-