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. 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ál 949f51j tozatá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ö
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
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
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óé).
:
2889