6. fejezet - 6. fejezet - Adatok elosztása

Sok esetben nem elég az, ha az adatokat az egyik helyről a másikra csak egyszerűen átmozgatjuk. Létezhetnek olyan cégek, amelyeknek több különböző telephelyük van, és ezeken a telephelyeken különböző adatbázisokban tárolják az adatokat. A telephelyek adatait azonban nem csak a helyi felhasználók szeretnék használni, hanem más telephelyek alkalmazottai is. Az adatok egyszerű átmozgatása már nem biztos, hogy elegendő, mert például az adatok túl gyakran változnak vagy több telephelyről is módosítani szeretnék. Az ilyen esetekben elosztott-adatbázis megoldásra van szükség.

6.1. Elosztott adatbázisok

Az elosztott-adatbázis megoldások teszik lehetővé, hogy egy logikai egységet alkotó adatok fizikailag teljesen különböző helyeken, különböző adatbázisokban legyenek tárolva, amelyeket talán különböző adatbázis-kezelő rendszerek kezelnek. Így állandó elérést lehet biztosítani a logikailag összefüggő, de különböző csomópontokon tárolt, fizikailag elosztott adatokhoz. Például egy cég a kiskereskedelmi hálózatát megvalósíthatja elosztott adatbázissal. Minden kiskereskedéshez saját adatbázis tartozik, és a központban kap helyet a központi adatbázis. Ha a gépek hálózati kapcsolatban vannak és kihasználjuk az adatbázis-kezelő rendszernek az elosztott adatok elérését támogató képességeit, akkor bármely helyen lévő adat bárhonnan elérhető, és módosítható. Meghatározhatjuk, hogy melyik helyről frissíthetik, olvashatják, érhetik el az adott adatbázist.

Nem nevezzük elosztott adatbázisnak azt, amikor egymástól függetlenül működő adatbázisokat átmenetileg, adatmozgatás céljából összekapcsolunk, mert ezek az összekapcsolt adatbázisok nem alkotnak logikai egységet. Az a szituáció sem tekinthető elosztott adatbázisnak, amikor csak a metaadatokat osztjuk el. Maga az adatbázis ettől még egységes egészként kezelendő.

Az elosztott adatbázis esetén lehet, hogy az egyes csomópontok egyenrangúak, vagy lehet, hogy van egy kitüntetett központi adatbázis-szerver, amelynek a kommunikáció koordinálásában, a jogosultságok kezelésében és az adatok megfelelő elosztásában van szerepe.

Egy elosztott adatbázis létrehozható egyetlen adatbázisként, vagy több adatbázisként is. Egyetlen adatbázis felállításakor az egyetlen adatbázis-kezelő rendszernek a folyamatai vezérelnek minden adatelérést. Az egyes csomópontokba a különböző adatállományok vannak elhelyezve. Több adatbázis felállításánál azonban, több független adatbázis-kezelő rendszerbeli folyamat van, amelyek a saját adataik elérését vezérlik.

Az elosztott adatbázisok lehetnek heterogének vagy homogének. Heterogén elosztott adatbázis esetén különböző adatbázis-kezelő rendszerek kezelik a különböző csomópontokban lévő adatokat. Ekkor egy olyan szoftvereszközre van szükség, amely segíti azt, hogy a különböző típusú adatbázis-kezelő rendszerek kommunikálni tudjanak egymással. A homogén elosztott adatbázis esetén minden csomópontban ugyanaz az adatbázis-kezelő rendszer. Az adatbázis-kezelő rendszerek általában támogatják a különböző csomópontokban lévő adatbázisok közti kommunikációt.

Az elosztott rendszerek esetében fontos kérdés az, hogy az egyes csomópontok adatai más csomópontokban vannak-e replikálva. Vagy fogalmazhatunk másképp: az adatokat szétválasztották valamilyen szempont szerint, vagy az egyes csomópontok adatai átfedik egymást. A szétválasztott adatok esetén az egyes csomópontokban csak annyi redundancia a megengedett, amennyi feltétlenül szükséges, például az egyik csomópont elsődleges kulcsértékeit a másik csomópont külső kulcsként használja. Ha az egyes csomópontok adatai átfedik egymást, az az jelenti, hogy ettől sokkal nagyobb mértékű redundancia is megengedett, mint amikor egy tábla teljes tartalmát két csomóponton tároljuk.

A 6-1-es ábrán olyan elosztott adatbázist láthatunk, amelyben az adatok szét vannak választva, míg a 6-2-es ábrán olyat, amelyben az egyes csomópontok adatai átfedik egymást.

6-1. ábra – Szétválasztott adatok

6-2. ábra – Átfedő adatok

Ha az elosztott adatbázisunkban az adatokat szétválasztottuk, azaz nincs redundancia, és ha az egyik csomópont esetén hiba történik, akkor annak a csomópontnak az adatai nem lesznek elérhetőek. Ha átfedő adataink vannak, és egy csomópont minden adatát meg lehet találni egy másik csomóponton is, és ha egy csomópontban hiba történik, akkor az elérhetőség nem sérül, hiszen az adatokkal lehet tovább dolgozni. Ahhoz, hogy az adatokkal úgy lehessen tovább dolgozni, mintha nem történt volna meg a hiba, szükségesek más technikák is, amit itt nem részletezünk. A klaszterezés (vagy fürtözés) az elosztott adatbázisoknak ezt a tulajdonságát használja ki, amikor a 99,999%-os elérhetőséget kell biztosítania.

Az elosztott adatbázisokat a következőkkel szokták jellemezni:

  • Autonómia: azt határozza meg, hogy a különböző csomópontokon lévő elosztott adatbázis-implementációk milyen mértékben működhetnek egymástól függetlenül. Egy csomópont autonóm, ha az ott tárolt adatokat a többi csomóponttól függetlenül lehet kezelni, adminisztrálni.

  • Átlátszóság: arra utal, hogy az adatok helye a felhasználóktól, illetve az alkalmazásoktól mennyire vannak védve. Azt mondjuk, hogy az adatbázis átlátszó, ha az adatok használója az adatbázist egy egységként látja, és nem kell tudnia, hogy a számára szükséges adatok hol vannak elhelyezve. Átlátszó elosztott rendszerben a fejlesztőknek nem kell ismerniük az adatok helyét. Nem átlátszó rendszerben a fejlesztőnek explicit módon kell megadnia egy kapcsolatot, ha egy adatbázis-csomóponton lévő adatokat szeretné elérni. Az adatbázis-adminisztrátor feladata, hogy a fejlesztőknek megadja, hogyan érhetik el az adatokat a nem átlátszó elosztott adatbázisban. A mai technológiák mellett az átlátszóság gyakran a köztes réteg feladata. Ilyenkor az adatbázis-adminisztrátor felelős az adatbázis és a köztes réteg munkájának az összehagolásáért.

Az adatbázis-adminisztrátor elosztott adatbázisok esetén különböző szintű autonómiát és átlátszóságot tud megvalósítani egy adatbázis-kezelő rendszer segítségével. Természetesen a megvalósítás függ az adatbázis-kezelő rendszer képességeitől is. Ahhoz, hogy az adatbázis-adminisztrátor ezeknek a jellemzőknek, illetve más tényezőknek megfelelően alakítsa ki az elosztott adatbázist, pontosan ismernie kell az adatbázis-kezelő rendszer képességeit.