online kép - Fájl  tubefájl feltöltés file feltöltés - adja hozzá a fájlokat onlinefedezze fel a legújabb online dokumentumokKapcsolat
  
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

Online dokumentumok - kep
  

Interaktív adatbaziskezelő rendszerek

számítógépes



felso sarok

egyéb tételek

jobb felso sarok
 
A szöveg specialis objektumainak kezelése
Az operaciós rendszer
Part Design CATIA V5 - Start
Adatok tömörített tarolasa - előnyök, hatranyok
Egy kis elmélet
A HP Usb disk storage format tool v2.1.8 hasznalata
TCP szerver készítése
Az operaciós rendszerek installalasa
Szamítógépes vírusok - A vírusok matematikai modellje
Osztott adatbazisok
 
bal also sarok   jobb also sarok

Interaktív adatbáziskezelő rendszerek



Az interaktív adatbáziskezelő rendszerek használatakor a felhasználó párbeszédet folytat a számítógéppel. Vagyis a felhasználó megadja parancsait, vagy kérdéseit, amelyekre azonnali választ vár a számítógéptől. Fontos, hogy a felhasználó elfogadható időn 252e41c belül választ kapjon kérdéseire. A megfelelő válaszidő 2-3 másodpercen belül van, de a fél percen belüli válasz még elfogadható. Nem lenne szerencsés például egy könyvtári nyilvántartási rendszernél, ha fél óra alatt derítené ki, hogy a Háború és béke bent van-e a könyvtárban. Az interaktív adatbáziskezelés egyik legnagyobb problémája az adatok olyan fizikai szervezésének kialakítása, amely nagy mennyiségű adat esetén is gyors válaszadást biztosít.

Az interaktív adatbáziskezelés során is adódhatnak olyan feldolgozási igények, melyek kielégítése hosszabb időt vesz igénybe. Ezeket célszerű külön futtatni, például a kórházi statisztikákat rendelési időn kívül.



Konkurens műveletek


Egy adatbázis adataihoz általában egyszerre nem csak egy felhasználó szeretne hozzáférni. Gyakori, hogy egy időben számos lekérdezési és módosítási igény érkezik az adatbázishoz. Az adatbázis-kezelő feladata, hogy összehangolja ezeket az igényeket. Tekintsük az előző könyvtári példát! Tegyük fel, hogy két kölcsönző helyen is a Háború és békét szeretnék kikölcsönözni. A könyvtárosok mindkét helyen megkérdezik az adatbázist, hogy bent van-e a könyv a könyvtárban. Mind a ketten azt a választ kapják, hogy egy példány van jelenleg bent. Ezután mindketten jelzik az adatbázisnak, hogy a könyvet kiadták. A probléma csak akkor derül ki, amikor a raktárból két kötetet kellene kihozni, pedig ott csak egy van.

Az adatbázis általában egy központi gépen található, amelyhez más gépek, vagy terminálok csatlakoznak. Ha ugyanazt az adatrekordot egyszerre több felhasználó is kiolvassa az adatbázisból, ez semmilyen problémát nem okoz. Ha azonban egyszerre két felhasználó szeretné módosítani ugyanazt a rekordot, akkor adatvesztés történhet. Mindketten kiolvassák az adatbázisból a rekordot, a saját gépük memóriájába kerül a rekord tartalma. Itt elvégzik a módosítást, majd visszaírják a rekord új tartalmát az adatbázisba. Csakhogy a második visszaírás felülírja az elsőt, így azok a módosítások, amelyeket az a felhasználó hajtott végre, aki előbb visszaírta a rekordot, elvesznek.


Példaként tekintsünk egy hallgatói nyilvántartást. Az A felhasználó egy hallgató ösztöndíját kívánja módosítani, a B felhasználó pedig ugyanezen hallgató lakcímét.





Mivel az A felhasználó előbb írta vissza a rekordot az adatbázisba, a B felhasználó rekordja felülírja azt, így az adatbázisba csak a lakcímmódosítás kerül be, az ösztöndíj összege változatlan marad. A hibát észre sem veszik, hiszen az A felhasználó úgy látta, hogy az ő módosítása rendben megtörtént.


Ezen problémák megelőzésére vezették be a többfelhasználós adatbáziskezelő rendszerekben az egyes adatbázisok, vagy azok bizonyos részeinek zárolását (lock). A zárolást egy alkalmazás kezdeményezi, hogy a számára szükséges adatokat más alkalmazás ne módosíthassa. A zárolás lehet sor szintű (rekord szintű), ekkor csak a meghatározott sorra vonatkozik, a többi sor változatlanul használható a többi alkalmazás számára. Lehet tábla szintű, ekkor egy teljes tábla tartalma kerül elzárásra, vagy adatbázis szintű, ekkor az adatbázis teljes tartalma zárolva van a többi alkalmazás számára.

Ha valamely alkalmazás zárol egy sort, vagy egy adatbázist, akkor a zárolt rész adatait csak olvasni tudja egy másik alkalmazás. Ha a másik alkalmazás zárolni szeretné ezt a sort, illetve adatbázist, várnia kell addig, míg az első felhasználó a zárat fel nem oldja (unlock). Ha egy teljes adatbázis zárolva van, akkor más felhasználó sor szintű lockolást sem valósíthat meg benne. Könyvtári példánkban fölösleges lenne a teljes adatbázist zárolni, elegendő csak az adott könyvre vonatkozó adatokat, vagyis sor szintű lockolást megvalósítani. Így más könyvek adatait továbbra is lehet zárolni, így módosítani. A lockolás megvalósítása a konkrét adatbáziskezelőtől függ. Van amelyik ténylegesen csak a kívánt sort lockolja, van amelyik a sor környezetében lévőket is, mindazokat, amelyek egyszerre kerülnek a memóriában levő munkaterületre. (Az adatbázis valamilyen háttértáron, többnyire mágneslemezen található. Ha valamilyen adatra szükségünk van az adatbázisból, akkor be kell hozni a megfelelő rekordot a memóriába. Az adatbáziskezelő azonban általában nem egyetlen rekordot mozgat egyszerre, mert így nem lenne hatékony a működése, hanem rekordcsoportokat, blokkokat.)

Amennyiben módosítani akarunk egy adatbázisban szereplő adatot, ha az új érték független a régitől, akkor elég, ha csak a beírás idejére zároljuk az adatot tartalmazó sort, de ha az új érték a régi függvénye, akkor már a kiolvasás előtt zárolnunk kell a sort, nehogy a kiolvasás és a beírás között más módosítsa azt. Könyvtári rendszerünkben is ezt az eljárást kell alkalmazni, ekkor nem fordulhat elő, hogy ketten kölcsönzik ki egyszerre ugyanazt a könyvet. Mivel egy adat módosítása sok ideig tarthat, például azért, mert a felhasználó közben telefonál, vagy akkor kezdi keresni, hogy mit kell begépelnie, amikor a rekordot már beolvasta, ezért egyes adatbáziskezelők a rekord beolvasás előtti zárolása helyett a visszaírás előtt ellenőrzik, hogy módosult-e az adatbázisban a rekord a kiolvasás óta. Csak akkor írják vissza a rekordot, ha nem történt módosítás a kiolvasás óta. Egyébként pedig a rekord új tartalmát jelenítik meg a felhasználónak, akinek újra el kell végeznie a módosítást. Ebben az esetben a rekordokat csak a visszaírás idejére zárolják.

A teljes adatbázis zárolására akkor lehet szükség, ha olyan műveletet akarunk végezni, amely az adatbázis teljes egészét érinti, ilyen például az adatbázis újraszervezése. Akkor azonban, ha olyan módosítást végzünk, amely minden rekordot érint, - például egy hallgatói ösztöndíj-nyilvántartásban minden ösztöndíjat 1000 Ft-tal emelni kell - nem érdemes a teljes adatbázist zárolni, mert a zárolást soronként is meg lehet tenni. Egy ciklus segítségével a program sorra veszi a sorokat, a sort zárolja, módosítja, majd a zárolást feloldja. Ennek az az előnye, hogy a módosítás idején mindig csak egy sor van elzárva a többi alkalmazás elől.


A zárolások következtében előállhat patt-helyzet, amikor a felhasználók egymásra várnak. Például, két felhasználó ugyanazt a két adatbázist szeretné használni. Az egyik felhasználó zárolja az A adatbázist a másik pedig a B-t. Ezután az első felhasználó zárolni szeretné a B adatbázist is, a második pedig az A-t. Ekkor mindketten a másikra várnak , egyik sem tud továbblépni. Az így kialakult helyzetet angol szakkifejezéssel deadlock-nak hívják. Ennek elkerülésének egyik módja, hogy a programozók úgy készítik az alkalmazásokat, hogy a használni kívánt adatbázisokat minden alkalmazás azonos sorrendben próbálja zárolni.

A szükséges rekordlockolásokat bizonyos adatbáziskezelők automatikusan végzik és az alkalmazás készítőjének csak speciális esetekben kell gondoskodnia róla, más adatbáziskezelőknél az alkalmazás készítőjének feladata a lockolások kiadása.



Találat: 1315


Felhasználási feltételek