Ugrás a tartalomhoz

Térinformatikai 2., A valós világ modellezésének folyamata

Végső Ferenc (2010)

Nyugat-magyarországi Egyetem

2.4 Az objektum orientált modell

2.4 Az objektum orientált modell

Ha GIS témájú irodalmat olvasunk, egyre gyakrabban bukkan fel az „objektum orientált modell” kifejezés. A fogalom és a módszer először az adatbázis kezelők környezetében jelent meg. Később jött az ötlet, hogy az objektum orientált (OO) modellezés módszerét alkalmazni lehetne a valós világ földrajzi bonyolultságának leírására. Mielőtt erre rátérnénk, egy egyszerű példán keresztül világítsuk meg a „hagyományos” és az OO szemlélet közötti különbséget.

A feladat két szám összeadása: a=1, b=2, c=a+b.

Hagyományos módon a következő történik: vesszük az a-t és a b-t, majd egy előre elkészített függvénnyel (+) elvégezzük a műveletet és az eredményt elhelyezzük a c nevű változóba.

Az OO módszernél vesszük az a objektumot és küldünk neki egy üzenetet (az OO szemléletben az objektumok között üzenetváltások formájában zajlanak a műveletek) ami tartalmazza a „+” jelet és a b-t. Az a objektum fogadja az üzenetet és teljesíti a kívánt eseményt, amely azt mondja, hogy adja hozzá a paraméter értékét önmagához. Létrehoz egy új objektumot, értékül adja neki az eredményt és elküldi ezt az objektumot a c-nek.

Egy egyszerű összeadás esetében a hagyományos módszer szimpatikusabbnak tűnik de biztosak lehetünk benne, hogy a műveletek bonyolultságának növekedésével szembetűnők lesznek a OO módszer előnyei. Ezek az előnyök röviden az alábbiakban foglalhatók össze:

  • „szabad kezet” kapunk egy valós rendszer leképezése esetében

  • a hangsúly a tervezés során a „hogyan csináljuk ?”-ról áttevődik a „mit csináljunk ?” - ra

  • megragadhatjuk a feladat lényeges aspektusait

  • a modell (főleg grafikus formában) áttekinthetőbb

  • a modell módosítása egyszerű, így könnyebben szánjuk rá magunkat alternatívák kidolgozására

Végül idézzük fel az OO szemlélet három alapelvét:

  • polimorfizmus: lehetőséget biztosít arra, hogy kettő vagy több objektum válaszoljon ugyanarra az üzenetre (például a „törlés” parancsra minden objektum ugyanazt a választ adja egy szoftverben).

  • öröklődés: lehetőséget biztosít egy objektumnak, hogy ugyanúgy viselkedjen, mint egy másik objektum, illetve kiterjessze, vagy megcsonkítsa a tulajdonságokat, vagy különleges esetekben másképp viselkedjen

    • egyszerű öröklés: emlősök -> lovak -> csikók

    • többszörös öröklés: lovak és szamarak -> öszvérek.

  • egymásba ágyazás: összegyűjtjük az összes attribútumot és eljárást, ami egy objektumhoz tartozik.

2.4.1 Az objektumok és jelentőségük a GIS-ben

Az előző fejezetekben megismertünk módszereket a valós világ modellezésére és számítógépen való ábrázolására. Ezek az eljárások alkotják a ma használatos GIS rendszerek magvát.

A vektoros vagy raszteres modellezés megismerése során biztosan támadt hiányérzetünk. Valóban le tudjuk képezni a környező világot, mint pontok, vonalak és foltok halmazát? Ha ezt megpróbáljuk megmutatni egy átlagembernek, bizonyára idegenkedni fog az így látott képtől. Hasonlóképpen nehéz modellezni a térbeli egyedek közötti - olykor rendkívül bonyolult - folyamatokat, összefüggéseket. Erre az esetre ígér megoldást az OO modellezés. A térbeli (földrajzi) jelenségek modellezésében az alábbi előnyöket nyújtja az OO szemlélet Peterson és Platt (1993) szerint:

  1. intelligens térbeli egyedek definiálása

  2. az egyedek közötti kapcsolatok modellezhetősége

  3. létrehozhatók valódi dinamikus térbeli modellek

2.4.2 Térbeli modellezés az OO módszerrel

A részletek tárgyalása előtt nézzük meg, mi indokolja az OO módszer használatát a térinformatikában. Erre sok megfogalmazást találunk az irodalomban amelyeknek a közös lényege talán így fogalmazható meg: az OO modell közelebb áll minden másnál a valós világ egyedeihez és eseményeihez szemben a számítástechnikai megközelítéssel. Ráadásul - legalább is elméletileg - a modellezés módszertanának megértése is könnyebb.

Vegyük példának egy farm modellezési problémáját, amely farm működését GIS rendszerrel szeretnénk leírni. Tudjuk, hogy egy farm a valóságban objektumok sokasága: mezőgazdasági táblák, épületek, utak stb. Mindegyiknek van sajátos geometriai jellemzője (mérete, alakja, földrajzi helye), topológiai tulajdonága (az út a tábla széle), mindegyik objektumhoz kapcsolódik valamilyen tevékenység (a táblákon növényt termelnek, az utakon közlekednek, a gazdasági épületekben tárolnak, feldolgoznak stb.) és minden objektumnak van valamilyen viselkedése a másikkal szemben (a csatornából öntözik a táblákat). Az OO megközelítéssel lehetőségünk van olyan modell kifejlesztésére amely a lehető legjobban tükrözi az objektumok tulajdonságait és a többiekhez való viszonyát. Ez nagyon szép elméletben, azonban megkérdezhetjük, hogy hogyan készül ebből egy térinformatikai rendszer? Valóban el kell vetnünk a pontokból, vonalakból és foltokból való építkezés gondolatát? Visszatérve az alapkérdésre (el kell-e vetnünk a pont, vonal, folt koncepciót ?) a válasz nem, viszont el kell látni az alapegyedeket olyan tulajdonságokkal, amelyek jobban tükrözik a valóságos állapotukat, kapcsolataikat. Mit jelent ez a pontokra, vonalakra, foltokra nézve? Térjünk vissza a farm példájára. Képzeljük el, hogy van egy hagyományos GIS modellünk a farmról amely fedvényekből áll és úgy jött létre, hogy a bonyolult valóságot transzformáltuk pontokká, vonalakká, foltokká. Ezeknek az egyedeknek szokás szerint van valamilyen leíró adatuk, amely megmondja a felhasználónak, hogy ez az „A” típusú terület. Ehhez csatlakozik még a geometriai és a topológiai információ, amely megmondja, hogy hol van az „A” terület és kik a szomszédjai. Ebben az esetben ez az összes információ amit rögzítettünk és visszakereshetünk a GIS alkalmazása során. Az OO szemlélet azt sugallja, hogy a geometriai, topológiai és néhány leíró adatnál sokkal több információt kapcsolhatunk az egyedekhez, és nem feltétlenül a pontokat, vonalakat és foltokat kell objektumoknak tekintenünk. Például a valós világban a legtöbb dolog egy csoportnak a tagja, ezért az OO modellezés figyelembe veszi a csoporthoz tartozásra vonatkozó információkat is. A csoporthoz való tartozás két formában is megjelenhet. Az egyik az objektum viselkedését tükrözi a valós világban, a másik leírja az objektum számítógépes megvalósítását. A mezőgazdasági táblát véve példának, mondhatjuk, hogy a foltunk egy tábla, amely „megművelt területek” csoportjába tartozik. Másrészt mondhatjuk, hogy a tábla a számítógép számára egy poligon, amelyet a vonal csoport egyedei alkotnak. Annak a haszna, hogy az egyedeket mint csoport(ok) tagját is definiáljuk, akkor jelentkezik, amikor egyszerű vagy összetett műveletet akarunk elemzés céljából végrehajtani. Ha a farmot akarjuk kirajzoltatni a képernyőre, akkor a programnak nem kell mást tudnia, mint hogy mely táblák alkotják a kérdéses farmot.

A fenti példában csak érintettük az OO szemlélet előnyeit a földrajzi információk modellezésében. Természetesen sokkal több előnye is van, ezek azonban csak részletes adatbázis kezelési ismeretek birtokában, a későbbi fejezetekben ismertetendő lehetőségek áttekintésekor jönnek elő.

2.4.3 Az objektumok modellezésének korábbi módszerei

A 3. és a 4. modulban részletesen foglalkozunk az adatszerkezetekkel, itt csak a történeti fejlődés és az objektum orientált modellezéshez való átvezetés miatt említjük meg ezeket

A CAD adatszerkezet

A CAD (Computerised Automated Design = Számítógéppel Támogatott Tervezés) akkor született, amikor a programok képesek voltak vonalakat rajzolni a képernyőre. Ez az időszak az 1960-as, 1970-es évekre tehető. A CAD adatszerkezet a földrajzi adatokat bináris fájl formájában tárolta és pontokat, vonalakat és zárt poligonokat (felületeket) tárolt csupán. Az objektumok jellemzőit (attribútumait) rétegekre bontással és feliratokkal próbálta reprezentálni. A CAD adatszerkezet a tárolási hely csökkentése és a képernyőre való gyors rajzolás támogatására bevezette a hierarchikus adattárolás módszerét. Minden pontot csak egyszer tárolt és emellett tárolta még a geometriai összefüggéseket (melyik pont mely vonal(ak) része, mely vonal(ak) alkotnak poligont).

9. ábra A CAD adatszerkezet sémája[7]

Ezt az adatszerkezetet indexeléssel ellátva, sikerült teljesíteni a kor már említett követelményeit (hatékony tárolás, gyors rajzolás). Ez az adatszerkezet még ma is él, kiegészítve olyan eljárásokkal, amelyek lehetővé teszik, hogy a rajzi objektumokat egyre több intelligenciával láthassuk el (pl. topológia).

A fedvény szemléletű adatszerkezet

10. ábra A fedvény szemlélet lényege[8]

1981-ben egy ESRI nevű fejlesztő cég megalkotta az első kereskedelmi célú GIS-t, az ArcInfo-t. Ez a rendszer kezdte használni az adatszerkezetek következő generációját, a fedvény szemléletet, vagy idegen néven a georelációs adatmodellt. Ennek az adatszerkezetnek két kulcsfontosságú eleme van:

  • A térbeli hely megadására szolgáló adatokat kombinálja a leíró adatokkal. A térbeli adatokat indexelt bináris állományokban tárolta, ami lehetővé teszi a gyors kirajzolást és a szerkesztéskor történő gyors elérést. A leíró adatokat táblázatos formában tárolta. A táblázatnak annyi sora volt, ahány elemet tartalmazott a térbeli adatokat tároló bináris állomány, és egy közös azonosító kapcsolta össze az összetartozó geometriai objektumokat és a leíró adatokat.

  • Tárolni lehetett a vektoros objektumok közötti topológiai információkat. A térbeli adatok rekordja rögzítette, hogy mely pontok alkotnak egy bizonyos vonalat, mely vonalak kapcsolódnak poligonná, és mely poligonok helyezkednek el az említett vonal bal – és jobb oldalán.

Ennek az adatszerkezetnek a legfőbb előnye, hogy lehetővé teszi a felhasználó számára a leíró adatok táblázatának megváltoztatását. Új mezőket definiálhat, de ami talán még fontosabb, relációt hozhat létre külső adatbázisok táblázataival.

Felmerül a kérdés, hogy miért nem tárolták egyetlen relációs adatbázisban a fenti adatokat, hiszen ekkor ennek az elméleti háttere adott volt. Az ok egyértelműen az adott kor hardvereinek és adatbázis kezelő szoftvereinek alacsony teljesítménye volt. Ezért az osztott térbeli és leíró adatszerkezet a kor térinformatikai szoftvereinek domináns modelljévé vált. Ennek jó oka volt: a topológia tárolása miatt lehetővé vált a geometriai adatok még precízebb kezelése és fejlett térbeli elemzések végrehajtása.

A fedvény szemléletű adatszerkezet hátrányai

A fedvény szemléletű adatmodellnek van egy lényeges hátránya: az egyedeket homogén fedvényekbe kellett csoportosítani a szerint, hogy milyen a geometriai természetük. Ebben a szemléletben az utat jelképező vonal ugyanolyan, mint a vízfolyást jelképező vonal. A fedvény szemléletű adatszerkezet szigorúan megszabta az egyedek viselkedését. Ha például egy poligonon keresztül egy vonalat rajzolunk, az eredmény automatikusan két poligon lesz. Ezt szemlélteti az alábbi ábra:

Ezzel szemben sokszor szükséges az objektumok sajátos természetének ábrázolása. Például ha a folyók összefolynak, az új folyó vízhozama csak a két szülő folyó vízhozamának összege lehet. Ha két út keresztezi egymást, általában nem egymás fölött vagy egymás alatt haladnak el, hanem kereszteződést alkotnak, és a kereszteződés után a természetük megváltozhat (pl. a főútvonal megszűnik).

Ahogyan a térinformatikai alkalmazások egyre összetettebbé váltak, felmerült az egyedek természetének jobb modellezése iránti szükséglet. Ennek legfőbb akadály az volt, hogy meg kellett tartani programkód szinten a kapcsolatot a fedvény szemléletű adatszerkezettel. Ez arra ösztönözte a fejlesztőket, hogy új szemlélet alapján fogalmazzák meg a földrajzi adatmodellt. Ettől kezdve a térinformatikai terminológiában nem az adatszerkezet kérdésén volt a fő hangsúly. A földrajzi adatok modellezésére elkezdték használni az élet egyéb területein széles körben alkalmazott adatbázis modellezési és fejlesztési eljárásokat. Ezért a továbbiakban nem adatszerkezetről, hanem adatmodellről beszélünk.



[7] Márkus B. – Végső F.: Térinformatika jegyzet, 1995.

[8] Márkus B. – Végső F.: Térinformatika jegyzet, 1995