Előadáshoz kapcsolódó elméleti feladatok a "zöldkönyvből" 
Feladatok undo, redo és undo/redo naplózásra és helyreállításra
 
Feladatok - Molina-Ullman-Widom: Adatbázisrendszerek megvalósítása
                    a "zöld könyv" 8.fej. A rendszerhibák kezelése, naplózás 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.
 

Molina-Ullman 8.3. fejezete: Redo naplózás és helyreállítás
 
8.3.1 Feladat - REDO naplóbejegyzések,  hasonló példa: naplo.ppt (76.oldal)
Adjuk meg a 8.1.1. feladatban szereplő tranzakciók helyreállítási (REDO) típusú
naplóbejegyzéseit. Tegyük fel, hogy kezdetben A = 5 és B = 10.
 
8.3.3. Feladat - Helyreállítás REDO naplóból, hasonló példa: naplo.ppt (80-82.oldal)
Ismételjük meg a 8.2.4. feladatot REDO naplózást használva.
 
8.3.5. Feladat - REDO naplózás ellenőrzőponttal, hasonló példa: naplo.ppt (84-91.oldal) 
A 8.2.7. feladat adatait használva az a)–e) helyzetek mindegyikére válaszoljuk meg
az alábbi kérdéseket:
 i) Mely pontokban fordulhat elő az <END CKPT> felírása, és
ii) Minden lehetséges hibabekövetkezési ponthoz adjuk meg, hogy a naplóban med­dig kell
    visszatekintenünk ahhoz, hogy megtaláljuk az összes befejezetlen tranzakciót.
    Vegyük figyelembe mindkét lehetőséget, azt is, hogy a hibát megelőzően az
    <END CKPT> felíródott a naplóba és azt is, ha nem.
   

Molina-Ullman 8.4. fejezete: Undo/redo naplózás és helyreállítás
 

8.4.1. Feladat - UNDO/REDO naplóbejegyzések, hasonló példa: naplo.ppt (92-95.oldal)
Adjuk meg a 8.1.1 feladatban szereplő tranzakciók undo/redo típusú naplóbejegyzéseit.
Tegyük fel, hogy kezdetben A = 5 és B = 10.
 
8.4.3. Feladat - Helyreállítás UNDO/REDO naplóból, hasonló példa: naplo.ppt (96-101.oldal)
A következő UNDO/REDO naplóbejegyzés-sorozat a T és U két tranzakcióra vonatkozik:
<START  T>
<T, A, 10, 11>
<START  U>
<U, B, 20, 21>
<T, C, 30, 31>
<U, D, 40, 41>
<COMMIT  U>
<T, E, 50, 51>
<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, 51>
d) <COMMIT T>
   
8.4.5. Feladat - UNDO/REDO naplózás ellenőrzőponttal, hasonló példa: naplo.ppt (102-107.oldal)
Tegyük fel, hogy a napló a következő bejegyzéssorozatot tartalmazza:
<START S>
<S,A,60,61>
<COMMIT S>
<START T>
<T,A,61,62>
<START U>
<U,B,20,21>
<T,C,30,31>
<START V>
<U,D,40,41>
<V,F,70,71>
<COMMIT U>
<T,E,50,51>
<COMMIT T>
<V,B,21,22>
<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 bejegyzések (memóriában való) megjelenésétől kezdve:
a) <S,A,60,61>.
b) <T,A,61,62>.
c) <U,B,20,21>.
d) <U,D,40,41>.
e) <T,E,50,51>.
 
Mindegyik fenti esetre adjuk meg, hogy:
 i) Mikor írható 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, be nem fejezett tranzakciókra vonatkozó bejegyzést megtaláljunk.
Fontoljuk meg mindkét lehetőséget is, hogy a hiba az <END CKPT> naplóbejegyzés felírása
előtt vagy az után jelentkezik.
 
 Vissza az AB2 gyakorlat oldalára             Vissza a Kezdőlapra