03_RedoUndo

PDF-Dokumente

DateinameAktion
PDFFolie_RedoUndo.pdfÖffnen
PDFUebung_RedoUndo.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_RedoUndo_DAbspielen
VIDEOVideo_RedoUndo_EAbspielen

Lernmaterialien

REDO UNDO log

Definition

A transaction ID is a unique identifier assigned to a database transaction so the system can track and distinguish it from other transactions.

content/Oracle/DatabaseArchitecture/03_RedoUndo/001.png

A Row ID is a unique identifier that tells the database where a specific row is stored.

ROWID CUSTOMER_ID NAME CITY
A0 1 Anna Mayer Wien
B0 2 Lukas Huber Graz
C1 3 Sarah Berger Linz
B1 4 David Klein Salzburg

REDO

A redo log is a database file that records changes made to the database so they can be reapplied during recovery after a crash or failure.

UPDATE CITY = 'Salzburg'
WHERE  CUSTOMER_ID = 1;

UPDATE NAME = 'Sarah Huber'
WHERE  CUSTOMER_ID = 3;
TRANSACTIONID ROWID VALUE
77 A0 1 | Anna Mayer | Salzburg
77 C1 3 | Sarah Huber | Linz

UNDO

An undo log stores the old values of changed data so the database can roll back a transaction or restore a previous consistent state.

UPDATE CITY = 'Salzburg'
WHERE  CUSTOMER_ID = 1;

UPDATE NAME = 'Sarah Huber'
WHERE  CUSTOMER_ID = 3;
TRANSACTIONID ROWID VALUE
77 A0 1 | Anna Mayer | Wien
77 C1 3 | Sarah Berger | Linz

Sample

RID CID NAME         CITY   | SQL (V ... Verena; M ... Marion)
----------------------------|----------------------------------------------
Q0  1 Anna Mayer   Wien     | V:UPDATE CUSTOMER SET CITY='Graz'
E0  2 Lukas Huber  Graz     |   WHERE CUSTOMER_ID=1;
W0  3 Sarah Berger Linz     | V:DELETE FROM CUSTOMER WHERE CUSTOMER_ID=3;
Q1  4 David Klein  Salzburg | M:UPDATE CUSTOMER SET CITY='Wien'
                            |   WHERE CUSTOMER_ID=2;
                            | V:COMMIT;
                            | M:INSERT INTO CUSTOMER
                            |   VALUES(5,'Laura Maier','Innsbruck');
                            | M:ROLLBACK;
                            | V:UPDATE CUSTOMER SET NAME='Anna Huber'
                            |   WHERE CUSTOMER_ID=1;
                            | V:COMMIT;
RID (Row IDs):         X0 X1 Y0 Y1 Z0 Z1
TID (Transaction IDs): 88 89 90 91 92 93 

Table

RID CID Name City
Q0 1 Anna Huber Graz
E0 2 Lukas Huber Graz
Q1 4 David Klein Salzburg

UNDO

TID RID VALUE
88 Q0 Wien
88 W0 3 Sarah Berger Linz
89 E0 Graz
88 COMMIT
89 X0 REMOVE
89 ROLLBACK
90 Q0 Anna Mayer
90 COMMIT

REDO

TID RID VALUE
88 Q0 Graz
88 W0 REMOVE
89 E0 Wien
88 COMMIT
89 X0 5 Laura Maier Innsbruck
89 ROLLBACK
90 Q0 Anna Huber
90 COMMIT