Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press

Hasonló előadás


Az előadások a következő témára: "Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press"— Előadás másolata:

1 Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press
Irodalom: Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press

2 ODMG ODMG szabvány Az objectum adatbázis-kezelő rendszerek és az objektum relációs rendszerek implementálják. ODMG – Object Data Managemet Group Az objektum adatbázis-kezelő rendszerek (Object database management systems - ODBMS) közvetlenül az objektumokat tárolják Object-to Database Mappings (ODM) az objektumokat átkonvertálják és tárolják egy relációs vagy más adatbázisrendszerre. Az ODBMS-t és az ODM-t együtt objektum adatkezelő rendszereknek (Object data management systems - ODMS) hívjuk. ODMG teszi lehetővé, hogy a különböző szállítók közös objektum interfészt használjanak, támogassanak, melynek a segítségével adatbázis alkalmazásokat lehet készíteni. A szabvány specifikációhalmaza lehetővé teszi, hogy a fejlesztők hordozható alkalmazásokat írjanak (adat séma, programozási nyelvi kötés, adat módosítás és lekérdező nyelv) Put forward javasol

3 ODMG 3.0 A szabvány érett (mature) és stabil 2001-ben adták ki
Az ODMG azóta feloszlott. Disband: feloszlat

4 ODMG ODBMS egy olyan DBMS, amely egyesíti az adatbázis képességeit az objektum-orientált programozási nyelvi képességekkel. ODM egy olyan rendszer, amely egyesíti a relációs vagy más nem objektum DBMS-eket az objektum orientált programozási nyelvi képességekkel. ODM-ek objektum-relációs leképező (mapping) termékeket és objektum alkalmazás szervert tartalmaznak. Az ODMS mindkét típusa az adatbázis-objektumokat mint programozási nyelvbeli objektumokat jeleníti meg egy vagy több létező programozási nyelvben. Put forward javasol

5 ODMG 3.0 A fő részei Object Model Object Specification Language
Object Definition Language (ODL) Object Interchange Format (OIF) Object Query Language (OQL) Language Bindings (C++, Smalltalk, Java)

6 Object Model Az objektum modell az ODMS-ben explicit meghatározható szemantikák fajtáit határozza meg. Az Objektum modell szemantikája meghatározza az objektum jellemzőit, azt, hogy azt objektumok hogyan viszonyulnak egymáshoz, és azt, hogy az objektumokat hogyan lehet elnevezni és azonosítani.

7 Object Model Az objektum modell a következő, az ODMS által támogatott elemeket definiálja: Az alap modellező primitív az objektum és a literal. Minden objektumnak van egy egyedi azonosítója. A literálnak nincs azonosítója. Az objektumok és a literálok csoportosíthatóak a típusaik alapján. Ugyanolyan típusú elemeknek ugyanaz az állapotaiknak a tartománya (ugyanolyan attribútumaik vannak) és ugyanaz a viselkedésük (ugyanolyan műveleteik vannak). Egy objektumra gyakran a típus példányaként hivatkozunk.

8 Object Model Az objektum modell a következő, az ODMS által támogatott elemeket definiálja: Egy objektum állapotát a tulajdonságaikban (property) hordozott értékekkel definiáljuk. A tulajdonságok lehetnek az objektumok attribútumai vagy kapcsolatok az objektum és egy vagy több más objektum között. Általában az objektumok tulajdonságainak értékei idővel változnak.

9 Object Model Az objektum modell a következő, az ODMS által támogatott elemeket definiálja: Egy objektum viselkedését az objektumon végrehajtható műveletek halmazával definiálhatjuk. A műveleteknek lehetnek input és output paraméterei (meghatározott típussal). Az egyes műveletek egy típussal rendelkező eredménnyel térhetnek vissza. Az ODMS objektumokat tárol, lehetővé téve megosztásukat több alkalmazás és felhasználó között. Az ODMS egy sémán alapszik, amelyet ODL-ben definiálhatunk és a sémában definiált típusok példányait tartalmazzák.

10 Object Model Az objektum modell lényegesebben gazdagabb szemantikát tartalmaz, mint a relációs modell, mivel itt explicit adhatunk meg kapcsolatokat és műveleteket.

11 Objektum Modell – Specifikáció és Implementáció
Egy típus definíciójának két nézőpontja van. Egy típusnak van egy külső specifikációja És egy vagy több implementációja. A specifikáció a típus külső jellemzőit határozza meg. Ezeket a jellemzőket láthatják a felhasználók: a műveleteket, amelyeket a példányaira meg lehet hívni, a tulajdonságaikat, vagy azon változók állapotait, amelyeket el lehet érni, és a kivételeket, amelyeket a műveletek kiválthatnak. Egy típus implementációja meghatározza a típus objektumainak a belső jellegét: a típus műveleteinek az implementációját és más belső részleteket. Egy típus implementációját a nyelvi kötés (a language binding) határozza meg.

12 Objektum Modell – Specifikáció és Implementáció
külső specifikáció Egy interfész definíció egy objektum típusnak csak az absztrakt viselkedését határozza meg. Egy osztály definíció egy objektum típus absztrakt viselkedését és absztrakt állapotát határozza meg. Egy osztály egy kiterjesztett interfész, amely az ODMS séma definíciójának információjával rendelkezik. Egy literál definició a literál típusnak csak az absztrakt állapotát definiálja.

13 Objektum Modell – Specifikáció és Implementáció
Egy objektum típus implementációja a következőket tartalmazza: egy reprezentációt és metódusok halmazát. A reprezentáció egy adatstruktúra, amelyet a nyelvi kötés a típus absztrakt állapotából származtat: Az absztrakt állapot minden tulajdonságához létezik egy megfelelő típusú példányváltozó. A metódusok eljárástörzsek, amelyeket a nyelvi kötés a típus absztrakt viselkedéséből származtat: A típus absztrakt viselkedésében definiált minden művelethez egy metódus van definiálva. Ez a metódus implementálja egy objektum típus külső látható viselkedését. Egy metódus olvashat vagy módosíthat egy objektum állapotának reprezentációján vagy más objektumon definiált műveleteket hívhat meg. Az implementációban lehetnek olyan metódusok, amelyeknek nincs közvetlen másolatuk a típus specifikáció műveleteihez. Az implementáció tartalma nem látható az objektum felhasználója számára.

14 Objektum Modell – Specifikáció és Implementáció
A nyelvi kötések definiálnak a literál típusok leképezéséhez egy implementációt. Egy típusnak lehet egynél több implementációja, bár általában minden program egy implementációt használ.

15 Objekum Modell – Altípusok és viselkedésöröklődés
Az objektum modell öröklődés alapú típus-altípus kapcsolatot tartalmaz. Szupertípus <-> altípus, (is-a kapcsolat, ISA kapcsolat, generalization-specialization kapcsolat) A szupertípus általánosabb típus, az altípus részletesebb. interface Employee {...}; interface Professor : Employee {...}; interface Associate_Professor : Professor {...};

16 Objekum Modell – Altípusok és viselkedésöröklődés
Egy objektum legrészletesebb típusa (most specific type) az a típus, amely a példány minden viselkedését és tulajdonságát leírja. Associate_Professor objektum legrészletesebb típusa az Associate_Professor interfész, amely magában hordozza a Professor és az Employee interfészek információit.

17 Objekum Modell – Altípusok és viselkedésöröklődés
Egy altípus interfész a szupertípusa kiegészítéseként jellemzőket adhat meg. Ezek a új kiegészítők csak az altípus példányaira (illetve annak altípusaiban) alkalmazhatóak. Egy altípus interfész úgy pontosítható, hogy állapotot és viselkedést határoz meg. Az Employee típusnak lehet egy calculate_ paycheck nevű művelete. A Salaried_Employee és Hourly_Employee osztály megvalósítások finomíthatják a viselkedést, hogy az visszatükrözze az ő saját szükségleteiket. Az objektum programozás polimorfikus természete lehetővé teszi a megfelelő viselkedés futási időben történő meghívását a példány aktuális típusától függően.

18 Objekum Modell – Altípusok és viselkedésöröklődés
Az ODMG Object Model támogatja az objektum viselkedés többszörös öröklődését. Lehetséges, hogy egy típus olyan műveletekből származik, amelyeknek ugyanaz a nevük, de más a paraméterük és két különböző interfészből származnak. A model kizárja ezt a lehetőséget azzal, hogy az öröklődés során nem engedélyezi a nevek túlterhelését.

19 Objekum Modell – Altípusok és viselkedésöröklődés
ODL osztályokat a nyelvi kötések a programozási nyelv közvetlenül példányosítható osztályaira képzik le. Az interfészek olyan típusok, amelyek közvetlenül nem példányosíthatóak. Az altípusok csak viselkedésöröklést tesznek lehetővé, az interfészek öröklődhetnek más interfészekből, az osztályok interfészekből öröklődhetnek. Az interfészek nem öröklődhetnek osztályokból és az osztályok sem öröklődhetnek más osztályokból.

20 Objekum Modell – Állapot öröklés
Az Objektum Modell definiál egy EXTENDS kapcsolatot az állapot és a viselkedés öröklődésre. Az EXTENDS kapcsolat csak objektum típuson alkalmazható, ezért csak osztályok (és literálok nem) örökölhetnek állapotot. Az EXTENDS kapcsolat egy egyszerű öröklés kapcsolat két osztály között, ahol az alárendelt osztály örökli az általa kibővített osztály minden tulajdonságát és viselkedését. Az EXTENDS kapcsolat tranzitív.

21 Objektum Modell – Terjedelem (Extent)
Egy típus terjedeleme (extent) egy adott ODMS-en belül a típus összes példányának a halmaza. Ha egy objektum egy A típus példánya, akkor szükségszerűen az A terjedelmének egy eleme. Ha A típus altípusa B típusnak, akkor A terjedelme B terjedelmének részhalmaza. A terjedelem karbantartása magában foglalja az újonnan létrehozott példány beszúrását a halmazba és a törölni kívánt példány eltávolítását a halmazból.

22 Objektum Modell– Kulcsok
Egy típus egyedi példányait egyértelműen lehet azonosítani olyan értékekkel, amelyeket valamilyen tulajdonság vagy tulajdonsághalmaz hordoz. Ezeket az azonosító tulajdonságokat kulcsoknak hívják. A relációs modell kulcsjelöljeinek felel meg. Az egyszerű kulcs egy egyszerű tulajdonságból áll. Az összetett kulcs tulajdonságok egy halmazából áll. Az egyediség határköre a típus terjedelme; így egy típusnak kell lennie terjedelmének, hogy legyen kulcsa.

23 Objektum Modell– Objektumok
Az objektumhoz kapcsolódó szempontok: Létrehozás, amely arra a módra utal, ahogy a programozó az objektumot létrehozza. Azonosító, amelyet az ODMS használ, hogy egy objektumot megkülönböztessen egy másiktól, és hogy megtaláljon egy objektumot. Név, amelyet a programozó vagy a végfelhasználó adott, hogy kényelmesen hivatkozhasson egy objektumra. Élettartam, amely meghatározza, hogy az objektum számára lefoglalt memóriát és tárat hogyan kezeli a rendszer. Struktúra, amely lehet atomi vagy több más objektum összetétele.

24 Objektum Modell– Objektumok
Létrehozás Az objektumok úgy jönnek létre, hogy a nyelvi kötési implementációja meghívja a létrehozó műveletet egy factory interfészen, amely egy factory objektummal látja el a programozót. interface ObjectFactory { Object new(); }; Egy perzisztens objektum minden elérés, létrehozás, módosítás és törlés műveletét egy tranzakció hatáskörében kell létrehozni. Persistent: állandó, tartós

25 Objektum Modell– Objektumok
Létrehozás Minden objektum rendelkezik a következő ODL interfésszel, amelyet minden felhasználó által definiált objektum definíciója implicit módon örököl. interface Object { enum Lock_Type{read, write, upgrade}; void lock(in Lock_Type mode) raises(LockNotGranted); boolean try_lock(in Lock_Type mode); boolean same_as(in Object anObject); Object copy(); void delete(); };

26 Objektum Modell– Objektumok
Létrehozás Az objektum azonosságának az összehasonlítása a same_as művelettel történik. A copy művelet a kapott objektummal megegyező objektumot hoz létre. Az új objektum nem ugyanaz (“same as”), mint az eredeti objektum. A létrehozott objektumokat a delete művelettel lehet az ODMS-ből törölni. A művelet eltávolítja az objektumot a memóriából is. A Lock_Type, lock, try_lock a zárolási stratégiához tartozik.

27 Objektum Modell– Objektumok
Objektum azonosítók Az objektumot a storage domain-jén belül mindig meg lehet különböztetni más objektumoktól. Az ODMG Object Model-jében a storage domain az ODMS. Egy ODMS-en belül az objektum minden azonosítója egyedi. Egy objektum azonosítójának a reprezentációjára az objektum azonosítójaként hivatkozhatunk. Egy objektum megtartja az objektum azonosítóját a teljes élettartamára. Egy objektum azonosítója soha nem változik. Az objektum ugyanaz marad akkor is, ha az attribútumai vagy a kapcsolatai változnak. Egy objektum azonosítóját általában úgy használják, hogy az egyik objektum hivatkozik egy másikra.

28 Objektum Modell– Objektumok
Objektum azonosítók Az objektum azonosítója nem felel meg a relációs modell elsődleges kulcsának. A literáloknak nincs saját azonosítójuk és nem szerepelhetnek objektumként. Az objektum azonosítóját az ODMS generálja és nem az alkalmazások.

29 Objektum Modell– Objektumok
Objektum nevek Egy objektumnak lehet egy vagy több neve. A neveknek a programozó vagy a felhasználó számára van jelentésük. Az ODMS biztosít egy olyan függvényt, amely az objektum nevét leképezi egy objektumra. Az objektumnevek olyanok, mint a globális változók a programozási nyelvekben. A kulccsal nem egyeznek meg. A név egyediségének a hatásköre egy ODMS.

30 Objektum Modell– Objektumok
Objektumok élettartama Egy objektum élettartama meghatározza, hogy az objektumhoz lefoglalt memóriát és tárat hogyan kezeli a rendszer. Egy objektum élettartama akkor határozódik meg, amikor az objektum létrejön. Az objektum modell kétféle élettartamot támogat:: tranziens perzisztens

31 Objektum Modell– Objektumok
Objektumok élettartama Tranziens Az objektum a programozási nyelv futtató környezete által kezelt lefoglalt memória. Néhány tranziens objektumot egy eljárás fejében deklaráltak és a programozási nyelv futtató környezete által az eljárás meghívásakor létrehozott lefoglalt memóriát képviseli. Amikor az eljárás befejezi működését, a memória felszabadul. Más tranziens objektumok egy folyamathoz tartoznak, és a programozási nyelvi rendszer foglal le helyet számukra a memóriában. Amikor a folyamat befejezi működését, a memória felszabadul. Transient: ideiglenes, átmenő

32 Objektum Modell– Objektumok
Objektumok élettartama Perzisztens Egy objektum az ODMS futtató rendszere által kezelt lefoglalt memória és tár. Ezek az objektumok azután is léteznek, hogy az őket létrehozó folyamat vagy eljárás befejezte működését.

33 Objektum Modell– Objektumok
Objektum struktúra Atomi Az atomi objektumtípus a felhasználó által van definiálva. Nincs beépített atomi objektum az ODMG Objektum Modelljében. Kollekció objektumok A kollekció objektumok példányai különböző elemekből vannak összeállítva, ahol az elemek egy atomi típus, egy másik kollekciótípus vagy egy literál típus példányai lehetnek. A kollekció minden elemének ugyanolyan típusúnak kell lennie Strukturált Objektumok Minden strukturált objektum támogatja az Object ODL interfészt.

34 Objektum Modell– Objektumok
Objektum struktúra Kollekció objektumok Az ODMS objektum modellje a következő kollekciókat támogatja: • Set<t> • Bag<t> • List<t> • Array<t> • Dictionary<t,v>

35 Objektum Modell– Objektumok
Objektum struktúra Strukturált Objektumok Az ODMG Objektum modellje a következő strukturákat definiálja: Date Interval Time Timestamp

36 Objektum Modell– Literálok
Literálokhoz kapcsolódó szempontok: típusok másolás összehasonlítás ekvivalencia

37 Objektum Modell– Literálok
Típusok atomi literal long, long long, short, unsigned long, unsigned short, float, double, boolean, octet, char (character), string, enum Enum típusgenerátor. attribute enum gender {male, female}; Kollekció literál minden kollekciótípushoz Strukturált literál Minden beépített struktúratípushoz létezik És létezik felhasználó által definiált struktúra struct Address { string dorm_name; string room_no; }; attribute Address dorm_address;

38 Objektum Modell– Literálok
Másolás A literáloknak nincs azonosítójuk, ezért nem lehet megosztani őket. A literáloknak van másolási szemantikájuk. Például, ha egy literál kollekción iterálunk végig, az elemek másolatát kapjuk vissza. Ha egy objektum literál értékű attribútumát adjuk vissza, akkor a literál értékének másolata kerül vissza.

39 Objektum Modell– Literálok
Összehasonlítás Mivel a literáloknak nincs objektum azonosítójuk, nem lehet őket összehasonlítani az azonosítójukkal (azaz a same_as művelettel). Ezért az egyenlőség ekvivalencia művelettel lesznek összehasonlítva.

40 Objektum Modell– Literálok
Ekvivalencia

41 Objektum Modell Az ODMG Object Model erősen típusos. Minden objektumnak és literálnak van típusa és minden operátor típusos operandusokat vár. Két objektumnak vagy literálnak akkor és csakis akkor ugyanaz a típusa, ha ugyanolyan nevű típus példányaiként vannak deklarálva. A típusok között az objektum modell nem biztosít implicit konverziót. Két atomi literálnak ugyanaz a típusa, ha ugyanahhoz a literálhalmazhoz tartoznak.

42 Objektum Modell - Tulajdonságok
Az osztály tulajdonságok halmazát definiálja, megadva, hogy mely felhasználók érhetik el és bizonyos esetekben mely felhasználók módosíthatják közvetlenül az osztály példányának az állapotát. A tulajdonságokból két fajtát definiál az Object Model, az attribútumot és a kapcsolatot. Egy attribútumnak egy típusa van. A kapcsolatot két típus között definiáljuk, mindkettőnek rendelkeznie kell az objektum azonosítójával hivatkozható példányokkal. (A literál típusok nem vehetnek részt a kapcsolatban, mert nincs azonosítójuk.)

43 Objektum Modell - Tulajdonságok
Attribútum Egy osztály attribútumdeklarációi definiálják egy példány absztrakt állapotát. class Person { attribute short age; attribute string name; attribute enum gender {male, female}; attribute Address home_address; attribute set<Phone_no> phones; attribute Department dept; };

44 Objektum Modell - Tulajdonságok
Kapcsolat A kapcsolatot típusok között határozzuk meg. Az Object Model csak a bináris kapcsolatokat támogatja. Egy bináris kapcsolat lehet 1:1, 1:n, n:m.

45 Objektum Modell - Tulajdonságok
Kapcsolat A relációkat a traversal path-ok deklarációjával explicit definiálhatjuk. Ez lehetővé teszi, hogy az alkalmazások a kapcsolatban résztvevő objektumok közötti logikai összeköttetést használják. A traversal path-okat párokban deklarálják, azaz a kapcsolat mindkét irányához megadják. Egy reláció mindkét traversal path-ához meg kell adni az ellentétes irányt is az inverse kulcsszóval. class Professor { relationship set<Course> teaches inverse Course::is_taught_by; } class Course { relationship Professor is_taught_by inverse Professor::teaches; A teaches-ben definiált kapcsolat és az is_taught_by (traversal path) kapcsolat egy 1:n típusú kapcsolatot valósít meg a Professor és a Course között.

46 Objektum Modell - Tulajdonságok
Kapcsolat Az ODMS felelős a kapcsolatok hivatkozási integritásának a kezeléséért. Ez azt jelenti, hogy ha egy objektum részt vesz egy kapcsolatban, és töröljük, akkor minden, az objektumhoz vezető utat törölni kell.

47 Objektum Modell - Műveletek
Az attribútumok és a kapcsolatok mellett a típus másik jellemzője a viselkedés, amelyet műveleti szignatúrákkal adhatunk meg. A szignatúra definiálja a művelet nevét, az argumentumok típusát és nevét, a visszatérési értékük típusát, és azoknak a kivételeknek a nevét, amelyeket a művelet kiválthat. Az Object Model műveletekre vonatkozó specifikációja megegyezik a OMG CORBA műveletekre vonatkozó specifikációjával .

48 Object Model - Műveletek
Egy műveletet egy típuson lehet definiálni (egy osztályban vagy interfészben). A művelet nevének egyedinek kell lennie egy típuson belül. Különböző típusoknak lehet ugyanolyan nevű művelete. Ezeket a műveleteket túlterheltnek nevezzük. A műveletnek lehetnek mellékhatásai. Néhány művelet nem ad vissza értéket.. Az Object Model a műveletek szekvenciális végrehajtását feltételezi. Nem szükséges a konkurens és a párhuzamos műveleteket támogatni, de nem zárja ki azt, hogy az ODMS kihasználja a többprocesszoros feldolgozást. Az ODMG Object Model dinamikusan kezeli a beágyazott kivételkezelést a befejeződési modell használatával. A műveletek válthatnak ki kivételt és a kivételek kommunikálhatnak kivétel eredményeket.

49 Object Specification Language
A specifikációs nyelveket az ODMG-nek megfelelő object data management systems (ODMS) képviseletére használják. Ezeket a programozási nyelv független specifikációs nyelveket egy ODMS sémájának, műveletének és állapotának a definiálására használják. Ezeknek a nyelveknek az elsődleges céljai, hogy megkönnyítsék az ODMG-nek megfelelő ODMS-ek közötti adatmigrációt. Ezek a nyelvek támogatják a különböző szállítók ODMS-ei közötti együttműködést is. Két specifikációs nyelvet említünk: Object Definition Language (ODL) Object Interchange Format (OIF).

50 Object Specification Language - ODL
Object Definition Language (ODL) Az adatbázis-kezelő rendszerek (DBMS) van adatdefiníciós (using a Data Definition Language or DDL) és adatmanipulációs (using a Data Manipulation Language or DML) nyelve. A DDL-lel hozhatunk létre adattípusokat és interfészeket. DML teszi lehetővé, hogy a program létrehozzon, töröljön, cseréljen, stb. adattípusok példányait. Az ODL csak a műveletek szignatúráit definiálja, és nem célozza azon metódusdefiníciókat, amelyek ezeket a műveleteket megvalósítják. Az ODMG szabvány nem biztosít OML specifikációt.

51 Object Specification Language - OIF
Object Interchange Format – OIF Az Object Interchange Format (OIF) egy specifikációs nyelv, amelyet egy ODMS jelenlegi állapotának állományba vagy állományokba való betöltésére vagy kimentésére használnak. OIF a perzisztens objektumok ODMS-ek közti cseréjére, dokumentálásra, tesztágyak kezelésére használható.

52 Object Query Language - OQL
Lekérdezés inputja és az eredmény Független nyelvként az OQL lehetővé teszi az objektumok lekérdezését a nevükkel, mint az adatbázisba való belépési ponttal kezdve. Egy név bármilyen fajtájú objektumot jelölhet: atomi, struktúra, kollekció, vagy literál. Beágyazott nyelvként az OQL lehetővé teszi a natív nyelv által támogatott objektumok lekérdezését kifejezéseken keresztül, melynek eredménye lehet atomi, struktúra, kollekció vagy literál. Az OQL lekérdezés egy függvény, amely egy olyan objektumot eredményez, amelynek a típusa következhet a lekérdező kifejezésnek adott operátorból.


Letölteni ppt "Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press"

Hasonló előadás


Google Hirdetések