Tranzakció Flashcards
Tranzakció
Adatbázis folyamatok egy olyan logikai egysége, amely egy vagy több adatbázis-hozzáférési műveletből (olvasás – kinyerés, írás – beszúrás, törlés, módosítás) épül fel.
Összefésült egyszálas feldolgozás
A folyamatok (processzek) konkurens végrehajtása egy CPU-n fésülődik össze.
Párhuzamos feldolgozás
A folyamatok (processzek) egyidejűleg (konkurens módon) több CPU-n hajtódnak végre.
Read-only tranzakció
A tranzakciót alkotó adatbázis-műveletek nem módosítják az adatbázist, csak lekérdezik azt.
Read-write tranzakció
A tranzakciót alkotó adatbázis-műveletek módosítják is az adatbázist.
Tranzakció határai
A tranzakció határait megadhatjuk egy alkalmazói programban explicit módon begin transaction és end transaction, ahol a két határ között elhelyezkedő összes adatbázis-hozzáférési művelet alkot egy tranzakciót.
Tranzakció állapotai
• aktív állapot
• részlegesen véglegesített állapot
• véglegesített (commit) állapot,
• hibás állapot
• megszakított állapot
Helyreállítás a rendszer loggal
Ha a rendszer összeomlik, akkor helyreállíthatjuk konzisztens adatbázis állapotba a log vizsgálatával megfelelő módszerek révén.
Commit pont
Egy tranzakció akkor éri el a véglegesítési (commit) pontját, ha az összes adatbázis-hozzáférési művelete sikeresen végrehajtódott és ezen műveletek hatása kiírásra került a log-fájlba.
ACID tulajdonságok
• Atomosság
• Konzisztencia megőrzés
• Elkülönítés
• Tartósság/állandóság
Az ACID tulajdonságok biztosításáért a DBMS konkurenciavezérlő és naplózó/helyreállító alrendszerei a felelősek.
Atomosság
A tranzakció a feldolgozás atomi egységet; vagy teljes egészében végrehajtódik, vagy egyáltalán nem.
Konzisztencia megőrzés
Egy tranzakció konzisztenciamegőrző, ha teljes és önálló végrehajtása az adatbázist konzisztens állapotból konzisztens állapotba viszi át.
Elkülönítés
Egy tranzakciónak látszólag más tranzakcióktól elkülönítve kell végrehajtódnia. Ez azt jelenti, hogy a tranzakció végrehajtása nem állhat kölcsönhatásban semelyik másik konkurensen végrehajtott tranzakcióval sem.
Tartósság vagy állandóság
Egy véglegesített tranzakció által az adatbázison véghez vitt módosításoknak meg kell őrződniük az adatbázisban. Ezeknek a módosításoknak semmilyen hiba miatt nem szabad elveszniük.
Tranzakció ütemezés
A különböző tranzakciókban lévő műveletek sorrendje, amikor a tranzakciókat összefésülve egy szálon hajtjuk végre.
Soros ütemezés
Egy S ütemezést sorosnak nevezünk, ha minden ütemezésbeli T tranzakcióra fennáll, hogy az összes T-beli művelet közvetlenül egymás után hajtódik végre az ütemezésben.
Sorba rendezhető ütemezés
Egy n tranzakcióból álló S ütemezés sorba rendezhető, ha ekvivalens az n tranzakció valamelyik soros ütemezésével.
Konkurens hozzáférésből adódható problémák
- Az elvesztett frissítés problémája
- Az ideiglenes frissítés (dirty read) problémája
- A helytelen összegzés problémája
- Megismételhetetlen olvasás problémája
Read_Item(X) - olvasás művelet
Beolvassa az adatbázis X elnevezésű elemét egy programváltozóba.
Write_Item(X) - írás művelet
Az X programváltozó értékét az adatbázis X elnevezésű elemébe rögzíti.
Read_Item(X) - részletesen
• Megkeresi az X elemet tartalmazó lemezblokk címét.
• Átmásolja ezt a lemezblokkot a fő memória pufferébe (amennyiben ez a blokk nincs már benne valamelyik fő memória pufferben).
• Átmásolja az X elemet a pufferből az X nevű programváltozóba.
Write_Item(X) - részletesen
• Megkeresi az X elemet tartalmazó lemezblokk címét.
• Átmásolja ezt a lemezblokkot a fő memória pufferébe (amennyiben ez a blokk nincs már benne valamelyik fő memória pufferben).
• Átmásolja az X elemet az X nevű programváltozóból a puffer megfelelő területére.
• Visszamásolja a frissített blokkot a pufferből a lemezre (rögtön vagy egy későbbi időpontban).
Helyreállítás
Valahányszor egy tranzakciót elküldünk egy DBMS-hez végrehajtásra a rendszernek biztosítania kell vagy
◦ a tranzakció összes műveletének sikeres végrehajtását és az eredmények tartós rögzítését, vagy azt, hogy
◦ a tranzakciónak semmilyen hatása ne legyen.
Sikertelen tranzakció okai
- Számítógép hiba (rendszerösszeomlás)
- Tranzakció vagy rendszerhiba
- A tranzakció által felismert lokális hiba vagy kivétel
- Konkurencia szabályozás kikényszerítése
- Lemezhiba
- Fizikai problémák, katasztrófák