Transaktionsverarbeitung Flashcards

1
Q

Was ist ein lost update?

A

Passiert wenn die änderungen zu ein daten objekt von einer Transaktion durch eine andere Transaktion überschrieben wird.

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

Was ist ein dirty read?

A

Passiert wenn eine Transaktion ein Wert lesen darf, das von einer andere Transaktion modifiziert wurde aber nicht in die Datenbank gespeichert wurde

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

Was ist ein unrepeatable read?

A

Passiert wenn zwei oder mehr read operationen von derselben Transaktion unterschiedliche werte für dasselbe attribut lesen

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

Was ist ein phantom read?

A

Passiert wenn eine Transaktion ein attribut liest, aber wenn es versucht dasselbe attribut nochmal zu lesen kommt ein Fehler der sagt dass das attribut nicht existiert

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

Verzahnen sie folgende Operationen und Transaktionen so, das ein lost update entsteht!
T1: read(X), X = X + 5
T2: write(X), X = X + 10

A

T1 | T2
read(X) |
X = X + 5 |
| X = X + 10
| write(X)

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

Verzahnen sie folgende Operationen und Transaktionen so, das ein dirty read entsteht!
T1: read(X), X = X - 5, write(X), ROLLBACK
T2: read(X), X = X + 5, write(X), commit

A

T1 | T2
read(X) |
X = X - 5 |
write(X) |
| read(X)
| X = X + 5
| write(X)
ROLLBACK |
| commit

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

Verzahnen sie folgende Operationen und Transaktionen so, das ein unrepeatable read entsteht!
T1: read(X), write(X)
T2: read(X), read(X)

A

T1 | T2
read(X) |
| read(X)
write(X) |
| read(X)

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

Verzahnen sie folgende Operationen und Transaktionen so, das ein phantom read entsteht!
T1: read(X), delete(X)
T2: read(X), read(X)

A

T1 | T2
read(X) |
| read(X)
delete(X) |
| read(X)

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

Wofür stehen die Buchstaben in ACID?

A

-Atomicity, bedeutet “Alles oder nichts”, wenn eine Transaktion gespeichert wird, entweder wird die Transaktion komplett ausgeführt, oder es wird zurückgesetzt

-Consistency, bedeutet das die Integritätsbedingungen nicht verletzt werden. Die Datenbank ist correct vor und nach dem Transaktion, anders gesagt die Datenbank ist in ein “Korrekten” Zustand

-Isolated, bedeutet das mehrere Transaktionen gleichzeitig passieren können ohne zur eine Inconsistenz zu führen. Anders gesagt, veränderungen werden für andere Transaktionen sichtbar erst nach dem sie in der Datenbank gespeichert sind

-Durability, wenn eine Transaktion ausgeführt wird und deren änderungen gespeichert werden, sollen die änderungen permanent sein sprich die Datenbank muss reselient sein gegen System abstürze, etc.

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

w_i[x]: schreib operation auf x von transaktion i
r_i[x]: lese operation auf x von transaktion i
c_i: commit operation von transaktion i
a_i: abbruch operation von transaktion i

-Bedingung von Seriallisierbar?

A

-Seriallisierbar wenn kein Zyklus zwischen Transaktionen vorhanden ist

bsp.:
w_1[x]; w_1[y]; c_1; r_2[x]; w_2[z]; c_2; r_3[y]; a_3;
ist serialisierbar da T1->T2, T1->T3

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

w_i[x]: schreib operation auf x von transaktion i
r_i[x]: lese operation auf x von transaktion i
c_i: commit operation von transaktion i
a_i: abbruch operation von transaktion i

-Bedingung von Rücksetzbarkeit?

A

-Wenn Transaktion i von Transaktion j liest, muss c_j < c_i oder c_j < a_i

bsp.:
w_1[x]; w_1[y]; c_1; r_2[x]; w_2[z]; c_2; r_3[y]; a_3;
Transaktion 2 liest von Transaktion 1 (x)
Transaktion 3 liest von Transaktion 1 (y)
da c_1 < c_2 und c_1 < a_3 ist es Rücksetzbar

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

w_i[x]: schreib operation auf x von transaktion i
r_i[x]: lese operation auf x von transaktion i
c_i: commit operation von transaktion i
a_i: abbruch operation von transaktion i

-Bedingung von vermeidet Kask. Rücksetzen?

A

-Wenn Transaktion i von Transaktion j liest, muss c_j < r_i

bsp.:
w_1[x]; w_1[y]; c_1; r_2[x]; w_2[z]; c_2; r_3[y]; a_3;
Transaktion 2 liest von Transaktion 1
Transaktion 3 liest von Transaktion 1
da c_1 < r_2[x], c_1 < r_3[y] vermeidet es Kask. Rücksetzten

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

w_i[x]: schreib operation auf x von transaktion i
r_i[x]: lese operation auf x von transaktion i
c_i: commit operation von transaktion i
a_i: abbruch operation von transaktion i
o_i[x]: steht für w_i[x] oder r_i[x]

-Bedingung von Strikt?

A

-Wenn w_j[x] < o_i[x], muss a_j < o_i[x] oder c_j < o_i[x] gelten

bsp.:
w_1[x]; w_1[y]; c_1; r_2[x]; w_2[z]; c_2; r_3[y]; a_3;
da c_1 < r_2[x], c_1 < r_3[y] ist es strikt

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

w_i[x]: schreib operation auf x von transaktion i
r_i[x]: lese operation auf x von transaktion i
c_i: commit operation von transaktion i
a_i: abbruch operation von transaktion i

-Bedingung von Seriell?

A

-Wenn eine Historie Rücksetzbar, und strikt ist, und kaskadiertes rücksetzen vermeidet, ist es Seriell

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