pdf (1/1)

Werbung
Datenbankanwendung
Wintersemester 2014/15
Prof. Dr.-Ing. Sebastian Michel
TU Kaiserslautern
[email protected]
Indexstrukturen
Skyline Anfragen
Skyline Anfragen
Prof. mobile.de
Dr.-Ing. S. Michel
Quelle:
TU Kaiserslautern
Datenbankanwendung, WS 14/15
2 / 58
Indexstrukturen
Skyline Anfragen
Skyline Anfragen (2)
Quelle: mobile.de
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
3 / 58
Indexstrukturen
Skyline Anfragen
Skyline Anfragen (3)
Quelle: mensa-kl.de
ˆ
ˆ
ˆ
ˆ
ˆ
Wok schmeckt besser (hat aber nur 36 Bewertungen), aber teurer.
Flammkuchen hat relativ gute und viele Bewertungen.
Grill hat super Bewertung (aber nur eine) und ist auch richtig teuer.
Aber ist dies besser als Spaghetti Bolognese? Kostet ja mehr.
Und was ist mit der Wartezeit (Schlange)?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
4 / 58
Indexstrukturen
Skyline Anfragen
Skyline Anfragen - Szenarien
ˆ Der Klassiker: Hotel Reservierung
ˆ Entscheidungsfindung (Decision making) Anwendungen
ˆ Suchmaschinen für Produkte wie Autos, Grundstücke, etc.
Beispiel: Überlegungen zur Hotelbuchung und zum
Gebrauchtwagenkauf
ˆ Welches Hotel ist besser? Das mit 100m Entfernung zum Strand für
100 Euro die Nacht, oder das Hotel mit 150m Entfernung für 80 Euro
die Nacht? Unklar.
ˆ Welches Auto (bzw. welcher Kauf) ist besser? Das für 10 000 Euro
mit einem Kilometerstand von 150 000km oder das für 8000 Euro bei
einem Kilometerstand von 130 000km? Klar.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
5 / 58
Indexstrukturen
Skyline Anfragen
Skyline - Konzept
ˆ In vielen Anwendungen gilt es Suchanfragen zu verarbeiten, bei denen
die Charakteristiken der einzelnen Objekte zwar bekannt sind, aber
nicht in eine gesamte Score aufaggregiert werden können (was ist
schon die Summe(?) von Entfernung zum Strand und Preis?)
ˆ Es gibt dennoch Objekte die klar besser sind als andere (siehe
vorheriges Beispiel mit Gebrauchtwagenkauf)
ˆ Solch eine Beziehung wird als Dominanz bezeichnet
ˆ In der Skyline eines Datensatzes sind all die Punkte enthalten, die von
keinem anderen Punkt dominiert werden
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
6 / 58
Indexstrukturen
Skyline Anfragen
Skylines
http://www.freefoto.com
ˆ Maximum-Vektor-Problem, Pareto Optimalität,
Präferenz-Anfragen,. . .
ˆ H. T. Kung, F. Luccio, and F. P. Preparata. On finding the maxima
of a set of vectors. Journal of the ACM, 1975.
ˆ S. Börzsönyi, D. Kossmann, K. Stocker. The Skyline Operator.
ICDE, 2001.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
7 / 58
Indexstrukturen
Skyline Anfragen
Erwartete Größe einer Skyline
ˆ Allgemeines “Problem”: Anzahl der Punkte (=nicht dominierte
Objekte) einer Skyline wächst recht schnell mit Anzahl der
Dimensionen, d.h. der betrachteten Attribute, die verglichen werden.
Für d Dimensionen und n Punkte, ist die durchschnittliche Anzahl der
Punkte in der Skyline
O((ln n)d−1 )
D.h. bei n = 100 Punkten:
d
1
2
3
4
(ln100)d−1
1
4.6
21.2
97.6
Bentley et al. On the average number of maxima in a set of vectors and
applications. J. ACM, 1978
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
8 / 58
Indexstrukturen
Skyline Anfragen
Formale Definition
Given
ˆ Datenraum D with d Dimensionen d1 , . . . , dd
ˆ Datensatz S über D, Größe |S| = n
ˆ Datenpunkte p ∈ S, mit p = [p1 , . . . , pd ]
ˆ Präferenz in jeder Dimension: min, max, diff
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
9 / 58
Indexstrukturen
Skyline Anfragen
Formale Definition
Given
ˆ Datenraum D with d Dimensionen d1 , . . . , dd
ˆ Datensatz S über D, Größe |S| = n
ˆ Datenpunkte p ∈ S, mit p = [p1 , . . . , pd ]
ˆ Präferenz in jeder Dimension: min, max, diff
Definition
Die Skyline ist eine Menge von Punkten SKY (S) ⊆ S welche von keinem
anderen Punkt dominiert sind. Die Punkte in SKY (S) werden
Skyline-Punkte genannt.
Definition
Ein Punkt p ∈ S dominiert einen anderen Punkt q ∈ S, bezeichnet mit
p ≺ q, falls
ˆ in jeder Dimension di ∈ D gilt pi ≥ qi und
ˆ in mindestens einer Dimension dj ∈ D gilt pj > qj .
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
9 / 58
Indexstrukturen
Skyline Anfragen
Formale Definition
Given
ˆ Datenraum D with d Dimensionen d1 , . . . , dd
ˆ Datensatz S über D, Größe |S| = n
ˆ Datenpunkte p ∈ S, mit p = [p1 , . . . , pd ]
ˆ Präferenz in jeder Dimension: min, max, diff
Definition
Die Skyline ist eine Menge von Punkten SKY (S) ⊆ S welche von keinem
anderen Punkt dominiert sind. Die Punkte in SKY (S) werden
Skyline-Punkte genannt.
Definition
Ein Punkt p ∈ S dominiert einen anderen Punkt q ∈ S, bezeichnet mit
p ≺ q, falls
ˆ in jeder Dimension di ∈ D gilt pi ≤ qi und
ˆ in mindestens einer Dimension dj ∈ D gilt pj < qj .
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
9 / 58
Indexstrukturen
Skyline Anfragen
Dominanz
. . . oder mit anderen Worten
Ein Punkt p dominiert Punkt q falls er in allen Dimensionen mindestens so
gut oder besser ist als q und es gibt mindestens eine Dimension in der p
besser ist.
ˆ In der Praxis können min, max und diff gemischt benutzt werden.
Muss dementsprechend bei Check der Dominanz berücksichtigt
werden.
Bedeutung von min und max sollte offensichtlich sein. Darüberhinaus kann
mit diff beschrieben werden, dass ein Objekt ein andere nicht dominieren
kann falls der Attributwert nicht identisch ist. Also, Anwendung bei
Dinge (Attributen) deren Werte nicht vergleichbar sind.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
10 / 58
Indexstrukturen
Skyline Anfragen
Kleiner Werte sind besser vs. grössere Werte sind besser
(1,10)
(6,10)
(1,10)
(2,9)
(6,10)
(2,9)
(9,8) (10,8)
(9,8) (10,8)
(6,7)
(3,6)
(6,7)
(5,6)
(9,6)
(2,5) (3,5)
(3,6)
(5,6)
(2,5) (3,5)
(7,4)
(7,4)
(7,3) (8,3)
(3,2)
(2,1)
(9,6)
(7,3) (8,3)
(7,2)
(5,1)
Prof. Dr.-Ing. S. Michel
(3,2)
(8,1) (9,1)
TU Kaiserslautern
(2,1)
(7,2)
(5,1)
Datenbankanwendung, WS 14/15
(8,1) (9,1)
11 / 58
Indexstrukturen
Skyline Anfragen
Veranschaulichung Dominanz
Jeder Punkt der Skyline spannt Raum auf über Punkte die er dominiert.
Gemeinsam decken die Punkte der Skyline alle Punkte des Datensatzes ab.
(4,10)
(6,10)
(10,9)
(7,6)
(2,5)
(3,4)
(8,4)
(6,3)
(3,2)
(5,1)
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
12 / 58
Indexstrukturen
Skyline Anfragen
k-skyband
Verallgemeinerung der Skyline
ˆ Für Parameter k und Datensatz
besteht das k-Skyband aus allen Punkten die höchstens k − 1 mal
dominiert werden.
ˆ Unterschied zu top-k Algorithmen: Wie schon bei der Skyline ist auch
das k-Skyband unabhängig von der Aggregationsfunktion (es gibt
keine!)
ˆ Wie auch die Skyline hat das Skyband das Problem, dass sehr viele
Objekte dazu gehören können, wenn Anzahl der Dimensionen hoch.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
13 / 58
Indexstrukturen
Skyline Anfragen
k-skyband - Beispiel
ˆ k=1
(1,10)
(6,10)
(2,9)
(9,8) (10,8)
(6,7)
(3,6)
(5,6)
(9,6)
(2,5) (3,5)
(7,4)
(7,3) (8,3)
(3,2)
(2,1)
(7,2)
(5,1)
Prof. Dr.-Ing. S. Michel
(8,1) (9,1)
TU Kaiserslautern
Datenbankanwendung, WS 14/15
14 / 58
Indexstrukturen
Skyline Anfragen
k-skyband - Beispiel
ˆ k=2
(1,10)
(6,10)
(2,9)
(9,8) (10,8)
(6,7)
(3,6)
(5,6)
(9,6)
(2,5) (3,5)
(7,4)
(7,3) (8,3)
(3,2)
(2,1)
(7,2)
(5,1)
Prof. Dr.-Ing. S. Michel
(8,1) (9,1)
TU Kaiserslautern
Datenbankanwendung, WS 14/15
14 / 58
Indexstrukturen
Skyline Anfragen
k-skyband - Beispiel
ˆ k=3
(1,10)
(6,10)
(2,9)
(9,8) (10,8)
(6,7)
(3,6)
(5,6)
(9,6)
(2,5) (3,5)
(7,4)
(7,3) (8,3)
(3,2)
(2,1)
(7,2)
(5,1)
Prof. Dr.-Ing. S. Michel
(8,1) (9,1)
TU Kaiserslautern
Datenbankanwendung, WS 14/15
14 / 58
Indexstrukturen
Skyline Anfragen
k-skyband - Beispiel
ˆ k=4
(1,10)
(6,10)
(2,9)
(9,8) (10,8)
(6,7)
(3,6)
(5,6)
(9,6)
(2,5) (3,5)
(7,4)
(7,3) (8,3)
(3,2)
(2,1)
(7,2)
(5,1)
Prof. Dr.-Ing. S. Michel
(8,1) (9,1)
TU Kaiserslautern
Datenbankanwendung, WS 14/15
14 / 58
Indexstrukturen
Skyline Anfragen
Skyline-Operator
SELECT . . . FROM . . . WHERE . . .
GROUP BY . . . HAVING
SKYLINE OF [DISTINCT] d1 [MIN | MAX | DIFF], . . .,
dm [MIN | MAX| DIFF]
ORDER BY . . .
Skyline Operator wird nach SELECT, FROM, WHERE, GROUP BY,
HAVING ausgeführt, aber vor ORDER BY und LIMIT.
Falls Objekte in allen Dimensionen identisch sind werden sämtliche
zurückgegeben, mit DISTINCT nur eines (willkürlich) dieser. DIFF
zusätzlich zu MIN und MAX.
S. Börzsönyi, D. Kossmann, K. Stocker. The Skyline Operator. ICDE,
2001.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
15 / 58
Indexstrukturen
Skyline Anfragen
Skyline-Operator (2)
Der Vollständigkeit wegen...
(Quelle: Börzsönyi et al. The Skyline Operator.)
Anmerkung: Leicht andere Definition von Dominanz als zuvor, relevant
aber nur im Fall wo es Duplikate gibt.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
16 / 58
Indexstrukturen
Skyline Anfragen
Skyline-Operator - Beispiele
SELECT *
FROM Hotels
WHERE city = Nassau
SKYLINE OF price MIN, distance MIN;
SELECT e.name, e.salary, sum(s.volume) as volume
FROM Emp e, Sales s
WHERE e.id = s.repr AND s.year = 1999
GROUP BY e.name, e.salary
SKYLINE OF e.salary MIN, volume MAX;
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
17 / 58
Indexstrukturen
Skyline Anfragen
Übersetzung in “normales” SQL
SELECT *
FROM Hotels h
WHERE h.city = Nassau AND NOT EXISTS(
SELECT *
FROM Hotels h1
WHERE h1.city = Nassau AND h1.distance <= h.distance
AND h1.price <= h.price AND
(h1.distance < h.distance OR h1.price < h.price));
ˆ Naive Realisierung als Nested Loops
ˆ Kann sehr teuer sein, insbesondere wenn Anfragen (äußere und
innere) Joins oder Group-By enthalten.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
18 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
Preis
Kilometerstand
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
Preis
$1.500
Kilometerstand
178.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
3
Preis
$1.500
$6.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
3
Preis
$1.500
$6.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
3
Preis
$1.500
$6.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
Preis
$1.500
$3.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
Preis
$1.500
$3.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
Preis
$1.500
$3.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
Preis
$1.500
$3.000
Kilometerstand
178.000
120.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
4
Preis
$1.500
$3.000
$35.000
Kilometerstand
178.000
120.000
11.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
4
Preis
$1.500
$3.000
$35.000
Kilometerstand
178.000
120.000
11.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
6
Preis
$1.500
$3.000
$32.000
Kilometerstand
178.000
120.000
11.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Nested Loops Algorithmus für Skyline
Vergleiche jeden Punkt mit jedem anderen Punkt
Eingabe
ID
1
2
3
4
5
6
Preis
$1.500
$2.000
$6.000
$35.000
$3.000
$32.000
Kilometerstand
178.000
188.000
120.000
11.000
120.000
11.000
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Kandidaten für Skyline
ID
1
5
6
Preis
$1.500
$3.000
$32.000
Kilometerstand
178.000
120.000
11.000
Datenbankanwendung, WS 14/15
19 / 58
Indexstrukturen
Skyline Anfragen
Algorithmen – Divide and Conquer
ˆ Aufteilung der Daten in Partitionen, die dann jeweils in den
Hauptspeicher passen.
ˆ Endergebnis wird dann durch mergen der partiellen Skylines
gewonnen.
Source: Papadias et al, 2005.
Beispiel in Abbildung: 4 Partitionen, s1 , s2 , s3 und s4 mit partiellen
Skylines {a, c, g}, {d}, {i} und {m, k}. z.B. Ergebnisse aus s2 sind hier
irrelevant. Punke aus s1 müssen nur mit Punkten aus s3 verglichen
werden, etc.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
20 / 58
Indexstrukturen
Skyline Anfragen
Algorithmen zur Berechnung der Skyline
Ausnutzen von bestehenden oder zur Laufzeit dynamisch angelegten
Indexstrukturen (insbes. R-Baum) zur effizienten Bestimmung von
Dominanz ohne gesamten Datensatz lesen zu müssen.
Source: Papadias et al, 2005.
ˆ D. Papadias, Y. T. Tao, G Fu, B. Seeger: Progressive skyline
computation in database systems. ACM Trans. Database Systems,
2005.
ˆ D. Kossmann, F. Ramsak, S. Rost. Shooting stars in the sky: an
online algorithm for skyline queries. VLDB, 2002.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
21 / 58
Transaktionsverwaltung
Übersicht
Transaktionsverwaltung
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
22 / 58
Transaktionsverwaltung
Übersicht
Anwendungsprogrammierung: Transaktionen
ˆ Nicht nur eine einzelne SQL-Anweisung, sondern ganze Folge davon,
je nach Anwendung.
ˆ Eine oder mehrere Anweisungen werden als Transaktion
zusammengefasst bzw. betrachtet. Z.B. Abheben von Geld am
Geldautomat.
begin transaction
operation1;
operation2;
operation3;
operation4;
operation5;
end transaction
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
23 / 58
Transaktionsverwaltung
Übersicht
Literatur
ˆ Grundlagen: Buch von Kemper und Eickler. Datenbanksysteme - Eine
Einführung. Kapitel 9,10,11.
ˆ Mehr Details: Buch von Härder und Rahm. Datenbanksysteme -
Konzepte und Techniken der Implementierung. Kapitel 13–16.
ˆ Aber hier insbesondere: Buch von Weikum und Vossen. Transactional
Information Systems. Viele Details, Theorie, aber sehr gut und
anschaulich geschrieben (im Allgemeinen).
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
24 / 58
Transaktionsverwaltung
Übersicht
Einführung
Bei einer typischen Transaktion in einer Bankanwendung:
1. Lese den Kontostand von A in die Variable a: read(A, a);
2. Reduziere den Kontostand um 50 Euro: a := a − 50;
3. Schreibe den neuen Kontostand in die Datenbasis: write(A,a);
4. Lese den Kontostand von B in die Variable b: read(B, b);
5. Erhöhe den Kontostand um 50 Euro: b := b + 50;
6. Schreibe den neuen Kontostand in die Datenbasis: write(B, b);
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
25 / 58
Transaktionsverwaltung
Übersicht
Eigenschaften von Transaktionen: ACID
ˆ Atomicity (Atomarität):
Alles oder nichts
ˆ Consistency:
Kosistenter Zustand der DB → konsistenter Zustand
ˆ Isolation:
Jede Transaktion hat die DB “für sich allein”
ˆ Durability (Dauerhaftigkeit):
Änderungen erfolgreicher Transaktionen dürfen nie verloren gehen.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
26 / 58
Transaktionsverwaltung
Übersicht
Operationen auf Transaktione-Ebene
ˆ begin of transaction (BOT): Mit diesem Befehl wird der Beginn
einer eine Transaktion darstellende Befehlsfolge gekennzeichnet.
ˆ commit: Hierdurch wird die Beendigung der Transaktion eingeleitet.
Alle Änderungen der Datenbasis werden durch diesen Befehl
festgeschrieben, d.h. sie werden dauerhaft in die Datenbank
eingebaut.
ˆ abort: Dieser Befehl führt zu einem Selbstabbruch der Transaktion.
Das Datenbanksystem muss sicherstellen, dass die Datenbasis wieder
in den Zustand zurückgesetzt wird, der vor Beginn der
Transaktionsausführung existierte.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
27 / 58
Transaktionsverwaltung
Übersicht
Transaktionen bei System-Crash
Absturz
T1
T2
t1
t3
t2
Zeit
Wie verhält sich solch ein Szenario mit ACID? Was muss beachtet werden?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
28 / 58
Transaktionsverwaltung
Übersicht
Abschluss einer Transaktion
Für den Abschluss einer Transaktion gibt es drei Möglichkeiten:
1. Den erfolgreichen Abschluss durch commit.
2. Den erfolglosen Abschluss durch ein abort.
3. Den erfolglosen Abschluss durch einen Fehler.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
29 / 58
Transaktionsverwaltung
Übersicht
Transaktionsverwaltung in SQL
Beispielsequenz auf Basis des Universitätsschemas:
insert intoVorlesungen
values (5275, ‘Kernphysik‘, 3, 2141);
insert into Professoren
values (2141, ‘Meitner‘, ‘C4‘, 205);
commit;
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
30 / 58
Transaktionsverwaltung
Übersicht
Transaktionsverwaltung in SQL
ˆ commit [work]: Die in der Transaktion vollzogenen Änderungen
werden – falls keine Konsistenzverletzung oder andere Probleme
aufgedeckt werden – festgeschrieben. Das Schlüsselwort work ist
optional, d.h. das Transaktionsende kann auch einfach mit commit
“befohlen” werden.
ˆ rollback [work]: Alle Änderungen sollen zurückgesetzt werden.
Anders als der commit-Befehl muss das DBMS die “erfolgreiche”
Ausführung eines rollback-Befehls immer garantieren können.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
31 / 58
Transaktionsverwaltung
Übersicht
Sicherungspunkte
ˆ Sicherungspunkt:
Punkt innerhalb einer TA, auf den sich aktive TA zurücksetzen lässt
ˆ savepoint <name>:
definiert den Sicherungspunkt
ˆ rollback [work] to <name>:
setzt aktive TA zurück bis zum
Sicherungspunkt <name>
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
32 / 58
Transaktionsverwaltung
Übersicht
Beispiel
ˆ begin;
ˆ insert into tab values ...
ˆ savepoint A;
ˆ insert into tab values ...
ˆ savepoint B;
ˆ SELECT * FROM tab;
ˆ rollback to A;
ˆ SELECT * FROM tab;
ˆ ...
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
33 / 58
Transaktionsverwaltung
Übersicht
Wie unsterstützt das DMBS Transaktionen?
Mehrbenutzersynchronisation (Isolation)
ˆ (Ausführlich in der VL Informationssysteme behandelt)
ˆ semantische Korrektheit bei Nebenläufigkeit
ˆ Serialisierbarkeit
ˆ Schwächere Isolationsstufen (Isolation Levels)
Recovery (Atomicity and Durability)
ˆ Zurücksetzen teilweise ausgeführter TA
ˆ Vervollständigen der Aktionen von TA
ˆ Sicherstellen der Persistenz von TA
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
34 / 58
Transaktionsverwaltung
Übersicht
Wiederholung: Mehrbenutzersynchronisation
Das “I” in ACID.
Ausführung der drei Transaktionen T1 , T2 und T3 :
(a) im Einzelbetrieb
(b) im (verzahnten) Mehrbenutzerbetrieb
Ziel: Semantik von seriell ausgeführten Transaktionen zusammen mit
Performance von verzahnter Ausführung.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
35 / 58
Transaktionsverwaltung
Übersicht
Wiederholung: Das lost-update Problem
t1
r(x)
/*update x := x + 30 */
w(x)
Prof. Dr.-Ing. S. Michel
Time
/* x = 100 */
1
2
3
4
5
/* x = 130 */
6
/* x = 120*/
TU Kaiserslautern
t2
r(x)
/* update x := x + 20 */
w(x)
Datenbankanwendung, WS 14/15
36 / 58
Transaktionsverwaltung
Übersicht
Wiederholung: Das lost-update Problem / Notation
ˆ Die Essenz dieses Problems kann durche folgende Sequenz von Lese-
und Schreiboperationen ausgedrückt werden:
r1 (x)r2 (x)w1 (x)w2 (x)
ˆ ri (x) beschreibt das Lesen von Datensatz x durch Transaktion i
ˆ wi (x) analog das Schreiben von Datensatz x durch Transaktion i
Konflikte zwischen Transaktionen können auch auftreten, wenn eine der
beiden TA nur liest - wie im folgenden Beispiel klar wird.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
37 / 58
Transaktionsverwaltung
Übersicht
Wiederholung: Das inconsistent-read Problem
Beispiel aus z.B. Anwendung in Bank. Aktueller Stand x = y = 50, also
x + y = 100. Transaktion t1 berechnet die Summe von x und y, während
t2 einen Wert von 10 von x nach y transferiert.
t1
/* sum := 0 */
r(x)
r(y)
/* sum := sum + x */
/* sum := sum + y */
Prof. Dr.-Ing. S. Michel
Time
1
2
3
4
5
6
7
8
9
10
11
t2
r(x)
/* x := x − 10 */
w(x)
r(y)
/* y := y + 10 */
w(y)
TU Kaiserslautern
Datenbankanwendung, WS 14/15
38 / 58
Transaktionsverwaltung
Übersicht
Wiederholung: Das inconsistent-read Problem (2)
ˆ Offensichtlich ist auch hier wieder das Problem, dass Lese- und
Schreiboperationen der einzelnen Transaktionen gemischt ablaufen
r2 (x)w2 (x)r1 (x)r1 (y)r2 (y)w2 (y)
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
39 / 58
Transaktionsverwaltung
Übersicht
Wiederholung: Das dirty-read Problem
t1
r(x)
/* x := x + 100 */
w(x)
failure & rollback
Time
1
2
3
4
5
6
7
Prof. Dr.-Ing. S. Michel
t2
r(x)
/* x := x − 100 */
w(x)
TU Kaiserslautern
Datenbankanwendung, WS 14/15
40 / 58
Transaktionsverwaltung
Übersicht
In Infosys bereits betrachtet
Transaktionen Konzept
ˆ Atomare Lese- und Schreiboperationen (auf Datenobjekte)
ˆ Transaktion als endliche Folge von Operationen pi
T = p1 p2 p3 . . . pn mit pi ∈ {r(xi , w(xi )}
ˆ TA hat als letzte Operation entweder Abbruch a oder Commit c
Serialisierbarkeit
ˆ Betrachtung von Historien über verschiedenen Transaktionen
ˆ Ziel: Gibt es eine äquivalente serielle Historie?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
41 / 58
Transaktionsverwaltung
Übersicht
In Infosys bereits betrachtet (2)
Sperrbasierte Synchronisation
ˆ shared Lock (Lesesperre)
ˆ exclusive Lock (Schreibsperre)
ˆ Verträglichkeitsmatrix (auch Kompatibilitätsmatrix genannt)
Zwei-Phasen Sperrprotokoll (2PL)
ˆ 2PL erzeugt nur serialisierbare Historien:
ˆ Weitere Protokolle wie striktes 2PL
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
42 / 58
Transaktionsverwaltung
Übersicht
Zusammenfassung Concurrency ;)
https://www.youtube.com/watch?v=G3xH2SoMOF0
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
43 / 58
Transaktionsverwaltung
Recovery
Durability? – Beispiel 1a
ˆ TA ändert Daten im Hauptspeicher
ˆ Daten noch garnicht auf Festplatte geschrieben
ˆ Transaktion schickt commit
ˆ Benutzer glaubt, dass TA abgeschlossen ist
ˆ ⇒ Annahme des Benutzers: alle Änderungen der TA sind dauerhaft in
DB gespeichert
ˆ Stromausfall
ˆ Was passiert?
ˆ Welche Daten befinden sich in der DB?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
44 / 58
Transaktionsverwaltung
Recovery
Durability? – Beispiel 1b
ˆ TA ändert Daten im Hauptspeicher
ˆ Daten teilweise auf Festplatte geschrieben
ˆ Transaktion schickt commit
ˆ Benutzer glaubt, dass TA abgeschlossen ist
ˆ ⇒ Annahme des Benutzers: Änderungen der TA sind dauerhaft in DB
gespeichert
ˆ Stromausfall
ˆ Was passiert?
ˆ Welche Daten befinden sich in der DB?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
45 / 58
Transaktionsverwaltung
Recovery
Durability? – Beispiel 2a
ˆ TA ändert Daten im Hauptspeicher
ˆ Daten vollständig auf Festplatte geschrieben
ˆ Transaktion schickt commit
ˆ Benutzer glaubt, dass TA abgeschlossen ist
ˆ ⇒ Annahme des Benutzers: alle Änderungen der TA sind dauerhaft in
DB gespeichert
ˆ Hardwarefehler ⇒ Totalverlust der Festplatte
ˆ Was passiert?
ˆ Welche Daten befinden sich in der DB?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
46 / 58
Transaktionsverwaltung
Recovery
Durability? – Beispiel 2b
ˆ TA ändert Daten im Hauptspeicher
ˆ Daten vollständig auf mehrere Festplatten geschrieben
ˆ Transaktion schickt commit
ˆ Benutzer glaubt, dass TA abgeschlossen ist
ˆ ⇒ Annahme des Benutzers: alle Änderungen der TA sind dauerhaft in
DB gespeichert
ˆ Wasserschaden/Feuer/Erdbeben ...
ˆ ⇒ Total verlust aller Festplatten
ˆ Was passiert?
ˆ Welche Daten befinden sich in der DB?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
47 / 58
Transaktionsverwaltung
Recovery
Durability? – Beispiel 2c
ˆ TA ändert Daten im Hauptspeicher
ˆ Daten vollständig auf mehrere Festplatten and mehreren
geographisch verteilten Rechenzentren geschrieben
ˆ Transaktion schickt commit
ˆ Benutzer glaubt, dass TA abgeschlossen ist
ˆ ⇒ Annahme des Benutzers: alle Änderungen der TA sind dauerhaft in
DB gespeichert
ˆ Wasserschaden/Feuer/Erdbeben ... an allen Rechenzentren
gleichzeitig
ˆ ⇒ Total verlust aller Rechenzentren und Festplatten
ˆ Was passiert?
ˆ Welche Daten befinden sich in der DB?
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
48 / 58
Transaktionsverwaltung
Recovery
Quintessenz
ˆ Durability immer relativ
ˆ bezogen auf Anzahl Kopien/geographische Verteilung
ˆ Garantie bezogen auf relative Durability kann nur gemacht werden,
wenn
ˆ erst die verschiedenen Kopien erzeugt werden und
ˆ dann dem Benutzer mitgeteilt wird, dass die TA committed wurde
ˆ ⇒ WAL-Prinzip (write-ahead logging)
ˆ Varianten hiervon:
ˆ log-basierte Recovery
ˆ komplettes Spiegeln (mehrere Rechner/Rechenzentren machen dasselbe
redundant)
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
49 / 58
Transaktionsverwaltung
Recovery
Implikationen von ACID auf Anforderungen zu Recovery
Durability
ˆ Änderungen an der Datenbank, die durch erfolgreich(!)
abgeschlossene (d.h. committed) Transaktionen verursacht wurden,
müssen dauerhaft gespeichert sein.
ˆ D.h. bei einem Crash der DB muss nach Wiederanlauf geschaut
werden, ob dies tatsächlich der Fall ist.
Atomicity
ˆ Falls eine Transaktion noch nicht erfolgreich abgeschlossen wurde und
ein DB-Crash auftritt, muss beim Wiederanlauf darauf geachtet
werden, dass etwaige Änderungen in der Datenbasis rückgängig
gemacht werden.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
50 / 58
Transaktionsverwaltung
Recovery
Fehlerklassifikation
Lokaler Fehler in einer noch nicht festgeschriebenen (committed)
Transaktion:
ˆ Wirkung der TA muss zurückgesetzt werden
Fehler mit Hauptspeicherverlust:
ˆ Abgeschlossene TAs müssen erhalten bleiben
ˆ Noch nicht abgeschlossene TAs müssen zurückgesetzt werden
Fehler mit Hintergrundspeicherverlust:
ˆ Archiv einspielen
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
51 / 58
Transaktionsverwaltung
Recovery
Vorsorge für den Fehlerfall
Logging
ˆ Sammlung redundanter Daten bei Änderungen im Normalbetrieb, als
Voraussetzung für Recovery
ˆ Einsatz im Fehlerfall (Undo-, Redo-Recovery)
Do-Redo-Undo-Prinzip
DB-Zustandalt
Do
DB-Zustandneu
Log-Satz
Prof. Dr.-Ing. S. Michel
DB-Zustandalt
Log-Satz
Log-Satz
DB-Zustandneu
Redo
Undo
DB-Zustandneu
DB-Zustandalt
TU Kaiserslautern
Datenbankanwendung, WS 14/15
52 / 58
CLR
Transaktionsverwaltung
Recovery
Recovery-Oriented Computing
Systemverfügbarkeit A (availability)
ˆ MTTF: Mean Time To Failure
ˆ MTTR: Mean Time To Repair
A=
MTTF
MTTF + MTTR
Warum Recovery-Oriented Computing?
ˆ Hardwarefehler, Softwarefehler passieren (sind nicht vermeidbar) und
müssen adressiert werden.
ˆ Lange Systemausfälle sind sehr sichtbar (z.B. Amazon, Facebook,
Ebay!)
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
53 / 58
Transaktionsverwaltung
Recovery
Number of Nines & Entwicklungsziele
Availablility wird manchmal beschrieben in Anzahl von Neunen (Nines),
wie in “five nines”, oder 99.999%. 99.99% entspricht ungefähr 1 Minute
Ausfall in einer Woche, bzw. circa 50 Minuten Ausfall in einem Jahr.
ˆ “Build a system used by millions of people that is always available –
out less than 1 second per 100 years = 8 9’s of availability” (J. Gray:
1998 Turing Award Lecture)
Jim Gray: We have added three 9s in 45 years (starting with 90%), or about 15 years per
order-of-magnitude improvement in availability. We should aim for five more 9s: an expectation
of one second outage in a century. This is an extreme goal, but it seems achievable if hardware
is very cheap and bandwidth is very high. One can replicate the services in many places, use
transactions to manage the data consistency, use design diversity to avoid common mode
failures, and quickly repair nodes when they fail. Again, this is not something you will be able to
test: so achieving this goal will require careful analysis and proof.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
54 / 58
Transaktionsverwaltung
Recovery
Wie kann man annährend A = 1, 0 erreichen?
ˆ MTTF → ∞?
ˆ MTTR << MTTF!
Es gibt Fehler die man nur sehr schwer oder gar nicht nicht durch testen in
den Griff bekommen kann. Sie treten nichtdeterministisch auf, oft
aufgrund von Nebenläufigkeit in Threads, unter hoher Last, oder in
anderen seltenen Fällen.
Solche Probleme werden auch “Heisenbugs” genannt (Jim Gray); nach
Heisenbergs Unschärferelation.
D.h. ein schneller Wiederanlauf (Recovery) ist essentiell für hohe
Verfügbarkeit (Availability); da diese “Heisenbugs” die MTTF in der
Praxis einschränken.
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
55 / 58
Transaktionsverwaltung
Recovery
Grundlagen der DB-Recovery
Aufgabe des DBMS
ˆ Automatische Behandlung aller erwarteten Fehler
Was sind erwartete Fehler?
ˆ DB-Operation wird zurückgewiesen, Commit wird nicht akzeptiert, . . .
ˆ Stromausfall, DBMS-Probleme
ˆ Geräte funktionieren nicht (Spur, Zylinder, Platte defekt)
ˆ Beliebiges Fehlverhalten der Gerätesteuerung
ˆ ...
Fehlermodelle von (zentralisierten) DBMS
ˆ Transaktionsfehler
ˆ Systemfehler
ˆ Gerätefehler
ˆ Katastrophen
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
56 / 58
Transaktionsverwaltung
Recovery
Recovery-Arten
1. Transaktions-Recovery
ˆ Zurücksetzen einzelner (noch nicht abgeschlossener) TA im laufenden
Betrieb (TA-Fehler, Deadlock, etc.)
→ Vollständiges Zurücksetzen auf BOT (TA-Undo)
→ Partielles Zurücksetzen auf Rücksetzpunkt (Savepoint) innerhalb der
Transaktion
2. Crash-Recovery nach Systemfehler
ˆ Wiederherstellen des jüngsten transaktionskonsistenten DB-Zustands:
→ (partielles) Redo für erfolgreiche TA (Wiederholung verlorengegangener
Änderungen
→ Undo aller durch Ausfall unterbrochenen TA (Entfernung der
Änderungen aus der DB)
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
57 / 58
Transaktionsverwaltung
Recovery
Recovery-Arten (2)
3. Medien-Recovery nach Gerätefehler
ˆ Spiegelplatten, bzw.
ˆ vollständiges Wiederholen (Redo) aller Änderungen auf einer
Archivkopie
4. Katastrophen-Recovery
ˆ Nutzung einer aktuellen DB-Kopie in einem “entfernten” System oder
ˆ stark verzögerte Fortsetzung der DB-Verarbeitung mit
repariertem/neuem System auf Basis gesicherter Archivkopien
Prof. Dr.-Ing. S. Michel
TU Kaiserslautern
Datenbankanwendung, WS 14/15
58 / 58
Herunterladen