42
5

Objektni model podataka

  • Upload
    kesler

  • View
    73

  • Download
    1

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Objektni model podataka

5

Page 2: Objektni model podataka

4

Page 3: Objektni model podataka

3

Page 4: Objektni model podataka
Page 5: Objektni model podataka
Page 6: Objektni model podataka

Objektni Objektni model model

podatakapodataka

Page 7: Objektni model podataka

Objektni modeliObjektni modeli

Podaci se definiraju kroz se definiraju kroz objekteobjekte

Model Model se implementira kroz se implementira kroz objektnu bazu podatakaobjektnu bazu podataka

U samom objektu opisano i U samom objektu opisano i njegovo njegovo ponašanjeponašanje

PristupPristup objektima opisan je objektima opisan je metodama, metodama, servisimaservisima ili ili operacijama definiranim za operacijama definiranim za svaki objektsvaki objekt

Page 8: Objektni model podataka

Mogućnost specifikacije i Mogućnost specifikacije i strukture kompleksnih strukture kompleksnih objekata i operacija nad objekata i operacija nad njimanjima

Rezultat integracije Rezultat integracije tehnologije baza podataka s tehnologije baza podataka s objektno-orijentiranom objektno-orijentiranom paradigmom razvijenom u paradigmom razvijenom u području programskih jezika području programskih jezika i softverskom inženjerstvui softverskom inženjerstvu

Page 9: Objektni model podataka

Zašto je razvijen objektni Zašto je razvijen objektni model? model? Radi zadovoljavanja zahtjeva Radi zadovoljavanja zahtjeva

u kompleksnim inženjerskim u kompleksnim inženjerskim aplikacijskim okolišimaaplikacijskim okolišima

Objektni pristup osigurava Objektni pristup osigurava zahtijevanu fleksibilnost – nije zahtijevanu fleksibilnost – nije ograničen unaprijed danim ograničen unaprijed danim tipovima podataka i upitnim tipovima podataka i upitnim jezikom (kao npr. SQL)jezikom (kao npr. SQL)

Page 10: Objektni model podataka

Temeljni princip objektno-Temeljni princip objektno-orijentiranog pristupaorijentiranog pristupa Promatranje programa kao Promatranje programa kao

kolekcije neovisnih objekata kolekcije neovisnih objekata grupiranih u klase, koji grupiranih u klase, koji uzajamno komuniciraju uzajamno komuniciraju putem porukaputem poruka

Objekti egzistiraju samo Objekti egzistiraju samo tijekom izvršenja programatijekom izvršenja programa

Njima se može koristiti veći Njima se može koristiti veći broj korisnikabroj korisnika

Page 11: Objektni model podataka

Primjeri objektnih modelaPrimjeri objektnih modela

ODMG objektni model – ODMG objektni model – definira standardni model za definira standardni model za objektne baze podatakaobjektne baze podataka

ODL – definicijski jezik za ODL – definicijski jezik za definiranje objektne sheme definiranje objektne sheme baze podatakabaze podataka

OQL – deklarativni upitni OQL – deklarativni upitni jezik, inspiriran SOL jezikomjezik, inspiriran SOL jezikom

Page 12: Objektni model podataka

Osnove objektnog Osnove objektnog modelamodela

Page 13: Objektni model podataka

OBJEKT – 2 komponente: OBJEKT – 2 komponente: • Stanje (vrijednost)Stanje (vrijednost)• Ponašanje (operacije, Ponašanje (operacije,

metode)metode) STRUKTURASTRUKTURA ATRIBUTATRIBUT SUBJEKTSUBJEKT SERVISSERVIS

Page 14: Objektni model podataka

OBJEKTOBJEKT

Osnovni pojam objektnih modelaOsnovni pojam objektnih modela Apstrakcija nečega u Apstrakcija nečega u

problemskoj domeniproblemskoj domeni O njemu se prikupljaju podaciO njemu se prikupljaju podaci Sadrži vrijednosti svojih atributa Sadrži vrijednosti svojih atributa

(obilježje) i svojeg ponašanja(obilježje) i svojeg ponašanja KLASA – opis jednog ili više KLASA – opis jednog ili više

objekata koji imaju isti skup objekata koji imaju isti skup atributa i jednak opis ponašanjaatributa i jednak opis ponašanja

Page 15: Objektni model podataka

Objekt je pojava klase, a Objekt je pojava klase, a klasa tip objektaklasa tip objekta

Prepoznatljivo ponašanje Prepoznatljivo ponašanje objekta se opisuje objekta se opisuje operacijama (servisima) operacijama (servisima) koje se obavljaju nad njima koje se obavljaju nad njima (npr. Formiranje novog (npr. Formiranje novog objekta u klasi, brisanje objekta u klasi, brisanje objekta iz klase...)objekta iz klase...)

Sličan varijabli u Sličan varijabli u programskim jezicimaprogramskim jezicima

Page 16: Objektni model podataka

Primjer klase i objektaPrimjer klase i objekta

Klasa - masni Klasa - masni pravokutnikpravokutnik

Njezini objekti - Njezini objekti - tanki pravokutniktanki pravokutnik

Simbol ima tri dijela: Simbol ima tri dijela: • Gornji: naziv klaseGornji: naziv klase• Srednji: popis Srednji: popis

atributaatributa• Donji: popis Donji: popis

servisaservisa

Page 17: Objektni model podataka

Kompleksni objektiKompleksni objekti

Glavna motivacija za razvoj Glavna motivacija za razvoj objektno-orijentiranih objektno-orijentiranih sustavasustava

Mogu se podijeliti u:Mogu se podijeliti u:• StrukturiraneStrukturirane• NestrukturiraneNestrukturirane

Page 18: Objektni model podataka

Mehanizam dostupnosti Mehanizam dostupnosti funkcionira tako da se objekt funkcionira tako da se objekt načini dostupnim za neki drugi načini dostupnim za neki drugi perzistentni objekt perzistentni objekt

Za objekt B kaže se da je Za objekt B kaže se da je dostupan objektu A ako niz dostupan objektu A ako niz referenci u objektnom grafu referenci u objektnom grafu vodi iz objekta A do objekta Bvodi iz objekta A do objekta B

Page 19: Objektni model podataka

Strukturni kompleksni Strukturni kompleksni objektobjekt

• sastoji se od komponenti i sastoji se od komponenti i definiran je rekurzivnom definiran je rekurzivnom primjenom konstruktora tipova primjenom konstruktora tipova na različitim razinama na različitim razinama

• definiran je strukturom koja definiran je strukturom koja rabi više konstruktore tipova rabi više konstruktore tipova podržanih sustavom baze podržanih sustavom baze podataka podataka

• struktura objekta definirana i struktura objekta definirana i podržana od strane sustava podržana od strane sustava

Page 20: Objektni model podataka

Između kompleksnog objekta i Između kompleksnog objekta i njegovih komponenti postoje dva njegovih komponenti postoje dva tipa tipa referenciranjareferenciranja na svakoj na svakoj razini :razini :

• semantika vlasništvasemantika vlasništva - - primjenjuje se kada su primjenjuje se kada su komponente kompleksnog objekta komponente kompleksnog objekta učahurene unutar kompleksne učahurene unutar kompleksne strukture i tako čine sastavni dio strukture i tako čine sastavni dio objekta objekta

• semantika referenciranja semantika referenciranja - - kada su komponente kompleksnog kada su komponente kompleksnog objekta nezavisni objekti, ali ih objekta nezavisni objekti, ali ih mogu referencirati drugi objekti mogu referencirati drugi objekti

Page 21: Objektni model podataka

Nestrukturirani kompleksni Nestrukturirani kompleksni objektobjekt

• tip podataka koji zahtijeva znatne tip podataka koji zahtijeva znatne memorijske resurse, kao što su slike memorijske resurse, kao što su slike ili skenirane kartografsko-ili skenirane kartografsko-topografske kartetopografske karte

• u bazi podataka reprezentiran kao u bazi podataka reprezentiran kao veliki binarni objekt odnosno kao veliki binarni objekt odnosno kao veliki znakovni objekt veliki znakovni objekt

• sustav baze podataka ne poznaje sustav baze podataka ne poznaje njihovu internu strukturu i samo njihovu internu strukturu i samo aplikacija koja se njima koristi može aplikacija koja se njima koristi može interpretirati njihovo značenje interpretirati njihovo značenje

• Objekti se smatraju kompleksnima Objekti se smatraju kompleksnima jer zahtijevaju veliki memorijski jer zahtijevaju veliki memorijski prostor prostor

Page 22: Objektni model podataka

KonfiguracijaKonfiguracija kompleksnoga kompleksnoga objektaobjekta

• kolekcija koja sadrži jednu verziju za kolekcija koja sadrži jednu verziju za svaki objekt, uređenu na način da su svaki objekt, uređenu na način da su verzije objekata kompatibilne i da verzije objekata kompatibilne i da zajedno tvore ispravnu verziju zajedno tvore ispravnu verziju kompleksnog objekta kompleksnog objekta

• kolekcija verzija različitih objekatakolekcija verzija različitih objekata koji koji zajedno tvore kompleksan objektzajedno tvore kompleksan objekt

• graf verzija opisuje graf verzija opisuje verzije istoga verzije istoga objektaobjekta

• Konfiguracija treba slijediti strukturu Konfiguracija treba slijediti strukturu tipa kompleksnoga objekta; višestruke tipa kompleksnoga objekta; višestruke konfiguracije istoga kompleksnoga konfiguracije istoga kompleksnoga objekta odgovaraju višestrukim objekta odgovaraju višestrukim verzijama komponentnih objekata.verzijama komponentnih objekata.

Page 23: Objektni model podataka

Coad / Yourdonov prikaz osnovnih koncepata objektnog modela

Page 24: Objektni model podataka

STRUKTURASTRUKTURA

Objekti grade različite struktureObjekti grade različite strukture Raspoznavaje strukture objekata Raspoznavaje strukture objekata

principima apstrakcije: principima apstrakcije: • generalizacija/specijalizacija (Gen-generalizacija/specijalizacija (Gen-

Spec)Spec)• Agregacija (Cjelina-dio)Agregacija (Cjelina-dio)

(omogućuju klasifikacije i povezivanje (omogućuju klasifikacije i povezivanje objekata) objekata)

Klasa objekta može se specijalizirati Klasa objekta može se specijalizirati u podklase, ako one imaju različite u podklase, ako one imaju različite atribute ili koriste različite serviseatribute ili koriste različite servise

Page 25: Objektni model podataka

Kod generalizacije/specijalizacije Kod generalizacije/specijalizacije prikazane na prethodnoj slici prikazane na prethodnoj slici nadklasa se crta gore, a podlasa nadklasa se crta gore, a podlasa dolje, povezuju se linijom na dolje, povezuju se linijom na kojoj Gen-Spec ukazuje na kojoj Gen-Spec ukazuje na odnos klasaodnos klasa

Agregacija (Cjelina-dio) – sastav Agregacija (Cjelina-dio) – sastav objekata između kojih vlada objekata između kojih vlada odnos cjeline i dijelova odnos cjeline i dijelova

Objekt se crta gore, a njegovi Objekt se crta gore, a njegovi dijelovi gore, povezuju se linijom dijelovi gore, povezuju se linijom na kojoj simbol Cjelina-dio na kojoj simbol Cjelina-dio ukazuje na odnos objekataukazuje na odnos objekata

Uz linije se označava broj, koji Uz linije se označava broj, koji označava broj dijelova u cjelinioznačava broj dijelova u cjelini

Page 26: Objektni model podataka

Primjeri cjeline i dijelovaPrimjeri cjeline i dijelova

Page 27: Objektni model podataka

Primjer Primjer generalizacije/specijalizacijgeneralizacije/specijalizacij

ee

Page 28: Objektni model podataka

ATRIBUTATRIBUT

Stanje svakog objekta opisano Stanje svakog objekta opisano vrijednostima njegovih atributavrijednostima njegovih atributa

Vrijednosti atributa su promjenjive Vrijednosti atributa su promjenjive servisima definiranim nad objektomservisima definiranim nad objektom

Preporuča se atribut – jedna Preporuča se atribut – jedna vrijednost=> jednostavniji modelivrijednost=> jednostavniji modeli

Atribut- više vrijednosti => Atribut- više vrijednosti => eliminira se iz modela uvođenjem eliminira se iz modela uvođenjem novog objekta i uspostavom veze novog objekta i uspostavom veze novog i postojećeg objektanovog i postojećeg objekta

Page 29: Objektni model podataka

Svaki objekt mora imati mogućnost Svaki objekt mora imati mogućnost identifikacije u skupu objekta iste identifikacije u skupu objekta iste klaseklase

Za to se koriste Za to se koriste identificirajući identificirajući atributiatributi ili ili implicitni identifikatoriimplicitni identifikatori

Objektni modeli mogu razlikovati:Objektni modeli mogu razlikovati: jednostavne i kompleksne objektejednostavne i kompleksne objekte Jednostavni objektiJednostavni objekti opisani opisani

jednostavnim atributimajednostavnim atributima Kompleksan objektKompleksan objekt – čiji atributi – čiji atributi

mogu biti i sami objektimogu biti i sami objekti Npr. Automobil je kompleksan objekt Npr. Automobil je kompleksan objekt

koji se sastoji od objekata motor i koji se sastoji od objekata motor i karoserija, a motor može biti karoserija, a motor može biti kompleksan ili jednostavan ovisno o kompleksan ili jednostavan ovisno o tome je li opisan sebi podređenim tome je li opisan sebi podređenim objektima ili samo jednostavnim objektima ili samo jednostavnim atributimaatributima

Page 30: Objektni model podataka

Veza pojava objekata više-Veza pojava objekata više-prema-višeprema-više

Veza pojava Veza pojava objekata objekata Kupac i Roba Kupac i Roba značenja značenja “kupac je “kupac je kupio robu”kupio robu”

Ovu vezu Ovu vezu opisuju atributi opisuju atributi DatumKupnje i DatumKupnje i KoličinaRobeKoličinaRobe

Page 31: Objektni model podataka

PROBLEMSKO PODRUČJE - PROBLEMSKO PODRUČJE - SUBJEKTSUBJEKT

Cjelina u problemskom područjuCjelina u problemskom području Velika problemska područja treba Velika problemska područja treba

dekomponirati na više manjih dekomponirati na više manjih problemskih područja – SUBJEKATA problemskih područja – SUBJEKATA – po istom principu po kojem se IS – po istom principu po kojem se IS dijeli na podsustavedijeli na podsustave

Razmatranje subjekata u malim Razmatranje subjekata u malim problemskim područjima nije problemskim područjima nije potrebno jer je čitav problem jedan potrebno jer je čitav problem jedan subjektsubjekt

Kada uvesti više subjekata, ovisi o Kada uvesti više subjekata, ovisi o kompleksnosti problemakompleksnosti problema

Page 32: Objektni model podataka

SERVISSERVIS

Opisuje ponašanje objekta Opisuje ponašanje objekta jedne klasejedne klase

U objektnim modelima U objektnim modelima opisuju procese nad opisuju procese nad podacima objekatapodacima objekata

Vrijednosti atributa objekata Vrijednosti atributa objekata opisuju stanja objekata, a opisuju stanja objekata, a servisi su sredstva za servisi su sredstva za promjenu njihovih stanjapromjenu njihovih stanja

Page 33: Objektni model podataka

Definiranje potrebnih Definiranje potrebnih servisa:servisa:

• Utvrditi stanja objekataUtvrditi stanja objekata• Utvrditi potrebne serviseUtvrditi potrebne servise• Utvrditi porukeUtvrditi poruke• Razraditi detalje servisa Razraditi detalje servisa

Page 34: Objektni model podataka

Konstruktori tipovaKonstruktori tipova

define type Tocka:define type Tocka: tuple ( x: float;tuple ( x: float;

y: float;y: float; );); define type Zgrada:define type Zgrada:

tuple ( opcina: string;tuple ( opcina: string; adresa: string;adresa: string; tip: string;tip: string; geom._oblik:list(Tocka);geom._oblik:list(Tocka); parc: Parcela;parc: Parcela; );); define type Parcela:define type Parcela:

tuple ( opcina: string;tuple ( opcina: string; broj: string;broj: string; geom._oblik:list(Tocka)geom._oblik:list(Tocka) zgrade: set(Zgrada);zgrade: set(Zgrada); ););define type Ulica:define type Ulica: tuple ( opcina: string;tuple ( opcina: string; naziv: string;naziv: string; geom._oblik:list(Tocka);geom._oblik:list(Tocka); ););

mogu se rabiti za mogu se rabiti za definiranje definiranje strukture strukture podatakapodataka objektne objektne sheme baze sheme baze podatakapodataka

ključne riječi ključne riječi tupletuple, , setset i i listlist- konstruktori - konstruktori tipovatipova

Atributi koji Atributi koji referenciraju druge referenciraju druge objekte, kao što su objekte, kao što su geom_oblikgeom_oblik, odnosno , odnosno zgradazgrada, jesu , jesu referencereference na druge na druge objekte, i objekte, i reprezentaciju reprezentaciju relacije između relacije između tipova objekata tipova objekata

Page 35: Objektni model podataka

Specifikacija perzistencije Specifikacija perzistencije objektaobjekta

Ne moraju se svi objekti trajno Ne moraju se svi objekti trajno pohranjivati u bazu podatakapohranjivati u bazu podataka

Privremeni objekti Privremeni objekti egzistiraju egzistiraju tijekom izvršenja programa i nestaju tijekom izvršenja programa i nestaju nakon završetka izvršenja programanakon završetka izvršenja programa

Perzistentni objektiPerzistentni objekti pohranjuju se pohranjuju se u bazu podataka i traju nakon u bazu podataka i traju nakon izvršenja programa, rabe se kao izvršenja programa, rabe se kao ulazne točkeulazne točke u bazi u bazi podataka.Tipični mehanizmi za podataka.Tipični mehanizmi za kreiranje perzistentnih objekata su kreiranje perzistentnih objekata su dodjeljivanje imenadodjeljivanje imena i i dostupnostdostupnost

Page 36: Objektni model podataka

O izradi objektnog modelaO izradi objektnog modela

Ima mnogo sličnosti s Ima mnogo sličnosti s izradom modela entiteti-izradom modela entiteti-vezeveze

Osnovna razlika: u Osnovna razlika: u definiranju servisadefiniranju servisa

Objektni model bogatiji-Objektni model bogatiji-opisuje i procesnu opisuje i procesnu komponentu inf. Sustavakomponentu inf. Sustava

Page 37: Objektni model podataka

Verzije i povijest Verzije i povijest objekataobjekata

Veći broj aplikacija koje primjenjuju Veći broj aplikacija koje primjenjuju tehnologiju baza podataka zahtijeva tehnologiju baza podataka zahtijeva postojanje različitih verzija istoga objektapostojanje različitih verzija istoga objekta

postojeće verzije objekata u bazi ne smiju postojeće verzije objekata u bazi ne smiju se promijeniti dok se proces izrade se promijeniti dok se proces izrade prostornoga plana ne dovede do samoga prostornoga plana ne dovede do samoga krajakraja

Samo onda nove verzije objekata Samo onda nove verzije objekata zamjenjuju postojeće verzije u bazi.zamjenjuju postojeće verzije u bazi.

moguće imati više od dvije verzije jednoga moguće imati više od dvije verzije jednoga objekta objekta

Korisnici mogu paralelno mijenjati verzije Korisnici mogu paralelno mijenjati verzije istog objektaistog objekta

Kompleksni se objekt sastoji od više Kompleksni se objekt sastoji od više objekata, koji mogu imati različite verzije objekata, koji mogu imati različite verzije odnosno različite verzije grafaodnosno različite verzije grafa

Page 38: Objektni model podataka

PRIMJER: Objektni PRIMJER: Objektni model poduzeća model poduzeća NOVANOVA

Page 39: Objektni model podataka

Partner – klasa u Partner – klasa u kojoj nema pojava kojoj nema pojava objekata; objekata; specijlizira se na specijlizira se na klase Kupac i klase Kupac i DobavljačDobavljač

Kupac može Kupac može istovremeno biti i istovremeno biti i DobavljačDobavljač

Page 40: Objektni model podataka

Pripremili i prilagodili...Pripremili i prilagodili...

Page 41: Objektni model podataka

Nije Đelo Hađiselimović...Nije Đelo Hađiselimović...

Page 42: Objektni model podataka

Redom pojavljivanja:Redom pojavljivanja:

Ime i prezimeIme i prezime Ime i prezimeIme i prezime Ime i prezimeIme i prezime Ime i prezimeIme i prezime Ime i prezimeIme i prezime