Objekti u sistemu se opisuju preko svojih svojstava, odnosno atributa. Atributi uzimaju vrednost iz skupa mogućih vrednosti. Ovi skupovi se Nazivaju domenima. Domeni su predstavljeni elipsama (Matbr, Adrese...).
Formalno se atribut objekta može definisati kao preslikavanje iz klase objekta u domen.
Primer: Mlb: RadnikMatbr (1,1)
ImeR: RadnikImena (1,1)
ZnaJezik: RadnikJezici (1,M)
Pošto se atribut definiše kao preslikavanje, može se reći da atribut ima svoju kardinalnost. Ako je kardinalnost atributa (DG=1, GG=1 onda se takav atribut naziva jednoznačni atribut objekta. Ako i inverzno preslikavanje jednoznačnog atributa ima kardinalnost (DG=0 ili 1, GG=1) tada se takav atribut naziva identifikator objekta, jer jedno pojavljivanje takvog atributa jedinstveno određuje jedno pojavljivanje objekta u klasi.
MODELIRANJE-MOV-atribut, domen i predefinisanost
Atribut Mlb je identifikator objekta iz klase Radnik. Ako je gornja granica granica GG=M onda se takav atribut naziva višeznačni atribut. ZnaJezik je višeznačni atribut.
Domeni mogu biti:
MODELIRANJE-MOV-atribut, domen i konvencije
S obzirom da domeni u MOV imaju karakter semantičkih domena, poredjenje vrednosti iz različitih domena nije moguće i tretira se kao greška. Medjutim, ponekad se domeni razlikuju samo po tome što su njihove vrednosti date u drugim jedinicama iste "semantičke veličine". Na primer jedan u metrima, a drugi u kilometrima, a oba predstavljaju semantički istu veličinu, dužinu, ili jedna ili druga forma predstavljanje datuma. Da bi se omogućilo poredjenje različitih domena (kada se to želi) neophodno je definisati pravila (procedure) konverzije jednog u drugi domen.
U MOV se ne koriste višeznačni atributi, već se odgovarajuća svojstva objekta predstavljaju bilo kao preslikavanja posmatrane klase prema novodefinisanoj klasi koja predstavlja domen višeznačnog atributa ili kao “slaba” klasa.
Svi atributi moraju da budu primenljivih svojstava na sve objekte u odgovarajućoj klasi. Zbog toga je donja granica kardinalnosti atributa (preslikavanje KLASA->DOMEN) uvek DG=1. Kako se ne koristi višeznačni atribut, to je za ovo preslikavanje i GG=1, pa se kardinalnosti atributa ne moraju predstavljati na DOV.
Atributi i identifikatori objekata mogu se posebno označiti (zvezdicom ili podvlačenjem)
U MOV se ne koriste semantički domeni (veza između atributa jedne ili više klasa).
MODELIRANJE-MOV-atribut i domen, definicije
Definicije atributa, odnosno njihovih domena najpogodnije je dati preko tabela.
Jezik za definisanje ograničenja se bazira na konceptu primitivnih i složenih ograničenja.
Primitivna ograničenja se konstruišu preko sledećih operatora:
Složena ograničenja se formiraju od primitivnih ili drugih složenih ograničenja vezujući ih logičkim operatorima And, Or, i Not.
Očigledno je, na osnovu definicije koncepata atributa i veze, da ne postoji formalna (a možda i suštinska) razlika izmedju ova dva koncepta. Veza definiše dva preslikavanja, direktno i inverzno, izmedju dve klase objekata, a aribut preslikavanje izmedju klase objekata i odgovarajućeg domena. Ako bi se svi domeni tretirali kao klase objekata tada bi atribut predstavljao jedno preslikavanje u vezi te klase sa odgovarajućim objektom. Na primer, ako se domen IMENA tretira kao klasa objekata (čija su pojavljivanja nizovi karaktera dužine 20) tada bi atribut IME predstavljao preslikavanje RADNIK -----> IMENA u vezi objekata RADNIK i objekata IMENA. Isto tako, moglo bi se postupiti i obrnuto i preslikavanja u datim vezama tretirati kao atribute čiji su domeni odgovarajuće klase objekata.
Prva vrsta modela koji koriste samo koncepte objekata i preslikavanja se nazivaju funkcionalni modeli podataka.
U drugu vrstu modela koji koriste samo koncepte objekata i atributa spadaju pojedini semantički modeli podataka (SDM) i objektno_orjentisani modeli. Osnovna karakteristika ovih modela je ta što se pojam veze izmedju objekata eksplicitno ne koristi, već se implementira na taj načn što se kao domen atributa jednog objekta tretira klasa drugih objekata. Iskazom INVERZNO u specifikaciji nekog atributa, ukazuje se na inverzno preslikavnje (atribut) koji sa posmatranim atributom čini jednu binarnu vezu.
U PMOV, iz semantičkih i praktičnih razloga, ako se model objekti-veze implementira preko nekog "klasičnog", rekord orjentisanog jezika ili sistema za upralvjanje bazom podataka, pogodno je razlikovati koncept atributa od koncepta veze.
Sa semantičke tačke gledišta prihvata se da je prirodnije razdvojiti koncepte atributa i veza. Tako, na primer, prirodnije je tretirati IME kao atribut (svojstvo) objekata RADNIK, a RADI kao preslikavanje RADNIK ------> ODELJENJE veze izmedju objekata RADNIK i ODELJENJE. Kriterijum "prirodnije" je veoma relativan, svakom nešto drugo može biti prirodnije. Primena tog slabo definisanog kriterijuma "prirodnije" dovodi do dilema u modeliranju - kada neki skup objekata predstaviti kao domen, odnosno njegov odnos sa nekim drugim tipom objekata kao atribut, a kada ga predstaviti kao tip objekata, odnosno njegov odnos sa nekim drugim tipom objekata kao vezu.
Uputstva za razrešenje ove dileme su sledeća:
Sa praktične tačke gledišta, u mnogim primenama, za implementaciju modela, pogodno je jedan objekat i skup njegovih atributa tretirati kao rekord, pa je to još jedan razlog da se razdvoje koncepti atributa i veze. Time se imlicitno uvodi i koncept agregacije, jer se objekat može definisati kao agregacija njegovih atributa.
MODELIRANJE-MOV-generalizacija i specijalizacija
Generalizacija je, kao što je rečeno, apstrakcija u kojoj se skup sličnih tipova objekata tretira kao generički tip objekta (nadtip). "Slični" tipovi objekata su oni tipovi koji imaju neke zajedničke atribute, veze i/ili operacije.
Specijalizacija je inverzni postupak u kome se za neki tip objekta, definišu njegovi podtipovi, koji imaju neke njima specifične atribute, veze i/ili operacije.
Na primer, skup tipova Radnik, Student, Penzioner, Dete može se predstaviti generičkim tipom Gradjanin. Isto tako se tip Radnik može specijalizovati u podtipove Vozač, Inženjer, Lekar i druge.
Klasa nadtipa sadrži sva pojavljivanja "sličnih" objekata, sa onim atributima i preslikavanjima koji su im zajednički, a klase podtipova su podskupovi pojavljivanja nadtipa sa dodatnim, njima specifičnim preslikavanjima.
Kada se jedno pojavljivanje tipa može specijalizovati samo u jedan podtip (eksluzivna specijalizacija) tada je GG = 1.
Na primer, jedno pojavljivanje tipa RADNIK može imati samo jedno zanimanje (u jednom trenutku vremena). Kada se jedno pojavljivanje tipa može specijalizovati u više podtpova (neeksluzivna specijalizacija.) tada je GG > 1.
Na primer, neki gradjanin može istovremeno da bude i dete i student.
Ako je u specijalizaciji DG = 0, tada ne mora svako pojavljivanje tipa biti specijalizacija u neki podtip (unija podtipova je podskup nadtipa).
Postupci generalizacije i specijalizacije se u PMOV predstavljaju specijalnom "S" (Subtype ili IS-A (is a)) vezom koja se sastoji od dva preslikavanja: (1) generalizacije, odnosno preslikavanja PODTIP ----> NADTIP (trivijalno preslikavanje izmedju podskupa i skupa za koje je uvek DG = 1 i GG = 1, pa se kardinalnost ovoga preslikavanja i ne predstavlja na DOV) i (2) specijalizacije, koja predstavlja preslikavanje NADTIP ----> NEPOVEZANA UNIJA PODTIPOVA. "Nepovezana unija" podtipova predstavlja skup koji sadrži sva pojavljivanja svakog podtipa kao različite elemente u skupu, čak i kada su neka pojavljivanja dva (ili više) podtipova jednaka.
U generalizacionoj hijerarhiji objekata važi pravilo nasleđivanja osobina i pravilo nasleđivanja operacija: Podtipovi nasleđuju sve atribute i veze svoga nadtipa.
Na primer tip Student je podtip tipa Građanin i pored svojih atributa BrojInd i Semestar, on nasleđuje i atribute svog “nadtipa”, Mlb, Ime, Starost. Atributi tipa lekar su njegovi atributi i atributi svih njegovih nadtipova po generalizocionoj hijerarhiji, tj, Specijalnost, Plata, Mlb, Ime i Starost.
Podtipovi takođe nasleđuju i operacije nadtipa koje se u MOV veoma retko definišu.
MODELIRANJE-MOV-agregacija i dekompozicija
Agregacija je apstrakcija u kojoj se veza izmedju dva ili više tipova objekata tretira kao objekat na višem nivou apstrkacije. Zbog toga što istovremeno predstavlja i objekat i vezu agregacija se često naziva i mešoviti tip objekta-veza. Objekti koji čine agregaciju se nazivaju komponentama agregacije.
Postupak inverzan aregaciji se naziva dekompozicija. Kardinalnost preslikavanja KOMPONENTA->AGREGACIJA mora biti specificirana, dok je za inverzno preslikavnaje uvek DG = 1 i GG = 1, što znači da je agregacija egzistencijalno zavisna od svojih komponenata.
Agregirani objekat se razlikuje od ostalih objekata u sistemu po tome što nema svoj sopstveni identifikator, već ga identifikuju objekti koje on agregira. Agregacija je klasa Prijava a njene komponente su Student i Predmet. Jednom pojavljivanju agregacije uvek odgovara po jedno pojavljivanje komponenti koje je čine. Jedan Student može da učestvuje u formiranju 0 ili M Prijava.
Agregirani objekat se u modelu tretira kao i bilo koji drugi objekat. To znači da on može da ima svoje atribute i/ili da bude u vezi sa nekim drugim objektima (moguće agreiranim, takodje), da ima svoje podtipove i slično. Mada svaka veza agregira dva objekata, samo one binarne veze kojima bi imalo smisla dodati neke atribute ili koje bi imalo smisla povezivati sa drugim objektima treba tretirati kao agregirane objekte (agregacije).
Dobra praksa modeliranja može da bude i to da se svaka binarna veza u kojoj oba preslikavanja imaju GG = M, tretira kao agregacija. U MOV koriste se samo binarne veze objekata. Ako postoji potreba da se direktno predstavi veza tri ili više objekata tada se takva veza tretira kao agregacija. Na primer, činjenicu da dobavljači dobavljaju neke proizvode za specifične projekte može se predstaviti kao agregacija objekata Dobavljač, Proizvod i Projekat. Ako se višestruke veze predstavljaju kao agregirani objekti, tada model uključuje samo binarne veze što omogućuje jasno definisanje kardinalnosti direktnog i inverznog preslikavanja koje ih čine.
MODELIRANJE-Primer MOV
Kola parkira jedan student
Model podataka za ovaj hipotetički fakultetski informacioni sistem je predstavljen tako što su pojedini delovi namerno neobični, da bi se iskazale neke karakteristike MOV.
Pretpostavlja se da na posmatranom fakultetu postoji specijalan parking namenjen samo studentima. Ovaj zaključak sledi iz činjenice da svaka Kola Parkira najmanje jedan Student. Drugim rečima DG preslikavanja Kola->Student koja je jednaka 1 pokazuje da svaka kola na parkingu moraju biti vezana barem za jednog studenta i mogu biti vezana samo za jednog studenta GG=1. Student ne mora da Parkira nijedna, a može najviše jedna Kola.
MODELIRANJE-Primer MOV
student, registar, predmet
Ovaj primer prikazuje vezu studenta i predmeta.
Student mora biti Registrovan barem za jedan predmet, a za Predmet može da bude registrovano nula, jedan ili više Studenata.
MODELIRANJE-Primer MOV
student, imaju, roditelj
Donja granica preslikavanja Roditelj->Student je jednaka 1. To znači da Roditelj ne može postojati u bazi ako nije vezan za nekog studenta. Ne može se izbaciti neko pojavljivanje Studenta iz baze, ako je za njega vezano pojavljivanje Roditelja koje je Roditelj samo tom Studentu, ili se zajedeno sa njim mora izbaciti i takvo pojavljivanje Roditelja.
Uopšteno ažuriranje baze podataka može da naruši kardinalnost preslikavanja (tzv. “Strukturna ograničenja”) i zbog toga je neophodno definisati odgovarajuća dinamička pravila integriteta.
Očigledno je da su kritična preslikavanja sa donjom granicom različitom od nule (najčešće 1) i gornjom granicom različitom od M (najčešće 1).
MODELIRANJE-Primer MOV
student, prijava, predmet
Jedno pojavljivanje klase Prijava ima “kao svoje komponente” pojavljivanje objekta iz klase Student i Predmet . Atributi ove agregacije daju za datog studenta i dati predmet, datum i ocenu položenog ispita.
MODELIRANJE-Primer MOV
student, specijalizacija vanredni
Klasa Vanredni predstavlja podtip klase Student preko specijalizacije Vrsta. Znači da se za jedan nadtip može definisati i samo jedan podtip preko neke specijalizacije.
Međutim u ovom slučaju specijalizacija ne sme da bude obavezna (donja granica preslikavanja specijalizacije mora da bude jednaka nuli).
MODELIRANJE-Primer MOV
projekat, podtip zadatak
Klasa Zadatak predstavlja klasu “slabih, identifikaciono zavisnih” objekata, zavisnih od objekata “nadređene” klase Projekat. To ovde znači da se pojedini zadaci sami za sebe ne mogu pojavljivati u modelu i da atribut ŠifZad ne može jedinstveno identifikovati jedan zadatak u sistemu. Tek agregacija <ŠifProj, ŠifZad>, odnosno veza projekta i zadatka jedinstveno identifikuje jedan zadatak u sistemu. Ovakva identifikacija Zadatka se naziva “govoreća šifra” jer, pored jedinstvene identifikacije zadatka u sistemu, daje i informaciju o projektu kome zadatak pripada. U mnogim modelima “slabi objekti “ su posledica “govorećih šifara” u odgovarajućem sistemu. “Govoreće šifre” treba izbegavati, jer dati model podataka, odnosno odgovarajuću bazu čine neelastičnom.
MODELIRANJE-Primer MOV
predmet, pripada katedri
Posebno je zanimljiva “kruta” veza između klasa Predmet i Katedra koja je posledica činjenice da oba preslikavanja ove veze imaju donju granicu kardinalnosti jednaku jedan.
Svaki Predmet mora da Pripada nekoj Katedri i može da pripada samo jednoj, dok svaka Katedra mora da ima bar jedan Predmet. To znači da se nova Katedra može ubaciti u bazu samo ako se istovremeno (u istoj transakciji) u bazu ubacuje barem jedan novi Predmet koji joj pripada.
Isto tako neki Predmet koji je poslednji predmet u posmatranoj Katedri, ne može se izbaciti iz baze ili se sa njim mora izbaciti i odgovarajućia Katedra.