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
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 |