Schnittstellen I

Werbung
14. Dateiorganisation/Zugriffsstrukturen
■
Architektur von DBMS
■
Dateiorganisation
■
Zugriffsstrukturen
■
DBMS-Architekturen am Beispiel von Oracle
Überblick
Externe Ebene
Konzeptuelle Ebene
Interne Ebene
Anfragen
Optimierer
Auswertung
Plattenzugriff
Updates
P1
DB-Operationen
...
Einbettung
Pn
Masken
Data Dictionary
Sichtdefinition
Dateiorganisation
Datendefinition
VL Datenbanken I – 14–1
Fünf-Schichten-Architektur
VL Datenbanken I – 14–2
5-Schichten-Architektur: Schnittstellen I
■
basierend auf Idee von Senko 1973
■
Weiterentwicklung von Härder 1987
■
Umsetzung im Rahmen des IBM-Prototyps System R
■
genauere Beschreibung der
Transformationskomponenten
◆ schrittweise Transformation von
Anfragen/Änderungen bis hin zu Zugriffen auf
Speichermedien
◆ Definition der Schnittstellen zwischen Komponenten
VL Datenbanken I – 14–3
■
mengenorientierte Schnittstelle
◆ deklarative DML auf Tabellen, Sichten, Zeilen
■
satzorientierte Schnittstelle
◆ Sätze, logische Dateien, logische Zugriffspfade
◆ navigierender Zugriff
■
interne Satzschnittstelle
◆ Sätze, Zugriffspfade
◆ Manipulation von Sätzen und Zugriffspfaden
VL Datenbanken I – 14–4
5-Schichten-Architektur: Schnittstellen II
■
■
■
5-Schichten-Architektur: Funktionen
Pufferschnittstelle
◆ Seiten, Seitenadressen
◆ Freigeben und Bereitstellen
Mengenorientierte
Schnittstelle (MOS)
Datensystem
Übersetzung, Zugriffspfadauswahl,
Zugriffskontrolle, Integritätskontrolle
Zugriffssystem
Data Dictionary, Currency Pointer,
Sortierung, Transaktionsverwaltung
Speichersystem
Record Manager, Zugriffspfadverwaltung,
Sperrverwaltung, Log/Recovery
Pufferverwaltung
Systempufferverwaltung mit
Seitenwechselstrategie
Satzorientierte
Schnittstelle (SOS)
Datei- oder Seitenschnittstelle
◆ Hole Seite, Schreibe Seite
Interne Satz−
schnittstelle (ISS)
Geräteschnittstelle
◆ Spuren, Zylinder
◆ Armbewegungen
Systempuffer−
schnittstelle (SPS)
Datei−
schnittstelle (DS)
Betriebssystem
Externspeicherverwaltung
Geräte−
schnittstelle (GS)
VL Datenbanken I – 14–5
5-Schichten-Architektur: Objekte
Mengenorientierte
Schnittstelle (MOS)
VL Datenbanken I – 14–6
Erläuterungen I
Relationen
Sichten
SQL : select ... from ...
QBE, QUEL, ...
externe Sätze, Scans,
Index−Strukturen
FIND NEXT satz
STORE satz
interne Sätze, Bäume,
Hashtabellen
Speichere internen Satz s
INSERT in B−Baum
Segmente
Seiten
Bereitstellen Seite j
Freigeben Seite j
Dateien
Blöcke
Lies Block k
Schreibe Block k
Zylinder
Spuren
Treiber
■
mengenorientierte Schnittstelle MOS:
◆ deklarative Datenmanipulationssprache auf Tabellen
und Sichten (etwa SQL)
■
durch Datensystem auf satzorientierte Schnittstelle SOS
umgesetzt:
◆ navigierender Zugriff auf interner Darstellung der
Relationen
◆ manipulierte Objekte: typisierte Datensätze und
interne Relationen sowie logische Zugriffspfade
(Indexe)
Datensystem
Satzorientierte
Schnittstelle (SOS)
Zugriffssystem
Interne Satz−
schnittstelle (ISS)
Speichersystem
Systempuffer−
schnittstelle (SPS)
Pufferverwaltung
Datei−
schnittstelle (DS)
Betriebssystem
Geräte−
schnittstelle (GS)
VL Datenbanken I – 14–7
◆
Aufgaben des Datensystems: Übersetzung und
Optimierung von SQL-Anfragen
VL Datenbanken I – 14–8
Erläuterungen II
■
Erläuterungen III
durch Zugriffssystem auf interne Satzschnittstelle ISS
umgesetzt:
◆ interne Tupel einheitlich verwalten, ohne Typisierung
◆ Speicherstrukturen der Zugriffspfade (konkrete
Operationen auf B∗ -Bäumen und Hash-Tabellen),
Mehrbenutzerbetrieb mit Transaktionen
■
durch Speichersystem Datenstrukturen und Operationen
der ISS auf interne Seiten eines virtuellen linearen
Adreßraums umsetzen
◆ Manipulation des Adreßraums durch Operationen der
Systempufferschnittstelle SPS
◆ Typische Objekte: interne Seiten und Seitenadressen
◆ Typische Operationen: Freigeben und Bereitstellen
von Seiten, Seitenwechselstrategien,
Sperrverwaltung, Schreiben des Log-Buchs für
Recovery
■
durch Pufferverwaltung interne Seiten auf Blöcke der
Dateischnittstelle DS abbilden
◆ Umsetzung der DS-Operationen auf
Geräteschnittstelle erfolgt durch BS
VL Datenbanken I – 14–9
Speichermedien
■
VL Datenbanken I – 14–10
Speicherhierarchie
verschiedene Zwecke:
◆ Daten zur Verarbeitung bereitstellen
◆ Daten langfristig speichern (und trotzdem schnell
verfügbar halten)
◆ Daten sehr langfristig und preiswert archivieren unter
Inkaufnahme etwas längerer Zugriffszeiten
1. Extrem schneller Prozessor mit Registern
2. Sehr schneller Cache-Speicher
3. Schneller Hauptspeicher
4. Langsamer Sekundärspeicher mit wahlfreiem Zugriff
5. Sehr langsamer Nearline-Tertiärspeicher bei dem die
Speichermedien automatisch bereitgestellt werden
6. Extrem langsamer Offline-Tertiärspeicher, bei dem die
Speichermedien per Hand bereitgestellt werden
Tertiärspeicher: CD-R (Compact Disk Recordable), CD-RW
(Compact Disk ReWritable), DVD (Digital Versatile Disks),
Magnetbänder etwa DLT (Digital Linear Tape)
VL Datenbanken I – 14–11
VL Datenbanken I – 14–12
Verwaltung des Hintergrundspeichers
Abstraktion von Speicherungs- oder Sicherungsmediums
Modell: Folge von Blöcken
MOS
Betriebssystemdateien I
■
jede Relation oder jeder Zugriffspfad in genau einer
Betriebssystem-Datei
Mengenorientierte Schnittstelle
■
ein oder mehrere BS-Dateien, DBS verwaltet Relationen
und Zugriffspfade selbst innerhalb dieser Dateien
Satzorientierte Schnittstelle
■
DBS steuert selbst Magnetplatte an und arbeitet mit den
Blöcken in ihrer Ursprungsform (raw device)
Datensystem
SOS
Zugriffssystem
ISS
Interne Satzschnittstelle
Speichersystem
SPS
Systempufferschnittstelle
Pufferverwaltung
DS
Dateischnittstelle
Betriebssystem
GS
Geräteschnittstelle
VL Datenbanken I – 14–13
Betriebssystemdateien II
VL Datenbanken I – 14–14
Blöcke und Seiten
Warum nicht immer BS-Dateiverwaltung?
■
Betriebssystemunabhängigkeit
■
In 32-Bit-Betriebssystemen: Dateigröße 4 GB maximal
■
BS-Dateien auf maximal einem Medium
■
betriebssystemseitige Pufferverwaltung von Blöcken des
Sekundärspeichers im Hauptspeicher genügt nicht den
Anforderungen des Datenbanksystems
VL Datenbanken I – 14–15
■
Zuordnung der physischen Blöcke zu Seiten
■
meist mit festen Faktoren: 1, 2, 4 oder 8 Blöcke einer
Spur auf eine Seite
■
hier: „ein Block — eine Seite“
■
höhere Schichten des DBS adressieren über
Seitennummer
VL Datenbanken I – 14–16
Abbildung der Datenstrukturen
Dienste
■
Allokation oder Deallokation von Speicherplatz
■
Holen oder Speichern von Seiteninhalten
■
Allokation möglichst so, daß logisch aufeinanderfolgende
Datenbereiche (etwa einer Relation) auch möglichst in
aufeinanderfolgenden Blöcken der Platte gespeichert
werden
■
Nach vielen Update-Operationen:
Reorganisationsmethoden
■
Freispeicherverwaltung: doppelt verkettete Liste von
Seiten
■
Abbildung der konzeptuellen Ebene auf interne
Datenstrukturen
■
Unterstützung durch Metadaten (im Data Dictionary,
etwa das interne Schema)
Konz. Ebene
Relationen →
Tupel →
Attributwerte →
Interne Ebene
Log. Dateien →
Datensätze →
Felder →
Dateisystem/Platte
Phys. Dateien
Seiten/Blöcke
Bytes
VL Datenbanken I – 14–17
Varianten der Abbildungen
Saake
6834
Korn
mehrere logische
Dateien
Index−
Datei
Heuer
Korn
Ort
DBR
MD
MD
Hauptdatei
4711 Heuer
5588 Saake
6834 Korn
...
...
...
DBR
MD
MD
.
..
Index−
Datei
DBR
...
5588
...
...
...
...
MD
...
Nachname
Heuer
...
Beispiel 2: Cluster-Speicherung – mehrere Relationen in
einer logischen Datei
PANr
4711
...
Eine Relation
...
Beispiel 1: jede Relation in je einer logischen Datei,
diese insgesamt in einer einzigen physischen Datei
...
■
Übliche Form der Speicherung I
...
■
VL Datenbanken I – 14–18
Saake
VL Datenbanken I – 14–19
VL Datenbanken I – 14–20
Einpassen von Datensätzen auf Blöcke
Übliche Form der Speicherung II
5588 Saake
...
Korn
6834 Korn
...
...
...
.
..
DBR
MD
MD
DBR
Hauptdatei
Datensätze (eventuell variabler Länge) in die aus einer
fest vorgegebenen Anzahl von Bytes bestehenden
Blöcke einpassen: Blocken
■
Blocken abhängig von variabler oder fester Feldlänge
der Datenfelder
◆ Datensätze mit variabler Satzlänge: höherer
Verwaltungsaufwand beim Lesen und Schreiben,
Satzlänge immer wieder neu ermitteln
◆ Datensätze mit fester Satzlänge: höherer
Speicheraufwand
MD
Saake
Index−
Datei
■
...
4711 Heuer
...
Heuer
Dateien
...
mehrere logische
Index−
Datei
eine physische Datei
...
...
4711 Heuer
5588 Saake
...
Heuer
.
Saake
DBR
...
Korn
.
6834 Korn
...
MD
...
MD
.
.
DBR
..
...
MD
VL Datenbanken I – 14–21
Blockungstechniken
VL Datenbanken I – 14–22
Seiten, Sätze und Adressierung
■
Struktur der Seiten: doppelt verkettete Liste
■
freie Seiten in Freispeicherverwaltung
Vor Nach
Seite p
Seite p+1
Spannsatz
Seite p
115
Seite p+1
81
weitere Header−Information
136
Offset 142
Nichtspannsatz
■
Nichtspannsätze: jeder Datensatz in maximal einem
Block
■
Spannsätze: Datensatz eventuell in mehreren Blöcken
■
Standard: Nichtspannsätze (nur im Falle von BLOBs
oder CLOBs Spannsätze üblich)
VL Datenbanken I – 14–23
136
115
175
Tupel
...
VL Datenbanken I – 14–24
Seite: Adressierung der Datensätze
Seite
■
Header
◆ Informationen über Vorgänger- und Nachfolger-Seite
◆ eventuell auch Nummer der Seite selbst
◆ Informationen über Typ der Sätze
◆ freier Platz
■
Datensätze
■
unbelegte Bytes
■
adressierbare Einheiten
◆ Zylinder
◆ Spuren
◆ Sektoren
◆ Blöcke oder Seiten
◆ Datensätze in Blöcken oder Seiten
◆ Datenfelder in Datensätzen
■
Beispiel: Adresse eines Satzes durch Seitennummer
und Offset (relative Adresse in Bytes vom Seitenanfang)
(115, 142)
VL Datenbanken I – 14–25
VL Datenbanken I – 14–26
Unpinned records (Unfixierte Sätze)
Pinned records (Fixierte Sätze)
■
Fixierte Datensätze sind an ihre Position gebunden
■
unfixierte Sätze: Verweise mit „logischen Zeigern“
■
Bsp.: Verweise mit Zeigern aus anderer, schwer
auffindbarer Seite, etwa Verschieben des Datensatzes
(115, 142) auf Seite 136
■
etwa: Matrikelnummer bei Studenten-Datensatz
■
diesen an zentraler Stelle (etwa in Indexdatei zur
Studenten-Relation) auf aktuelle Adresse umsetzen
■
Nachteil: Verschieben des Datensatzes benötigt neben
dem Laden der beiden direkt betroffenen Seite (Quellund Zielseite der Verschiebeoperation) auch noch Holen
der Indexseite
■
Nachteil wird beim TID-Konzept (s.u.) behoben
■
Gefahr: ins Leere verweisende Zeiger (dangling
pointers)
VL Datenbanken I – 14–27
VL Datenbanken I – 14–28
Sätze fester Länge
Sätze variabler Länge
SQL: Datentypen fester und variabler Länge
■
■
char(n) Zeichenkette der festen Länge n
■
varchar(n) Zeichenkette variabler Länge mit der
Maximallänge n
im Verwaltungsblock nötig: Satzlänge l, um die Länge
des Nutzdaten-Bereichs d zu kennen
l
d
Aufbau der Datensätze, falls alle Datenfelder feste Länge:
Länge (bzw.
Verwaltungsblock)
1. Verwaltungsblock mit
■ Typ eines Satzes (wenn unterschiedliche Satztypen
auf einer Seite möglich)
■ Löschbit
Nutzdaten
2. Freiraum zur Justierung des Offset
3. Nutzdaten des Datensatzes
VL Datenbanken I – 14–29
Sätze variabler Länge II
a)
l
n
al1
A1
VL Datenbanken I – 14–30
Speicherung von Sätzen variabler Länge
...
Anzahl Attribute
aln An
Attributwerte
Attributlängen
■
Strategie a): Jedes Datenfeld variabler Länge A i beginnt
mit einem Längenzeiger ali , der angibt, wie lang das
folgende Datenfeld ist
■
Strategie b): Am Beginn des Satzes wird nach dem
Satz-Längenzeiger l und der Anzahl der Attribute ein
Zeigerfeld ap1 , . . . , apn für alle variabel langen
Datenfelder eingerichtet
■
Vorteil Strategie b): leichtere Navigation innerhalb des
Satzes (auch für Sätze in Seiten ⇒ TID)
PSfrag replacements
Anzahl Attribute
b)
l
n
ap1
Attributzeiger
...
apn A1
Attributwerte
...
An
VL Datenbanken I – 14–31
VL Datenbanken I – 14–32
Adressierung: TID-Konzept
■
■
TID-Konzept: einstufige Referenz
Tupel-Identifier (TID) ist Datensatz-Adresse bestehend
aus Seitennummer und Offset
Offset verweist innerhalb der Seite bei einem
Offset-Wert von i auf den i-ten Eintrag in einer Liste von
Tupel-Zeigern, die am Anfang der Seite stehen
■
Jeder Tupel-Zeiger enthält Offsetwert
■
Verschiebung auf der Seite: sämtliche Verweise von
außen bleiben unverändert
■
Verschiebungen auf eine andere Seite: statt altem
Datensatz neuer TID-Zeiger
■
diese zweistufige Referenz aus Effiziengründen nicht
wünschenswert: Reorganisation in regelmäßigen
Abständen
TID
p
Seite p
i
i
i−tes Tupel
Tupel−Zeiger
VL Datenbanken I – 14–33
TID-Konzept: zweistufige Referenz
TID
p
VL Datenbanken I – 14–34
Pufferverwaltung
Seite p
MOS
i
Mengenorientierte Schnittstelle
Datensystem
i
SOS
TID <q,j>
Satzorientierte Schnittstelle
Zugriffssystem
ISS
Interne Satzschnittstelle
Speichersystem
Seite q
SPS
Systempufferschnittstelle
Pufferverwaltung
j
DS
Dateischnittstelle
Betriebssystem
j−tes Tupel
GS
VL Datenbanken I – 14–35
Geräteschnittstelle
VL Datenbanken I – 14–36
Aufgaben der Pufferverwaltung
Seitenersetzungsstrategien
■
Puffer : ausgezeichneter Bereich des Hauptspeichers
■
■
in Pufferrahmen gegliedert, jeder Pufferrahmen kann
Seite der Platte aufnehmen
Speichersystem fordert Seite E2 an, die nicht im Puffer
vorhanden ist
■
Sämtliche Pufferrahmen sind belegt
■
vor dem Laden von E2 Pufferrahmen freimachen
■
nach den unten beschriebenen Strategien Seite
aussuchen
■
Ist Seite in der Zwischenzeit im Puffer verändert worden,
so wird sie nun auf Platte zurückgeschrieben
■
Ist Seite seit Einlagerung in den Puffer nur gelesen
worden, so kann sie überschrieben werden (verdrängt)
■
Aufgaben:
◆ Pufferverwaltung muß angeforderte Seiten im Puffer
suchen ⇒ effiziente Suchverfahren
◆ parallele Datenbanktransaktionen: geschickte
Speicherzuteilung im Puffer
◆ Puffer gefüllt: adäquate Seitenersetzungsstrategien
◆ Unterschiede zwischen einem Betriebssystem-Puffer
und einem Datenbank-Puffer
◆ spezielle Anwendung der Pufferverwaltung:
Schattenspeicherkonzept
VL Datenbanken I – 14–37
Hauptspeicher
Seitenersetzung schematisch
...
C1
E1
A1
A2
B1
B2
C1
C2
D1
D2
...
...
...
...
Puffer
■
Demand-paging-Verfahren: genau eine Seite im Puffer
durch angeforderte Seite ersetzen
■
Prepaging-Verfahren: neben der angeforderten Seite
auch weitere Seiten in den Puffer einlesen, die eventuell
in der Zukunft benötigt werden (z.B. bei BLOBs sinnvoll)
■
optimale Strategie: Welche Seite hat maximale Distanz
zu ihrem nächsten Gebrauch? (nicht realisierbar,
zukünftiges Referenzverhalten nicht vorhersehbar)
laden
An-1
An
Bn-1
Bn
Cn-1
Cn
Dn-1
Dn
E1
E2
...
...
; Realisierbare Verfahren besitzen keine Kenntnisse über
das zukünftige Referenzverhalten
...
E2
zurückschreiben /
verdrängen
Sekundärspeicher
Seitenersetzung: Verfahren I
Speichersystem
A1
VL Datenbanken I – 14–38
■
VL Datenbanken I – 14–39
Zufallsstrategie: jeder Seite gleiche
Wiederbenutzungswahrscheinlichkeit zuordnen
VL Datenbanken I – 14–40
■
Gute, realisierbare Verfahren sollen vergangenes
Referenzverhalten auf Seiten nutzen, um
Erwartungswerte für Wiederbenutzung schätzen zu
können
◆ besser als Zufallsstrategie
◆ Annäherung an optimale Strategie
Natürlicher Verbund von Relationen A und B (zugehörige
Folge von Seiten: Ai bzw. Bj ) ; Implementierung:
Nested-Loop
Puffer
A1
B1
B2
B3
B4
B5
muß geladen werden
wird
verdrängt
klassische Verfahren:
◆ FIFO (first in first out)
◆ LFU (least frequently used)
◆ LRU (least recently used)
älteste,
am längsten
nicht benutzt
B1
Relation A
■
Mangelnde Eignung des BS-Puffers I
A1
B2
A2
B3
A3
...
B4
Relation B
Seitenersetzung: Verfahren II
B5
B6
VL Datenbanken I – 14–41
Mangelnde Eignung des BS-Puffers II
■
FIFO: A1 verdrängt, da älteste Seite im Puffer
■
LRU: A1 verdrängt, da diese Seite nur im ersten Schritt
beim Auslesen des Vergleichstupels benötigt wurde
Problem
■
im nächsten Schritt wird gerade A1 wieder benötigt
■
weiteres „Aufschaukeln“: um A1 laden zu können, muß
B1 entfernt werden (im nächsten Schritt benötigt) usw.
Seitenersetzungsstrategien von Datenbanksystemen
■
Fixieren von Seiten
■
Freigeben von Seiten
■
Zurückschreiben einer Seite (z.B. am Transaktionsende!)
VL Datenbanken I – 14–43
VL Datenbanken I – 14–42
Dateiorganisation vs. Zugriffspfad (I)
Dateiorganisationsform: Form der Speicherung der internen
Relation
■
unsortierte Speicherung von internen Tupeln:
Heap-Organisation
■
sortierte Speicherung von internen Tupeln: sequentielle
Organisation
■
gestreute Speicherung von internen Tupeln:
Hash-Organisation
■
Speicherung von internen Tupeln in mehrdimensionalen
Räumen: mehrdimensionale Dateiorganisationsformen
üblich: Sortierung oder Hash-funktion über Primärschlüssel
sortierte Speicherung plus zusätzlicher Primärindex über
Sortierattributen: index-sequentielle Organisationsform
VL Datenbanken I – 14–44
Dateiorganisation vs. Zugriffspfad (II)
Dateiorganisation vs. Zugriffspfad (III)
Zugriffspfad: über grundlegende Dateiorganisationsform
hinausgehende Zugriffsstruktur, etwa Indexdatei
Eintrag K ↑:
■
Einträge (K, K ↑)
■ K
der Wert eines Primär- oder Sekundärschlüssels
■ K ↑
Datensatz oder Verweis auf Datensatz
■ K:
Suchschlüssel, genauer: Zugriffsattribute und
Zugriffsattributwerte
■ K ↑
ist Datensatz selbst: Zugriffspfad wird
Dateiorganisationsform
■ K ↑
ist Adresse eines internen Tupels: Primärschlüssel;
Sekundärschlüssel mit (K, K ↑1 ), . . . , (K, K ↑n ) für
denselben Zugriffsattributwert K
■ K ↑
ist Liste von Tupeladressen: Sekundärschlüssel;
nachteilig ist variable Länge der Indexeinträge
Tupeladressen: TIDs, nur Seitenadressen, . . .
Indexdatei kann selbst in Dateiorganisationsform
gespeichert und mit Zugriffspfaden versehen werden
VL Datenbanken I – 14–45
Klassifikation der Speichertechniken
■
Primär- vs. Sekundärindex: Primärindex ist Zugriffspfad
auf interne Relation, der Dateiorganisationsform der
internen Relation ausnutzen kann (z.B. Sortierung)
■
dünn- vs. dichtbesetzter Index: dichtbesetzt – für jeden
Datensatz der internen Relation ein Eintrag in
Indexdatei; dünnbesetzt – nicht für jeden
Zugriffsattributwert K ein Eintrag
■
geclusteter vs. nicht-geclusteter Index: geclustert – in
der gleichen Form sortiert wie interne Relation
VL Datenbanken I – 14–47
VL Datenbanken I – 14–46
Klassifikation der Speichertechniken (II)
■
Schlüsselzugriff vs. -transformation: Zugriff – Zuordnung
von Primär- oder Sekundärschlüsselwerten zu Adressen
in Hilfsstruktur wie Indexdatei; Transformation – erechnet
Tupeladresse aufgrund Formel aus Primär- oder
Sekundärschlüsselwerten
■
Ein- vs. Mehr-Attribut-Index
■
Ein- vs. mehrdim. Zugriffsstruktur
■
statische vs. dynamische Struktur : statisch – optimal nur
bei bestimmter (fester) Anzahl von verwaltenden
Datensätzen; dynamisch – unabhängig von der Anzahl
der Datensätze optimal
VL Datenbanken I – 14–48
Heap-Organisation
Statische Verfahren
■
Heap, indexsequentiell, indiziert-nichtsequentiell
■
völlig unsortiert speichern
■
oft grundlegende Speichertechnik in RDBS
■
■
direkten Organisationsformen: keine Hilfsstruktur, keine
Adreßberechnung (Heap, sequentiell)
physische Reihenfolge der Datensätze ist zeitliche
Reihenfolge der Aufnahme von Datensätzen
■
statische Indexverfahren für Primärindex und
Sekundärindex
8832
Tamara
Jagellowsk
.....
11.11.73
5588
Gunter
Saake
.....
5.10.60
4711
Andreas
Heuer
.....
31.10.58
9999
Christa
Preisendanz
.....
10.5.69
6834
Michael
Korn
.....
24.9.74
7754
Andreas
Möller
.....
25.2.76
9912
Antje
Hellhof
.....
4.4.70
frei
VL Datenbanken I – 14–49
Heap: Operationen
■
■
■
■
VL Datenbanken I – 14–50
Sequentielle Speicherung
insert: Zugriff auf letzte Seite der Datei. Genügend freier
Platz ⇒ Satz anhängen. Sonst nächste freie Seite holen
■
sortiertes Speichern der Datensätze
delete: lookup, dann Löschbit auf 0 gesetzt
lookup: sequentielles Durchsuchen der Gesamtdatei,
maximaler Aufwand (Heap-Datei meist zusammen mit
Sekundärindex eingesetzt; oder für sehr kleine
Relationen)
Komplexitäten: Neuaufnahme von Daten O(1), Suchen
O(n)
4711
Andreas
Heuer
.....
5588
Gunter
Saake
.....
31.10.58
5.10.60
6834
Michael
Korn
.....
24.9.74
7754
Andreas
Möller
.....
25.2.76
8832
Tamara
Jagellowsk
.....
11.11.73
9912
Antje
Hellhof
.....
4.4.70
9999
Christa
Preisendanz
.....
10.5.69
frei
VL Datenbanken I – 14–51
VL Datenbanken I – 14–52
Sequentielle Datei: Operationen
Indexsequentielle Dateiorganisation
■
insert: Seite suchen, Datensatz einsortieren ⇒ beim
Anlegen oder sequentiellen Füllen einer Datei jede Seite
nur bis zu gewissem Grad (etwa 66%) füllen
■
delete: Aufwand bleibt
■
Folgende Dateiorganisationsformen:
◆ schnelleres lookup
◆ mehr Platzbedarf (durch Hilfsstrukturen wie
Indexdateien)
◆ mehr Zeitbedarf bei insert und delete
■
klassische Indexform: indexsequentielle
Dateiorganisation
■
Kombination von sequentieller Hauptdatei und
Indexdatei: indexsequentielle Dateiorganisationsform
■
Indexdatei kann geclusterter, dünnbesetzter Index sein
■
mindestens zweistufiger Baum
◆ Blattebene ist Hauptdatei (Datensätze)
◆ jede andere Stufe ist Indexdatei
VL Datenbanken I – 14–53
Indexsequentielle Dateiorganisation (II)
Seite 18
4711
18
8832
45
4711
Andreas
Heuer
.....
31.10.58
5588
Gunter
Saake
.....
5.10.60
6834
Michael
Korn
.....
24.9.74
7754
Andreas
Möller
.....
25.2.76
Seite 45
8832
Tamara
Jagellowsk
.....
11.11.73
9912
Antje
Hellhof
.....
4.4.70
9999
Christa
Preisendanz
.....
10.5.69
VL Datenbanken I – 14–54
Baumverfahren
■
Stufenanzahl dynamisch verändern
■
wichtigste Baumverfahren: B-Bäume und ihre Varianten
■
B-Baum-Varianten sind noch „allgegenwärtiger“ in
heutigen Datenbanksystemen als SQL
■
SQL nur in der relationalen und objektrelationalen
Datenbanktechnologie verbreitet; B-Bäume überall als
Grundtechnik eingesetzt
frei
VL Datenbanken I – 14–55
VL Datenbanken I – 14–56
Prinzip des B-Baumes
B-Bäume
■
Ausgangspunkt: ausgeglichener, balancierter Suchbaum
■
■
Ausgeglichen oder balanciert: alle Pfade von der Wurzel
zu den Blättern des Baumes gleich lang
B-Baum von Bayer (B für balanciert, breit, buschig,
Bayer, NICHT: binär)
■
dynamischer, balancierter Indexbaum, bei dem jeder
Indexeintrag auf eine Seite der Hauptdatei zeigt
■
■
Hauptspeicher-Implementierungsstruktur: binäre
Suchbäume, beispielsweise AVL-Bäume von
Adelson-Velskii und Landis
Mehrwegebaum völlig ausgeglichen, wenn
Datenbankbereich: Knoten der Suchbäume
zugeschnitten auf Seitenstruktur des Datenbanksystems
■
mehrere Zugriffsattributwerte auf einer Seite
■
Mehrweg-Bäume
1. alle Wege von der Wurzel bis zu den Blättern gleich lang
2. jeder Knoten gleich viele Indexeinträge
vollständiges Ausgleichen zu teuer, deshalb
B-Baum-Kriterium:
Jede Seite außer der Wurzelseite enthält zwischen m und
2m Daten
VL Datenbanken I – 14–57
Eigenschaften des B-Baumes
Einfügen in einen B-Baum: Beispiel
n Datensätze in der Hauptdatei ⇒ in logm (n) Seitenzugriffen
von der Wurzel zum Blatt
■
VL Datenbanken I – 14–58
Durch Balancierungskriterium wird Eigenschaft nahe an
der vollständigen Ausgeglichenheit erreicht (1. Kriterium
vollständig erfüllt, 2. Kriterium näherungsweise)
■
Kriterium garantiert 50% Speicherplatzausnutzung
■
einfache, schnelle Algorithmen zum Suchen, Einfügen
und Löschen von Datensätzen (Komplexität von
O(logm (n)))
1
1
Split
2
5
6
5
1
Split
2
5
1
7
3
1
2
3
5
6
4
2
6
1
4
5
7
7
8
Split
VL Datenbanken I – 14–59
2
6
1
4
5
6
7
7
8
6
4
5
3
7
8
4
6
2
1
5
8
2
1
5
2
1
Split
5
2
7
6
4
1
2
1
6
2
5
1
3
5
7
8
VL Datenbanken I – 14–60
Einfügen in B-Bäumen
Suchen in B-Bäumen
Einfügen eines Wertes w
■
lookup wie in statischen Indexverfahren
■
Startend auf Wurzelseite Eintrag im B-Baum ermitteln,
der den gesuchten Zugriffsattributwert w überdeckt ⇒
Zeiger verfolgen, Seite nächster Stufe laden
■
Suchen: 38, 20, 6
■
mit lookup entsprechende Blattseite suchen
■
passende Seite n < 2m Elemente, w einsortieren
■
passende Seite n = 2m Elemente, neue Seite erzeugen,
◆ ersten m Werte auf Originalseite
◆ letzten m Werte auf neue Seite
◆ mittleres Element auf entsprechende Indexseite nach
oben
■
eventuell dieser Prozeß rekursiv bis zur Wurzel
25
10 20
2
5
7
8
13 14 15 18
30 40
22 24
26 27 28
32 35 38
41 42 45 46
VL Datenbanken I – 14–61
VL Datenbanken I – 14–62
Löschen in B-Bäumen
Löschen in B-Bäumen (II)
bei weniger als m Elementen auf Seite: Unterlauf
Löschen eines Wertes w: Bsp.: 24; 28, 38, 35
Unterlaufbehandlung
■
■
Ausgleichen mit der benachbarten Seite (benachbarte
Seite n Elemente mit n > m)
■
oder Zusammenlegen zweier Seiten zu einer
(Nachbarseite n = m Elemente), das „mittlere“ Element
von Indexseite darüber dazu, auf Indexseite eventuell
Unterlauf behandeln
mit lookup entsprechende Seite suchen
auf Blattseite gespeichert ⇒ Wert löschen, eventuell
Unterlauf behandeln
■ w
nicht auf Blattseite gespeichert ⇒ Wert löschen, durch
lexikographisch nächstkleineres Element von einer
Blattseite ersetzen, eventuell auf Blattseite Unterlauf
behandeln
■ w
VL Datenbanken I – 14–63
VL Datenbanken I – 14–64
Komplexität der Operationen
Beispiel für Einfügen und Löschen
■
Aufwand beim Einfügen, Suchen und Löschen im
B-Baum immer O(logm (n)) Operationen
Einfügen des Elementes 22; Löschen von 22
■
entspricht genau der „Höhe“ des Baumes
■
Konkret: Seiten der Größe 4 KB, Zugriffsattributwert 32
Bytes, 8-Byte-Zeiger: zwischen 50 und 100
Indexeinträge pro Seite; Ordnung dieses B-Baumes 50
■
1.000.000 Datensätze: log 50 (1.000.000) = 4
Seitenzugriffe im schlechtesten Fall
■
Wurzelseite jedes B-Baumes normalerweise im Puffer:
drei Seitenzugriffe
20
7
10 15 18
26 30 35 40
20 30
7
10 15 18
22 26
35 40
VL Datenbanken I – 14–65
B-Baum und B+-Baum im Vergleich
B+-Baum
■
■
■
VL Datenbanken I – 14–66
in der Praxis am häufigsten eingesetzte Variante des
B-Baumes: effizientere Änderungsoperationen,
Verringerung der Baumhöhe
25
10
integriert Datensätze der Hauptdatei auf den Blattseiten
des Baumes
7
in inneren Knoten nur noch Zugriffsattributwert und
Zeiger auf nachfolgenden Seite der nächsten Stufe
7 Meyer
20
30
40
9
Indexdatei
Hauptdatei
30 Müller
25
10
20
30
40
Indexdatei
Hauptdatei
7 Meyer
VL Datenbanken I – 14–67
...
25 Anton
30 Müller
VL Datenbanken I – 14–68
Oracle: Speicherarchitektur
Indexdefinition in SQL
create [unique] index indexname
on basisrelationenname (
spaltenname_1 ordnung_1,
...,
spaltenname_k ordnung_k
)
Datenbank
Tablespace I
Platte A
Daten-File 1
Table R
Daten-Seg. r
Daten-File 2
Index R1
Index-Seg. i1
DB-Bl. 1
Index R2
Index-Seg.i2
Basis
Extent
Datens.517
DB-Bl. 2
Datens.389
Table S
Daten-Seg. s
Extent 1
DB-Bl. 3
Datens.782
Index S1
Index-Seg. s1
Extent2
Daten-File 3
Tablespace J
Platte B
Daten-File n
Datens.032
Tablespace K
Block
Physische
Datenbankstrukturen
Logische
Datenbankstrukturen
VL Datenbanken I – 14–69
Oracle: Blöcke
Oracle: Datensätze
DB-Block
Kopf
VL Datenbanken I – 14–70
Kopf
Blockinformationen
Tabellen-Verzeichnis
Spalte1
Spalte 2
Spalte 3
fest = 24 Byte
fest = 4 Byte für nicht geclusterte Tabellen
Freibereich
Datensatz-Verzeichnis
variabel - wächst mit Anzahl der Tupel
Datenbereich
Kopf
Anzahl
der Spalten
ClusterSchlüssel
optional
VL Datenbanken I – 14–71
Spaltenlänge
Daten
KettAdresse
optional
VL Datenbanken I – 14–72
Oracle: Datenorganisation
Oracle: Systemarchitektur
■
Der Standard-Index ist als B + -Baum aufgebaut
■
Indexorganisierte Tabellen speichern Tupel direkt in den
Blättern eines B + -Baums
■
Clusterung mehrerer Relationen möglich; Cluster-Indexe
können als B + -Baum oder als Hash-Index organisiert
werden.
■
■
Bitmap-Indexe speichern Bit-Matrizen für
Aufzählungsattribute (siehe Data Warehouses)
Reverse Indexe interpretieren die Bytes des
Primärschlüssels in umgekehrter Reihenfolge und
brechen damit die Speicherung in Sortierreihenfolge auf
ClientProzesse
ServerProzesse
System Global Area
SystemProzesse
Oracle-Instanz
Datenbank
VL Datenbanken I – 14–73
Oracle: Systemarchitektur (II)
Oracle: Prozesse
■ DBWR (Database Writer): Pufferverwaltung
LCKn
System Global Area
■ LGWR (Log Writer): Redo-Log-Verwaltung (Transaktionslog)
RECO
DatenbankPuffer
VL Datenbanken I – 14–74
Redo-LogPuffer
■ CKPT (Checkpointer): Sicherungspunkte (Recovery)
PMON
■ SMON (System Monitor): Starten der Oracle-Instanz,
Freispeicherverwaltung, Defragmentierung
SMON
■ PMON (Process Monitor): Überwachung aller Prozesse
■ ARCH (Archiver): Archivierung von Redo-Log-Files
CKPT
NutzerProzess
ServerProzess
■ RECO (Recoverer): Recovery verteilter Transaktionen
DBWR
LGWR
ARCH
■ LCKn (Lock): Sperrverwaltung bei parallelen DBS
■ SBPn (Snapshot): Snapshot-Aktualisierung bei verteilten DBS
Daten-File
Redo-LogFile
■ Snnn (Server): Abarbeitung von Anfragen
Control-File
■ Dnnn (Dispatcher): Dispatching bei mehreren
Anwenderprozessen pro Serverprozess
VL Datenbanken I – 14–75
VL Datenbanken I – 14–76
Herunterladen