420 likes | 611 Views
5. 4. 3. Objektni model podataka. Objektni modeli. Podaci se definiraju kroz objekte Model se implementira kroz objektnu bazu podataka U samom objektu opisano i njegovo ponašanje Pristup objektima opisan je metodama, servisima ili operacijama definiranim za svaki objekt.
E N D
Objektni modeli • Podaci se definiraju kroz objekte • Model se implementira kroz objektnu bazu podataka • U samom objektu opisano i njegovo ponašanje • Pristup objektima opisan je metodama, servisima ili operacijama definiranim za svaki objekt
Mogućnost specifikacije i strukture kompleksnih objekata i operacija nad njima • Rezultat integracije tehnologije baza podataka s objektno-orijentiranom paradigmom razvijenom u području programskih jezika i softverskom inženjerstvu
Zašto je razvijen objektni model? • Radi zadovoljavanja zahtjeva u kompleksnim inženjerskim aplikacijskim okolišima • Objektni pristup osigurava zahtijevanu fleksibilnost – nije ograničen unaprijed danim tipovima podataka i upitnim jezikom (kao npr. SQL)
Temeljni princip objektno-orijentiranog pristupa • Promatranje programa kao kolekcije neovisnih objekata grupiranih u klase, koji uzajamno komuniciraju putem poruka • Objekti egzistiraju samo tijekom izvršenja programa • Njima se može koristiti veći broj korisnika
Primjeri objektnih modela • ODMG objektni model – definira standardni model za objektne baze podataka • ODL – definicijski jezik za definiranje objektne sheme baze podataka • OQL – deklarativni upitni jezik, inspiriran SOL jezikom
OBJEKT – 2 komponente: • Stanje (vrijednost) • Ponašanje (operacije, metode) • STRUKTURA • ATRIBUT • SUBJEKT • SERVIS
Osnovni pojam objektnih modela Apstrakcija nečega u problemskoj domeni O njemu se prikupljaju podaci Sadrži vrijednosti svojih atributa (obilježje) i svojeg ponašanja KLASA – opis jednog ili više objekata koji imaju isti skup atributa i jednak opis ponašanja OBJEKT
Objekt je pojava klase, a klasa tip objekta • Prepoznatljivo ponašanje objekta se opisuje operacijama (servisima) koje se obavljaju nad njima (npr. Formiranje novog objekta u klasi, brisanje objekta iz klase...) • Sličan varijabli u programskim jezicima
Primjer klase i objekta • Klasa - masni pravokutnik • Njezini objekti - tanki pravokutnik Simbol ima tri dijela: • Gornji: naziv klase • Srednji: popis atributa • Donji: popis servisa
Kompleksni objekti • Glavna motivacija za razvoj objektno-orijentiranih sustava • Mogu se podijeliti u: • Strukturirane • Nestrukturirane
Mehanizam dostupnosti funkcionira tako da se objekt načini dostupnim za neki drugi perzistentni objekt • Za objekt B kaže se da je dostupan objektu A ako niz referenci u objektnom grafu vodi iz objekta A do objekta B
Strukturni kompleksni objekt • sastoji se od komponenti i definiran je rekurzivnom primjenom konstruktora tipova na različitim razinama • definiran je strukturom koja rabi više konstruktore tipova podržanih sustavom baze podataka • struktura objekta definirana i podržana od strane sustava
Između kompleksnog objekta i njegovih komponenti postoje dva tipa referenciranja na svakoj razini : • semantika vlasništva - primjenjuje se kada su komponente kompleksnog objekta učahurene unutar kompleksne strukture i tako čine sastavni dio objekta • semantika referenciranja - kada su komponente kompleksnog objekta nezavisni objekti, ali ih mogu referencirati drugi objekti
Nestrukturirani kompleksni objekt • tip podataka koji zahtijeva znatne memorijske resurse, kao što su slike ili skenirane kartografsko-topografske karte • u bazi podataka reprezentiran kao veliki binarni objekt odnosno kao veliki znakovni objekt • sustav baze podataka ne poznaje njihovu internu strukturu i samo aplikacija koja se njima koristi može interpretirati njihovo značenje • Objekti se smatraju kompleksnima jer zahtijevaju veliki memorijski prostor
Konfiguracijakompleksnoga objekta • kolekcija koja sadrži jednu verziju za svaki objekt, uređenu na način da su verzije objekata kompatibilne i da zajedno tvore ispravnu verziju kompleksnog objekta • kolekcija verzija različitih objekata koji zajedno tvore kompleksan objekt • graf verzija opisuje verzije istoga objekta • Konfiguracija treba slijediti strukturu tipa kompleksnoga objekta; višestruke konfiguracije istoga kompleksnoga objekta odgovaraju višestrukim verzijama komponentnih objekata.
STRUKTURA • Objekti grade različite strukture • Raspoznavaje strukture objekata principima apstrakcije: • generalizacija/specijalizacija (Gen-Spec) • Agregacija (Cjelina-dio) (omogućuju klasifikacije i povezivanje objekata) • Klasa objekta može se specijalizirati u podklase, ako one imaju različite atribute ili koriste različite servise
Kod generalizacije/specijalizacije prikazane na prethodnoj slici nadklasa se crta gore, a podlasa dolje, povezuju se linijom na kojoj Gen-Spec ukazuje na odnos klasa • Agregacija (Cjelina-dio) – sastav objekata između kojih vlada odnos cjeline i dijelova • Objekt se crta gore, a njegovi dijelovi gore, povezuju se linijom na kojoj simbol Cjelina-dio ukazuje na odnos objekata • Uz linije se označava broj, koji označava broj dijelova u cjelini
ATRIBUT • Stanje svakog objekta opisano vrijednostima njegovih atributa • Vrijednosti atributa su promjenjive servisima definiranim nad objektom • Preporuča se atribut – jedna vrijednost=> jednostavniji modeli • Atribut- više vrijednosti => eliminira se iz modela uvođenjem novog objekta i uspostavom veze novog i postojećeg objekta
Svaki objekt mora imati mogućnost identifikacije u skupu objekta iste klase • Za to se koriste identificirajući atributi ili implicitni identifikatori • Objektni modeli mogu razlikovati: jednostavne i kompleksne objekte • Jednostavni objekti opisani jednostavnim atributima • Kompleksan objekt – čiji atributi mogu biti i sami objekti • Npr. Automobil je kompleksan objekt koji se sastoji od objekata motor i karoserija, a motor može biti kompleksan ili jednostavan ovisno o tome je li opisan sebi podređenim objektima ili samo jednostavnim atributima
Veza pojava objekata više-prema-više • Veza pojava objekata Kupac i Roba značenja “kupac je kupio robu” • Ovu vezu opisuju atributi DatumKupnje i KoličinaRobe
PROBLEMSKO PODRUČJE - SUBJEKT • Cjelina u problemskom području • Velika problemska područja treba dekomponirati na više manjih problemskih područja – SUBJEKATA – po istom principu po kojem se IS dijeli na podsustave • Razmatranje subjekata u malim problemskim područjima nije potrebno jer je čitav problem jedan subjekt • Kada uvesti više subjekata, ovisi o kompleksnosti problema
SERVIS • Opisuje ponašanje objekta jedne klase • U objektnim modelima opisuju procese nad podacima objekata • Vrijednosti atributa objekata opisuju stanja objekata, a servisi su sredstva za promjenu njihovih stanja
Definiranje potrebnih servisa: • Utvrditi stanja objekata • Utvrditi potrebne servise • Utvrditi poruke • Razraditi detalje servisa
define type Tocka: tuple ( x: float; y: float; ); define type Zgrada: tuple ( opcina: string; adresa: string; tip: string; geom._oblik:list(Tocka); parc: Parcela; ); define type Parcela: tuple ( opcina: string; broj: string; geom._oblik:list(Tocka) zgrade: set(Zgrada); ); define type Ulica: tuple ( opcina: string; naziv: string; geom._oblik:list(Tocka); ); mogu se rabiti za definiranje strukture podataka objektne sheme baze podataka ključne riječi tuple, set i list- konstruktori tipova Atributi koji referenciraju druge objekte, kao što su geom_oblik, odnosno zgrada, jesu reference na druge objekte, i reprezentaciju relacije između tipova objekata Konstruktori tipova
Specifikacija perzistencije objekta • Ne moraju se svi objekti trajno pohranjivati u bazu podataka • Privremeni objekti egzistiraju tijekom izvršenja programa i nestaju nakon završetka izvršenja programa • Perzistentni objekti pohranjuju se u bazu podataka i traju nakon izvršenja programa, rabe se kao ulazne točke u bazi podataka.Tipični mehanizmi za kreiranje perzistentnih objekata su dodjeljivanje imena i dostupnost
O izradi objektnog modela • Ima mnogo sličnosti s izradom modela entiteti-veze • Osnovna razlika: u definiranju servisa • Objektni model bogatiji-opisuje i procesnu komponentu inf. Sustava
Veći broj aplikacija koje primjenjuju tehnologiju baza podataka zahtijeva postojanje različitih verzija istoga objekta postojeće verzije objekata u bazi ne smiju se promijeniti dok se proces izrade prostornoga plana ne dovede do samoga kraja Samo onda nove verzije objekata zamjenjuju postojeće verzije u bazi. moguće imati više od dvije verzije jednoga objekta Korisnici mogu paralelno mijenjati verzije istog objekta Kompleksni se objekt sastoji od više objekata, koji mogu imati različite verzije odnosno različite verzije grafa Verzije i povijest objekata
Partner – klasa u kojoj nema pojava objekata; specijlizira se na klase Kupac i Dobavljač • Kupac može istovremeno biti i Dobavljač
Redom pojavljivanja: • Ime i prezime • Ime i prezime • Ime i prezime • Ime i prezime • Ime i prezime