5 4 3 Objektni model podataka Objektni modeli
5
4
3
Objektni model podataka
Objektni modeli Podaci se definiraju kroz objekte n Model se implementira kroz n objektnu bazu podataka n U samom objektu opisano i njegovo ponašanje n Pristup objektima opisan je metodama, servisima ili operacijama definiranim za svaki objekt
Mogućnost specifikacije i strukture kompleksnih objekata i operacija nad njima n Rezultat integracije tehnologije baza podataka s objektno-orijentiranom paradigmom razvijenom u području programskih jezika i softverskom inženjerstvu n
Zašto je razvijen objektni model? Radi zadovoljavanja zahtjeva u kompleksnim inženjerskim aplikacijskim okolišima n Objektni pristup osigurava zahtijevanu fleksibilnost – nije ograničen unaprijed danim tipovima podataka i upitnim jezikom (kao npr. SQL) n
Temeljni princip objektnoorijentiranog pristupa Promatranje programa kao kolekcije neovisnih objekata grupiranih u klase, koji uzajamno komuniciraju putem poruka n Objekti egzistiraju samo tijekom izvršenja programa n Njima se može koristiti veći broj korisnika n
Primjeri objektnih modela ODMG objektni model – definira standardni model za objektne baze podataka n ODL – definicijski jezik za definiranje objektne sheme baze podataka n OQL – deklarativni upitni jezik, inspiriran SOL jezikom n
Osnove objektnog modela
OBJEKT – 2 komponente: • Stanje (vrijednost) • Ponašanje (operacije, metode) n STRUKTURA n ATRIBUT n SUBJEKT n SERVIS n
OBJEKT Osnovni pojam objektnih modela n Apstrakcija nečega u problemskoj domeni n O njemu se prikupljaju podaci n Sadrži vrijednosti svojih atributa (obilježje) i svojeg ponašanja n KLASA – opis jednog ili više objekata koji imaju isti skup atributa i jednak opis ponašanja n
Objekt je pojava klase, a klasa tip objekta n Prepoznatljivo ponašanje objekta se opisuje operacijama (servisima) koje se obavljaju nad njima (npr. Formiranje novog objekta u klasi, brisanje objekta iz klase. . . ) n Sličan varijabli u programskim jezicima n
Primjer klase i objekta Klasa - masni pravokutnik n Njezini objekti tanki pravokutnik Simbol ima tri dijela: • Gornji: naziv klase • Srednji: popis atributa • Donji: popis servisa n
Kompleksni objekti Glavna motivacija za razvoj objektno-orijentiranih sustava n Mogu se podijeliti u: • Strukturirane • Nestrukturirane n
Mehanizam dostupnosti funkcionira tako da se objekt načini dostupnim za neki drugi perzistentni objekt n Za objekt B kaže se da je dostupan objektu A ako niz referenci u objektnom grafu vodi iz objekta A do objekta B n
n • • • 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
n • • 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
n • • 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
n • • Konfiguracija kompleksnoga 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.
Coad / Yourdonov prikaz osnovnih koncepata objektnog modela
STRUKTURA Objekti grade različite strukture n Raspoznavaje strukture objekata principima apstrakcije: • generalizacija/specijalizacija (Gen-Spec) • Agregacija (Cjelina-dio) (omogućuju klasifikacije i povezivanje objekata) n Klasa objekta može se specijalizirati u podklase, ako one imaju različite atribute ili koriste različite servise n
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 n Agregacija (Cjelina-dio) – sastav objekata između kojih vlada odnos cjeline i dijelova n Objekt se crta gore, a njegovi dijelovi gore, povezuju se linijom na kojoj simbol Cjelina-dio ukazuje na odnos objekata n Uz linije se označava broj, koji označava broj dijelova u cjelini n
Primjeri cjeline i dijelova
Primjer generalizacije/specijalizacije
ATRIBUT n n 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
n n n 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-premaviše n n Veza pojava objekata Kupac i Roba značenja “kupac je kupio robu” Ovu vezu opisuju atributi Datum. Kupnje i Količina. Robe
PROBLEMSKO PODRUČJE SUBJEKT n n 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 n U objektnim modelima opisuju procese nad podacima objekata n Vrijednosti atributa objekata opisuju stanja objekata, a servisi su sredstva za promjenu njihovih stanja n
n • • Definiranje potrebnih servisa: Utvrditi stanja objekata Utvrditi potrebne servise Utvrditi poruke Razraditi detalje servisa
Konstruktori tipova define type Tocka: tuple ( x: float; y: float; ; float ); define type Zgrada: tuple ( opcina: string; adresa: string; tip: string; geom. _oblik: list( Tocka); ); geom. _oblik: list(Tocka parc: Parcela; parc: ); define type Parcela: tuple ( opcina: string; broj: string; geom. _oblik: list( Tocka)) geom. _oblik: list(Tocka zgrade: set(Zgrada); ); define type Ulica: tuple ( opcina: string; naziv: string; geom. _oblik: list( Tocka); ); geom. _oblik: list(Tocka ); n n 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
Specifikacija perzistencije objekta n n n 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 n Osnovna razlika: u definiranju servisa n Objektni model bogatiji-opisuje i procesnu komponentu inf. Sustava n
Verzije i povijest objekata n n n 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
PRIMJER: Objektni model poduzeća NOVA
n n Partner – klasa u kojoj nema pojava objekata; specijlizira se na klase Kupac i Dobavljač Kupac može istovremeno biti i Dobavljač
Pripremili i prilagodili. . .
Nije Đelo Hađiselimović. . .
Redom pojavljivanja: Ime i prezime n Ime i prezime n
- Slides: 42