Adatbázisok: Az elmélet ereje

Manapság az informatika/számítástechnika területén szinte mindenhol szembetalálkozunk az adatbázisok, adattárak, adatkezelés vagy éppen az adatok definíciójával. Ebben a cikkben megpróbáljuk kissé körüljárni ezeket a fogalmakat.

Kezdjünk is mindjárt bele.

Az adatkezelés már a számítástechnika "hőskorában" is fontos szerepet játszott, napjainkban pedig az informatika egyik legfontosabb területévé vált. Aki számítástechnikával foglalkozik, mindenképpen ismernie kell - legalább  alapszinten - az adatbázisok filozófiáját, az adatkezelés eszközeit.

Adatbázis: Mit is jelent valójában ez a szó? Mielőtt meghatároznánk a adatbázis tényleges tartalmi jelentését, definiálnunk kell magának az adatnak a fogalmát.

Adat: A való világ dolgainak, történéseinek, jelenségeinek mérése, megfigyelése folyamán keletkezett számok, jelek/jelsorozatok összessége.

Szinte bármit tekinthetünk adatnak, aminek valamilyen jelentéstartalma van. Adatnak nevezhetjük pl. nevünket, születési évünket vagy akár autónk egyes tulajdonságait (rendszám, típus, szín) is. Vannak olyan adatok, amelyek egyes emberek számára fontos jelentéstartalommal bírnak, más emberek számára viszont semmit sem jelentenek.

Információ: Azt az adatot amelyek bizonyos emberek számára valamilyen fontos jelentéstartalmat hordoznak, információnak nevezzük. Az információ tehát adatokból épül fel, ezért jóval többet "ér" mint az adat.

Az egyes adatok között nagyon könnyen fedezhetünk fel vagy hozhatunk létre bizonyos kapcsolatokat. Előző autós példánknál maradva a három adatból (rendszám, típus, szín) a rendőrség saját adatbázisából nagyon könnyen megtalálhat minket, ha pl. közlekedési szabálysértést követtünk el.

Adatbázisnak tehát az adatokat és az adatok között lévő kapcsolatokat nevezzük.

Az adatok egymással tehát valamilyen szoros vagy lazább kapcsolatban állnak.

Ha pl. egy pénzügyi adatbázis (pl. egy bank) rendszerére gondolunk, akkor rengeteg kapcsolatot határozhatunk meg az egyes adatok között. (Hogy milyen kapcsolatok lehetnek az egyes adatok között, arra hamarosan rátérünk.)

Adatbáziskezelő rendszerek (DBMS)

Az adatbázisok fontos erőforrások egy vállalat, szervezet életében. Erről azt hiszem, nem is kell győzködnöm az olvasót. Maga az adatbázis viszont még önmagában nem sokat ér. Ahhoz, hogy adatokat tudjunk lekérdezni, felvinni vagy éppen módosítani, kell valamilyen szoftvert (programnyelvet) megadnunk hozzá, hogy ezen műveletek elvégezhető váljanak. Ezt a szoftvert nevezzük adatbázis-kezelő rendszernek (DataBase Management System, továbbiakban: DBMS). Az DBMS-nek alapvetően két fontos funkciója van:

ˇ         Adatbázis létrehozása (struktúrájának/felépítésének meghatározása) és feltöltése adatokkal,

ˇ         valamint az adatok lekérdezése.

Hogyan lehet ezeket megvalósítani? Az adatbázis-kezelők tartalmaznak fájlkezelőket (file manager), amelyek az adatbázisok logikai szerkezetét hozzák létre és adatokat képesek felvinni, majd ezeken az adatokon műveleteket végrehajtani. Ez a fájlkezelő tartja nyilván az adatok fizikai helyét az adatbázisban a köztük lévő kapcsolatokkal együtt. Erre a célra szolgál a fájlkezelőben elhelyezkedő adatszótár (Data Dictinonary). A lekérdező nyelvek pedig olyan interaktív eszközök, amelyek segítségével "párbeszédet" folytatunk a rendszerrel.

Ugyanakkor egyes modern adatbázis-kezelő rendszerek (mint pl. az SQL Server, Oracle, Paradox stb.) további fontos funkciókat is ellátnak, úgymint:

ˇ         Adatvédelem, adatbiztonság: Ezen funkció segítségével határozhatjuk meg azokat a nagyon fontos szabályokat, hogy az egyes adatokhoz mely személyek férjenek hozzá, kik azok akik adatot vihetnek fel, vagy mely felhasználóknak van joguk meglévő adatokat módosítására.

ˇ         Integritási feltételek teljesülésének figyelése: Gyakran előfordul, hogy csak bizonyos feltételeknek megfelelő adatokat vihetünk fel az adatbázisban. Ilyen az amikor egy autós adatbázisba az adott gépkocsi színének meghatározásakor csak betűket fogadhatunk el adatként, vagy éppen bankszámlánk is csak meghatározott számú karakterből állhat.

ˇ         Szinkronizáció: Ez tulajdonképpen nem jelent mást, mint amikor egyszerre két, vagy több olyan felhasználó fordul ugyanahhoz az adathoz. Az egyik éppen módosítani míg a másik lekérdezni szeretné egyszerre ugyanazt az adatot. Ez természetesen egy időben nem megengedhető. Ezeknek a ún. "holtpont" helyzeteknek a megoldása a szinkronizáció fontos feladata. Ugyanakkor az egyes, egymástól különálló adatbázisok is folytathatnak egymással szinkronizációt, amikor egyes adataikat a másik adatbázisából lekérdezve frissítik. (ld. tőzsdei adatbázisok)

ˇ         Naplózási feladatok elvégzése: Más néven statisztika készítése az DBMS-ben végbement összes változásról, műveletek elvégzéséről.

ˇ         Mentés, visszaállítás: Hardver vagy egyéb, előre nem kiszámítható hiba folyamán bekövetkezett esemény ne vezessen oda, hogy adatok vesznek el. (Ez utóbbi két funkció nagyon fontos a biztonságos üzemeltetés szempontjából.)

Természetesen az egyes DBMS-ek jóval több funkciót is tartalmazhatnak (pl. programfejlesztési környeztet támogatását), de ezzel most egyenlőre nem foglalkozunk. Térjünk vissza az adatbázisokhoz.

Adatmodellek alkotóelemei

Foglaljuk össze, hogy mit tudunk eddig: Az adatbázis adatokból és a közöttük lévő kapcsolatokból épül fel. Az adatok pedig különböző tulajdonságokkal rendelkeznek.

Éppen ennek az összefüggésnek a felismerése vezette a szakembereket arra, hogy olyan struktúrákban, más néven adatmodellekben kezdjenek el gondolkodni, amely olyan szabványos nyelvek, struktúrák kezelését teszi lehetővé, amelyekkel teljesen különböző adathalmazok is könnyen kezelhetővé váljanak.

Egy adatmodell is elemekből épül fel. Melyek ezek az adatmodell-elemek?

ˇ         Egyed,

ˇ         Tulajdonság

ˇ         Kapcsolat

Nézzük meg ezt a hármas felépítést kicsit alaposabban is. Az adatmodell tehát egy olyan sémának tekinthető, amely meghatározza, hogy milyen egyedek találhatóak benne, ezeket milyen tulajdonságokkal lehet leírni, és ezen egyedek között milyen kapcsolatokat lehet létrehozni.

Nézzük meg az előbb definiált adatmodell építő-elemeit:

Egyed: Egyednek nevezünk minden olyan dolgot  (objektumot), amely minden más egyedtől (objektumtól) jól megkülönböztethető és amiről adatokat tárolunk. (Ez a legkisebb egysége az adatbázisnak, amire hivatkozni lehet.)

Egyed lehet pl.: egy autó vagy egy személy amelynek jól meghatározható tulajdonságai vannak. A több azonos egyed által képviselt konkrét elemek halmazát nevezzük egyedhalmaznak. Pl. az autók egyedhalmazát alkotja az összes autó egyed, vagy éppen a személyek egyedhalmazát az összes személy egyed.

FONTOS !!!

Egyes adatbázis-kezelő rendszerekben az egyedet REKORDnak nevezik. Később mi is ezt a kifejezést fogjuk alkalmazni, de az adatmodellek általános ismertetésénél még az egyed fogalmát használjuk.

Vizsgáljuk meg az egyedek jellemzőit!

A tulajdonság (idegen szóval: attribútum) az egyed egy jellemzője, amely meghatározza az egyed egy részletét.

Válasszunk ki a személyek egyedhalmazból egy képzeletbeli személyt (Adat Aladár) és vizsgáljuk meg, hogy az adott személy attribútumai milyen speciális tulajdonságtípusok lehetnek:

Adat Aladár

tulajdonságok:

tulajdonság típusa:

Adat Aladár

leíró (egyszerű) tulajdonság

145120123510

azonosító v. kulcs

programozó

többértékű tulajdonság

1051 Bp, Andrássy u 6. IV.em 41.

összetett tulajdonság

Az egyedeket tehát tulajdonságokkal írjuk le, amelyek jól meghatározzák az egyed egy részletét.

Amennyiben egy tulajdonság egyértelműen képes meghatározni, hogy az adatbázis mely egyedéről van szó, akkor ezt a tulajdonságot kulcsnak nevezzük.

Nézzük meg a fenti példát. Melyik tulajdonság lehet a kulcs? Egyértelmű, hogy a személyi szám, mert az minden embernek más és más. A tulajdonságok között lehetnek többértékűek (egy személynek egyszerre több végzettsége is lehet), és lehetnek összetettek, mint pl a lakcím, ahol több rész-attribútum alkot egy egész-tulajdonságot.

Az egyedek közötti kapcsolat

A kapcsolat tehát nem más, mint az egyedek közötti viszonyt kifejező érték. Egy kapcsolat nemcsak két, hanem egyszerre több egyed között is létrejöhet. Lássuk melyek a kapcsolat leggyakoribb fajtái:

ˇ         Egy-egy kapcsolat esetén minden egyedhalmaz egy egyede pontosan egy másik egyedhalmaz egy eleméhez kapcsolódik. (Ilyen az amikor személyi számok egyedhalmazból egy személyi szám pontosan köthető a személyek egyedhalmaz egy konkrét személyéhez.)

ˇ         Egy-több kapcsolat esetén egy egyedhalmaz egy eleme a másik egyedhalmaz több eleméhez is köthető. Pl. a vállalatok egyedhalmaz egy eleme a személyek egyedhalmaz több eleméhez is köthető, mivel egy vállalatnál több személy is dolgozik.

ˇ         Több-több kapcsolat esetén egy egyedhalmaz egy eleme a másik egyedhalmaz több eleméhez is köthető, és ez visszafelé is igaz. Legyen egy autók és egy színek egyedhalmazunk. Egy autó természetesen több színhez is köthető, de ugyanez fordítva is igaz, mert pl. kék színű több autó is lehet.

Mostanra ennyit az adatbázisok általános ismertetéséről. A következő cikkben lesz szó a hálós és hierarchikus adatmodellről és bemutatom a mai modern adatbázis-kezelő rendszerek alapjait alkotó relációs adatmodellt is.

Kiszely Gábor