• Keine Ergebnisse gefunden

kus@iti.cs.uni-magdeburg.de VLDatenbank-Implementierungstechniken–0–1 VLDatenbank-Implementierungstechniken–0–1 VLDatenbank-Implementierungstechniken–0–2

N/A
N/A
Protected

Academic year: 2022

Aktie "kus@iti.cs.uni-magdeburg.de VLDatenbank-Implementierungstechniken–0–1 VLDatenbank-Implementierungstechniken–0–1 VLDatenbank-Implementierungstechniken–0–2"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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!

(2)

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

(3)

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).

(4)

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.

(5)

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 )

(6)

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

(7)

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)

(8)

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)./ π...(. . .))

(9)

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 −→

(10)

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.

(11)

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

(12)

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

Referenzen

ÄHNLICHE DOKUMENTE

Neue DB Engines für Hochleistungsanwendungen am Beispiel von Oracle Referent: Tim Delle.

∙ Hashfunktion der Attribute müssen so gewählt sein das gewünschte Gesamtlänge des Hashes erreicht wird (Q Bits für 2 Q

create table tweet id integer not null primary key user id integer null references twitter user on delete set null tweet date timestamp not null tweet text varchar 140 not mail

■ Mehrere Benutzer oder Anwendungen können nicht parallel auf den gleichen Daten arbeiten, ohne sich zu stören1. ■ Anwendungsprogrammierer / Benutzer können Anwendungen

ISBN char(10) not null, Titel varchar(200), Verlagsname varchar(30), primary key (ISBN),. foreign

Puffer: Seiten (Byte-Container) ↔ Speichersystem: interne Datensätze ↔ Zugriffssystem: logische Datensätze, interne Tupel.

■ Normalfall: Primärschlüssel über Primärindex oder Dateiorganisationsform unterstützt, kann geclusterter Index sein.. ■ Normalfall: Sekundärschlüssel über Sekundärindex

Figure 4: Monthly anthropogenic (solid lines, crosses) and wildfire emissions of selected pollutants (dashed lines, circles) for Europe during peak fire season by range of