Adattárházak
A következő fejezetben az adatbáziskezelés területén igen kurrens és egyre jobban
elterjedő fogalmatm, az adattárházak fogalmát vizsgálunk meg közelebbről. Az
újságok hírdetéseit, a cégek bemutatót és a tudományos publikációkat figyelve, az
adattárházak fogalma központi szerepet tölt be napjaink újdonságai között, s
minden valószínűséggel a holnap mindennapjainak termékei között. Az adattárház
azonban nemcsak egy elképzelés, hanem már ma is létező rendszer. Több, köztük
igen komoly szoftverfejlesztő cégek is, foglalkoznak adattárházak értékesítésével.
Ez viszont azt mutatja, hogy az adattárházak fogalma nem valami most születő, új
dolog, hiszen a tapasztalat szerint igen hosszú idő telik el, amíg egy elképzelés
termék formájában a piacra kerül (az adatmodellek terén ez az idő 10-13 évet is
kitett). Nézzük meg hát, mit is jelent és hogyan alakultak ki az adattárházak.
Az adatbázisok alkalmazási területeit vizsgálva, sokunknak olyan klasszikus
alkalmazási területek jutnak az eszébe, mint egy könyvtári rendszer,
jegynyilvántartás, számlák kezelése, termelési adatok, raktár nyilvántartása. Ha
megpróbáljuk ezen alkalmazások közös jellemzőit megkereseni, akkor bizonyára
fel fog tűnni, hogy e rendszerekben az adatbázis a vizsgált rendszer
adminisztrálására szolgál, vagyis az adatbázisban a vizsgált rendszer leírása
található, mégpedig az aktuális állapota. Egy raktári nyilvántartó rendszerben az
adatbázis a raktár aktuális feltöltöttségét mutatja, megadva, hogy mely
termékekből, mennyi és hol helyezkedik el.
Az ilyen rendszerek nyugvó alkalmazásokra pedig az jellemző, hogy a lekérdezési
funkciók mellett számos olyan funkciót is tartlmaznak, melyek megváltoztatják az
adatbázis tartalmát. Ezek a funkciók a valóságban megjelenő folyamatokat képzik
le a információs rendszer szintjén. Az előző példánál maradva a raktárnál
előfordulnak be- és kiszállítások is. Mindkettő megváltoztatja a raktár állapotát. Az
alkalamzásnak tehát tartalmaznia kell műveleti elemeket a beszállítás és a
kiszállítás leképzésére, hogy az adatbázis mindíg az aktuális képet mutassa. Mivel
információs rendszerek éppen az olyan területeken nyújtanak nagyobb segítséget,
ahol a rendszerben gyakran történik változás, ezért a klassszikus alkalmazások is
gyakran hívnak meg módosítási tevékenységeket.
A klasszikus alkalmazási területekre tehát az jellemző, hogy az adatbázisban a
rendszer aktuális állapota tárolódik, az alkalamzások fő feladatai a valóságban
bekövetkező események leképézése, adminisztrálása az adatbázisban és az
aktuáléis állaporta vonatkozó lekérdezések megválaszolása.
Haátgondoljuk az általunk imsert más adatbázisokon nyugvó alkalmazások célját,
működését, valószínűleg ez előbb leírt megállapításokhoz fogunk jutni. De azért
biztos lesznek olyan példáink is , melyekben nem teljesen érvényes a
megállapításunk.
Egy kazetta kölcsönző hallgatói mintafeladat tervezésénél már rögtön az elején fel
szokott merülni az a kérdés, hogy egy kölcsönzés egyed mint jelentsen, egy létező,
élő kölcsönzést vagy egy valamikor megtörtént kölcsönzést. Vagyis el kell
dönteni. hogy az adatbázis csak az aktuális állapot nyilvántartására, vagy a korábbi
állapotokot megőrzésére is vonatkozzon. Ez utóbbi esetnek is van értelme és célja,
hiszen a múlbeli állapotok hasznos információkat adhatnak a felhasználó számára.
Technikailag pedig az adatbázis korrábbi állapotainak megőrzése rendszerint nem
igényel nagy programozói ráfordítást, csak rendelkezésre álló tárolói kapacitás
szokott határt szabni az archív anyagok megőrzésének.
Ugyan a múltbeli adatok megőrzése nem okoz nagy gondot, mégis az archiválás
nem egy öncélú tevékenység. Mindíg kell mögötte lenni valamilyen indoknak. Ez
az indok lehet például egy előírás, hogy rekonstruálhatóknak kell lenniük bizonyos
multbeli események. Egy beléptető rendszernél szükség lehet egy adott múltbeli
időpontbn benn tartózkodó személyek listájára.
A letároltm, archív adatok azonban nemcsak az egyszerű visszaolvasásra
használhatók föl. Már az információs rendszerek kialakulásának korai szakaszában
rájöttek, hogy a letárolt adatokból a jelen helyzetben is hasznosítható információk
nyerhetők ki. Egy video kazetta kölcsönző esetében például annak ismerete, hogy
mely tipusú kazettákat igényelték a legtöbben, segítségül lehet abban, hogy a
beszerzéseknél mely területekre koncentráljanak. A kölcsönzések volumene pedig
a várható forgalomban, a beruházások méretezésében adhat támpontot.
A hagyományos, aktuális állapot lekérdezésére vonatkozó alkalmazások mellett
kialakultak az információs rendszerek új elemei, melyek a múltbeli események
elemzése alapján a jövőben várható folyamatok megterevezését segítik. Az így
kialakuló alkalmazásokat szokás döntés támogató rendszereknek (DSS, Decision
Sipport System) is nevezni. Az információs rendszerek felvázolt fejlődését
szemlélteti a következő ( ) ábra.
A DSS rendszerek nemcsak a alkalmazott műveleti lépésekben, a felhasznált
adatmennyiségben különbözik a hagyományos alkalmazásoktól, hanem a
felhasználói körében is. Mig a hagyományos alkalmazásokat az operatív
tevékenységben résztvevő dolgozók használják, addig a DSS rendszerek a vállalat
vezetőo számára készültek. A DSS rendszereket elsősorban a vállalat működését
befolyásoló startégiai kérdések megoldásánál szokták alkalmazni.
A DSS rendszerek legfontosabb jellemzői az alábbi pontokban foglalható össze.
- A DSS működési algoritmusában az egyszerű adatolvasás és adatírások helyett az
adatok analitikus, statisztikus elemzése dominál. Vagyis a DSS rendszernek a
normál adatkezelő utasítások mellett rendelkeznie kell adatelemző
komponensekkel is.
- Az egyik legfontosabb cél az adatok mögött húzódó trendek felderítése, vagyis az
események változási irányát, a változás jellegét kell meghatározni.
- A DSS rendszerek csak olvasássák a letárolt adatokat, s nem tartalmaznak
adatmódosítási elemeket. A döntéshozáshoz csak a meglévő információkat kell
felderíteni. A rendszer a döntés meghozatalát segíti, magát a döntést, avele járó
változtatásokkal már nem a DSS rendszer fogja meghozni.
- A megfelelő minőségű, megbízható előrejelzéshez kellő adatmennyiség
szükséges. CSekély műltbeli adatokból nem lehet pontos elemzést, trend számítást
végezni. Emiatt a DSS rendszerek igénylik a nagy adatmennyiséget. Az múltbeli
állapotok megőrzése miatt a DSS rendszerek nagyobb adatmennyiséget tárolnak,
mint az aktuális állapot adminisztrálását végző rendszerek.
- A DSS rendszerekben nagyobb szerepe jut az időbeliségnek, vagyis annak, hogy
egy adateléem, mely időponbeli aktuális állapotnak felel meg. A hagyományos
rendszerekben az időnek nem volt ilyen nagy szerepe, hiszen, minden adat az
éppen aktuális időpontra vonatkozott. Most viszont szükségszerű minden
adatelemet egy időértékkel is összekapcsolni, ha időbeli trendek figyelését is
megkívánjuk a rendszertől
- A DSS rendszereknek egy felhasználóbarát, emberközeli kezelő felülettel kell
rendelkezniük, hogy a számítástechnikában kevésbé járatos személyekis
alkalamzni tudják. A kezelő felület egy másik jellegzetessége, hogy a lekérdezések
terén viszont megfelelő rugalmasságot kell muttania, hiszen a gűdöntések
meghozatalánál az a jó, ha problémát sok oldalról, többféle megközelítésben meg
lehet vizsgáni, s ehhez a tárolt adatokból többféle szempont szerinti lekérdezésekre
is szükség lehet. A DSS-nek tehát egy emberközeli és rugalmas lekérdező felületet
kell tartalmaznia.
A újfajta műveleti igényrendszer az adatkezelés felé is kihatással van. A DSS
rendszerek ugyanis egy olyan adatbáziskezelő rendszert igényelnek, melyben
kevésbé fontosak a párhuzamos módosítások vezérlése, viszont hatékony és
rugalmas adatlekérdezés, adatelemzési lehetőségeket kell biztosítania. Tehát a
DSS-t támogató DBMS rendszereknek a DSS specifikus műveletekre
optimalizáltan kell működni. Ehhez
- gyorsabban kell megvalósítania a nagytömegű adatok közötti kapcsolatok
kezelését
- analítikus műveleteket kell tartalmaznia
- fel kell készülnia a hosszabb, a nagyobb adatmennyiséget érintő
lekérdezési tranzakciók kezelésére
Mivel a klasszikus DBMS működési elvek egészen más tevékenységekre fektetik a
hangsúlyt, ezért elnevezésben is eg szokták egymástól különböztetni az
adatkezelés e két megvalósulási formátumát. A hagyományos adatkezelést nevezik
OLTP (On Line Transaction Processing), azaz on-line tranzakció orientált
rendszernek, míg a másik módszer az OLAP (On Line Analitical Processing), azaz
on-line analitikus elemzés orientált adatkezelés.
Az OLTP rendszerekben a működés szokványos módja a több konkurrensen futó
tranzakció.. Ezek a tranzakciók rendszerint adatmódosítási műveleteket
tartalmaznak. Egy helyfoglalási rendszer esetén egy tranzakció magába foglalja az
egy ügyfélhez kapcsolódó tevékenységeket: üres helyek lekérdezése, hely
lefoglalása, visszaigazolás kinyomtatása. A rendszer egyidejűleg több tranzakciót
futtahat, több száz bejelentkezett felhasználó lehet egyidejűleg. Ugyan sok
tranzakció él egy időpillanatban, de e tranzakciók rendszerint rövid életűek.
Például a helyfoglalás is csak pár percet vesz igénybe.Ezalatt a rövid futásidő alatt
a tranzakció viszonylag kevés elemet érintő lekérdezéseket és módosításokat hajt
végre.
Az OLAP rendszereknél viszont lényegesen kevesebb a párhuzamosan futó
lekérdezési műveletsor, viszont ezek igazán jól megtermett lekérdezések is
lehetnek, melyek időben is lényegesen hosszabb időt igényelnek. Az OLAP
rendszereknél nem ritka a több órás, a napos futási idejű lekérdezések sem, hiszen
mögöttük hatalmas adatmennyiség áll.
Az OLAP és az OLTP között lényeges különbséget fedezhetünk fel a kezelt
adatok jellegében is. Az OLTP rendszereknél az adatok a vizsgált terület aktuális
állapotát tartalmazták. A módosítások és a konzisztens állapot megőrzésének
megkönnyítése végett az adatbázisban egy homogén modell szerint tárolódik az
aktuális állapot. Vagyis a működési rendszer zömével egyetlen adatforásra épít.
Ennek számos előnye van a fejlesztés munka és karbantartási tevékenységek
vonatkozásában.
Az OLAP rendszerek fő célja azonban nem egy konzisztens, aktuális kép minnél
hatékonyabb biztosítása, hanem az hogy minnél több információt nyerjünk ki a
rendszerből. Ennek egyik biztosítéka az, ha minnél szélesebb információ forrást
bevonunk az értékelésbe. Mivel egy vállalati források formátumokban igen
lényegesen eltérhetnek egymástól (adatok egyrésze pl. UNIX alattui
munkaállomásokson RDBMS-ben,míg másik része PC-s xBAse rendszerben,
harmadik része Pc-s táblázatkezelőkben tárolódik) szükség van a herterogén
adatok egséges kezelésére, a heteregonén adatok összedolgozására.
A következő táblázatban áttekintjük az OLTP-OLAP összehasonlításás
legfontosabb jellemzőt.
OLTP OLAP
----------------------------------------------------------------------
kisebb adatmennyiség nagyobb adatmennyiség
----------------------------------------------------------------------
módosítások csak olvasás
----------------------------------------------------------------------
aktuális állapot a DB-ben archivumok
----------------------------------------------------------------------
rövid, gyakoribb tranzakciók ritkább, hosszabb tranzakciók
----------------------------------------------------------------------
kevés elemet érintő tr. több elemet érintő tr.
----------------------------------------------------------------------
nagy konkurencia kisebb konkurencia
----------------------------------------------------------------------
homogén adatforrás heterogén adatforrás
----------------------------------------------------------------------
Az OLAP rendszerekkel kapcsolatosan az egyik legfonotsabb kérdés az, hogy
hogyan lehet minnél hatékonnyabban biztosítani a komplex lekérdezések
végrehajtását. Itt a lekérdezés bioztosítása nemcsak a művelet optimalizálását
jelenti, hanem annek eldöntését, hogy milyen kiegészítő információkra van
szükség a hatékony kezelés megoldásához.
Mivel az eddig ismertett DBMS struktúrák a klasszikus, OLTP orientált
adatkezeléshez lettek illesztve, az OLAP igényeket csak körülményesen,
nehezebben lehet vele megvalósítani.Vagyis a klasszikus DBMS rendszerekkel
ellentétben az OLAP rendszerek fejlesztésénél szinte minden OLTP specifikus
tulajdonságot a fejlesztőnek kell megvalósítania az alkalmazásban. A legnagyobb
hátránya ennek a megvalósításnak, hogy
- a legfontosabb OLAP funckiók nem részei a DBMS-nek, így
megvalósításuk többletmunkát jelent és algoritmusok és funkcionalitásuk
alkalmazásról alkalmazásra változhat.
- az OLAP analitkus műveletek igen nagy időszükségletettel rendelekznek a
hagyományos DBMS tárolási struktúra mellett. Az OLAP lekérdezések
jellemzője ugyanis, hogy több változó kapcsolatát, a változókon értelemzett
különböző aggregációs értékeket és azok kapcsolatát vizsgálja. A klasszikus
elsődleges kulcs - idegen kulcs szerkezettel ezen kapcsolatok feltárása igen
hosszadalmas műveletnek bizonyul.
A felmerült hatékonysági problémák megoldására elindult a fejlesztés a
hagyományos DBMS-ek olyan irányú átalakítására, hogy a kapott a rendszer
alkalmas legyen az OLAP igények kielégítésére. A cél tehát egy, az OLAP
igényekhez igazított DBMS rendszer kidolgozása.
E kutatások eredményeként létrejött adatbázis kezelő rendszer az adattárház
elnevezést kapta, melyet a DW:(data warehouse) rövidítéssel is jelölhetünk.
Az adattárházak szülőatyjának Inmon-t szokták tekinteni, aki hasonló szerepet
játszott a DW kialakulásában, mint Codd a relációs modell megszületésében. Az
adattárházak fogalmának kialakulása az 1970-es évek vége körüli odőszakra
tehető. Erre az időszakra már megjelentek az első nagy információs rendszerek,
melyek elsődlegese a napi működési rendszer igényeit szolgálták ki. Az ezen
rendszerekre felépített DSS alkalmazások két súlyos hiányossággal rendelkeztek:
- lassú műveleti sebesség és
- szétdarabolt adatszigetekből áll fenn a rendszer.
Ez utóbbi annak köszönhető, hogy a működési rendszernél minden nagyobb
területnek megvolt a saját adatbázisa. A DSS rendszernek ezen adatbázisokból
kellett összeszednie az elemzésre kerülő adatokat.
E hiányosságok leküzdésére megjelent egy új DSS orientált adatkezelő rendszer,
az adatatárház. A hagyományos működési rendszereket a hagyományos RDBMS
rendszerek, míg a DSS alapú funkciókat pedig az adattárház vette át. Az RDBMS
és az adattárház szétválásának megoldotta az említett problémákát, s emellett még
olyan pozitív hatásokkal i sjárt, hogy
- elkülönítette aműveleti rendszert a DSS elemektől (nagyobb védelem)
- adatok egyesítését hozta magával.
Az induló lelkesedés után az adattárházak fogalma egy kicsit a háttérbe szorult az
1980-es évek második felében, oly annyira, hogy 1991-ben sokan már az
adattárházak halálát emlegették. A pesszimizmus oka az volt, hogy az akkori
adattárház rendszerek igen merev struktúrájűak voltak, nem követték a
felhasználói igények változását.
Az 1990-es évek elejétől kezdve azonban újra megerősödött a DW technológia, ma
már a legkorszerűbb technológiákat vonultatja fel, s olyan vezető cégek állnak
mögötte, mint az Oracle, IBM, SAS.
A DW rendszerek mára már piacérett termékek lettek, szerepük egyre nől az
adatbáziskezelő rendszerek piacán. A DW termékek érettségét nemcsak az
alkalmazások darabszámának emelkedése, hanem felhasználások méretének
növekedése is jellemzi. Mára egyre nagyobb adatmennyiség feldolgozására
képesek a megvalósított adattárház rendszerek. A méretnökedés tendenciáját jól
szemlélteti a következő ábra, melyben az új,installált DW alkalmazások méret
szerinti elosztását mutatja a 95-ös és a 96-os években. Látható,hogy egy év alatt is,
mennyivel megnövekedett a nagyobb, a terrabyte nagyságrendbe eső rendszerek
súlya.
Nézzük e rövid történelme áttekintés után, mi is értünk adattárház alatt, mi
különbözttei meg a DW rendszereket a hagyományos relációs DBMS
rendszerektől.
Inmon megfogalamzása, definíciója alapján az adattárház rendszerek egy
témaorientált, integrált, időben változó adatrendszernek tekinthető, melynek
elsődleges célja a stratégiai döntések támogatása.
A megfogalamzásból kiemelhető, hogy a DW-ben a tárolt adatrendszer több
helyről is származó, integrált adatokat tartalmazhat. Vagyis a DW egy gyüjtőhely,
amelybe számtalan forrásból származó adatelemek kerülhetnek bele. Emiatt is
nevezik ezen adatrendszert adattárháznak, adat raktárnak. Az adattárház azonban
több, mint egyszerú adatlerakat, mivel a DW-ben nemcsak magát az adatelemeket,
hanem a köztük fennálló kapcsolatokat is tárolják. Az egységes tárolás és
értelmezés igényeinek megfelelően a DW egyik fontos funkcionális eleme a
beérkező, különböző helyről származó adatok integrálása.
Az integrált adatrendszer kialakításánál fontos, hogy csak megbízható információk
kerüljenek be a rendszerbe. Ezért az adatok beolvasásánál az adatok helyességének
az ellenőrzésére is törekedni kell, mely folyamtot szokás az aadtok tiszttításának is
nevezni. A tisztitás során a megfelelő segédprogram segítségével lehetőség van
bizonyos értékhibák feltárására. Így például az életkor mező túl kicsi vagy túl nagy
értéket tartalmazna, akkor ez a hiba a a tisztítás során kijelézésre fog kerülni. A
fejlettebb ellenőrzési rendszerek nemcsak a statikus hibákat veszik észre, hanem
alkalmasak explicite nem definiált szabályok feltárására is. A szabálytól eltérő,
gyanúsnak tartott értékek esetén egy figyelmeztető üzenetet írnak ki a
felhasználónak. Ha például minden forgalmazónál szokott lenni reklamáció, akkor
a rendszer jelezést fog adni, ha olyan forgalmazót talál, akinél még nem fordult elő
reklamáció.
A adattárházak működésére áttérve előbb vizsgáljuk meg a DW rendszerek (DWS)
működési környezetét. Mint ahogy a következő ábra is mutatja, a DWS bementi
oldalán a hagyományos adatforrások, az OLTP rendszerek és nem
adatbáziskezelők állnak. A DWS a bemenő adatokat összegyüjti, tisztítja majd
beintegrálja az adatbázisába. A DWS-en belül a hagyományos adatok mellett
lényeges szerepet játszik az adatok struktúrájának a leírását tatalamazó repository
is. A tárolt adatok lekérdezésére, elemzésésre a DWS-hez több különböző OLAP
eszközök csatlakoznak.
Ezen klasszikus adatelemzési statisztikai módszereken kívül, úgynevezett data-
mining, azaz adat bányászási lehetőségek is rendelekzésre állhatnak. A data
mining annyiban különbözik a hagyományos adatkezeléstől, hogy itt nem a tárolt
adatokat kérdezzük le közvetlenül, hanem a közvetlen adatokértékek mögött
húzódó összefüggéseket, melyeket nem lehet közvetlenül látni az adatokból.
A DW rendszereknek a megkívánt funkcionális elemek biztosítására új struktúrális
elemekkel is bővülniük kellett. Összehasonlítva a hagyományos DBMS
rendszerekkel, az adattárház rendszerek egy újszerű működési struktúrájuk van,
melyet a következő ábrában mutatunk be.
A felvázolt modellben mintegy nyolc réteget különböztetnek meg a fontosabb
struktúrális egységek szétválasztása alapján. E rétegek önálló algoritmussal
rendelkeznek, önálló funkciókat látnak el, de a DWS működéséhez e rétegek
együttműködésére van szükség. Az egyes rétegek jelentése a következőkben
foglalható össze.
- Információ hozzáférési réteg
Ez a réteg azon OLAP eszközöket, lekérdező felületeket foglalja magába, melyek
a felhasználók rendelkezésére állnak és az adattárház adatain értelemzett
adatelemző tevékenységek végrehajtására szolgálnak. Ezen réteghez elemei közé
sorolhatók a különöző grafikus és táblázatszerű lekérdező, adatelemző és
adatbányászó felületek. A felhasználó ezzel a felülettel fog kapcsolatot tartani az
adatelemzési, adatlekérdezési munkája során. Lényeges, hogy e felület
funkcionálisan gazdag és korszerű legyen, hiszen a felhasználók e rétegen
keresztül itélik meg a DW rendszerek korszerűségét és használhatóságát.
- Adathozzáférési réteg
Az adathozzáférési réteg egy kezelő nyelvet foglal magába, melyen keresztül
elérhető az alatta elhelyezkedő adatkezelő rendszerek. Az RDBMS-re
vonatkoztatva az adathozzáférési rendszer legismertebb eleme az SQL nyelv,
hiszen e nyelven megfogalmazott utasításainkat a RDBMS értelemezni tudja és
végre is hajtja. E réteg a kommunikációs nyelv mellett a kommunikációhoz
szükséges értelmezőket is tartalmazza. Az adathozzáférési réteg egyfajta
homogenizálási funkciót is el kell látnia, hiszen az elemzésbe bevont adatok
számos, különböző szintaktikával működő forrásokból is származhatnak.
- Adattárház
Az adatok tényleges forrása. A vizsgált adatok együttese, a normál és meta
adatokkal, a kapcsolatokkal és az integritási szabályokkal együtt. Az adatok
tárolása sok esetben nem jelent fizikai szinten történő tartalmazást, ugyanis
léteznek olyan tárházak is, melyek csak az adatok forrására utaló utalásokat, az
adatok és kapcsolataik struktúráját tárolják. Maguk a tényleges adatok csak a
forrásukban léteznek, nem kerülnek fizikailag át az adattárházba.
- Adatszótár
Az adattárház része, melyben a tárolt adatrendszer leírása, az adatrendszer
struktúrája foglal helyet. Az adatszótárban tárolják a funkcionálisan teljes
adattárház megvalósításához szükséges metaadatokat, mint például az adatok
tipusairól, kapcsolatairól vagy az adatok forrásáról. A felhasználónak úgy kell
tudnia hozzáférni a DW-ben tárolt adatokról, hogy ne kelljen ismernie az adatok
elsődléeges forrását és struktúráját.
- Processz menedzsment
A processz menedzsment réteg a DWS, azadattárház és az adatszótár fenntartása
érdekében végrehajtandó taszkok, processzek időzítésében játszik szerepet. A
lekérdezések ütemezése mellett a karbantartási funkciók, mint például az adatok
frissítésének a vezérlését is ellátja.
- Adattovábbító réteg
E rétreg feladata az adatforrásokból származó adatoknak az adatattárházba történő
integrálása. Ez az feladat magába foglalja az adatforrások kiválasztását, elérését; a
kiejlölt adatok beolvasását; az adatok tisztítását, szintatktikai ellenőrzését; az
adatok betöltését, a megfelelő tárolási struktúrák aktualizálását. Ezek a funkciók
egy komplex programozási feladatot jelentenek, és a létező DW rendszerek egyre
kényelmesebb és sokrétűbb szolgáltatást nyújtanak ezen a téren.
- Adatforrás réteg
Azon működési adatbázisokat és egyéb szöveges vagy táblázatszerű adatforrásokat
foglalja össze ez a réteg, melyek az adattárházban tárolt adatok forrását jelentik.
Az elsődleges adatok származási helye igen változatos képet mutathat, kezdve a
hagyományos RDBMS rendszerektől egészen a távoli csomópontokon
elhelyezkedő Excel, xBase állományokig. Az adatforrások rendszerint csak az
aktuális időpontra, állapotra vonatkozó adatokat tárolják, melyekből a frissítés
vagy betöltés útján az aktuális állapot átkerül az adattárházba a korábbi állapotok
adatai mellé.
- Alkalmazás kommunikációs réteg
Az alkalmazás kommunikációs réteg elsődleges feladata a rendszer komponensei
közötti hálózati kommunikáció biztosítása. Ennek ellenére mára már számos egyéb
segédfunkciót is ellát ez a réteg, így felhasználható például az adatformátumok
függetlenségének biztosítására vagy a tranzakciók és az üzenetek összegyüjtésére,
megadott helyre történő lehelyezésével.
A felvázolt architektúra az adattárház rendszerekben megvalósítandó funkciókat
foglalja össze, megadva a funkcionálisan teljes adattárház rendszerek
komponenseit. A funkcionális felsorolás alapján tudható, hogy mi e komponensek
célja, rendeltetése, s hogyan kapcsolódnak össze ezek a komponensek, viszont
nem mond semmit arról, hogy hogyan is valósulnak meg ezek a funkciók az egyes
komponensekben.
Mivel az összes komponens részletes tárgyalása meghaladná e jegyzet kereteit,
ezért itt mi csak a legfontosabb elemre, a rendszer központi komponensére, magára
az adattárház elemzésére térünk ki.
Az adattárház alapfunkcióiban egy adatkezelő, egy speciális adatbáziskezelő
rendszer funkcionalitását kell biztosítani. A DW-k történetileg az RDBMS
rendszerekből fejlődtek ki, s e szoros rokonság napjainkig is megmaradt. Ma is
léteznek olyan adattárházak, melyek az átalakulás első lépcsőfokain állnak, vagyis
szerkezetükben a relációs magokat őrzik. Ezen rendszerekben az adatok tárolása
továbbra is a relációs modell formalizmusában történik. Ezen rendszereket nevezik
relációs OLAP, vagyis ROLAP rendszereknek.
A ROLAP rendszerekben az adattárház minden adata a jól ismert relációs
struktúrákban, azaz táblázatokban történik, ahol az egyes rekordelőfordulások
közötti kapcsolatokat a hagyományos elsődleges kulcs - kapcsoló kulcs párossal
oldják meg. A műveleteket tekintve szintén a relációs algebrai műveletek
fekszenek a működési rendszer aélján, mlyre speciális, OLAP igényeket kielégítő
funkciók ülnek rá.
E módszer előnye, hogy az adatbáziskezelés általános funkciót nem kell
mégegyszer megvalósítani, e rendszerek úgymond ráülnek az RDBMS-re,
felhasználják az ott már megvalósított szolgáltatásokat. A DW feljesztők fő
feladata egy OLAP lekérdező rendszer ráültetése az RDBMS-re. E megoldás
további előnye a gyorsabb kifejlesztés mellett az, hogy így a DW is örökli
mindazon megbízhatóságot, robosztusságot és piaci hátteret, amit a befutott
RDBMS rendszerek biztosítanak.
A számos pozitív vonás mellett van azonban egy lényeges ellenvetés is e módszer
ellen, nevezetes az, hogy a relációs modell nem kimondottan az OLAP igények
kielégítésére készült (habár mégegyszer hangsúlyozzuk, hogy a relációs modellen
alapuló OLAP is elterjedt, megoldható megolfádnak számít), aminek az a
következménye, hogy a ROLAP rendszerekben az egyes OLAP műveletek
hatékonysága nem a legoptimálisabb. Más, speciálisabb struktúrával gyorsabb
műveleti végrehajtást lehetne lérni.
Hasonlóan problémát okozhat, hogy az OLAP terminológiák és műveletek igen
eltérnek a relációs algebrai műveletektől és terminológiáktól. Az OLAP szintjén
jóval magasabb szintű funkcionális elemkre van szükség, mint az RDBMS
szinten. Ezért célszerűbb lenne olyan adatmodellre építeni, amleyik jobban
támaszkodik és megfelel a OLAP igényeknek. Így jött létre egy új adatmodell, a
multidimenzionális adatmodell.
A multidimenzionális adatmodell nem egy most kipattant fogalom, már elég régóta
ismert a létezése, igaz csak igen szűk körben. A multidimenzionális adatmodell
első felbukkanási helyének az MIT egyetemet tartják, ahol 1972-ben
(tehát szinte a relációs adatmodellel egyidőben), elkészült egy kisérleti DSS
rendszer, amely az adatkezelést már multidemenzionális alapokon valósította meg.
Ugyan a rendszer sikerrel működött, azonban nagyobb térhódítására elég sokat
kellett várni, hiszen csak a 90-es évek elején jelentek meg a piacon a nagyobb
szoftvercégek olyan multideminzionális alapokon nyugvó OLAP rendszerekkel,
melyek már ütőképseseknek mutatkoztak (pl. SAS, Oracle Express). A
multidimezionális OLAP rendszereket MOLAP rendszereknek nevezik.
Nézzük meg közelebbről, mi is vezett a multidimenzionális adatmodell (MD)
kialakulásához. Ha egy vállalati vezető helyébe képzeljük magunkat, akinek
sfontos stratégia kérdéseket kell hoznia, arról, hogy például mely régiókat,
terméketet fejlesszen avgy reklámozzon, akkor érzékeljük a megfelelő információk
fontosságát. Mint ahogy Murphi is megjegyezte, kellő információk birtokában
mindenki jól tud dönteni, a jó vezető a kevés információk alapján is jól tud
dönteni. E mondás ellenére azt hiszem, a jó vezetők sem vetik meg a megfelelő
információkat. A vezető számára azonban nem minden információ megfelelő,
hiszen a túl részletes leírás, pl. az eddigi minden eladás listája, feldolgozhatatlan,
hiszen túl sok olyan részletet tartalmaz, melyek eltakarják a fontos részletet. A
vezetők tehát összesítő információkat igényelnek.
Másrészt a vezetők nem a puszta tényekben, hanem a különböző tényezők
kapcsolatára kiváncsiak. Egy döntéshez például nem pusztán azt kell isemrni,hogy
mennyi volt a vállalat múltévi forgalma, hanem olyan finomabb ismeretekre van
szükség, hogy hogyuan alakult például két termék vagy régió egymáshoz
viszonyított forgalma. Tehát a vezetőt e mennyiségek kapcsolata, alakulása
érdekli. A megfelelő adatmodellben e kívánalmaknak kell tükröződniük.
A multidimenzionális adatmodellben az adatokat úgy tárolják, hogy minnél
könnyebben le lehessen kérdezni a különböző mennyiságek közötti kapcsolatot. A
relációs modellell szemben, ahol a különböző mennyiségek adatai szeparált
táblázkban kerültek elhelyezésre, az MD-ben a kapcsolódó adatok egy struktúra
egységben foglalnak helyet. Egy ilyen egységben több kapcsolódó mennyiség is
helyet foglalhat.
A MD-ben azt a tárolási egységet, mely a kapcsolódó mennyiségeket összefogja,
kockának nevezik. A kocka minden éle egy-egy önálló mennyiségnek felel meg,
míg a kocka belsejében azon mennyiség előfordulásai foglalnak helyet, melynek
az élekben megdott mennyiségektől való függését vizsgáljuk. A kockában az
adatok, értékek több más mennyiség függvényében jelennek meg.
A kocka modellel jelentősen javítható az összetartozó mennyiségek közötti
kapcsolatok feltárása is, hiszen a kockában nem a puszta értékken keresztül
kapcsolódik a kocka beljesében tárolt és a kocka élein elhelyezkedő mennyiség,
hanem egy bonyolult pointer láncolatot hoznak létre, mely lehetővé teszi, hogy egy
adott értékből közvetlenül elérjük a hozzá kapcsolódó független menyiségeket.
A relációs és a multidimenzionális adatmodell áttakintő összehasonlítására
vegyünk egy kereskedelmi vállalat forgalmát vizsgáló mintapéldát. A rendszerben
a fogalomnak a régiótól, a terméktől és az időtől való függését kívánjuk
megvizsgálni. A következő ábra a kétféle tárolási mechanizmust szemlélteti.
A relációs modellben a forgalom táblában található a forgalom értéke, az eladás
dátuma, illetve a kapcsoló kulcsok az eladásban szereplő termékre és eladóra. Ezen
adatok a normalizálás folyamán kerültek át külön táblákba. A multidiemnzionális
modell esetén a forgalom adati szerepelnek a kocka belsejében (mind egy-egy
kocka cella), s a kocka élei a különböző régió, termék és időpont értékeket
tartalmazzák.
A kétféle működési mód összehasonlítására vegyük azt az esetet, amikor egy adott
termékre vonatkozó forgalmakat kívánjuk lekérdezni. A relációs modellben előbb
meg kell keresni a termék kódját, majd át kell nézni a forgalom táblát az ilyan
idegen kulccsal rendelkező rekordok felkutatására. Az MD-ben viszont előbb a
kocka megfelelő élén előbb a termék kódjára kell ráállni, majd onnan már
közvetlenül, pointereken keresztül eljuthatunk a termékhez tartozó cellákhoz. Ez a
módszer még akkor is gyorsabb megvalósítást eredményez, ha a relációs
modellben indexek segítenék a keresés munkáját.
Az MOLAP rendszerekben az kockák egy vagy több dimenzióval is
rendelkezhetnek, a dimenziók számára csak a kiválasztott DW rendszer ad
megszorítást.
Az eddigiekben említett adatkezelési tipusok áttekintésére álljon itt egy
összehasonlító táblázat, mely az egyes tárolási módok jellegzeteségének
kiemelésében segíthet.
Jellemző OLTP ROLAP MOLAP
--------------------------------------------------------------------------
műveletek DML jelentés analízis
--------------------------------------------------------------------------
felület rögzített felhasználó által felhasználó által
definiált definiált
--------------------------------------------------------------------------
érintett
adatmennyiség alacsony nagy nagy, közepes
--------------------------------------------------------------------------
adatok szintje részletező közepes összegző
--------------------------------------------------------------------------
adatok kora aktuális vegyes aktuális, korábbi
és jövőbeli
--------------------------------------------------------------------------
orientáltság rekord rekord tömb, kocka
--------------------------------------------------------------------------
A MOLAP rendszerek megvalósításának részleteteire most nem térünk ki, csak két
sajátosságot kívánunk kiemelni, melyek egyediek az MD modellre nézve, a
relációs modellben nem találkozhattunk hasonló szerkezettekkel.
Az egyik újdonság az MD modellt megvalósító fizikai struktúrában a kapcsolatok
tárolásának mechanizmusa. Az MD rendszerben a kapcsolódó rekordelőfordulások
között a pointer mechanizmussal történik a kapcsolat tárolása. Azaz egy
rekordból a pointer értéke alapján közvetlenül meghatározható a kapcsololódó
másik rekord poziciója, ami sokkal gyorsabb elérést tesz lehetővé.
A pointereknél az előnyőket elismerve, hiányosságként szokták felhozni, hogy
rugalmatlanok, azaz ha megváltozik a tárolási mechanizmus, akkor módosítani kell
a megadott pointereket is az új pozicióknak megfelelően. Ha egy objektumra több
helyről is mutatnak, és az objektum poziciója megváltozik, akkor ez számos
pointer módosítását fogja maga után vonni. E módosítási munka könnyítésére egy
kétszintű pointerezért szoktak megvalósítani, mely azt jelenti, hogy minden
objektumnak lesz egy állandó postafiókja, s a kapcsolódó objektumok erre a címre
mutatnak, míg a postafiókan egy újabb pointer található az aktuális tényleges
címre. Ezáltal az objektum áthelyezésekor csak egy helyen, a postafiókban kell
módosítani a pointer értékét.
Az adattárházak esetén a pointerezés másik sajátossága, hogy egyetten pointer lánc
nem elegendő, mivel egy objektum cella több dimenzióhoz is kapcsolódik, s
mindből elérhetőnek kell lennie. Emiatt egy cellának minimum annyi pointer
láncban kell benne lennie, amennyi a kockához tartozó dimenziók száma, ha
hatékony elérést kívánuynk biztosítani.
A MOLAP rendszerek másik, kiemelendő sajátossága, hogy a lekérdezések
meggyorsítására még egy másik trükköt is bevet. A trükk abban áll, hogy a
lekérdezésekkor megpróbálja a hosszadalmas elemi műveleteket elkerülni, s
amennyire csak lehet, előree kiszámított félkész számítási eredményeket használ
föl. Természetesen kész válaszokat nem tudhatja az összes lehetséges lekérdezési
utasításra, a könnyítés az egyes részeredmények terén érhető el. Erre az egyes
aggregációs lépésék terén van leehtőség. Vagyis az OLAP rendszer megpróbálja
az egyes összegzési, átlagszámítási lépéseket (pl. az egyes termékek
összaforgalma, az egyes hónapok összforgalma) előre kiszámítani, így amikor
szükség van a részeredményre egy komplex lekérdezés során, akkor az érték
rögtön rendelkezésre fog állni, nem kell hosszadalmas elemi számításokat végezni.
Természtesen az egeys előre kiszámított értékek csak addig lesznek jók és
érvényesek, míg az adatbázisban nem történik változás. Ha ugyanis az elemi
adatok valamelyike módosul, akkor a kiszámmított aggregációs érték is
módosulhat, emiatt újra kell értékelni a részereményt.
Mint látható ez a mechanizmus igen hasznos az ad-hoc lekérdezések
vonakozásában, viszont lassítja az adatmódosítások végrehajtását. Az OLAP
esetében viszont az segíti elő e mechanizmus használatát, hogy a módosítások
viszonylag ritkábban és ellenőrzött körülmények között mennek végbe, másrészt e
módszer is rugalmasságot mutat abban a tekintetben, hogy az előszámítások
mértékének tetzőleges szintje is elképzelhető. Vagyis lehet olyan eset, hogy az
összes elképzelhető aggregációs értéket előre kiszámoljuk, ekkor teljes az
előszámítás mértéke, míg a másik végletet az jelenti,ha semmit nem számolunk
előre, minden aggregációs értéket a lekérdezés feldolgozása során számítunk ki. E
két változat között tetszőleges előszámítási szint képzelhető el. Hogy melyik
szintet érdemes választani, az az alkalamzás jellegétől függ, aholz gyakoribb a
módosítás és kevesebb a lekérdezés, ott a kisebb szintet, ahol viszont ritkább a
módosítás és gyakoribb a lekérdezés, ott a ngyobb szintet érdemes kijelölni. A
következő ábra a fellépő időköltségeket mutatja a módosításra, a lekérdezésre és a
kettő eggyütesére különböző előszámítási szint mellett. Az ábrából jól látható,
hogy az optimális szint valahol a két szélsőérték között helyezkedik el.
Az előbb elmondottakból következően az MOLAP rendszerek számos olyan
kiegészítő adatelemet tartalmaznak,emlyek a lekérdezés hatékonyságának a
növelésére szolgálnak. Ezen elemek azonban mind jelentős helyigénnyel
rendelkeznek. Így például a letárolandó előszámítások és indexstruktúrák
darabszáma a dimenziók számával hatványozottan nől, hiszen N dimenzió esetén a
lehetséges aggregációs nézetek (hogy mely diomenziókra vonatkozzon az
aggregáció), az N elemű halmaz részhalmazainak darabszámával egyezik meg, így
étéke 2N-el arányos. Tehát a dimenzió kismértékű növelése is jelentősen megemeli
a szükséges előszámnítási mennyiségek darabszámát. Emiatt a teljes MOLAP
elterjedésének e méretkorlátok biznyos határt szabnak. E korlátot jól mutatja a
következő ábra,melyből kiolvasható, hogy az igazi MOLAP rendszerek jelenleg
még csak a kisebb dimenziószámú és kisebb méretű alkalmazások esetében
bizonyul elsődleges eszköznek.
Az adattárházakra visszatérve nézzük meg, mik azok a speciális fogalmak,
műveletek, melyek az adatárház fogalmához társíthatók és kapcsolhatók. Ítt az
adatárház rendszerén belül lezajló speciális tevékenységek jelentését tekintjük át
röviden.
Data Cleaning:
Az adatok tisztítása (data cleaning) alatt azon tevékenységek értendők, mellyel az
adatforrásból származó adatok olyan formát vesznek fel, mely már beültethető az
adattárházba. E lépés fő nehézsége abban áll, hogy a DW nyitott szintre minden
más rendszer felé, így igen heterogén könrnyezetből kell összegyüjtenie az
adatokat. Az adatoknak nemcsak a forrása, hanem az adatértékek formátuma, sőt
sokszor az adatelemek jelentése is igen eltérő lehet attól, amit a DW vár és
tartalmaz. Az adattisztítás során a bejöző adatokat olyan formátumúra hozzuk, ami
megfelel a DW követelményeinek. A tisztítás során a bejövő értékeken különböző
szintű ellenőrzési tevékenységek is végrehajthatók:
- data migration: az adatokat egy egyszerű értékhelyettesítési szabállyal
hozzuk a DW által megkívánt formátumra (pl. a nem mezőnél a Y értéket az N
értékkel kell helyettesíteni). Ekkor feltehető, hogy minden bejövő adatnak van
egyértelmű megfelelője a DW-ben és az adatértékek is a DW által megkívánt
alakra konvertálhatók.
- data scrubbling esetén az egyes elemi adatok ellenőrzésénél egy szabállyal
leírjuk, hogy milyen formai követelményeknek kell eleget tenni egy értéknek, s a
bejövő értékeknél ellenőrzésre kerül, hogy megfelelnek-e a kívánt
követelményeknek.
- data auditing során a tárolt adatok alapján bizonyos belső korrelációkat tár
fel a rendszer, s figyeli, hogy a bejövő adatok mennyire felelnek meg a feltárt
szabályszerűségeknek. Ha egy bejövő adatérték lényegesen eltér a felállított
szabálytól, akkor a rendszer figyelmeztető üzenetet küld a programozó számára az
észlelt hibáról.
Loading:
Az adatok betöltése (load) többet jelent mint egyszerű adatbevitelt. A betöltési
tevékenység magja az adatérték elhelyezése az adattárházban. Mint ahogy a
RDBMS esetében egy adat beszúrása is több elemi tevékenységet válthat ki, így itt
is egyéb kisérő tevékenységeket kell elvégezni ahhoz, hogy a DW a szabályainak
megfelelően tartalmazza az új értéket. A betöltés folyamán az alábbi kiegészítő,
kisérő tevékenységekre lehet szükség:
- az adatok integritásának ellenőrzése.
- az adatértékek rendezése, a megfelelő tárolási pozició kikeresése
- az adatértékek indexelése, azaz az indexek aktualizáslása
- a kiszámítandó értékek frissítése
Refresh:
Az adattárház frissítésének folyamata. A frisssétés során az adatforrásokban
bekövetkezett változások átkerülnek a DW-be is. A frissítés során a DW tartalma
megváltozik, így az egy módosítási tranzakcióként jelenik meg. A frissítés fő
kérdése, hogy mikor és hogyamn történjen. A túl gyakori frissítés nagyon
lefoghatja a lekérdezési műveleteket, míg a ritka frissítés esetén az adatértékek
elavulttá válhatnak. A leggyakoribb megoldás a napi vagy heti frissítési
mechanizmus. A frissétés módjára ugyancsak számos variáció létezik. A teljes
frissítés nagyon költséges,de biztos és egyszerű megoldás. Az inkrementális
frissítétésnél nagyobb az adminisztrációs igény és bonyolultabb a frissítés
folayamtának a megszervezése, viszont az igényelt időtartam lényegesen
csökkenthető.
A multidimenzionális adatmodell alapvető tárolási egysége a kocka. Ebben
foglalnak helyet a vizsgált mennyiségek és kapcsolataik. A kocka azonban nem
egy homogén szerkezet, hiszen számos szerkezti eleme van,, mint a cellák és az
élek is. E szerkezeti elemek leírására a multidimenzionális adatmodell saját
terminológiát használ, melyet most mi is röviden átveszünk.
Cella,:
A kockában a vizsgált adatmennyiséget tartalmazzó tárolási egység. A forgalom
pédánál maradva egykonkrét eladás forgalmi adatait leíró tárolási egység a cella. A
cellában elemi és összetett adatok is szerepelhetnek. A kocka a cellák szabályos
rendszerét tartlamazza.
Dimenziók:
a kocka éleihez rendelt mennyiségek, amitől a cella értékek függnek. Egy kocka
több dimenziót is tartalmazhat. Egy cellának a kockéában elfoglalt helyét a
dimenziók segítségével lehet megadni.
Változó:
A cella leírására szolgáló összetett adatstuktúra egy eleme. Azon adatokat foglalja
megába, melyekre a lekérdezéseknél, a dimenziók függvényében szükség lehet. A
forgalom esetén, aholegy cella egy vásárlást reprezentál, a cella dimenziói lehetnek
például az eladott mennyiség és az aladási ár.
Attributumok:
A dimenziók jellemzői, leírói adatai jelenti. A dimenziók ugyanis nem pusztán
egyetlen egy elemi adattal lírható mennyiségek lehetnek, hanem tetszőlegesen
összetett struktúrák is. Ekko egy ettributum a dimenzióhoz tartozó mennyiség egye
mezőjét azonosítja. Igy egy termék dimenzió esetén a terméket leíró adatok, minmt
pl. a termék neve, egységára, stb, egy-egy attributumot jelentenek.
Tag:
A dimenzió egy értékelőfordulása, azaz egy koordináta érték a dimenzió él
mentén. A termék dimenziónál egy konkrét terméket tagnak nevezünk. Minden
cellához egyértelműen tartozik a egy tag n-es, ahol n a kockához definiált
dimenziók darabszámát jelenti.
Hierarchia:
Adott dimenzió esetén az egyes tagok közötti heirarchikus kapcsolatrendszert irja
le. Az idő dimenziót véve, egy időszakasz értéket sokféleképpen megadhatunk. Így
például megadhatjuk a mostani órát, a mai napot, január 5-ét, aezen hetet, Február
hónapot, tavaszt, 1995-öt. Ezek az értékek,mint látható nem egészen
egyenrangúak, hiszen vannak olyan értékek, melyek magukba foglalalnak más
értékeket. A mai hónap pédául magába foglalja a mai napot. De például a tavasz
nem foglalja magába a november hónapot. Az idő esetén az értékek között egy
hierarchikus struktúra építhető fel, mely megadja, hogyaz értékek hogyan
tartalmazzák egymást.
A felvázolt hierarchia más mennyiségek, diemnziók esetében is elképzelhető. A
hagyományos rendszerekben minden érték önááló, független érték volt, az
MOLAP segítségével azonban egy hierarchikus érték viszony építhető fel, amely
nagyban segíti a kérdések feltevésénél a finomítás vagy az összevonás műveleteit
(vagyis amikor tavaszról áttérek Márciusra).
A következő ábra a fenti fogalmakatr foglalja össze a forgalom adatbázisra
vonatkozólag.
Az adattárházakhoz nemcsak az adatelőkészítés, betöltés és tárolás során fordulnak
elő egyedi, DW specifikus műveletek, hanem a lekérdezési tevékenység során, az
információs réteg keretén belül is. A lekérdezés során a hagyományos aggregációs,
elemzési funkciók néhány, a multidimenzionális modellhez kapcsolódó
tevékenységgel is kibővülnek.
A MOLAP lekérdező felületének jellemzője, hogy a lekérdezések rendszerint csak
egy vagy két diemnzió mentén történnek, amikoris az adatok egy grafikon vagy
egy táblázat segítségével megjeleníthetők. Mivel egy háromdimenziós
eredményhalmaz megtekintése és kijelzése igencsak nehézkes és körülményes
lenne, s igen nehezen lehetne átlátni, ezért a részletes cellaadatokra vonatkozó
lekérdezéseknél a teljes kockának egy maximum kétdimenziós szeletét igénylik a
felhaználók. A kocka különböző szeletei a különnböző felhasználói igényekeknek
felel meg. A forgalom példánál maradva például egy terméknek a különböző
régiókban és időszakokban eladásai a kiválasztott termék termékmenedzserének az
érdeklődési körébe tartozik. Ebben a nézetben nem szerepelnek a többi termékre
vonatkozó adatok, hiszen azok egy másik termékmenedzser számára lesznek
fontosak. Hasonlóan a kockának egy adott régió szerinti leszűkítése a regiót
vezető menedzser számára adnak értékelendő információt. A kockák különböző
szempont és hatáskör szerinti felbontását mutatja be a következő ábra.
A kocka szeletekre bontásának műveletét az MOLAP angol terminológiájában
'slice and dice' műveletnek nevezik.
Az egyes dimenziókhoz tartozó hierarchiák lehetővé teszik, hogy adott tagérték
esetén az oda vonatkozó összesített adatokat kifejtsük az értékek egy alacsonyabb
szinjén is. Így például előbb a forgalomnak a területi bontását nézve, feltúnhet egy
régió, ahol kimagaslóan magas volt a forgalom. Ekkor a régiónak a városokra való
bontásával információt nyerhetünk arról, hogy ez a forgalom növekedés
egyenletesen, minden városnál bekövetkezett-e vagy vannak olyan városok,
melyeknek köszönhető e nagy fogalom növekedés. Az egy adott tagértékre
vonatkozó aggregált adatoknak a tagérték alatt elhelyezkedő értékekre történő
dimenzió finomítását angolul 'drill down' műveletnek nevezik. E művelet során
növeljük a aggregációs szint finomságát, azaz egyre mélyebbre kerülünk a
dimenzióhoz tartozó hierarchia szintjén is. A dimenzió finomítás eredményeként
az induló szint tagértékekei helyett az eggyel lentebb elhelyezkedő szint tagértékei
kerülnek fel a dimenzió tengelyekre.
A dimenzió finomítás, a lefelé bontásnak az ellentetje a dimenzió tömörítés, 'drill
up' művelet, mely során egy részletesebb felbontású statisztikából egy durvább
felbontású statisztikára lépünk át. Ígyenkor egy adott értékszinten megadott
felbontásról felfele, egy összesítettebb értékszintre lépünk a dimenzióhoz tartozó
értékhierarchiában.
A lefele lépésre ad egy példát az alábbi ábra, melyben az idő dimenziót véve, a
havi bontásban megadott statisztikáról áttérünk a heti felbontásban megadott
statisztikára, vagyis hónapok szintjéről az elemzés során átlépünk a heti szintre. A
nyíl tehát egy drill down műveletet jelöl, míg a fordított irányú nyil egy drill up
funkciót ad meg.
Egy másik speciális művelet a kocka átdimenzionálása. Az átalakítás során a
kocka eredeti cella értékeinek segítségével egy módosított kockát hozunk létre,
melyben csökkentjük a dimenziók számát, s az új kocka celláinak értékét az
eredeti cella értékek aggregációjával származtatjuk. A forgalom példát
felhasználva az a művelet, amikor olyan új kockát hozunk létre, melyben már csak
két dimenzió, az idő és régió fog szerepelni, s egy adott időszakasz és régió
előforduláshoz tartozó cella az eredeti kocka ezen poziciójára vonatkozó termék
oszlop összesített foprgalmát jelenti, egy ilyen átdimenzionálást reprezentál.
Vagyis összesítve az összes termékre vonatkozó forgalmat egy adott időszakasz és
régió esetén megkapjuk az új kocka ugyanezen idő és régió tagjaihoz tartozó cella
tartalmát. A következő ábra az átalakítás sémáját szemlélteti.
A multidimenzionális adatmodell fontosabb struktúrális és műveleti elemeinek
áttekintése után rátérünk az MD modellek fejlesztésének kérdéseire. A modell
fejlesztés fontosabb lépéseit kiemelve megadjuk a tervezés fázisait, és a tervezési
lépések szokásos sorrendiségét. Ez az ismertető nem olyan egzakt és kimerítő,
mint a relációs modellben tanult fejlesztési módszertan, célja inkább csak ízelítő
bemutatása a tervezés folyamatáról.
A tervezés első lépése, hasonlóan az álatános információs rendszerekhez, itt is a
lehetséges információigények meghatározása és elemzése. Ennek során kell
feltárni az adattárházban elhelyezendő adatelemeket, a felhasználók igényeinek
elemzésével. Meg kell győződni arról, hogy a megkívánt információ igények
mindegyike kielégíthető a modellbe bevont adatelemekkel.
A tervezés második lépése a normalizált SDM modell felépítése. Ennek során egy
kiválasztott szemantikai modell segítségével felvázoljuk a modellben előforduló
egyedeket és a köztük fennálló kapcsolatokat. A modell leírásához
felhasználhatjuk a már ismert SDM rendszereket, így például az ER modell is
alkalmazható e célra.
A tervezés harmadik lépése a tényadatok, vagyis a cellákba tárolandó adatelemek
kiválasztása. A tényadatoknak olyan mennyiségeknek kell lenniük, melyek értéke
igen vontos, meghatározó a vizsgált problématerület szempontjából, s amelynek
más mennyiségektől való függését vizsgáljuk.
A következő lépés a dimenziók feltárása. Ennek során kiválasszuk azon
mennyiségeket, melyek meghatározzák a cellák tartalmát. A cellaértékeknek ezen
mennyiségektől való függőségénekl a vizsgálata,eélemzése lesz majd elkérdezések
fő célja.
Eztkövetően kidolgozásra kerül az egyes dimenziókhoz tartozó hierrachia
rendszer. Fel kell deríteni, hogymely dimenzióknál van lehetőség és szükség a
többszintű tagértékek kijelölésére. Ha definálható ilyen értékhierarchia, akkor meg
kell határozni az egyes szinteket leíró mennyiségeket, az egyes szintek
azonosítását.
A dimenziók vizsgálatának utólsó lépése az attributumok meghatározása. Ennek
érdekében meg kell vizsgálni, hogy milyen információkra van szüksége a
felhasználónak az egyes dimenziókat illetően, vagyis milyen struktúrát célszerű
felvenni a dimenzió tagértékek tárolására.
A tervezés utólsó lépése a változók megadása, vagyis a cellában tárolt tényadatok
struktúrájának leírása. A struktúra szerkezetéhez a felhasználói igények elemzésén
keresztül juthatunk el.
Az elkészült leírás már alkalmas arra, hogy elviekben megalkossuk a MD-t alkotó
kockákat, létrehozzuk a multidimenzionális adatmodellt. Ugyan a DBMS-ek döntő
töübbsége egy szöveges parancsnyelv segítségével tartja a kapcsolatot az
alkalmazásokkal, így egy szöveges parancsnyelvet kell majd alkamazni a
multidimenzionális modell megadására, de a létrehozott modell nemcsak a DBMS
számára fog információt hordozmi, hanem más hiumán személyeknek is.
Az elkészített modellt tehát célszerű olyan alakban is megadni, mely a többi
fejlesztő és a külső olvasó számára is könnyen áttekinthető és érthető. Erre a célra,
egy grafikus, funkciójában az ER modellhez hasonló formátum alkalmazása tűnik
a legalkalmasabbnak.
Az igényeknek megfelelően létre is jöttek ilyen grafikus séma leíró nyelvek,
melyek között a két legismertebb a csillag modell és a hópehely modell.
Mindkettő az elkészített leírás alakjáról kapta a nevét. A két modell azonos
alapokon és formalizmuson nyugszik, az egyedüli különbség a kétféle leírás
között, hogy a csillag modellben nincs lehetőség a dimenziókhoz tartozó
hierarchiák definíálására, míg a hópehely modellben a hierarchiákat is kijelezzük.
E két modell formalizmusát egy-egy példán keresztül mutatjuk be.
A tényadatok vonatkozzanak a már ismertett forgalom értékekre, tehát egy cella
egy vásárlás adatait fogja tartalmazni. A cellában szereplő forgalom leírására
változóként az érték és darabszám mennyiségeket adjuk meg. A forgalom értékét a
következő dimenzióktól való függőségében vizsgáljuk: időszak, eladó, termék és
régió. Az áru esetén egy termékkategóra-termék kétszintű hierarchiát definálunk,
míg a regió esetén az ország-megye-járás szinteket hozzuk be, azaz itt már
háromszintű a dimenzió hierarchia. Az egyes dimenziókhoz a következő
attributumokat csatoljuk:
termék: termékkód,megnevezés,egységár
időszak: év, hó, nap
eladó: név, fizetés
régió: név
A modell most egyetlen kockát tartalmaz, melynek grafikus leírása a csillag
modell segítségével a következő alakot ölti.
A grafikus leírásban szerepel minden MD struktúra elem, kivéve a dimenzió
hierarchiákat. A tényadatok, vagyis a cella struktúra egy dupla vonallal keretezett
téglalapban szerepel, felül a mennyiség azonosítása, alatta a változók listája. A
dimenziók normál téglalapban kerültek megadásra, itt is fenn a mennyiség, majd
alatta az attributumok helyezkednek el. A felvázolt modell egyetlen egy kockát
reprezentál.
A hópehely modell annyiban különbözik az előző modelltől, hogy itt már a
dimenzió hierarchiák is megjelennek.
A hópehely modellben dimenzió hierarchia több szintű is lehet. A dimenziókhoz
tartozó attributumok rendszerint csak a hierarchia alján elhelyezkedő elemeknél
jelenik meg.
A gyakorlatban számos olyaneset van, amikor az adattárházat nem újonnan, a
semmiből kell felépíteni,hanem már van valamilyen előzménye az
adatrendszernek. Ez az alőzmény legtöbbször egy relációs OLTP rendszerben
testesül meg. A következőkben azt nézzük át, hogy milyen sajátságai vannak egy
relációs modellből induló tervezésnek.
A tervezés ekkor az első lépésekben különbözik csak a normál, tiszta lappal induló
tervezéstől. Az ilyenkor használatos lépések a következők:
- relációs modell elemzése, a fűüggőségi kapcsolatok feltáráa
- modell kiterjesztése a szükséges új elmekkel
- tényadatok kiválasztása
- dimenziók meghatározása
- dimenzió hierarchia kijelölés
- attributumok megadása
- változók meghatározása
- séma felrajzolása
A tervezés menetének bemutatására vegyünk egy példát, amelyben adott egy
induló relációs adatmodell a következő szerkezettel:
termék[tid,megn,ear,szin]
tétel[rid,tid,db,ar]
rendelés[rid,datum,vid,ertek]
vevő[vid,nev,cim,forg,uid]
ügynök[uid,nev,fiz,eid]
egység[eid,cim,hely,vezeto]
bemutató[uid,datum,letszam,forg]
A rendszer egy ügynök hálózaton keresztül értékesítő cége egyszerűsített
adatmodelljét tartalmazza. Ebben a rendszerben szerepelnek a termékek, a
rendelések és a rendelési tételek, a vevők, az ügynökök és a megtartott bemutatók
adatai.
Első lépésben a felvázolt relációs modellt kell elemezni, hogy feltárjuk a
tartalmazott egyedeket, kapcsolataikat és a tulajdonságokat. A kapcsolatok
feltárásánál az elsődleges kulcs és kapcsoló kulcs alapján megjelenő függőségeket
kell meghatározni. A példában például egy rendelési tétel meghatároz egy
terméket, hiszen minden tétel rekordban szerepel egy kapcsolókulcs a termékek
táblára vonatkozóan. A többi kapcsolat hasonló módon történő felderítése után
kapott függőségi grafikont az alábbi ábra mutatja.
Ezután kibővítjük a modellt az újonnan jelentkező adatigényekkel. Ha most az
időszak és terület jelenik m,eg mint új fogalom, akkor az előző ábra következő
alakra módosul.
A tényadatok kiválasztásánál olyan adatokat célszerű kiemelni, melyek
előfordulásainak számossága magas, és melyek a függőségi rendszerek
centrumaibanhelyezkednek el. A példánkban két ilyen centrumot célszerű
kiemelni:
- tétel
- bemutató.
A mintapélda tehát két kockát fog tartalmazni, melyek celláiban a rendelési tételek
illetve a bemiutató adatai lesznek.
A dimenziól kiválasztásánál a fő irányelvek a következőkben foglalhatók össze:
- az egyedbe mutasson függőség
- viszonylag kisméretű
- nem cella
A következő dimenziókat célszerű lefektetni az egyes kockákhoz.
rendelési tétel:
- termék
- vevő
- régió
- időszak
- ügynök
bemtató
- ügynök
- időszak
- régió
Az dimenzió hierarchiák megadásánál a régió, az időszak, az ügynök és a termék
vonatkozásában lehetséges szintekre vonást végezni:
termék:
kategória * termék
eladó:
egység * ügynök
idő:
év * hó * nap
régió
megye * város
A hierarchia bevezetése miatt egy új fogalom került be a modellbe, az eladó,
amely megába foglalja az ügynököt és az egységet is.
Az attributumok és a változók kijelölésénél a relációs modellben megjelenő
mezőkre alapozunk. Természetesen azt nem lehet megkövetelni, hogy a relációs
modellben megadott mezők pontosan egyezzenek meg a felvett attributumokkal.
Ez azért sem várható el, mivel a multidimenzionális modellből kihagyhatók az
olyan mezők, melyekre az újabb elemzés szerint nincs már szükség, illetve
kerülhetnek be olyan attributumok is, melyekre viszont szükség mutatkozott. Így
például a dimenzió hierarchia megvalósítása miatt is jöhetnek be új mennyiségek
az adatmodellbe.
Az induló relációs modell és az elemzés alapján a változók listája a rendelési
tételnél a
- darabszám
- ár
míg a bemutató esetén a
- létszám
- forgalom
mennyiségeket tartalmazza.
Az attributumok listájába a következő elemek kerülnek be a forgalomhoz tartozó
kocka esetében:
termék:
- ear (egységár)
- megn (megnevezés)
- szín
- kategória
vevő:
- név
- cím
- forg (forgalom)
régió:
- megye
- város
idő:
- év
- hó
- hét
eladó
- név
- fiz
- egység
Az elmondottakhoz hasonlóan származtathatók a bemutató kockához tartozó
dimenziók attributumai is.
Az így elkészült sémát előbb a csillag, majd a hópehely modellben mutatjuk be.
Az elkészült hópehely modell már a létrehozott dimenzió hierarchia elemekkel
kibővítve mutatja be a létrehozott multidimenzionális adatmodellt, pontosabban
annak rendelési tétel kockáját. A bemutatóhoz tartozó hópehely modellt is
hasonlóan készíthetjük el, kifejtve az a régióhoz, eladóhoz és az időszakhoz
tartozó hierarchiát. A modellből is megfigyelhető, hogy attributumokat csak a
hiararchia aljánelhelyezkedő mennyiségekhez szoktak rendelni.
Az elkészült multidimenzionális modell valójában még csak egy elvont modell,
mely közvetlenül nem használható fel MOLAP objektumok létrehozására. A séma
funkcinálisan egy relációs modellhez hasonlít, amely szintén nem alkalams
közvetlenül az RDBMS objektumok létrehozására. Mint ahogy az RDBMS is
rendelkeznek egy, a relációs modellt leképzeő nyelvvel, az SQL-lel a tényleges
RDBMS tevékenységek végrehajtására, az MOLAP rendszerekhez is tartozik egy
szöveges parancsnyelv, melyben a séma elemeket az MOLAP számára ios érthető
formátumban lehet leírni. Az Oracle Express esetén például a bemutatóhoz tartozó
kocka definiálása, az alkotó elemek megadása után a következő utasítással
történik:
DEFINE bemutató VARIABLE DECIMAL
Megfigyelhetjük, hogy az alkalmazott szintaktika sok közös vonást hordoz az
SQL-ben megismert szintaktikával. A minta utasításban a bemutató az
ténymennyiség, a cella tartalma, míg a kocka dimenziói az időszak, régió és eladó
mennyiségek lesznek.
A MOLAP rendszerek felhasználó által is érzékelhető előnye, a lekérdezés
gyorsabb végrehajtása mellett, a lekérdezések egyszerűségében nyilvánul meg. A
MOLAP egy céloreinetált, speciális lekérdező nyelvvel rendelkezik, amely az SQL
eleminek tekinthető műveletei mellett a bonyolultabb elemzési tevékenységeket is
magába foglalja. Így például igen egyszerű formalizmussal lehet a lekérdezési
tartományt kijelölni, illetve magát a lekérdezést elindítani. Azon lekérdező
elemzések, amik a PL/SQL nyelvben több oldalas utasítássort igényelnének, a
MOLAP lekérdező nyelvében egyetlen egy utasítással meghívhatók.