Vorlesung
Datenbank-
Implementierungstechniken
TU Dresden, SS 2002
Kai-Uwe Sattler kus@iti.cs.uni-magdeburg.de
VL Datenbank-Implementierungstechniken – 0–1
Überblick
1. Aufgaben und Prinzipien von Datenbanksystemen 2. Architektur von Datenbanksystemen
3. Verwaltung des Hintergrundspeichers 4. Dateiorganisation und Zugriffsstrukturen 5. Zugriffsstrukturen für spezielle Anwendungen 6. Basisalgorithmen für Datenbankoperationen 7. Optimierung von Anfragen
8. Transaktionsmodelle und -verwaltung 9. Wiederherstellung und Datensicherheit 10. Neuere Entwicklungen und Ausblick
VL Datenbank-Implementierungstechniken – 0–1
Nötiges Vorwissen
Datenbanken I:
■ Grundprinzipien Datenbanksysteme
■ Tabellen, Attribute, Schlüssel
■ Relationale Algebra und SQL
Wird am Anfang der Vorlesung kurz wiederholt!
Literatur
■ Saake, G.; Heuer, A.: Datenbanken —
Implementierungskonzepte. mitp-Verlag, Mai 1999
■ Härder, T.; Rahm, E.: Datenbanksysteme — Konzepte und Techniken der Implementierung. Springer-Verlag, 1999
■ Garcia-Molina, H.; Ullman, J.; Widom, J.: Database System Implementation. Addison-Wesley, 1999.
■ Silberschatz, A.; Korth, H. F.; Sudarshan, S.: Database System Concepts. Wiley & Sons, 2001.
VL Datenbank-Implementierungstechniken – 0–3
1. Aufgaben und Prinzipien von DBS
■ Wiederholung Datenbankgrundbegriffe
■ Überblick über behandelte Komponenten
VL Datenbank-Implementierungstechniken – 1–1
Datenbankgrundbegriffe: Komponenten
Externe Ebene
Anfragen Updates
Optimierer
P1
Pn ...
Interne Ebene
Plattenzugriff
DB-Operationen Einbettung Masken
Datendefinition
Dateiorganisation Sichtdefinition
Data Dictionary Konzeptuelle Ebene
Auswertung
Klassifikation von Komponenten
Data Dictionary Transformationskomponenten
Definitionskomponenten
Benutzerkomponenten
Programmier- komponenten
VL Datenbank-Implementierungstechniken – 1–3
Neun Funktionen nach Codd
1. Integration 2. Operationen 3. Katalog
4. Benutzersichten
5. Konsistenzüberwachung 6. Datenschutz
7. Transaktionen 8. Synchronisation 9. Datensicherung
VL Datenbank-Implementierungstechniken – 1–4
Datenmodelle und Datendefinition
Wichtigste Modelle in kommerziellen Systemen
■ das hierarchische Datenmodell: Daten in Baumform als hierarchisch strukturierte Datensätze,
■ das Netzwerkmodell: Unterstützung von Netzwerken von verzeigerten Datensätzen,
■ das relationale Datenbankmodell: Daten in Tabellenform,
■ das objektorientierte Datenmodell: modelliert Daten objektorientiert durch in Klassen organisierte, verzeigerte Objekte,
■ das semistrukturierte Datenmodell: Verwaltung
„schemaloser“, selbstbeschreibender Daten in Graphstrukturen (XML).
Relationale Datenbanken
Ausleih InventarNr Name 4711 Meyer 1201 Schulz 0007 Müller 4712 Meyer
Buch InventarNr Titel ISBN AUTOR
0007 Dr. No 3-125 James Bond
1201 Objektbanken 3-111 Heuer 4711 Datenbanken 3-765 Vossen 4712 Datenbanken 3-891 Ullman
4717 Pascal 3-999 Wirth
VL Datenbank-Implementierungstechniken – 1–6
SQL-DDL
create table Buch ( ISBN char(10), Titel varchar(200), Verlagsname varchar(30), primary key (ISBN),
foreign key (Verlagsname)
references Verlage (Verlagsname) )
VL Datenbank-Implementierungstechniken – 1–7
Anfragen
Grundlagen
■ Relationenalgebra sowie
■ Tupel- oder Bereichskalkül.
Relationenalgebra
σName=’Meyer’(r(Ausleih)) πTitel(r(Buch))
πInventarNr,Titel(r(Buch))./ σName=’Meyer’(r(Ausleih))
VL Datenbank-Implementierungstechniken – 1–9
Änderungskomponente
Änderungskomponente eines Datenbanksystems ermöglicht es,
■ Tupel einzugeben,
■ Tupel zu löschen und
■ Tupel zu ändern.
VL Datenbank-Implementierungstechniken – 1–10
Sprachen und Sichten: SQL
select Buch.InventarNr, Titel, Name from Buch, Ausleih
where Name = ’Meyer’ and
Buch.InventarNr = Ausleih.InventarNr update Angestellte
set Gehalt = Gehalt + 1000 where Gehalt < 5000
insert into Buch values
(4867,’Wissensbanken’, ’3-876’,’Karajan’) insert into Kunde
( select LName, LAdr, 0 from Lieferant )
Spracheinbettung
exec sql declare AktBuch cursor for select ISBN, Titel, Verlagsname from Buch
for update of ISBN, Titel;
exec sql commit work;
exec sql rollback work;
VL Datenbank-Implementierungstechniken – 1–12
Sichten in SQL
create view Meyers as
select Buch.InventarNr, Titel, Name from Buch, Ausleih
where Name = ’Meyer’ and
Buch.InventarNr = Ausleih.InventarNr
VL Datenbank-Implementierungstechniken – 1–13
Überblick über behandelte Komponenten
■ Optimierer
■ Dateiorganisationen und Zugriffspfade
■ Organisation des Sekundärspeichers
■ Transaktionsverwaltung
■ Recovery-Komponente
Optimierer
■ Äquivalenz von Algebra-Termen
1. σA=Konst( REL11REL2 ) und A aus REL1 2. σA=Konst(REL1)1REL2
■ allgemeine Strategie: Selektionen möglichst früh, da sie Tupelanzahlen in Relationen verkleinern
■ Beispiel: REL1 100 Tupel, REL2 50 Tupel intern: Tupel sequentiell abgelegt
1. 5000 (1)+5000 (σ) = 10000 Operationen 2. 100 (σ)+10·50 (1) = 600 Operationen
falls 10 Tupel in REL1 die BedingungA=Konst erfüllen
VL Datenbank-Implementierungstechniken – 1–15
Joins
■ Merge-Join: Verbund durch Mischen vonR1undR2
◆ insbesondere dann effizient, wenn eine oder beide Relation(en) sortiert nach den Verbund-Attributen vorliegen, d.h. für Verbund-Attribute X muss gelten:
X:=R1∩R2
◆ r1undr2werden nachX sortiert
◆ Mischen vonr1undr2, d.h., beide Relationen parallel sequentiell durchlaufen und passende Paare in das Ergebnis aufnehmen
■ Nested-Loops-Join: doppelt Schleife überR1undR2
◆ liegt bei einer der beiden Relationen ein Zugriffspfad fürXvor, dann innere Schleife durch Zugriff über diesen Zugriffspfad ersetzen
VL Datenbank-Implementierungstechniken – 1–16
Komplexität der Operationen
■ Selektion
◆ hash-basierte Zugriffsstruktur:O(1)
◆ sequentieller Durchlauf:O(n)
◆ in der Regel (baumbasierte Zugriffspfade):O(logn)
■ Verbund
◆ sortiert vorliegende Tabellen:O(n+m)(Merge Join)
◆ sonst: bis zuO(n∗m)(Nested Loops Join)
■ Projektion
◆ vorliegender Zugriffspfad oder Projektion auf Schlüssel:O(n)
◆ Duplikateliminierung durch Sortieren:O(nlogn)
Optimierungsarten
■ Logische Optimierung:
◆ nutzt nur algebraische Eigenschaften der Operationen
◆ keine Informationen über die Speicherungsstrukturen und Zugriffspfade
◆ Verwendung heuristischer Regeln anstelle exakter Optimierung
◆ Beispiele:
– Entfernung redundanter Operationen – Verschieben von Operationen derart, daß
Selektionen möglichst früh ausgeführt werden
;algebraische Optimierung
VL Datenbank-Implementierungstechniken – 1–18
Optimierungsarten II
■ Interne Optimierung:
◆ Nutzung von Informationen über die vorhandenen Speicherungsstrukturen
◆ Auswahl der Implementierungsstrategie einzelner Operationen (Merge Join vs. Nested-Loops-Join)
◆ Beispiele:
– Verbundreihenfolge anhand der Größe und Unterstützung der Relationen durch Zugriffspfade – Reihenfolge von Selektionen nach der Selektivität
von Attributen und dem Vorhandensein von Zugriffspfaden
VL Datenbank-Implementierungstechniken – 1–19
Algebraische Optimierung
■ Entfernen redundanter Operationen (r ./ r=r) r(BuchLangeWeg) =
r(Buch)./ πISBN,Datum(
. . . σDatum<’31.12.1990’(r(Ausleihe)))
◆ Anfrage an Sicht:
πTitel(r(Buch)./ r(BuchLangeWeg))
◆ Einsetzen der Sichtdefinition:
πTitel(r(Buch)./ r(Bcher)./ π...(. . .))
Algebraische Optimierung II
■ Verschieben von Selektionen
σAutor=’Vossen’(r(Buch)./ πISBN,Datum(. . .))
Verbund auf kleineren Zwischenergebnissen:
(σAutor=’Vossen’(r(Buch)))./ πISBN,Datum(. . .) Selektion und Verbund kommutieren
VL Datenbank-Implementierungstechniken – 1–21
Algebraische Optimierung III
■ Reihenfolge von Verbunden
(r(Verlag)./ r(Ausleihe))./ r(Buch) Nachteil: erster Verbund entartet zum kartesischen Produkt, da keine gemeinsamen Attribute
r(Verlag)./(r(Ausleihe)./ r(Buch)) ./assoziativ und kommutativ
VL Datenbank-Implementierungstechniken – 1–22
Dateiorganisation und Zugriffspfade
Konzeptionelle Ebene
Interne Ebene Platte
Relationen −→ Dateien (Files) −→
Tupel −→ Sätze (Records) −→ Blöcke
Attributwerte −→ Felder −→
Zugriffspfade
■ Primär- versus Sekundär-Index
■ sequentielle Dateien, B-Bäume, Hashen
■ eindimensional versus mehrdimensional
■ spezielle Anwendungen
VL Datenbank-Implementierungstechniken – 1–24
Transaktionen und Recovery
■ Atomicity (Atomarität oder Ununterbrechbarkeit)
◆ Transaktion wird ganz oder gar nicht ausgeführt
■ Consistency (Konsistenz oder Integritätserhaltung)
◆ der von einer Transaktion hinterlassene neue Zustand genügt den Integritätsbedingungen
■ Isolation
◆ Ergebnis einer Transaktion muß einem isolierten Ablauf dieser Transaktion entsprechen, auch bei mehreren nebenläufigen Transaktionen
■ Durability (Dauerhaftigkeit oder Persistenz)
◆ nach Ende einer Transaktion stehen Ergebnisse dauerhaft in der Datenbank
VL Datenbank-Implementierungstechniken – 1–25
Transaktionen II
Das Ergebnis einer Transaktion soll so ausse- hen, als sei sie nach dem ACID-Prinzip abgelau- fen.
Datenelemente und Sperren
Sperrmodelle:
T1: lock A; read A;
A:=A+ 1; write A;
unlock A;
Deadlocks:
T1: lock A; T2: lock B;
...; ...;
lock B; lock A;
...; ...;
unlock A; unlock B;
unlock B; unlock A;
VL Datenbank-Implementierungstechniken – 1–27
Serielle Schedules
T1: read A; T2: read B;
A:=A−10; B:=B−20;
write A; write B;
read B; read C; B:=B+ 10; C :=C+ 20;
write B; write C; T1;T2undT2;T1sind seriell
VL Datenbank-Implementierungstechniken – 1–28
Begriff der Serialisierbarkeit
Ein Schedule heißt serialisierbar, wenn sein Ergebnis äquivalent zu dem eines seriellen Schedules ist.
Methoden:
■ Serialisierbarkeitsgraphen
■ Zwei-Phasen-Sperr-Protokoll
■ Zeitmarkenverfahren
Unterschiedliche Ablaufpläne
ScheduleS1 ScheduleS2 ScheduleS3
T1 T2 T1 T2 T1 T2
readA readA readA
A−10 readB A−10
writeA A−10 readB
readB B−20 writeA
B+ 10 writeA B−20
writeB writeB readB
readB readB writeB
B−20 readC B+ 10
writeB B+ 10 readC
readC C+ 20 writeB
C+ 20 writeB C+ 20
writeC writeC writeC
VL Datenbank-Implementierungstechniken – 1–30
Kaskadierende Transaktionsabbrüche
T1 T2
lockA readA A:=A−1 writeA lockB unlockA
lockA readA A:=A×2 readB
writeA
unlockA ←commitT2
abortT1→ B:=B/A↓
VL Datenbank-Implementierungstechniken – 1–31
Recovery
■ stabiler vs. instabiler Speicher
■ Log-Buch / Journal
■ Backward Recovery : Änderungen rückgängig machen
;UNDO.
■ Forward Recovery : Änderungen nachziehen;REDO.
■ Schattenspeicher