• Nem Talált Eredményt

Egy jó adatmodell ismérvei

In document Programrendszerek fejlesztése (Pldal 49-54)

II. RÉSZ NYELVI PARADIGMÁK, TRENDEK

7. Nyelvi paradigmák, trendek - adatkezelés

7.2. Egy jó adatmodell ismérvei

A tervezés során egy jó adatmodell elérése érdekében a következőben tárgyalt kritériumo-kat kell szem előtt tartani. Ezek a szempontok mindegyike hozzájárul rendszerünk sikeres-ségéhez.

· Teljesség: Fontos, hogy az adatmodell minden lehetséges attribútummal már ren-delkezzen a tervezés során. Egy új tulajdonság, adattag felvétele nagy költségekkel jár a későbbi karbantartás során, ezért fontos, hogy egy teljes adatmodellt hozzunk létre.

· Nem-redundáns felépítés: Megeshet, hogy redundáns modellt dolgozunk ki, melyben ugyanazon információ többször is előfordul. Egy ilyen eset, ha például tárolunk életkort és születési évszámot. A redundáns adatok, adattagok figyelmen kívül hagyása túl nagy tárhely kihasználtságot vagy konzisztencia problémákat okoz. Van azonban olyan eset ahol a redundáns adat nagyban hozzájárul a kellő teljesítmény eléréséhez.

· Üzleti szabályok érvényre juttatása: Minden cég saját üzleti szabállyal rendel-kezik. Ennek szem előtt tartása első pillantásra nem nyilvánvaló, de a folyamatos fejlesztés során erre is nagy figyelmet kell fordítani. Ezen szempont teljes figyelmen kívül hagyása komoly kockázatot rejt magában és korrekciója is jelentősen ne-hézkes.

· Újrahasználhatóság: Egy jó adat modell segít abban, hogy az információk újra felhasználhatóak legyenek. Például egy biztosító rendszer által tárolt információ később újra felhasználhatóak demográfiai adatok statisztikájára.

· Stabilitás és flexibilitás: Egy jól megtervezett rendszer számára az előre látható változtatások lehetősége is támogatott. A piaci életben az egyik legkritikusabb faktor az, hogy a rendszernek képesnek kell lennie az idő folyamán a változásokhoz igazodnia. Így egy új termék vagy szabály (policy), egyes esetekben törvény beve-zetése esetén is képesnek kell lennie a rendszernek alkalmazkodni. Egy modell stabil, ha előre láthatólag semmilyen szintű változtatásra sem szorul. A stabilitás kérdésköre felbontható, hogy kevésbé vagy jobban stabil a rendszer aszerint, hogy mennyi változtatásra van szükség a fejlesztési ciklus során. Flexibilisnek tekintjük, ha minimális változtatásokkal érhető(ek) el az új követelmény(ek).

További fontos tényezők még az érthetőség, relevancia, költség, pontosság, hozzá-férhetőség. Ezek alapján elmondható, hogy bár az adatábrázolás csak egy kis részét teszi ki a teljes rendszer tervezésének, mégis rendkívüli hassal bír az egészre nézve. Plusz idő és erőforrás fektetése az adatmodell tervezésébe sok esetben kifizetődik a jövőben.

7.2.1. Az adatmodellezés menete

Minden adatmodell létrehozása a követelmények összegyűjtésével kezdődik. A követel-mények egy fogalmi/koncepcionális modellben kerülnek rögzítésre. Feladata a domain szemantikus megfogalmazása gyakran adatszótárak segítségével. A domain-ben minden elem egy entitásként van reprezentálva. Minden entitás bizonyos értelemben részt vesz a rendszer egészének megértésében, tehát szükséges a rajtuk értelmezett kapcsolatok kifejtése/ábrázolása, de csak olyan szinten, melyre maga a modell képes. A koncepcionális modell kivitelezését (implementáció) hívjuk logikai adatmodellnek. Az utolsó lépésként a logikai modellből fel lehet építeni a már tényleges fizikai tartalommal rendelkező sémát, amit fizikai adatmodellnek nevezünk. Fizikai modellhez sorolható információ például az adatbázis domain leírásához szükséges minden definíció: indexek, feltételek, kulcsok, kap-csolók. Ezek és más fizikai információk alapján lehetőség nyílik a megfelelő tárhely allokációjára.

Az adatmodellezés során kritikus lépés a megfelelő adatbázis implementáció kiválasz-tása. Gyakori hiba, hogy egy jól megtervezett adatmodellhez egy rosszul megválasztott adatbázis társul, mely nem támogatja a megfogalmazott követelményeket. Két általános absztrakt ábrázolási módszer terjedt el:

· Általános/szintaktikai adat modellezés

· Szemantikus adat modellezés

Az első a hagyományos adatmodellek általánosítását jelenti. Ezzel együtt standard relációs típusok kifejezésre alkalmas, amik egy modell esetén előfordulhatnak. Ilyen kapcsolatok például osztályozási relációk, ami meghatározza, hogy az adat milyen típusba sorolható, vagy a rész-egész reláció. Ezen és más relációk kifejezésével korlátos tények fejezhetőek ki az osztályok között a természetes nyelvi kifejezőkészség mellett, ami viszont maga után vonja azt a következtetést, miszerint különböző domain-ek használhatósága limitált, mert mindig csak olyan kifejezés típusok alkalmazhatóak, melyek már korábban definiálására kerültek, illetve melyet a saját szemantikája megenged.

A szemantikus adatábrázolás egy teljesen más megközelítést alkalmaz - az előző típus korlátoltságának köszönhetően -, mely szerint maga az adat jelentése is definiálása kerül és a kapcsolata a többivel a környezetén belül. A szemantikus modell tehát egy absztrakció, mely kapcsolatot próbál teremteni a valós kifejezések és a fizikailag tárolt adatok között. A szemantikus adatmodellezés általános célja tehát több jelentés/információ kinyerése az adatokból, felhasználva a mesterséges intelligenciában használt absztrakt kifejezéseket.

Ezzel gyakorlatilag gépi értelmezés valósul meg.

A következőkben röviden áttekintjük a három legelterjedtebb szintaktikus és szeman-tikus adatmodelleket.

7.2.1.1. Relációs adatmodell

Az első és legegyszerűbb szintaktikus módszer a relációs modellezés, ami sok más módszer ősének tekinthető. Az alap koncepció, hogy az adatbázis állítmányok halmaza a véges változók felett, kifejezve ezzel korlátokat a lehetséges változókon vagy azok kombinációin.

Célja, hogy egy deklaratív módszert adjon az adatok és a rajtuk értelmezhető lekérdezések specifikálására: közvetlenül meghatározza, hogy mit tartalmaz az adatbázis és mit kívánunk kinyerni belőle. Ráhagyja az adatbázist menedzselő rendszerre az adatok strukturálásának leírását és a lekérdezés eredményeinek folyamatát.

A modell magvát a relációk adják, ami még kiegészül további szabályokkal: kulcsok, kapcsolatok, kötések, funkcionális függőségek, tranzitív függőségek, többértékű függősé-gek. A reláció a modell alap eleme.

17. ábra: A reláció felépítése A modellel kapcsolatos általános szabályok a következők:

· Egy reláció (fájl, tábla) egy kétdimenziós táblának felel meg.

· Az attribútum (mező, adat elem) a tábla egy oszlopa.

· Minden oszlop egyedi névvel rendelkezik a táblán belül.

· Minden oszlop homogén.

· Minden oszlop saját domain-nel rendelkezik (tehát a felvehető értékek halmaza specifikált).

· Egy bejegyzés (tuple) a tábla egyetlen sorának felel meg.

· A sorok és oszlopok sorrendje nem meghatározott.

· Egy sor minden értéke kapcsolódik egy másik fogalomhoz vagy annak egy részéhez.

· Ismétlődő csoportok nem megengedettek.

· Egy bejegyzés csak egyszer szerepelhet (kulcsok használata).

· A cellák egyetlen értéket tartalmaznak.

Minden tábla rendelkezik legalább egy speciális oszloppal, melyet kulcsnak hívunk.

Ezek célja a tábla indexelése, ezzel felgyorsítva a keresést. A kulcsok használatával két különböző táblában, de hasonló halmazból származó értékek között kötések alakíthatóak ki.

Ezzel különböző táblák értéke egyszerre kérdezhető le, megfeleltetve benne bizonyos érté-keket egymásnak. Például egy rendelés (id, termék kód) és termék (termék kód, termék ár) táblánál szükséges a két tábla egyszeri lekérdezése annak érdekében, hogy vásárláskor egy összesített árat adjunk a vevő felé, mindezt a „termék kód” kapcsolásával. Természetesen

több különböző tábla között is adható kapcsolás. Köszönhetően, hogy ezek a kapcsolások lekérdezés időben definiáltak, a relációs adatmodell egy rendkívül dinamikus sajátosságát adják.

A relációs modell is rendelkezik hátrányokkal. Komplex adatok tárolásának hiánya jel-lemző tulajdonsága a modellnek (képek, videók). További hátrány a mezőkre vonatkozó határértékek, megszorítások, amelyeket már a tervezési fázisban definiálnunk kell. Például egy szövegmezőre vonatkozó megszorítás figyelmen kívül hagyása adatvesztéssel járhat.

Komplex relációs adatbázisok közötti kommunikáció nagy és költséges munka. Teljesít-mény terén is alulmarad a relációs modell másokkal szemben, tekintve, hogy táblák soka-ságát kell felvennünk egy kész rendszer működtetéséhez és a táblák gyakran robosztus információmennyiséggel rendelkeznek.

18. ábra: Példa a relációs adatmodellre

7.2.1.2. Objektumorientált adatmodell

A szintaktikus módszerek másik elterjedt modellje az objektumorientált adatmodellezés, mely már gyakorlatilag egy kiterjesztettje a relációs modellnek, ahol is az adatbázis képességei az objektumorientált (OO) nyelv képességeivel vannak kombinálva.

Elterjedtségét és népszerűségét leginkább annak köszönheti, hogy a programozók által implementált entitások objektum szinten közvetlenül tárolhatóak, módosíthatóak vagy nagyobb objektumcsoportban hozhatóak létre. A modellben felhasználhatóak az objektum-orientált paradigma sajátosságai, így például az öröklődés által történő általánosítás és spe-cializálás is.

A megoldás hátránya, hogy nem igazán létezik jó megoldás a tartós, kereshető, mó-dosítható perzisztenciára. Emiatt csak a memóriában szoktak OO modelleket használni a tartós perzisztenciát pedig a klasszikus relációs adatbázisok valósítják meg.

19. ábra: Példa az objektumorientált adatmodellre

7.2.1.3. Szemantikus adatmodell

Az előző két paradigma nem nyújt elég gazdag kifejező fogalmi modellt bizonyos problé-mákra, amelyekre nem illeszkedik a jól megszokott sablon. Az utóbbi évtizedek alatt számos olyan modell emelkedett ki a többi közül, amelyek mindinkább próbáltak a na-gyobb kifejezőkészségre szert tenni és gazdagabb szemantikát adni az adatbázisoknak.

Ezen modellek halmaza adja meg a szemantikus adatmodelleket, amiket szélesebb körben ontológiáknak neveznek.

A szemantikus adatábrázolás célja, hogy egy olyan struktúrát szolgáltasson, mely a leginkább tükrözi a való világ kifejezőkészségét. Általában ez a modell kiegészül egy absztrakt világgal. Három fontos absztrakció szükséges egy adatmodell számára:

· Osztályozás

· Tartalmazás

· Általánosítás

A szemantikus világban mind a három absztrakció egy típusleíráshoz vezet. Összevetve más modellekkel egy nagyon fontos eszköz a szemantikus rendszerek esetében a

„koncepció”. Gyakorlatilag minden koncepciók köré csoportosul, mert mindent a való világban is fogalmakkal azonosítunk. Ezen koncepciók között bármilyen, az emberi nyelvezet által kifejezhető kapcsolat létrehozható.

Az adatmodellek leírása maga után von bizonyos integritási szabályok meglétét. Két lényeges integritási szabályt említhetünk meg a szemantikus adatmodellekkel kapcsolatban:

· Kapcsolatképesség

· Konvertálhatóság

Az első jelentése, hogy minden koncepció attribútuma kapcsolódik egy másik koncepcióhoz. Persze minden egyes fogalom több másikkal is kapcsolatban állhat tulajdonságainak köszönhetően. Ebből származik azaz észrevétel, miszerint gyakorlatilag végtelen domain-t tudunk alkotni. A második fogalom célja kifejteni, hogy minden koncepció egyedi, tehát nincs módszer arra, hogy kettő ugyan azt a jelentést hordozza, ugyanígy attribútumok között sem. További megszorítások fordulhatnak még elő az adatok

modelljében, továbbá gyakran komplex feltételek megfogalmazására is szükség van, amellyel a domain konzisztenciája teljessé válik.

Mint már ismert, a szemantikus adatmodell legfőbb eleme a koncepció, mellyel minden leírható egy bizonyos domain-en belül. Ez csak egy entitás fogalmi jelölését jelenti. Egy szemantikus adatmodellben példányokat is tudunk létrehozni. Vegyünk példának egy entitást, mely egy személy fogalmi leírását adja meg. Ezen entitás példányait emberi nevek alkotnák, ahol minden példányhoz járulnak további attribútumok, amivel önmagukat írják le. Például a felvett személy entitáshoz tartozó példányok: Bob, Jim, Sue, Betty, stb. Ezen nevek mindegyike egy bizonyos személy típusú objektumra mutat, tehát Bob egy olyan sorra mutat, ami megadja Bob sajátosságait, mint például név, nem, családi állapot, továbbá minden olyan attribútum mely szerepel a személy koncepciónál.

20. ábra: Példa szemantikus adatmodellre

In document Programrendszerek fejlesztése (Pldal 49-54)