Tranzakció Flashcards

1
Q

Tranzakció

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Összefésült egyszálas feldolgozás

A

A folyamatok (processzek) konkurens végrehajtása egy CPU-n fésülődik össze.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Párhuzamos feldolgozás

A

A folyamatok (processzek) egyidejűleg (konkurens módon) több CPU-n hajtódnak végre.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Read-only tranzakció

A

A tranzakciót alkotó adatbázis-műveletek nem módosítják az adatbázist, csak lekérdezik azt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Read-write tranzakció

A

A tranzakciót alkotó adatbázis-műveletek módosítják is az adatbázist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tranzakció határai

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Tranzakció állapotai

A

• aktív állapot
• részlegesen véglegesített állapot
• véglegesített (commit) állapot,
• hibás állapot
• megszakított állapot

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Helyreállítás a rendszer loggal

A

Ha a rendszer összeomlik, akkor helyreállíthatjuk konzisztens adatbázis állapotba a log vizsgálatával megfelelő módszerek révén.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Commit pont

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

ACID tulajdonságok

A

• 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Atomosság

A

A tranzakció a feldolgozás atomi egységet; vagy teljes egészében végrehajtódik, vagy egyáltalán nem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Konzisztencia megőrzés

A

Egy tranzakció konzisztenciamegőrző, ha teljes és önálló végrehajtása az adatbázist konzisztens állapotból konzisztens állapotba viszi át.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Elkülönítés

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Tartósság vagy állandóság

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Tranzakció ütemezés

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Soros ütemezés

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Sorba rendezhető ütemezés

A

Egy n tranzakcióból álló S ütemezés sorba rendezhető, ha ekvivalens az n tranzakció valamelyik soros ütemezésével.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Konkurens hozzáférésből adódható problémák

A
  1. Az elvesztett frissítés problémája
  2. Az ideiglenes frissítés (dirty read) problémája
  3. A helytelen összegzés problémája
  4. Megismételhetetlen olvasás problémája
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Read_Item(X) - olvasás művelet

A

Beolvassa az adatbázis X elnevezésű elemét egy programváltozóba.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Write_Item(X) - írás művelet

A

Az X programváltozó értékét az adatbázis X elnevezésű elemébe rögzíti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Read_Item(X) - részletesen

A

• 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.

22
Q

Write_Item(X) - részletesen

A

• 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).

23
Q

Helyreállítás

A

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.

24
Q

Sikertelen tranzakció okai

A
  1. Számítógép hiba (rendszerösszeomlás)
  2. Tranzakció vagy rendszerhiba
  3. A tranzakció által felismert lokális hiba vagy kivétel
  4. Konkurencia szabályozás kikényszerítése
  5. Lemezhiba
  6. Fizikai problémák, katasztrófák
25
Számítógép hiba (rendszerösszeomlás)
A tranzakció futása alatt hardver (pl. memória), szoftver vagy hálózati hiba miatt meghiúsul a tranzakció sikeres befejezése.
26
Tranzakció vagy rendszerhiba
Valamelyik tranzakciós művelet fut hibára (túlcsordulás, nullával osztás). Okozhatja hibás paraméterérték is illetve hibás programlogika is. A felhasználó leállíthatja a tranzakció futását.
27
A tranzakció által felismert lokális hiba vagy kivétel
Olyan kivétel melyet a program képes kezelni, valójában nem is hiba Pl.: a művelet adata nem található, fedezet hiány
28
Konkurencia szabályozás kényszerítése
A konkurencia szabályozó metódus megszakíthatja a tranzakciót a sorbarendezhetőség elvének megsértése miatt vagy mert szükséges egy holtpont feloldásához. Általában később ezek automatikusan újra elindulnak.
29
Lemezhiba
Hibás olvasás vagy írás (esetleg az író/olvasó fej hibája) miatt egy lemez blokk elveszítheti adatát.
30
Fizikai problémák, katasztrófák
Egyéb okokból származó hibák, mint áramkimaradás, tűz, lopás, szabotázs, tévedésből származó adatfelülírás, stb.
31
Begin transaction
A tranzakció futásának indítását jelzi.
32
Read vagy write
A tranzakció részeként elvégzett adatelem olvasását vagy írását jelzi.
33
End transaction
Jelzi a READ és WRITE tranzakciós műveletek ill. a tranzakció futásának befejeződését.
34
Commit transaction
A tranzakció sikeres bejeződését jelzi, azaz biztonságosan rögzítésre kerültek a változások és nem lesznek visszavonva.
35
Rollback (vagy abort)
A tranzakció sikertelen bejeződését jelzi, ami a már végrehajtott változtatások visszavonását eredményezi.
36
Rendszer napló (system log)
Egy szekvenciális, csak továbbfűzhető állomány a lemezen, mely nincs kitéve csak a lemezhibának vagy katasztrófa okozta hibának. Tipikusan egy (vagy több) memória puffer tárolja a log fájl utolsó részét, azaz a bejegyzések először mindig ide kerülnek. Amikor megtelik, vagy bizonyos körülmények fennállnak, tartalma a lemezen lévő fájlhoz hozzáfűződik. A lemezen lévő log fájl rendszeresen archiválásra kerül a katasztrofikushibák okozta károk kivédése érdekében.
37
Visszaállítható ütemezés
Egyetlen egy olyan T tranzakció sem kerül véglegesítésre míg nem véglegesítődik minden olyan T’ tranzakció, amely olyan elemet ír ki, amelyet T beolvas. Ekkor egyetlen véglegesített tranzakciót sem szükséges visszaállítani.
38
Kaszkádmentes ütemezés
Minden tranzakció csak olyan adatbázis elemet olvas be, amelyet egy már elfogadott tranzakció írt ki.
39
Szigorú ütemezés
A tranzakciók se nem írhatnak se nem olvashatnak egy X elemet addig, míg az utolsó, X adatelemet író tranzakció véglegesítésre (vagy megszakításra) nem kerül.
40
Ekvivalencia típusok
• Eredmény ekvivalencia • Konfliktus ekvivalencia • Nézet ekvivalencia
41
Eredmény ekvivalencia
A két ütemezés ugyanazt a végső adatbázis állapotot eredményezi.
42
Konfliktus ekvivalencia
A két ütemezésben bármely két konfliktusos művelet (pl. ugyanazt az adatbázis elemet akarja felülírni két tranzakció) sorrendisége megegyezik.
43
Konfliktus sorba rendezhető ütemezés
Az ütemezés konfliktus ekvivalens egy soros ütemezéssel.
44
Konkurencia vezérlés célja
• Az elkülönítés kikényszerítése (pl. teljes kizárással) a konfliktusos tranzakciók között. • Az adatbázis konzisztenciájának megőrzése a tranzakciók konzisztencia megőrző végrehajtása révén. • Az olvasás-írás és írás-írás konfliktusok feloldása.
45
Kétfázisú zárolás módszere
Az X adatbázis elemen két (atomi) művelet értelmezünk. • Lock(X) • Unlock(X) Nagyon szigorú, gyakorlatban nem alkalmazható.
46
Lock(X)
A zárolás művelet biztosítja az engedélyt a tranzakció számára egy adatelem olvasására vagy írására.
47
Unlock(X)
A feloldás művelet törli ezeket az engedélyeket az adatelemről.
48
Megosztott zárolás
Egynél több is bejegyezhető egy adatbázis elemre olvasás céljából, azonban ekkor kizárást már nem jegyezhetünk be semmilyen tranzakció által.
49
Kizárásos zárolás
Csak egy kizárás jegyezhető be egy adatbázis elemre egy időben és ekkor egyetlen tranzakció sem jegyezhet be megosztást erre az adatbázis elemre.
50
Tranzakciós műveletek
* Begin transaction * Read vagy write * Commit transaction * Abort transaction * End transaction