kategória | ||||||||||
|
||||||||||
|
||
Az ORACLE az egyik vezető relációs adatbáziskezelő rendszer, amely nagy méretű adatbázisok biztonságos kezelését tűzte ki célul. Számos olyan helyen használják, ahol fontos az adatok gyors elérése és az adatbiztonság (pl. 838c29i banki rendszerek). Eredetileg középgépekre fejlesztették ki, majd később létrehozták a személyi számítógépeken futtatható változatát és nagygépes változatát is. Az ORACLE adatbáziskezelőnek egyre újabb verziói készülnek el. Mi a továbbiakban az ORACLE 7-es verziójával ismerkedünk meg. Az adatbáziskezelő rendszer részletes bemutatásának az a célja, hogy egy konkrét példán vizsgáljuk meg az adatbáziskezelő rendszer komplex feladatainak megvalósítását.
Az ORACLE adatbázis egy egységet alkotó adatok összessége.
Az adatbázis file-okból áll, fizikailag ezek az adat-file-ok, a REDO LOG file-ok és a CONTROL file.
Logikailag az adatbázis tablespace-ekre bomlik. A tablespace-k a logikai kapcsolatban levő objektumok csoportosítására szolgálnak. Például az egy alkalmazáshoz tartozó objektumokat egy tablespace-ben helyezik el.
Adatbázis-objektumok az adattáblák, indexek, clusterek, nézettáblák, tárolt eljárások stb.
Az adattáblákban találhatók a felhasználók által elérhető adatok.
A nézettáblák az adattáblákon alapulnak. A nézettáblák tulajdonképpen tárolt lekérdezések. Nem tartalmaznak adatokat, az adatokat azokból a táblákból emelik ki, amelyeken alapulnak. Sorokból és oszlopokból állnak, mint a táblák, ugyanúgy használhatjuk őket. A nézettáblák segítségével az adatokat úgy csoportosíthatjuk, ahogy az egyes felhasználók számára a legmegfelelőbb. A nézettáblák módosíthatók, de csak akkor, ha egyetlen adattáblán alapulnak. Ekkor a módosítás az adattáblában történik meg. Nézettáblákból is hozhatunk létre újabb nézettáblákat.
Az egyes táblázatokhoz készíthetünk indexeket. Az indexek az adatok visszakeresésének gyorsítására szolgának. Az index kulcsa az adattábla egy vagy több oszlopa lehet. Bármikor létrehozhatunk és megszüntethetünk indexeket. Az index az adattábla módosítása esetén automatikusan módosul.
A clusterezés egy adattárolási módszer. A cluster egy vagy több táblából álló csoport, melyek fizikailag együtt kerülnek tárolásra. Azokat a táblákat célszerű egy clusterben elhelyezni, amelyeket gyakran használunk együtt. Ezzel a tárolással jelentősen gyorsítani lehet az adatok visszakeresését.
A tablespace-k között kitüntetett szerepe van a SYSTEM tablespace-nek. Ebben található az adatszótár. A SYSTEM tablespace automatikusan létrejön, amikor az adatbázist létrehozzuk. A tablespace-k segítségével az adatbázis-adminisztrátor vezérelni tudja az adatbázis elhelyezkedését a lemezeken, részleges adatmentést tud végezni úgy, hogy csak bizonyos tablespace-ket ment. Egy tablespace lehet online, vagy offline. A felhasználók számára csak az online tablespace-k érhetők el. Így az adatbázis-adminisztrátor egyes tablespace-ket időlegesen elzárhat a felhasználók elől.
Az adatszótár egy táblagyűjtemény, amely az adatbázis leírását tartalmazza. Ezek a táblák közvetlenül nem módosíthatók, csak lekérdezhető a tartalmuk. Itt találhatók többek között az adatbázis felhasználóinak leírása (név, jogosultság), az adatbázis objektumainak leírása (táblák, indexek, clusterek stb.).
A REDO LOG file-ok információkat gyűjtenek az adatbázis legutóbbi mentése óta történt változásokról egy esetleges sérülés miatt szükséges helyreállításhoz (on-line mentés).
Az adatbázishoz szükség van még egy vezérlő-file-ra (CONTROL file), ez az adatbázis fizikai struktúrájáról tartalmaz információkat. Például az adatbázis nevét, az adat- és a redo log file-ok nevét, létrehozásuk idejét. Az adatbázis megnyitásakor a vezérlő file segítségével nyitja meg az adatbáziskezelő rendszer az adatbázishoz szükséges fizikai file-okat.
Tranzakciók
A tranzakció egy felhasználó által végzett műveletek logikai egysége. Az első tranzakció a felhasználó legelső utasításával kezdődik. A tranzakció egy commit, vagy rollback utasításig tart. Ezután újabb tranzakció kezdődik.
A COMMIT utasítás megerősíti a tranzakció során elvégzett műveleteket, véglegesíti az adatokon történt változtatásokat. Hatására feloldódnak a tranzakció során létrejött lockolások.
A ROLLBACK utasítás hatására törlődnek a tranzakció során végrehajtott adatváltoztatások és feloldódnak a tranzakció során létrejött lockolások.
Ha egy tranzakció során a munka valamilyen oknál fogva megszakad, akkor az utolsó COMMIT utasítás utáni változtatások törlődnek.
Amíg egy felhasználó nem erősítette meg a commit utasítás segítségével az adatokon végzett változtatásokat, a többi felhasználó az adatok eredeti állapotát látja.
Adatmentés és helyreállítás az ORACLE adatbáziskezelő rendszerben
Az ORACLE adatbáziskezelő fejlett mentési és helyreállítási eszközökkel rendelkezik. Az adatbáziskezelő két mentés között a REDO LOG file-okban tárolja az adatbázisban történt változtatásokat. A REDO LOG file-ok ciklikusan kerülnek felhasználásra. Amikor az utolsó is megtelik, az első file tartalma törlődik és újra ez lesz az aktuális REDO LOG file. Lehetőség van arra, hogy a megtelt REDO LOG file-ok tartalmát egy archív REDO LOG file-ba helyezzük el, így a ciklus újraindulása esetén sem veszik el információ. A REDO LOG file-okat általában több példányban tárolják különböző lemezeken, hogy az esetleges lemezhibák, vagy adatsérülések után is legyen legalább egy helyes példány. Ugyanezen megfontolásból a CONTROL file-ból is legalább két példányt használnak, ezek a file-ok egymás tükörképei (pontosan megegyeznek egymással).
Meghibásodás esetén az adatbázis legutolsó mentéséből a CONTROL file segítségével az adatbázis helyreállítható. A REDO LOG file-ok tartalmazzák a mentés óta történt változásokat. Ezeket az adatbázison átvezetve helyreállítható az adatbázisnak az az állapota, ami a meghibásodás bekövetkezése előtt volt. Az utolsó meg nem erősített tranzakciók módosításai elvesznek.
Mivel a tranzakciók állandó könyvelése időigényes és lassítja a rendszer működését, a felhasználó döntheti el, hogy igénybe veszi-e az adatbáziskezelő ezen szolgáltatását.
Az adatvédelem további területei az ORACLE adatbáziskezelő rendszerben
Az adatok integritását alapvetően a táblák leírásánál az oszlopokra megadott követelmények (constraint) teljesülésének figyelésével biztosítja az adatbáziskezelő rendszer.
Követelmények lehetnek:
NOT NULL az oszlopban nem lehet kitöltetlen cella
UNIQUE az oszlopban szereplő minden értéknek
különbözőnek kell lennie
PRIMARY KEY az oszlop elsődleges kulcs
FOREIGN KEY az oszlop idegen kulcs
CHEK az oszlopba kerülő értékre vonatkozó feltétel
Az adatintegritás biztosítására szolgálnak az adatbázis-triggerek is. Ezek tárolt eljárások, amelyek a megfelelő adattábla minden módosításakor (módosítás, törlés, új sor felvitele) végrehajtódnak.
Az illetéktelen felhasználások kizárását rendszer és adat szinten valósítja meg az ORACLE.
Rendszer szintű védelem, hogy az adatbázist csak azok a felhasználók használhatják, akik érvényes felhasználói névvel (username) rendelkeznek és ismerik a névhez tartozó jelszót (password). Szabályozható, hogy az egyes felhasználók mikor férhetnek hozzá az adatbázishoz és milyen rendszerműveleteket (pl. tablespace létrehozása) hajthatnak végre.
Az adatszintű védelem során meghatározható, hogy az egyes felhasználók mely adatobjektumokhoz férhetnek hozzá, és azokon milyen műveleteket hajthatnak végre. Lehet, hogy egy felhasználónak egy táblával kapcsolatban csak lekérdezési joga van, míg egy másik felhasználó adatokat is vihet fel a táblába, de nem törölhet belőle stb.
A rendszerműveletek többségét általában csak az adatbázis-adminisztrátorok számára engedélyezik.
Szinkronizáció az ORACLE adatbáziskezelő rendszerben
Az ORACLE adatbáziskezelő a konkurens műveletek szinkronizálását - speciális eseteket kivéve - automatikusan végzi. Az automatikus zárolás sor szinten történik, vagyis csak azt a sort zárolja az adatbáziskezelő rendszer a többi felhasználó elől, amelyre a művelet vonatkozik. A zárolt sorok továbbra is lekérdezhetők a többi felhasználó számára, azonban egyéb műveleteket (pl. módosítás, törlés) nem végezhetnek rajtuk. Az ORACLE adatbáziskezelő rendszerben lehetőség van tábla szintű zárolás megvalósítására is.
Bizonyos esetekben szükség lehet az automatikus zárolás felülbírálására. Ezért lehetőség van zároló utasítások használatára is.
Az adatbáziskezelő figyeli az esetleges patthelyzetet, ennek észlelésekor az ezt okozó tranzakciókat megszünteti és visszaállítja a tranzakciók előtti állapotot.
Osztott adatbázisok kezelése az ORACLE adatbáziskezelő rendszerben
Az ORACLE adatbáziskezelő rendszer felkészült az osztott adatbázisok kezelésére is. A fizikailag különböző helyeken található adatokat a felhasználók logikailag összekapcsolhatják a különböző lekérdezések során, akár egy nézettáblában is szerepelhetnek fizikailag különböző adatbázisokban levő adatok.
Az osztott adatbázisok kezelésének egyik legnagyobb problémája a tranzakciók kezelése - a commit és a roll back megvalósítása. Ugyanis lehetséges, hogy egy tranzakció fizikailag különböző adatbázisokban található adatokra vonatkozik. A commit és a roll back esetén biztosítani kell, hogy az mindegyik adatbázisban megtörténjen. Előfordulhat, hogy a commit sikeresen lezajlik az első adatbázisban, azonban hiba történik a második adatbázisbeli commit esetén. Ekkor az első adatbázisba a tranzakció által végrehajtott módosítások véglegesen belekerültek, míg a másodikba nem. Így az adatok integritása már nem áll fenn. Ezért olyan commit és roll back megoldásra van szükség, amely garantálja, hogy az minden adatbázisban megtörténjen. Erre szolgál a két fázisú commit (two-phase commit) eljárás, melyet az ORACLE adatbáziskezelő rendszer is alkalmaz. Az első fázisban a commit művelet nem kerül ténylegesen végrehajtásra, csak az előkészítése történik meg, melynek során az adatbáziskezelő meggyőződik arról, hogy nincs akadálya a commit végrehajtásának. Ha a tranzakcióban résztvevő minden adatbázisban sikeres volt az előkészítés, akkor a második fázisban megtörténik a tényleges commit végrehajtása. Ha az előkészítés során valamelyik adatbázis hibát jelez, akkor a második fázisban a tranzakcióban résztvevő összes adatbázisban megtörténik a tranzakció visszagörgetése. Így az adatok konzisztensek maradnak.
Az ORACLE adatbáziskezelő rendszerben az SQL*NET hálózatkezelő software biztosítja az osztott adatbázisok kezelését. Ennek segítségével különböző verziójú ORACLE adatbázisok is összekapcsolhatók, sőt a hálózatban olyan nem ORACLE adatbázisok is lehetnek, amelyek kezelését az ORACLE támogatja.
Az ORACLE adatbázis indítása és lezárása
Ahhoz, hogy az ORACLE adatbázissal dolgozni lehessen, az adatbázist el kell indítani (startup). Ennek során a memóriában egy terület lefoglalásra kerül az adatbázisra vonatkozó információk tárolására (system global area - SGA) és megtörténik az adatbázishoz tartozó file-ok megnyitása.
Az adatbázis lezárása során először lezárásra kerülnek az adatbázist alkotó file-ok. Ekkor a memóriában található információk visszaírása is megtörténik. Utoljára kerül sor a CONTROL file lezárása. Ezután a lefoglalt memóriaterület felszabadul.
Az adatbázis indítása és lezárása az adatbázis-adminisztrátor feladata (egyfelhasználós rendszerben a felhasználóé).
:
1529