You are on page 1of 25

MODELIRANJE PODATAKA

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

1.1. Identifikacija kandidate za entitete


Objekt posmatranja je sve to moemo jednoznano identifikovati, pa samim tim izolovati iz okoline i opisati. Tako objekt posmatranja je i "entitet". Entitet je osoba, stvar, dogadjaj, pojam(realni ili apstraktni) koji je od trajnog interesa za preduzee tj. neto to se eli pojedinano posmatrati. Objekti u sistemu se opisuju preko svojih svojstava, odnosno atributa. Svaki atribut u jednom trenutku vremena ima neku vrednost. Imajui ovu u vidu da bi smo mogli da definiemo ta je entitet posmatraemo: 1. Slinost ATRIBUTA koji mogu pripadati entitetu. Ovde se uoava znaajna razlika(slinost) u atributima to moe da ukae da se radi o razliitim(istim) objektima 2. Nain identifikovanja entiteta gde za svaki tip entiteta mora da postoji jedan atribut ili grupa atributa koji jedintveno identifikuje konkretni entitet u okviru tog tipa. 3. Uee u tipu veze utvrdjuje da li je neki entitet zavistan ili nezavistan entitet ili agregacija dva objekta. 4. Na osnovu pasivne i aktivne uloge mogue je definisati odgovarajui tipovi entiteta: ULOGA VEZE RUKOVODI RUKOVODJEN NARUCUJE NARUCEN TIP ENTITETA RUKOVODILAC ODELENJE KUPAC PROIZVOD

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)

1.2. Identifikacija veze


Veza ili relacija predstavlja interakciju medu objektima tj. predstavlja znanje o njihovoj medjusobnoj povezanosti. Relacijama se definiu zavisnosti izmedju entiteta tj. opisuju nain povezivanja (uzajamna dejstva) entiteta. Identifikacija veza izvidi se u sledeim koracima: Povezivanje entiteta na osnovu odgovarajuih interesa definisanje zavisnosti entiteta, gde se definiu nezavisni i zavisni entiteti Definisanje znaenja zavisnosti definisanjem referencijalnog integriteta Izvodjenjem varijacija zavisnosti nalaenjem optimalne i Izborom entiteta roditelj i entiteta dete Osnovni kriterijumi koji nas opredeljuju kako definisati vezu su: 1.Interakcija izmedju entiteta kao npr.: RADNIK---------RADI U---------ODELENJU 2. Aktivnosti, procesi, zadaci se mogu definisati kao veze: UCESCE, ODOBRENO OD, STOPA POREZA OD 3. Opisna veza tj. kada neki tipovi entiteta opisuju drugi tip entiteta kao npr.: OSOBA --------SARTIFIKAT--------JEZIK 4. Veza pripadnosti za PODTIP i NADTIP da li se dva entiteta mogu vezati sa iskazom JE-RACUN JE TEKUCI RACUN RACUN DUGOVANJA i CEKOVNI RACUN. Relacije (medju entitetima) predstavljaju veze ili asocijacije. U reenici to su 'glagoli' koji pokazuju kakav je odnos madju entitetima. Glagolske fraze definiu pravila poslovanja. Premda glagolske fraze ne opisuju pravila precizno, one dozvoljajvaju osobi koja posmatra model da stekne osnovni oseaj o povezanosti entiteta. Dobra je praksa osigurati da itanje modela daje valjane reenice (iskaze).

U sledeoj tablici dat je predlog moguih fraza kojima se definisu veze izmendu entiteta.

ODNOSI ZAHTEVA SADRZI DEFINISE SALJE POSEDUJE REALIZUJE UKLJUCUJE

VAZI POSLATA POREDI TRAZI ODGOVORA IDENTIFIKUJE PODSTICE IMA

KORISTI POSTIZE ODREDJUJE UPRAVLJA POTVRDJUJE SPECIFICIRA NABAVLJA UPUCUJE Slika 2

IZGRADJUJE POTVRDJUJE PRIHVATA PROVERAVA NALAZI POVEZUJE RAZDVOJA SELEKTUJE

1.3. Definisanje entiteti i relacija Definisanje entiteta


Sa gledita obrade podataka realan svet sastoji se iz objekata(entiteta) posmatranja, koji su ili realni objekti (osoba, maina, vozilo, kua), apstraktni koncept(preduzee, radno mesto), dogadjaj(prekraj, prevoz) ili odnosi (student-predmet, mu-ena). Entiteti su obino imenovani imenicama, kao 'OSOBA' ,'TELEFON', 'ZAPOSLEN'. Preciznije, moemo razmiljati o nekom entitetu kao o setu ili kolekciji ( skupu) individualnih objekata zvanih primerci( instances). Jedan primerak je jedan pojavni oblik datog entiteta.Svaki primerak mora imati identitet razliit od svih ostalih primeraka. Predmet naeg daljeg posmatranja su sledei tipovi entiteta: Nezavisni entiteti i Zavisni entitete Nezavisni entitet Nezavisni entitet je objekat koji ima jednu osobinu koja ga moe jednoznano identifikovati. Grafiki se nezavisni entiteti prikazuju pravougaonikom u okviru koga se upisuje naziv tipa entiteta u jednini (sl.3).

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.

Veze izmedju entiteta


Kao to se u realnom svetu uspostavljaju odredjene relacije izmedju objekata, po istoj analogiji definiu se i veze izmedju entiteta. Veza je asocijacija izmedju dva ili vie entiteta tj. veza predstavlja odnos koji postoji medju objektima bilo u realnosti ili mislima. Relacija ili veza prikazuje se kao linija koja povezuje dva entiteta, sa takom na jednom kraju i glagolskom frazom napisanom du linije. Entitet od koga je uspostavljena veza zove se roditelj, a entitetu ka kome je uspostavljena veza zove se dete. Drugim reima, roditelj-dete veza je asocijacija ili veza izmedju entiteta gde svi primerci jednog entiteta, definisani kao roditelj entitet, su asocirani sa nula, jedan ili vie primeraka drugog entiteta, definisanog kao dete entitet, i svi primerci dete entiteta su asocirani sa nula ili jedan primerkom entiteta roditelj. Veze (relationships) opisuju pravila poslovanja i obezbjeivanja referencijalnog integriteta o emu e vie biti rei u sledeem poglavlju.. CASE alat koji koristimo da bi smo opisali modeliranje podataka je ERwin model koji omoguuje uspostavljanje etiri tipa veze i to : Identifikujue veze koje entitet dete identifikuje kroz njegovu vezu sa entitetom roditelj. Neidentifikujua veza ne identifikuje dete preko identifikatora roditelja. Neodreujua veza se smatra vezom vie prema vie. To je veza u kojoj je jedan entitet povezan sa 0,1 ili vie pojava drugog entiteta i i obrnuto. Veza prema podtipovima uspostavlja vezu izmeu entiteta i njegovih zavisnih, klasnih entiteta. Preko ove veze entitet koji se specijalizuje u klase prosleuje primarni klju klasnim zavisnim entitetima. Pri toma ERwim simboliki obezbeuje razlikovanje dve specijalizacije i to: potpuna, u kojoj je sigurno da nema vieklasnih entiteta u koje bi se speciajlizovao odreeni entitet(dvostruka linija na dnu simbola klase naznauje da ne mogu biti ukljuene druge kategorije). nepotpuna, kada nije sigurno da su identifikovani svi klasni entiteti u koje bi se specijalizovao odreeni entitet(jednostruka linija na dnu simbola klase naznauje da mogu biti ukljuene druge kategorije). Za ovakvu vezu se definie atribut diskriminator u entitetu koji se specijalizira koji obezbeuje ekskluzivnost veze. Ako se diskriminator ne definie veza se moe smatrati neekskluzivnom. CASE alat ERwin definise gore opisane veze preko toolbox-a:

Slika 6

Identifikujue i ne-identifikujue veze


U dosadanjim prikazima veze smo definisali u tzv IDEF1X formatu (Integation DEFinition for Information Modeling) koja se koristi u ERwin CASE alatu. Relacija se zove identifikujua zato to kljuevi entiteta 'roditelja' su deo identiteta entiteta 'dete' tj. entitet 'dete' je zavistan od entiteta 'roditelja' preko identifikatora. Dakle, ako se primerak entiteta dete identifikuje preko asocijacije sa entitetom roditelj, onda se veza definie kao identifikujua veza, i svaki primerak entiteta dete mora biti povezan sa najmanje jednim primerkom ebtiteta roditelj.

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

I dentfkuj vez ii uca a N azv vez i e

Entt -B iet Kluc ati a- ( j rbut A FK) Kluc ati aj rbut B

Entt det iet e

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.

Entt ietA Kluc entt aj iet A Entt r t j iet odiel

Nazv vez i e

O bavez nei ii uca na dentfkuj vez a

Entt ietB Kluc ati aj rbut B Kluc ati a- ( j rbut A FK) Entt det iet e

Slika 9 Neidentifikujua obavezna veza

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

O pci nei ona dentfkuj ii uca vez a

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.

1.4. Izrada ER modela


Izrada entitetnog dijagrama moe se definisati sledeim koracima: Identifikacija potencijalnih entiteta u sledeem redosledu: formirati listu potencijalnih entiteta odrediti prikladne radne nazive napraviti grupe entiteta(ako ih je vie od 15) po grupama traiti dodatne entitete(posmatraj najvaniji entitet) po potrebi rearanirati grupe Kreirati radne entitetne dijagrame Pronadji roditelje Identifikuj zavisne entitete Identifikuj posebno pod -tip entitete Verifikuj entitete Izvriti optu proveru entiteta(naziv, pojavljivanje, zavisnost...) Provera pitanjem ta ako.... Revizija sa korisnicima Kreiranje formalnih entitetnih dijagrama Radni prelaze u formalne Kompletiraj dijagrame definisanjem pravog naziva i opisa zavisnosti

JEZIK

pripada / RADNO MESTO rasporedjen P OSOBA je dat / poseduje

zaposljava / ODELENJE radi prima / je primio rukovodi / je rukovodioc

vazi / odosi se SARTIFIKAT

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.

2.1. Lista kandidata za atribute


Da bi se definisala lista kandidata za atribute mora se dati odgovor na pitanje to je to interes procesa obrade podataka. Da li e po nekoj osobini objekat biti entitet ili atribut tj. koju e ulogu da ima zavisi od pogleda koji elimo da predstavimo. Ako je osnovni objekat od interesa npr. kua onda kua postaje entitet a atribut ulica u suprotnom ako je objekt od interesa ulica onda je ulica entitet a atribut je kua. Osnivna pravila za definisanje atributa su: Svaki entiteta ima proizvoljan broj atributa Odredjeni atribut pripada jednom i samo jednom entitetu Svako pojavljivanje entiteta ima vrednosti za sve atribute tog enititeta Atribut odredjenog pojavljivanja entiteta moe imati samo jednu vrednost Razliita pojavljivanja entiteta mogu a nemoraju imati razliite vrednosti za isti atribut Svaki atribut mora imati samo jedno konsistentno znaenje Svaki atribut predstavlja jednu odredjenu injenicu pa i svako znaenje vrednosti atributa mora imati jedno dosledno znaenje.

2.2. Definisanje kljueva u modelu


domene koji prestavljaju skup vrednosti ili interval vrijednosti koje taj atribut moe da uzme. Svaki entitet mora imati atribut ili kombinaciju atributa ije vrednosti jedinstveno identifikuju svaki primerak entiteta. Dakle, ovi atributi su posledica injenice da postoj atributa ili grupe atributa ije vrednosti jednoznano identifikuju primerke entiteta. Taj atribut ili grupa atributa naziva se peimarni klju. Ako klju ini samo jedan atribut onda je on prost klju , u suprotnom je sloen. Atributi mogu biti definisani u oblasti kljueva(primarni klju) ili u oblasti podataka(Slika 13) Kao to se na slici 13. vidi entitet OSOBA je predstavljen crtanjem pravougaonika sa imenom entiteta na vrhu i svim atributima unutar pravougaonika. Kao to smo rekli imena entiteta e uvek biti u jednini: OSOBA a ne OSOBE. Korienjem jednine imenica dobijamo poboljanje konzistentnosti standarda imenovanja i omoguava 'itanje' dijagrama kao seta deklarativnih iskaza o primercima entiteta.

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

2.3. Atributi i normalizacija


Prilikom definisanja atributa kao to smo rekli pristupa se modeliranjem podataka odozdo na gore(Bottom Up) i on je veoma prihvatljiv za poetnike u ovoj oblasti jer polazi od opipljivih informacija definisanih na dokumentima i u kartotekama. Osnovu za ovaj nain modeliranja podataka ini analiza funkcionalnih zavisnosti i postupak normalizacije.

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.

Slika 17 OSOBA Sifra Osobe E1 E2 E3 E4 E5

Ime Toma Ljubisa Boban Jovan Mirjana

Adresa Beograd Cacak Prizren Nis Beograd

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

OSOBA Sifra Osobe E1 E2 E3 E4 E5 E6

Ime Toma Ljubisa Boban Jovan Mirjana Petar

Adresa Beograd Cacak Prizren Nis Beograd Negotin Slika 22

Pocetak rada 10.01.1998 22.05.1997 15.03.1997 30.09.1998 22.04.1997 15.10.1998

Kraj rad 30.11.1998

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

2.4. Definisanje atributa


Definisanje atributa se izvodi u tri koraka: Identifikacija/ alociranje atributa Izvrenje revizije atributa i Definisanje atributa

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

2.5. Prikaz logikog modela


Logiki nivo modela podataka definie ER model podataka prikazan na sl.... kojim se definiu entiteti, atributi referencijalni integritet i kardinalnost.
JEZIK Sifra jezika RADNO MESTO pripada / OSOBA Sifra osobe Sifrarm rasporedjen Prezime (IE1) Nazivrm Naziv jezika Ime (IE1) Sifrarm (FK) vazi / JMBG (AK2) odosi se P rukov (FK) Datum zaposlenja SARTIFIKAT Plata Sifra osobe (FK) je dat / Stimulacija Sifra jezika (FK) poseduje Sifra odelenja (FK) Pol Stepen znanja Pol Vrsta MUSKARAC Sifra osobe (FK) Sluzio vojsku ZENA Sifra osobe (FK) Prezime devojacko ODELENJE Sifra odelenja Naziv odelenja Mesto ISPLATA Sifra osobe (FK) rbr Datum isplate Iznos

zaposljava / radi

prima / je primio

Vrsta

rukovodi / je rukovodioc

KONSULTANT Sifra osobe (FK) Broj sati

REDOVNI Sifra osobe (FK) Vrsta posla

3. Definisanje poslovnih pravila


Realni svet, opisan objektima, vezama izmedju njih i osobinama, ogranien je u nekom prostoru pa je i u modelu podataka potrebno definisati ogranienja vezana za: Strukturu modela objekti-veze i Ogranienja koja se posebno definiu

Definisana ogranienja definiu tzv. poslovna pravila.

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)

3.1. Prikaz i verifikacija kardinalnosti veza


Veze (relationships) imaju osobinu koja se zove kardinalnost koja definie koliko mnogo instanci entiteta roditelja je povezano sa koliko mnogo instanci entiteta deteta. Simbol veze (relationships) u obliku take na kraju linije sa strane deteta pokazuje kardinalnost u grafikom obliku. Razliiti simboli se koriste da oznae 'koliko mnogo'. U svakoj definisanoj vezi entitet roditelj prema entitetu dete moe biti u vezi: 0,1 ili vie (veza nije oznaena nikakvim simbolom) 1 ili vie (oznaava se sa P sa strane entiteta dete) 0 ili 1 (oznaava se sa Z sa strane entiteta dete) Tano n, gde je n broj (oznaava se definisanim brojem n sa strane entiteta dete). Veza roditelj-dete Veza dete-roditelj

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)

3.2. Definisanje referencijalnog integriteta


Budui da neki (ili svi) od prenesenih kljueva u ne-identifikujuoj vezi nisu deo primarnog kljua 'deteta', dete se ne moe identifikovati preko roditelja. Ova razlika je veoma vana kada trebamo podravati integritet relacija izmedju roditelja i deteta pod operacijama ubacivanje, brisanja i auriranja. Ovo je poznato kao problem refrencijalnog integriteta. Dakle sreli smo se sad dva pojam: integritet entiteta i referencijalni integritet. Integritetom entiteta onemoguuje se pojava da se mogu uneti dva entiteta sa istom vrednou primarnog kljua ili da je klju NULL podatak i vezan je za identifikujue veze. Referencijalni integritet entiteta zahteva da unesena vrednost atributa odgovara vrednosti atributa koji je primarni klju drugog entiteta.Referencijalni integritet opisuje ponaanje modela kada usled operacija odravanja dolazi do naruavanja kardinalnosti veza. Ovo ponaanje modela su tzv. strukturna dinamika pravila integriteta(SPI) koja se definiu za strukturna ogranienja u bazi podataka.

3.3. Identifikacija poslovnog domena


Atributi uzimaju vrednost iz skupa moguih vrednosti. Ovi skupovi se nazivaju domenima. Poto je domen skup, u njemu se svaka vrednost javlja samo jednom. Svi elementi skupa se medjusobno razlikuju. Atribut nema svojstvo skupa, jer se odredjene vrednosti mogu ponavljati, pa nije mogua jednoznana identifikacija pojedinih elemenata. Domen se moe definisati kao bazni domen i specijalizovani(tipski). Svaki domen se tretira kao podtip baznog domena, gde se pod baznim domenima podrazumevaju tipovi podataka(po IDEF1X standaru to su Character, Numeric ili Boolen) koji postoje u standardnim programskim jezicima (ceo broj, niz karaktera i slino) i samim tim nasleuje karakteristike i operacije koje se mogu definisati nad ovim domenima. Bazni domen definisan je odgovarajuim domen pravilima(domain rules) kojim se definie mogue vrednosti u domenu. Definiu se dva osnovna pravila i to lista vredosti i rang domena. Lista vrednosti je skup pojedinanih vredosti koji se definiu eksplicitnim navodjenjem svih dozvoljenih vrednosti(IN 'A,B,C']). Rang domena definie se tako da vrednosti iz domena se uzimaju iz ueg skupa vrednosti(BETWEEN 10 AND 200). Dakle, specifiraju se dozvoljene vrednosti domena koje se definiu validacionim izrazima pomou kljunih rei BETWEEN, IN, i preko relacionih operatora (operatora poreenja <,>,=,...) i slino. Akcije koje se preduzimaju kada je narueno zadato ogranienje gotovo uvek su prikazivanje odgovarajue oigledne poruke ili jedne opte poruke definisane validacionim nazivom(slika.....). Specijalizacijom baznih domena(podtip baznog domena) iskazuje se semantika realnog sistema,

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.

3.4. Identifikacija operacija


Manipulaciju podataka u modelu podataka omoguuju operatori koji mogu biti navigacioni i specifikacioni. Operatori omoguuje pristup svakom podatku u modelu podataka koristei predhodno definisane akcije definie se tabela SPI za objekte, odnosno za operacije insert (ubacivanje), delete (brisanje) i update (auriranje). Referencijalni integritet se definie za svaki vezu, posebno sa strane entiteta roditelj, a posebno sa strane entiteta dete i to za operacije odravanja: ubacivanje novog sloga, brisanje sloga, auriranje sloga(IRD). Operacija insert(ubacivanje) omoguuje sledea dodavanja podataka: Kreirati objekat ali proveriti da li vrednost je kljua objekta mogua ili ve postoji objekat sa tom vrednou Kreirati vezu ali proveriti da li postoje objekti sa datim vrednostima klju Dadati vrednost objektu ili vezi ali proveriti da li je ta vrednost dozvoljena Operacija update(auriranje) omoguuje sledea izmene podataka: Izmena vrednosti nekljunog atributa objekta Izmeniti vrednost atributa koji je deo klju znai izmeniti tu vrednost u svim objektima i u svim vezama koji su povezani sa objektom Izmeniti vrednost nekljunog atributa u vezi. Ne moe se menjati vrednost kljunog atributa veze ako nova vrednost ne postoji kao vrednost kljunog atributa objekta Izmeniti vrednost atributa objekta koji je deo kljua znai izmeniti tu vrednost u svim slabim objektima u kojima je ta vrednost sputena kao deo kljua. Operacija delete(brisanje) omoguuje sledea brisanja podataka: Brisati objekat i veze u kojima se vrednost kljua objekta pojavljuje Brisati veze u tipu veze Brisati objekat i sve objekte u slabim objektima ije postojanje zavisi od datog objekta

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

Entitet roditelj RADNIK

Entitet dete ISPLATA RADNIK ZNA JEZIK

ime veza Prima Rukovod i Zna pripada govori

UPDATE U-Cascade CDU-Set Null CDU-Restrict CDU-Set Null CDU-Cascade CD-

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

RADNIK ZNA JEZIK

I-Set Null D-Set Null CU-Set Null PII-Restrict D-Restrict CU-Restrict PI-

Crticama su oznaena SPI koja ne treba definisati. Slika 31

You might also like