Előadáshoz
kapcsolódó
elméleti feladatok a
"zöldkönyvből" Feladatok
undo és redo naplózásra és
helyreállításra I.
Feladatok - Molina-Ullman-Widom:
Adatbázisrendszerek
megvalósítása
a "zöld könyv" 8.1.-8.2. Undo
naplózás
fejezete alapján. Segédanyagok:Kiss
Attila - Adatbázisok 2 előadások
>> naplo.ppt
Molina-Ullman 8. fejezete: A
rendszerhibák kezelése
8.1.1.
Feladat
- A tranzakciók korrekt
végrehajtása, lásd naplo.ppt
(3-11.oldal)
Tegyük fel, hogy az adatbázisra
vonatkozó konzisztenciamegszorítás: 0
<= A <= B.
Állapítsuk meg, hogy a következő
tranzakciók megőrzik-e az adatbázis
konzisztenciáját.
T1: A := A + B; B := A + B;
T2: B := A + B; A := A + B;
T3: A := B + 1; B := A + 1;
8.1.2. Feladat
- A tranzakciók alaptevékenységei,
hasonló
példa: naplo.ppt
(43.oldal)
(Adjuk meg néhány, konkrét művelettel
megadott tranzakció esetén az
adatbáziselemek
memóriabeli és lemezen levő
értékét az
egyes műveletek után.)
A 8.1.1 feladat mindegyik tranzakciójához a
számításokon kívül
tegyük hozzá a
beolvasó-kiíró
tevékenységeket is, és mutassuk be a
tranzakciók lépésenkénti
hatását
a memóriában
és a lemezen tárolt adatokra. Tegyük
fel, hogy kezdetben A = 5
és B = 10.
Molina-Ullman 8.2. fejezete:
Undo naplózás és
helyreállítás
8.2.1.
Feladat
- UNDO naplóbejegyzések, hasonló
példa: naplo.ppt
(50-52.oldal)
Adjuk meg a 8.1.1 feladatban szereplő tranzakciók UNDO
naplóbejegyzéseit.
Tegyük fel, hogy kezdetben A = 5 és B = 10.
8.2.4.
Feladat
- Helyreállítás UNDO
naplóból, hasonló
példa: naplo.ppt
(58-62.oldal)
A következő naplóbejegyzés-sorozat a T
és U két tranzakcióra vonatkozik:
<START T>
<T, A, 10>
<START U>
<U, B, 20>
<T, C, 30>
<U, D, 40>
<COMMIT U>
<T, E, 50>
<COMMIT T>
Adjuk meg a helyreállítás-kezelő
tevékenységeit, ha az utolsó lemezre
került naplóbejegyzés:
a) <START U>
b) <COMMIT U>
c) <T, E, 50>
d) <COMMIT T>
8.2.7. Feladat
- UNDO naplózás
ellenőrzőponttal, hasonló
példa: naplo.ppt
(63-72.oldal)
Tegyük fel, hogy a napló a következő
bejegyzéssorozatot tartalmazza:
<START S>
<S,A,60>
<COMMIT S>
<START T>
<T,A,10>
<START U>
<U,B,20>
<T,C,30>
<START V>
<U,D,40>
<V,F,70>
<COMMIT U>
<T,E,50>
<COMMIT T>
<V,B,80>
<COMMIT V>.
Tegyük fel továbbá, hogy a
működés
közbeni ellenőrzőpont-képzést
kezdjük
alkalmazni,
közvetlenül az alábbi
naplóbejegyzések
(memóriában való)
megjelenésétől
kezdve:
a) <S,A,60>.
b) <T,A,10>.
c) <U,B,20>.
d) <U,D,40>.
e) <T,E,50>.
Mindegyik fenti esetre adjuk meg, hogy:
i) Mikor íródik fel az <END
CKPT>
naplóbejegyzés, és
ii) Bármelyik lehetséges pillanatban, ha hiba
lép
fel, meddig kell a naplóban
visszafelé tekinteni
ahhoz, hogy minden befejezetlen
tranzakciókra
vonatkozó bejegyzést megtaláljunk.