1 Sramó András Adatbázis-technológia VI. előadás Adatbázis-technológia 6. előadás Objektum-orientált adatbázisok
2 Sramó András Adatbázis-technológia VI. előadás Az előadás célja felvázolni az objektum-orientált szemlélet kialakulását; ismertetni az objektum-orientált adatmodell alapfogalmait; bemutatni az objektum-orientált szemlélet alkalmazását az adatbázis-technológiában összehasonlítva a relációs adatbázisokkal; ismertetni az objektum-orientált adatbázis-kezelő rendszerek legfontosabb tulajdonságait.
3 Sramó András Adatbázis-technológia VI. előadás Az előadás vázlata Az objektum-orientált szemlélet. Objektum-orientált adatmodellek alapfogalmai. Objektum-orientált adatbázisok tervezése. Objektum-orientált adatbázis-kezelő rendszerek.
4 Sramó András Adatbázis-technológia VI. előadás Új adatbázis-alkalmazások Az adatfeldolgozás jellegű alkalmazásokhoz tervezett adatmodellek nem felelnek meg az olyan új techno- lógiáknak, mint a számítógéppel segített tervezés (CAD), számítógéppel segített szoftvertechnológia (CASE), multimédia és képi adatbázisok, doku- mentum és hipertext adatbázisok. Ezek az új alkalmazások egy adatbázis-rendszertől olyan tulajdonságok kezelését igénylik, mint –összetett adattípusok; –adatrejtés és absztrakt adatszerkezetek; –új módszerek az indexelésre és a lekérdezésre.
5 Sramó András Adatbázis-technológia VI. előadás A válasz az objektum-orientált szemlélet lett, amely azon alapszik, hogy az adatokat és az adatokat kezelő programkódot egy egységbe, az objektumba fog-lalja össze. Az objektum-orientált adatmodell - az egyed- kapcsolat diagramhoz hasonlóan - egy logi-kai modell.
6 Sramó András Adatbázis-technológia VI. előadás Objektum-orientált adatbázis-kezelő rendszerek elméleti háttere ADATBÁZIS- TECHNOLÓGIA OBJEKTUM- ORIENTÁLT PROGRAMOZÁS OBJEKTUM- ORIENTÁLT ADATBÁZIS Perzisztens tulajdonságok Objektum- orientált tulajdonságok
7 Sramó András Adatbázis-technológia VI. előadás Objektum-orientált szemlélet története Nygard és Dahl definiálja a SIMULA programnyelvet (osztályfogalom) A XEROX megjelenteti a Smalltalk program- nyelvet (objektum-orientált kifejezés születése) A Smalltalk újabb változata, eredmények publikálása C++ programnyelv első kereskedelmi változata Első kereskedelmi objektum-orientált adatbázis- kezelő rendszer.
8 Sramó András Adatbázis-technológia VI. előadás Objektum-orientált adatmodellek alapfogalmai Objektum Tulajdonság Viselkedés Módszer Osztály
9 Sramó András Adatbázis-technológia VI. előadás Objektum Az objektum-orientált modellben az objektum az adatmodellezés “egyed” fogalmának felel meg. Az objektum identitása nem a tulajdonságain alapszik. Az objektum felfogható, mint változók, üzenetek és módszerek halmaza. Az adatok fizikai reprezentációja csak az objek-tum tervezője számára láthatóak. Az üzenetek és a módszerek biztosítják az objek-tum külső csatoló felületét.
10 Sramó András Adatbázis-technológia VI. előadás Tulajdonság Az objektum állapotát az objektum tulajdonságai írják le. Egy objektum tulajdonságai egy reláció előfordu- lásának feleltethetők meg. Az objektum tulajdonságait az objektum változó-iban tároljuk. A tulajdonságokat elemi típusok (egész, valós, karakteres stb.) vagy ún. típuskonstruktorok (adatszerkezet-definíciók) határozzák meg. Egy tulajdonság előfordulása objektum is lehet.
11 Sramó András Adatbázis-technológia VI. előadás Viselkedés A viselkedés az objektum állapotváltozásainak sorozata. Az objektum viselkedése határozza meg, hogy hogy milyen válaszokat ad az objektumhoz küldött üzenetekre. Egy üzenet paraméterezhető; a paraméterek száma lehet nulla, egy vagy több. A viselkedés nemcsak az üzenettől, hanem az objektum állapotától (tulajdonságainak aktuális értékétől) is függ.
12 Sramó András Adatbázis-technológia VI. előadás Módszer I. A módszerek általános célú programnyelven írt programok, amelyek a következő tulajdonságokkal rendelkeznek: –közvetlenül csak az objektumban tárolt változókat érihetik el; –más objektumokban tárolt adatokat csak üzenet- küldéssel/fogadással érhetnek el.
13 Sramó András Adatbázis-technológia VI. előadás Módszer II. A módszerek határozzák meg az objektum viselkedését, biztosítják azokat a funkciókat, amelyeket az objektumtól elvárunk. A módszerek dolgozzák fel az objektumhoz érkező üzeneteket. Egyedül a módszerek képesek megváltoztatni az objektum állapotát (tulajdonságainak értékét).
14 Sramó András Adatbázis-technológia VI. előadás Megjegyzés Egy egyed minden tulajdonságát egy változóval és minimum két módszerrel kell reprezentálni az egyednek megfelelő objektumban: –a változó tartalmazza a tulajdonság aktuális értékét; –az egyik módszer kiolvassa és üzenetként elküldi a tulajdonság aktuális értékét; –a másik módszer beállítja (egy új értékre) a tulajdonság értékét.
15 Sramó András Adatbázis-technológia VI. előadás Objektum felépítése TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer
16 Sramó András Adatbázis-technológia VI. előadás TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer Objektum felépítése Az objektum saját memóriája, ahol az objektum (aktuális) tulajdonságait a változókban tárolja. Az objektum saját memóriája, ahol az objektum (aktuális) tulajdonságait a változókban tárolja.
17 Sramó András Adatbázis-technológia VI. előadás TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer Objektum felépítése Azok a módszerek, amelyek meghatározzák az objektum tulaj- donságaival végezhető műveleteket. Azok a módszerek, amelyek meghatározzák az objektum tulaj- donságaival végezhető műveleteket.
18 Sramó András Adatbázis-technológia VI. előadás Az üzenet Üzenet Egy konkrét módszer egy üzenet érkezésével aktivizálódik. TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer
19 Sramó András Adatbázis-technológia VI. előadás Módszer végrehajtása Csak egy konkrét módszer képes a saját memóriában tárolt tulajdonságokat megváltoztatni. Üzenet TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer
20 Sramó András Adatbázis-technológia VI. előadás A válasz 2. módszer A módszer egy választ generál, amely vagy az objektum egy tulajdonságának megváltoztatása, vagy üzenetküldés egy másik objektumnak. TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer Válasz
21 Sramó András Adatbázis-technológia VI. előadás Közös csatoló felület Közös csatoló felület (interfész) Azok az üzenetek, amelyekre az objektum képes választ generálni, az objektum közös csatoló felületét alkotják. TULAJDON- SÁGOK 1. módszer n. módszer 2. módszer
22 Sramó András Adatbázis-technológia VI. előadás Osztály Az osztály a hasonló tulajdonságokkal és viselkedéssel rendelkező objektumok csoportja. Egy osztály minden objektuma azonos változótí- pusokkal, üzenet-felülettel és módszerekkel ren- delkezik. Minden objektum egy osztályhoz tartozik. Az osztály objektumai csak a tulajdonság-érté- kekben különbözhetnek. Az adatmodellben az osztály is egy objektum. Az osztály rögzíti a helyét az öröklési gráfban.
23 Sramó András Adatbázis-technológia VI. előadás Objektum-orientált adatmodellek jellemzői Információrejtés Öröklés Sémafejlődés Objektum-azonosság
24 Sramó András Adatbázis-technológia VI. előadás Információrejtés Az objektum tulajdonságai kívülről nem láthatók és nem elérhetők, csak a módszereken keresztül. Közös csatoló felület (interfész) 1. módszer n. módszer 2. módszer
25 Sramó András Adatbázis-technológia VI. előadás Az információrejtés problémái Az ideális információrejtés megvalósításának két hátránya van: adatok írására és olvasására adatonként külön módszerek kellenek: ez nagyszámú triviális mód- szer megírását jelenti (lásd a korábbi megjegyzést); az adatelérés a módszerek behívása miatt jelentősen lelassul. Adatbázisok esetében célszerű az információrejtés részleges feloldása.
26 Sramó András Adatbázis-technológia VI. előadás Öröklés Egy osztály úgy is definiálható, hogy szerkezetét és viselkedését más osztály(ok)tól örökölje. Az öröklés lehet egyszeres vagy többszörös. Egyszeres öröklés esetén az osztály szerkezete és viselkedése egyetlen szuperosztálytól származik. Többszörös öröklés esetén az osztály több szuper- osztálytól kapja szerkezetét és viselkedését. Objektum-orientált adatbázis-kezelő rendszerek a többszörös öröklést támogatják.
27 Sramó András Adatbázis-technológia VI. előadás Példa öröklésre Egy bank ügyfeleinek osztálya hasonló a bank alkalmazottainak osztályához, mivel mindkettőben találhatók azonos változók és módszerek, például a névre és a címre vonatkozóan. Mindkettő tartalmaz olyan változót, amelyik csak az adott osztályra jellemző, mint például felvett hitel vagy bér. Minden ügyfél és alkalmazott személy, így ezek az osztályok felfoghatók egy személy osztály speci- alizációjaként.
28 Sramó András Adatbázis-technológia VI. előadás A példa folytatása Ha létrehozzuk a személy, alkalmazott és ügyfél osztályokat, akkor –a minden személyhez kapcsolódó változók és módsze-rek a személy osztályba kerülnek; –az alkalmazottakhoz, illetve az ügyfelekhez kapcsolódó változók és módszerek az alkalmazott, illetve az ügyfél osztályba kerülnek; –a személy osztályhoz tartozó változók és módszerek öröklődnek az alkalmazott és ügyfél osztályokra.
29 Sramó András Adatbázis-technológia VI. előadás Osztályhierarchia öröklési gráfja személy ügyfélalkalmazott ügyintézőpénztáros4 órás8 órás 4 órás ügyintéző 8 órás ügyintéző 4 órás pénztáros 8 órás pénztáros titkár egyszeres öröklés többszörös öröklés
30 Sramó András Adatbázis-technológia VI. előadás A többszörös öröklés problémái Egy osztály újradefiniálhat egyik szuperosztályá-ból származó módszert vagy tulajdonságot. Egy osztály örökölhet olyan módszereket, amelyek konfliktusban vannak egymással; Egy osztály örökölhet olyan tulajdonságokat, amelyeknek a különböző szuperosztályokban azonos a nevük. Ezeknek a konfliktusoknak a feloldása az öröklési gráf alapos ellenőrzését igényli.
31 Sramó András Adatbázis-technológia VI. előadás Sémafejlődés A valós világban lezajló változások követése érde- kében biztosítani kell az objektumok szerkezeté-nek és viselkedésének módosíthatóságát. A hatékony működés szempontjából is szükség lehet az osztálydefiníció módosítására. A módosításokat úgy kell megvalósítani, hogy lehetőleg ne legyen szükség a teljes adatmodell ellenőrzésére.
32 Sramó András Adatbázis-technológia VI. előadás Az osztálydefiníció módosításának problémái Régi és új definíció alapján létrejött objektumok egyidejű létezése. Ellenőrzések időszükséglete. Két módszer: Közvetlen változtatás: egy osztály minden előfordulását közvetlenül módosítjuk az új definíció szerint. Késleltetett változtatás: az előfordulások módosítását addig késleltejük, amíg hivatkozás nem történik rájuk.
33 Sramó András Adatbázis-technológia VI. előadás Objektum-azonosság Minden objektumnak egyedi azonosítója van, amely –automatikusan generálódik az objektum létrehozásakor; –megsemmisül az objektum törlésekor; –módosíthatatlan. Előnyök: –egyértelmű azonosítást tesz lehetővé; –nem kell különböző kulcsokat definiálni; –az alkalmazások könyebben bővíthetők.
34 Sramó András Adatbázis-technológia VI. előadás Azonosítók összehasonlítása Elsődleges kulcs érték-alapú egy reláción belül egyedi felhasználó által definiált módosítható* újrahasználható Objektum-azonosító nem érték-alapú az adatbázison belül egyedi rendszer által generált nem módosítható sohasem használható újra