Előző rész | Tartalom | Következő rész
Az adatbázis fogalma
Környezetünk leírásához meg kell azt figyelnünk, adatokat kell gyűjtenünk az objektumairól, összegeznünk kell azok tulajdonságait, valamint meg kell figyelnünk a köztük levő kapcsolatokat. Ezek után juthatunk a rendelkezésre álló, tárolt adatokból új ismeretekhez, információhoz. Az adatoknak egy jól struktúrált halmazát adatbázisnak nevezzük, amelyből a későbbiekben információt akarunk majd nyerni. Az információnyerés céljából pedig olyan szoftvereket használunk, amelyek lehetővé teszik az adatbázisok kezelését (lekérdezés, módosítás, törlés, karbantartás) és amelyeket együtt adatbáziskezelő rendszernek nevezünk. Az olyan rendszereket, amelyek a hardveren tárolt adatokból szoftverek és egyéb alkalmazói programok segítségével lehetővé teszik a felhasználó számára az információ nyerését, információs rendszereknek nevezzük. Látható tehát, hogy egy információs rendszerhez szükség van adatokra, hardver eszközökre, szoftverekre és a felhasználóra. Szoftveren itt olyan programcsomagot értünk, amely gyorsítja a munka elvégzését, például szövegszerkesztők, táblázatkezelők, adatbáziskezelő rendszerek. Az alkalmazói programok pedig egy-egy szakember által valamilyen programozási nyelven, egy konkrét feladatra írt programok.
Adatbáziskezelő rendszerek létrehozása
Adatbáziskezelő rendszert alapvetően kétféleképpen szoktak létrehozni. Az egyik módja, hogy egy programozó csoport valamelyik - többnyire harmadik generációs - programozási nyelvben (pl. C, Cobol) megírja a rendszert. A másik módszerben pedig egy már meglévő rendszerben fejlesztik ki az új rendszert. Ehhez többnyire negyedik generációs nyelveket használnak. Ilyen típusú rendszerek a CASE (számítógép által támogatott szoftver fejlesztő) rendszerek. A legtöbb adatbáziskezelő rendszer rendelkezik ilyen CASE eszközökkel. Továbbá vannak alkalmazásfejlesztő rendszerek is, például: QBE, POWER BUILDER, UNIFACE. A legismertebb adatbáziskezelő rendszerek manapság az ORACLE, INGRES, SYBASE, INFORMIX. Ezek többnyire nagygépes környezetben működnek. Természetesen vannak PC-re íródott adatbáziskezelő programrendszerek is, mint például: DBASE, CLIPPER, FOXPRO.
Az adatbázis létrehozását mindig az adbázistervezés előzi meg. Gondosan fel kell mérni az adott cég igényeit, meg kell fogalmazni a problémákat. Egy adatbázist manapság körülbelül egy-két hónap alatt fejlesztenek ki. Ennek körülbelül 70-75%-a a tervezésre megy el, 10-15%-a a programozásra és a maradék a tesztelésre. Alapos tervezés nélkül ugyanis a rendszer átláthatatlan lesz, nagyon nehéz lesz a későbbiekben módosítani.
Az adatbázistervezés, az adatok jellegének vizsgálata és a köztük levő kapcsolatok alapos elemzése után következhet az adatmodell létrehozása.
Adatmodellezés
Az adatmodellezés tehát az adatállományok tervezésének korszerű módszere. Az adatmodellezéssel az a célunk, hogy egy információs rendszer adatait és az adatok között fennálló kapcsolatokat következetesen ábrázolva, elősegítsük a számítógépes információ-feldolgozást. Az adathalmaz és az adathalmaz elemei között fennálló kapcsolatok struktúrált leírását adatmodellnek nevezzük. Az adatmodellek -mint ahogy a nevükből is következik-, általában nem írják le teljesen és hűen a modellezett rendszerben található adatokat és azok kapcsolatait, hanem azoknak csak egy részét. Egy kielégítő modellnek teljesítenie kell bizonyos feltételeket: átfogónak kell lennie, azaz minden lehetséges adatot és minden lehetséges kapcsolatot tudnia kell ábrázolni és kezelni; le kell tudnia írni a valóság általános, lényeges és tartós összefüggéseit; redundanciamentesnek kell lennie, azaz minden adatot lehetőleg csak egyszer tartalmazzon; következetesnek kell lennie; valamint az alkalmazott hardverrel és szoftverrel összhangban levőnek kell lennie
Az adatmodell nemcsak felsorolása a fileban tárolt mezőknek, hanem az adatok jelentését is tartalmazza. így az adatmodellben
- világosan megkülönböztethetők az ábrázolt dolgok és a dolgok tulajdonságai;
- pontosan meghatározott, hogy melyek az ábrázolandó dolgok olyan tulajdonságai, amelyekkel a dolgok egyértelműen azonosíthatók;
- valamint az adatmodell expliciten definiálja az ábrázolt dolgok közötti kapcsolatokat.
Az adatmodell a valóság egy szeletének a leképezését jelenti. A valós világhoz képest az adatmodellek tartalmaznak bizonyos megszorításokat és egyszerűsítéseket, sőt még a modellező személyétől függő vonásokat is. Egy adatmodell úgy viszonyul a valósághoz, mint a térkép az általa ábrázolt tájhoz: a térképrajzolónak egyszerűsíteni kell, ki kell jelölnie a térkép széleit, és el kell döntenie, hogy mit is akar egyáltalán a térképen feltüntetni. Ugyanígy, az adatmodell kialakításakor a rendszerszervezőnek is el kell döntenie, hogy melyek a modelljében az ábrázolandó információelemek, és ki kell választania a dolgok között fennálló lényeges kapcsolatok közül azokat, amelyeket be akar a modellbe építeni. A lényeges információelemek és a modellben ábrázolandó kapcsolatok kiválasztása párhuzamosan történik.
Egy adatmodell a következő elemeket tartalmazza:
- egyed,
- tulajdonság,
- kapcsolat.
Vagyis:
- Egyedek a valóság olyan dolgai, amelyek más dolgoktól megkülönböztethetők, azaz az egyed a valós világban létező, fogalmi vagy fizikai léttel rendelkező dolog, amelyet tulajdonságokkal akarunk leírni. (pl. dolgozó, tanuló, vevő, autó, stb.) Ugyanaz a dolog többféle egyednek is tekinthető (pl. egy személy lehet dolgozó), de a képviselt konkrét elemek halmazát egyedhalmaznak nevezzük. (a vevő, mint egyedhalmaz az összes vevőt tartalmazza)
- Tulajdonságnak nevezzük a valóság dolgainak azon jellemzőit, amelyekkel az egyedeket leírjuk. (pl. autónál tulajdonság a típus, szín, rendszám, stb. A típus értékei lehetnek: BMW, Opel, stb.) Az egyedek a tulajdonságértékeikkel azonosíthatók.
- Kapcsolatnak nevezzük az egyedek közötti viszonyok fogalmi tükörképeit. Objektumok közötti viszony pl. az, hogy a munkás a kft. dolgozója. Ennek egy konkrét előfordulása pl. Kovács János a Zabhegyező kft. dolgozója.
Ezen felsorolt adatmodell-elemek mindegyikének három szintje van:
- Belső, vagy fizikai szint: az adatok fizikai elhelyezését és fizikai elérési módját írja le. Azaz leírja a tárolás és az elérés módját. A tárolási mód megadja, hogy melyik lemezen fizikailag hol helyezkednek el az adatbázis adott rekordjai és azt, hogy milyen konverziót kell ahhoz elvégezni, hogy az adat a felhasználóknak megfelelő formájú legyen. Az elérési mód megadja, hogy hogyan, milyen sorrendben követik egymást a rekordok, hogyan érhetjük el őket. Tipikus elérési módok: fizikai sorrendben, valamilyen mező szerint rendezve, közvetlenül indexek alapján.
- Külső szint (view-k): melyek azt írják le, hogyan látják az egyes felhasználók az adatbázist. (view= alséma, szűkített adatbázis, amely az adatbázis rekordjait tartalmazza, de nem az összes mezővel.)
- Koncepcionális szint (fogalmi adatbázis): mely azt írja le, hogy logikailag egységbe vonva, hogyan néz ki ténylegesen az adatbázis. Azaz leírja. hogyan néznének ki az adatok, ha mindenki mindent láthatna belőlük. Ezt a leírást szoktuk az adatbázis sémájának nevezni. Ez tartalmazza a koncepcionális szint összes rekordtípusának tartalmi leírását, de az adatfüggetlenség érdekében nem tartalmazza az adatok helyét és a hozzáférési módot. Ugyancsak ez a szint írja le, milyen kapcsolatok vannak az egyes rekordok között. A kapcsolat leírásának módja az adatmodelltől függ.
Még két fogalmat kell tisztáznunk a továbbiak miatt:
- Séma (típus): a konkrétan létező egyedek, tulajdonságok, kapcsolatok absztrakciója. Az egyedek bizonyos tulajdonságtípusaik alapján halmazokba rendeződnek. Egy-egy halmaz neve az egyed típusa, a halmazba tartozó egyedek az előfordulások, megfelelő tulajdonság előfordulásokkal. Ez a szint tartalmazza az egyedtípusok tartalmi leírását, de az adatfüggetlenség érdekében nem tartalmazza az adatok helyét és a hozzáférési módot. Ugyancsak ez a szint írja le, hogy milyen kapcsolatok vannak az egyedek (rekordok) között. A kapcsolatok leírásának módja az adatmodelltől függ.
- Előfordulás: konkrétan létező egyed, tulajdonságérték, kapcsolat.
Adatfüggetlenség
Mivel ugyanazon adatokat több felhasználó és több program is használhatja, az adatokat és a programokat - amennyire lehetséges - függetleníteni kell egymástól: ha például valamelyik programban a rekordokat kibővítjük egy mezővel, akkor ne kelljen a többi programot megváltoztatni. Az adatok fizikai leírását külön kell választani a programok által látott adatszerkezettől. Ez az adatfüggetlenség. Az adatfüggetlenségnek két fokozata van:
- fizikai adatfüggetlenségről beszélünk, ha a programok vagy felhasználók információkérései gyakorlatilag függetlenek az adatok tárolási és elérési módjától;
- logikai adatfüggetlenségről beszélünk, ha az adatbázis logikai szerkezetében létrehozott változások az adatbázist felhasználó programokat nem befolyásolják.
A tényleges adatfüggetlenség e kettő együttes megvalósulása.
Az adatbáziskezelő rendszer részei
- Kapcsolattartó: ez lehetővé teszi, hogy más alkalmazások kapcsolatba tudjanak lépni az adatbázissal.
- Feladat átkonvertáló: az adatbázis kezelő rendszer nyelvén kapott utasításokat elemzi, értékeli, és ha végrehajthatóak, meghatározza a végrehajtás várható leghatékonyabb módját.
- Elérés meghatározó: az objektumok elérésére meghatározott módszert átfordítja az operációs rendszer számára érthető parancsokká. Elindítja, majd értékeli ezen parancsok végrehajtását.
Az adatleíró nyelv (Data Definition Language)
Séma: az adatmodellnek és a leírásnak további számítógépes feldolgozásra is alkalmas tartalmi és formai megfogalmazása. Az adatleíró nyelv a séma megfogalmazására szolgáló nyelv. Egy adatbázishoz egy séma tartozik, amely pontosan meghatározza az adatszerkezetet, a tárolási struktúrát, valamint az egyes adatelemek között fennálló logikai kapcsolatokat. Az alsémák mutatják meg, hogy az egyes alkalmazói programok az adatbázist hogyan látják. Egy adatbázis sémához akárhány alséma illeszthető. Más-más alsémákban lehet az adatoknak a típusa, neve, csoportosítása.
Az adatleíró nyelv három szinten írja le az adatokat:
- a felhasználó szintjén, amely a tényleges adatbázis valamilyen alsémáját, az adatmodell egy külső szintjét jelenti.
- az adatok logikai kapcsolatának szintjén, mely a teljes logikai séma, a koncepciós modell leírását tartalmazza.
- az adatok fizikai tárolásának meghatározása szintjén, mely az egyes adatok fizikai elérhetőségét, tárolási módját és a köztük fennálló fizikai kapcsolatokat (mutatók, indexek stb.) írja le. A tárolási módot és a fizikai kapcsolatokat rendszerint egy önálló nyelv segítségével valósítjuk meg.
Az adatkezelő nyelv (Data Manipulation Language)
A feldolgozás céljaira szükség van egy adatkezelő nyelvre. Ennek segítségével a felhasználó az adatleíró nyelvvel definiált adatbázison műveleteket végezhet.
A műveletek vonatkozhatnak az adatbázis adatainak:
- előállítására,
- módosítására,
- lekérdezésére.
Az adatkezelő nyelv által az adatbázis megnyitható, zárható, kulcs vagy cím alapján kereshetünk benne, beolvashatunk, beszúrhatunk, törölhetünk, módosíthatunk rekordokat.
Az adatbáziskezelő rendszer
Az adatbáziskezelő rendszer tehát egy szoftver, amely biztosítja az adatbázisban tárolt adatok létrehozását, kezelését, valamint leírja és kezeli az adatok közötti komplex kapcsolatokat. Az adatbáziskezelő rendszernek támogatnia kell valamilyen adatmodellt, hogy a valóságot le tudja képezni egy számunkra megfogható objektumra. Két részből épül fel:
- jelölésrendszer: hogy valamilyen formában a valóságot ábrázolni tudjuk,
- műveletek halmaza: amely lehetővé teszi, hogy az előbbieket kezelni tudjuk.
Az adatbáziskezelő rendszernek biztosítania kell:
- különféle igények hatékony kielégítését,
- az adatbázis következetességét, vagyis, hogy csak valós adatokat tároljunk,
- az adatbázisbeli valamennyi adat elérését, (ezt egy filekezelő rendszer nem teszi meg)
- adatfüggetlenséget, (fizikai és logikai függtelenséget)
- adatok közti komplex kapcsolatok kezelését és ábrázolását,
- redundancia mentességet és annak ellenőrzését (ne szerepeljen az adatbázisban többször is ugyanaz az adat),
- az adatok védelmét, [mind fizikai, mind emberi (véletlen vagy szándékos rongálás) értelemben]
- helyreállíthatóságot,
- több felhasználós rendszerekben az egyidejű hozzáférést (tranzakciókezelés),
- osztott adatbázisokban az adatok szétosztását, megtalálását,
- az adatforgalom optimalizálását.
Adatmodellek:
- hierarchikus modell: az adatbázist irányított gráfként, fastruktúrában ábrázoljuk. A gráf csúcsai az objektumokat, az ágai pedig az objektumok közötti kapcsolatokat jelölik. Ennek az ábrázolásnak az a hátránya, hogy nem minden fajta kapcsolatot tud ábrázolni (például a sok-sok kapcsolatot nem tudja).
- hálós modell: ez a modell már megoldotta az előbbi problémát. Az adatokat mutatókon keresztül érhetjük el és ugyanígy reprezentálhatjuk a köztük levő kapcsolatokat is.
Ezt a két modellt többnyire az adott feladatokra írt programokkal valósították meg. Ha olyan kérdés merült fel, ami nem volt beprogramozva, azt nem lehetett megválaszolni.
- relációs modell: a 70-es évektől kezdve terjedt el, és ma már szinte minden rendszer ezt támogatja. Jelölésrendszere táblázatokból áll. A kapcsolatok leírására bonyolult matematikai apparátust, relációkat használ. Ezt a modellt használja például az SQL nyelv is.
Amikor létrehozunk egy adatbázist, bizonyos szabályoknak kell eleget tenni. így érhetjük el, hogy az adatmodell mindig a valóságot tükrözze. Ha tényleges változás következik be, akkor az adatbáziskezelő rendszer szerkezetét kell módosítani.