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

Slides:



Advertisements
Hasonló előadás
ADATBÁZISOK.
Advertisements

Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
Programozás III STRING-XML.
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
EE/R adatmodell (Extended E/R) 1 Az objektum orientált szemlélet elterjedésével egyre nőtt az igény az olyan SDM (Semantic Data Model) modellek iránt,
Programozás III KOLLEKCIÓK 2..
Objektum-orientált adatbázisok Alapfogalmak
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
Vizuális modellezés Uml és osztálydiagram UML eszközök
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 5. Gyakorlat Öröklődés, virtuális függvények,
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Mutatók, tömbök, függvények
Java Típuskonverziók.
Készítette: Sárközi Anikó
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Adatbázis-kezelés ACCESS program:
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Java programozási nyelv 5. rész – Osztályok III.
JSP és JavaBean JavaServer Pages és Java Beans Fabók Zsolt Általános Informatikai Tanszék Miskolci Egyetem.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
1. előadás. 1.) Szoftverfejlesztés, mint mérnöki tevékenység. Számítási eszközfejlődés. Számítási eszközfejlődés: hazai viszonyok. Mérföldkő: Simula 67.Klasszikus.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Adatbázis-kezelés Papp-Varga Zsuzsanna. Elérhetőségek    as.
Az UML kiterjesztési lehetőségei
Objektumok. Az objektum információt tárol, és kérésre feladatokat hajt végre. Az objektum adatok (attribútumok) és metódusok (operációk,műveletek) összessége,
Objektumorientált adatbázisok és szabványok Ispány Márton.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
DDL – Adatdefiníciós nyelv
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Adatbázis-kezelés SQL-lel
Készítette: Tóth Ervin
Adatbázis-kezelés JAG,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
Adatbázis kezelés.
Adatbázis-kezelés.
Egyenesvonalú (lineáris) adatszerkezetek
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
C Programozási alapok.
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
1 Objektum orientált programozás Az objektumok és az osztályok – példányosodás Nagy Szilvia.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Félcsoport (semigroup) = ({s},{ *: s s  s [infix]}. semigroup is a type specification = sorts: s oprs: *: s s  s [infix] eqns: m 1, m 2, m 3  s (m 1.
Adatbázisszintű adatmodellek
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Programozás III JPA.
Bevezetés Adatbázisok használata. Mi is az adatbázis? Az adatbázisok ma már az élet számos területén alapvető fontossággal bírnak (Google, Amazon, Flickr,
A szoftver mint komplex rendszer: objektumorientált megközelítés.
Strukturális tervezési minták
Programozási nyelvek típusossága.
Hibernate / EclipseLink / OpenJPA összehasonlítás
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Logisztikai projekt - gyakorlat Adatbázis-elmélet
Adatbázis-kezelés.
OOP és Python Vincellér Zoltán.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Függvénysablonok használata
Előadás másolata:

Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press Irodalom: Cattel, Barry: The Object Data Standard: ODMG 3.0, Academic press http://www.dwmantra.com/dwconcepts.html http://www.tutorialspoint.com/dwh/dwh_olap.htm https://faisalsikder.wordpress.com/2010/02/04/brief-overview-of-data-warehouse/

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

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

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

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)

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 {...};

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.

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.

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.

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.

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.

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.

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.

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.

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

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(); };

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.

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.

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.

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.

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

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ő

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.

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.

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>

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

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

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;

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.

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.

Objektum Modell– Literálok Ekvivalencia …

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.

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.)

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; };

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.

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.

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.

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 .

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.

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).

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.

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ó.

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.