10.gyak.
Feladatok naplózásra és
helyreállításra (papíron)
>> a papíros feladatsort lásd egy
külön oldalon itt: Tk.8.fej.
Naplózás
és helyreállítás
>> ha marad idő gépes feladatokra: 15.témakör: Naplózás
/Adatbázisok-1: Triggerek 10.EA: Naplózás
és
helyreállítás,
ellenőrzőpont működés
közben, helyrehozó
(Redo) naplózás,
semmiségi/helyrehozó (Undo/Redo)
naplózás,
archiválás,
az Oracle
naplózási/helyreállítási
megoldásai: naplo.ppt
(KA) 73-127 oldal
Az előadás
anyagához kapcsolódó
példák és
feladatok: - Molina-Ullman-Widom:
Adatbázisrendszerek
megvalósítása, Panem, 2001.
8.fejezet: A rendszerhibák kezelése,
naplózás és
helyreállítás
a papíros feladatsort lásd egy
külön oldalon itt: gy08Tk 15.témakör: Az
Oracle naplózási és
archiválási rendszere Segédanyagok:
>> EA: Az Oracle
naplózási/helyreállítási
megoldásai naplo.ppt
(KA) 119-127.o.
>> Oracle Online Doc. - Concepts
>> Oracle Online Doc.-
Administrator's Guide: HTMLPDF
>> Oracle PL/SQL Language Reference 11gR2 HTMLPDF
(triggerek)
Feladatok: A mai gyakorlaton csak papíros
feladatokat oldunk meg az előadás
anyaga alapján, de ha marad idő a gépes feladatokra,
akkor az Adatbázisok-1
ismétlésként a
triggerekre nézzünk feladatokat. (Ez már nem
lesz a II.ZH-ban.)
5.1.feladat:
- Az alábbi
feladatokhoz hozzunk létre az emp, dept és
salgrade tábláknak
megfelelő magyar nyelvű (de ékezet
nélküli) oszlopnevekkel rendelkező
dolgozo, osztaly
és fizufokozat
táblákat különböző
megszorításokkal
együtt.
- Az eredeti táblák
felhasználásával töltsük fel a
táblákat
a megszorításoknak
eleget tevő adatsorokkal
(megszorítások ellenőrzése: DBA_CONSTRAINTS)
- Az előző feladatban
létrehozott
saját DOLGOZO
nevű táblához hozzunk
létre egy TRIGGER_LOG
nevű táblát, aminek a következő a
szerkezete:
(
idopont DATE,
muvelet
VARCHAR2(20),
esemeny
VARCHAR2(80)
)
- Hozzunk létre egy (after) triggert, ami akkor
aktivizálódik ha a dolgozo tábla
fizetés oszlopát
módosítják. A trigger a
következő műveleteket
végezze el:
- Ha a dolgozo új fizetése
nagyobb lesz mint 4000 akkor erről tegyen egy
bejegyzést a trigger_log
táblába. Az esemény oszlopba
írja be a
régi és
az új
fizetést is.
- Az elnök (foglalkozas = 'PRESIDENT')
fizetését ne engedje
módosítani.
A
módosítás után a
fizetés maradjon a régi. Erről is tegyen egy
bejegyzést
a trigger_log
táblába. Az
esemény oszlopba írja be, hogy a
fizetés
nem változott.
5.2.feladat:
- Hozzunk létre egy TRIGGER_LOG2 nevű
táblát is, aminek a szerkezete
a
következő:
(
idopont DATE,
muvelet
VARCHAR2(20),
uj_osszfiz NUMBER
)
- Hozzunk létre egy triggert,
ami akkor
aktivizálódik ha a dolgozo
táblára
valamilyen módosító
műveletet
(INSERT,
DELETE,
UPDATE)
hajtanak végre. A trigger
irja be a TRIGGER_LOG2
táblába
a
módosítás
időpontját, a
műveletet és az új
összfizetést.
- Ha az új
összfizetés nagyobb lenne mint
40000, akkor a trigger utasítsa
vissza a
módosító műveletet, és
hibaüzenetként küldje vissza,
hogy
'Túl nagy
összfizetés'. Ez esetben naplóznia sem
kell.