7. E/A-‐Architektur und Zugriff

Werbung
7. E/A-­‐Architektur und Zugriff Vorlesung "Informa>onssysteme" Sommersemester 2015 Gliederung §  E/A-­‐Architektur von Informa>onssystemen §  Einsatz einer Speicherhierarchie •  AuIauprinzip •  VerarbeitungseigenschaKen •  Prognosen §  Datenstrukturen auf Externspeichern •  sequen>elle und gekePete Listen •  Mehrwegbäume §  B-­‐Bäume und B+-­‐Bäume •  Defini>onen, Grundopera>onen, Kosten •  ÜberlauIehandlung •  Schlüsselkomprimierung §  Informa>onssuche bei strukturierten Daten §  AuIau des DB-­‐Servers •  Aufgaben und Anforderungen •  Modellierung/Realisierung durch Schichtenmodelle Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 2 E/A-­‐Architektur von IS §  Bisherige Annahmen •  Datenstrukturen wie Felder, Listen, Bäume, Graphen, ... -  lokale Speicherung und direkter Zugriff auf alle Elemente -  hohe Zugriffsgeschwindigkeit •  ausschließlich im Hauptspeicher (HSP als DRAM) verfügbar, d. h. Bestand nur für die Dauer einer Programmausführung („transiente“ Daten – nur für ein Programm) §  Hier nun neue Aspekte •  Nutzung von Externspeichern und neuen Opera>onen •  Datenstrukturen werden gespeichert und verwaltet -  verteilt und dezentral -  auf verschiedenen Speichertypen (MagnetplaPe (MP), Flash-­‐Speicher (Solid State Disk, SSD), Magnetband, DVD, op>sche Speicher, ...) -  in verschiedenen Rechensystemen -  im Web Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 3 E/A-­‐Architektur von IS (2) §  Neue Aspekte (Forts.) •  andere Arten des Zugriffs: Lese-­‐ und Schreibopera>onen, in vorgegebenen Einheiten von Blöcken und Sätzen ➭ Strukturen und zugehörige Algorithmen (Suchen, Sor>eren), die im HSP op>mal sind, sind es auf Sekundärspeicher nicht unbedingt! •  gezielter, wertabhängiger Zugriff auch auf sehr große Datenmengen •  umfangreiche APributwerte (z. B. Bilder, Texte) •  Persistenz: Werte bleiben über Programmende, Sitzungsende, Aus-­‐ und Einschalten des Rechners, ... hinaus erhalten •  Energieeffizienz (Green Compu>ng in DBS): Energieverbrauch für Lesen und Schreiben, für Idle-­‐Zustand im Betrieb Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 4 Problemstellung §  Langfris>ge Speicherung und Organisa>on der Daten im Hauptspeicher? •  Speicher ist (noch) flüch>g! (➭ Persistenz) •  Speicher ist (noch) zu teuer und zu klein •  Kostenverhältnis MP : DRAM (➭ Kosteneffek>vität) §  Mindestens zweistufige Organisa>on der Daten erforderlich •  langfris>ge Speicherung auf großen, billigen und nicht-­‐
flüch>gen Speichern (Externspeicher) •  Verarbeitung erfordert Transport zum/vom Hauptspeicher •  vorgegebenes Transportgranulat: Seite ➭  Wie sieht die bestmögliche Lösung aus? Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 5 Zugriffswege bei einer zweistufigen Speicherhierarchie §  Vereinfachte E/A-­‐Architektur: •  Modell für Externspeicheranbindung •  Vor Bearbeitung sind die Seiten in den DB-­‐Puffer zu kopieren •  Geänderte Seiten müssen zurückgeschrieben werden P1
P4
Betriebssystem
Steuereinheit
Dateipuffer
Kanal
DB-Puffer im HSP
.
.
.
P1
P2
P2
P3
DBMS
Zugriffslücke
>2*105
Faktor 100 - 1000
Informa>onssysteme 2015 P4
P5
P5
Magnetplattenspeicher
ca. 10 ms
P3
Hauptspeicher
< 50 ns
Faktor 100
Kapitel 7: E/A-­‐Architektur und Zugriff 6 Annäherung an idealen Speicher Kosten
§  Ziel (ideale EigenschaKen): billig à langsam, groß
•  Groß •  Billig Kapazität
Zugriff
groß à langsam, billig
schnell à klein, teuer
•  Schnell §  Realer Speicher sollte diese EigenschaKen näherungsweise bieten! •  Einsatz verschiedener Speichertypen (mit großen Unterschieden bei Kapazität, Zugriffszeit, Bandbreite, Preis, Flüch>gkeit, ...) •  Organisa>on als Speicherhierarchie •  Nutzung von LokalitätseigenschaKen -  Alloka>on von Daten mit hoher Zugriffswahrscheinlichkeit in schnelle (rela>v kleine) Speicher -  Größter Teil der Daten verbleibt auf langsameren, kostengüns>geren Speichern ➭  Speicherhierarchie versucht kosteneffek>ve Annäherung an idealen Speicher durch reale Speichermedien zu erreichen! §  Rekursives Prinzip •  Kleinere, schnellere und teurere Cache-­‐Speicher werden benutzt, um Daten zwischenzuspeichern, die sich in größeren, langsameren und billigeren Speichern befinden Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 7 Speicherhierarchie (2) Register
aktuelle Daten
Cache Hauptspeicher •  elektronischer Speicher Zugriffslücke
Externer Speicher (Online) •  blockadressierbar •  nicht-­‐flüch>g •  elektronisch oder magne>sch Archivspeicher (Nearline) •  automa>sches Laden von PlaPen oder Bändern Archivspeicher (Offline) Speicherkapazität
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 8 Charakteris>sche Merkmale Ebene Kapazität Zugriffs-­‐ zeit Transfer: Kontrolle Transfer: Einheit 6 Register Bytes 1-­‐5 ns Programm/ Compiler 1-­‐8 Bytes 5 Cache K -­‐ M Bytes 2-­‐20 ns Cache-­‐
Controller 8-­‐128 Bytes 4 Hauptspeicher M-­‐ G Bytes 50-­‐100 ns Betriebs-­‐
system 1-­‐16 KBytes Zugriffslücke
3 PlaPenspeicher G – T Bytes ms Benutzer/ Operator MBytes (Dateien) 2 Bandspeicher T Bytes sec Benutzer/ Operator MBytes (Dateien) 1 Archivspeicher T – P Bytes sec-­‐min Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 9 Rela>ve Zugriffszeiten in einer Speicherhierarchie §  Wie weit sind die Daten enxernt? §  Welche Konsequenzen ergeben sich daraus? •  Caching •  Replika>on •  Prefetching Was bedeutet das in Speicherhierarchie „unseren Dimensionen“? Speichertyp Rel. Zugriffszeit Zugriffszeit Register 1 mein Kopf 1 min
Cache (on chip) 2 dieser Raum 2 min
Cache (on board) 10 dieses Gebäude 10 min
Hauptspeicher 100 MagnetplaPe 106–107 Magnetband/
Opt. Speicher (automat. Laden) Informa>onssysteme 2015 Zugriffsort Frankfurt (mit Auto) Pluto (5910 * 106 km) 100 min
> 2 Jahre
109–1010 Kapitel 7: E/A-­‐Architektur und Zugriff Andromeda > 2000 Jahre
10 InklusionseigenschaKen §  Aufgaben auf jeder Ebene •  Lokalisieren von Datenelementen •  Alloka>on von Speicherplatz •  Ersetzung von Objekten •  Realisierung der Schreibstrategie §  Read-­‐through: •  Daten werden bedarfsgetrieben im schichtenspezifischen Granulat schichtweise „nach oben“ bewegt •  Erfordert Ersetzung/Verdrängung von Objekten -  Strategien: LRU, FIFO, Clock, ... §  InklusionseigenschaK •  Für Datum auf Ebene Ei ist auch immer ein (mglw. veraltete) Kopie auf allen darunter liegenden Ebenen Ej mit j<i vorhanden •  Muss von Ersetzungsstrategie berücksich>gt werden! Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff Ausführungsort
?
E5
?
E4
?
E3
11 Inklusion beim Schreiben §  InklusionseigenschaK •  Für Datum auf Ebene Ei ist auch immer ein (mglw. veraltete) Kopie auf allen darunter liegenden Ebenen Ej mit j<i vorhanden •  Vorteil beim Rückschreiben: wird einfach, betri| immer nur Ei-­‐1 , da (altes) Datum auf der nächs}eferen Schicht vorhanden ist und nicht angefordert werden muss, dadurch keine weiteren Verdrängungen §  Write-­‐through: •  Sofort nach der Änderung wird das Datum auch in der nächs}eferen Schicht geändert (FORCE) §  Write-­‐back: •  Erst bei einer Ersetzung werden die geänderten Daten schichtweise „nach unten“ geschoben (NOFORCE) §  Wahl des Verfahrens kann schichtenspezifisch sein Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff Ausführungsort
E5
E4
E3
12 Zugriffsverfahren Inhaltliche
Kriterien
Zugriffsverfahren über Schlüssel
Sequentielle
Speicherungsstrukturen
Sequentielle
Listen
Gekettete
Listen
physisch
logisch
fortlaufender
Baumstrukturen
Mehrwegbäume
Statische
Hash-Bereiche
Dynamische
Hash-Bereiche
baumstrukturierter
konstante
dynamische
Schlüsselvergleich
Informa>onssysteme 2015 Gestreute
Speicherungsstrukturen
Schlüsseltransformation
Kapitel 7: E/A-­‐Architektur und Zugriff 13 Sequen>elle Listen auf Externspeichern Satz
Seite
K1, ...
K8, ...
K3, ...
K9, ...
K4, ...
K11, ...
K6, ...
K12, ...
K17, ...
...
K97, ...
...
K98, ...
...
§  Prinzip: Zusammenhang der Satzmenge wird durch physische NachbarschaK hergestellt •  Reihenfolge der Sätze: ungeordnet (Einfügereihenfolge) oder sor>ert nach einem oder mehreren APributen (sog. Schlüssel) •  wich>ge EigenschaK: Cluster-­‐Bildung, d. h., physisch benachbarte Speicherung von logisch zusammengehörigen Sätzen •  Ist physische NachbarschaK aller Seiten der Liste sinnvoll? •  Sequen>elle Listen garan>eren Cluster-­‐Bildung in Seiten für die Schlüssel-­‐/Speicherungsreihenfolge •  Cluster-­‐Bildung kann pro Satztyp nur bezüglich eines Kriteriums erfolgen; sonst wird Redundanz eingeführt! Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 14 Sequen>elle Listen -­‐ Kosten §  Zugriffskosten (NS = Anzahl physischer Seitenzugriffe) •  Sequen>eller Zugriff auf alle Datensätze eines Typs: bei n Sätzen und miPlerem Blockungsfaktor b (#Sätze pro Seite) -  NS = n/b §  Sor>erte Listen: •  Zugriff über eindeu>gen Schlüssel kostet im MiPel -  NS = n/2b •  Bei fortlaufender Seitenzuordnung Binärsuche anwendbar: -  NS = log2(n/b) §  Ungeordnete Listen: •  Wieviele Seitenzugriffe benö>gt der direkte Zugriff? -  NS = n/2b §  Änderungen in sor>erten Listen sind sehr teuer: •  Einfügen von K7? •  Änderungsdienst: K1, ...
K3, ...
Verschiebekosten im MiPel: -  Ns= n/2b * 2 -  (Faktor 2: Lesen + Rückschreiben) Informa>onssysteme 2015 K8, ...
K17, ...
K9, ...
K4, ...
K11, ...
K6, ...
K12, ...
Kapitel 7: E/A-­‐Architektur und Zugriff ...
K97, ...
...
K98, ...
...
15 Sequen>elle Listen -­‐ Spli}ng §  Deshalb Einsatz einer Split-­‐Technik (Spli}ng): Pk
Pm
K1, ...
K8, ...
K17, ...
K3, ...
K9, ...
K4, ...
K11, ...
...
K6, ...
K12, ...
Pk
Pn
K7, ...
K11, ...
K8, ...
K12, ...
...
...
K9, ...
...
NS = 3 * 2 (Änderung auf max. 3 Seiten beschränkt!) ➭  aber Suche der Posi>on der durchzuführenden Änderung §  Welche EigenschaKen der seq. Liste gehen verloren? •  physische SeitennachbarschaK (à erhöhter Suchaufwand) •  max. Belegungsgrad Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 16 GekePete Listen auf Externspeichern §  Prinzip: VerkePung erfolgt zwischen Datensätzen •  Speicherung der Sätze i. Allg. in verschiedenen Seiten •  Seiten können beliebig zugeordnet werden K1, ...
K3, ...
K4, ...
K8, ...
K6, ...
➭  im Allgemeinen keine Cluster-­‐Bildung Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 17 GekePete Listen -­‐ Kosten §  Zugriffskosten •  sequen>eller Zugriff auf alle Sätze: -  NS = n •  direkte Suche (= fortlaufende Suche) bei VerkePung in Sor>erreihenfolge: -  NS = n/2 •  Einfügen rela>v billig, wenn Einfügeposi>on bekannt -  NS ≤ 2 * 2 §  MehrfachverkePung nach verschiedenen Kriterien (Schlüsseln) möglich è Zu hohe Zugriffskosten, für DBS nicht geeignet! Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 18 Mehrwegbäume -­‐ Mo>va>on §  Binäre Suchbäume (SB) sind bekannt •  natürlicher binärer SB •  AVL-­‐Baum (höhenbalanciert) •  gewichtsbalancierter SB §  Bei Abbildung auf Externspeicher ist die Höhe des SB entscheidend! •  Höhe hb von binären SB mit n Knoten !"log 2 (n +1)#$ ≤ hb ≤ n
-  Beispiel: n = 106 à hb ≈ 20; worst case: 200ms Zugriffszeit h
n = ∑ 2i = 2h+1 −1
i=0
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 19 Mehrwegbäume (2) §  Ziel: AuIau sehr breiter Bäume von geringer Höhe •  in Bezug auf Knotenstruktur vollständig ausgeglichen •  effiziente Durchführung der Grundopera>onen •  Zugriffsverhalten ist weitgehend unabhängig von Anzahl der Sätze è Einsatz als Zugriffs-­‐ oder Indexstruktur für 10 als auch für 108 Sätze §  Bezugsgröße bei Mehrwegbäumen: Seite = Transporteinheit zum Externspeicher •  Unterteilung eines großen binären Suchbaumes in Seiten: è Beachte: Seiten werden immer größer! Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 20 Mehrwegbäume (3) §  Vorfahr (1965): ISAM (sta>sch, periodische Reorganisa>on) §  Weiterentwicklung: B-­‐ und B+-­‐Baum •  B-­‐Baum: 1970 von R. Bayer und E. McCreight entwickelt •  treffende Charakterisierung: “The Ubiquitous B-­‐Tree” * ➭  dynamische Reorganisa>on durch Spli}ng und Mischen von Seiten §  Grundopera>onen: •  Einfügen eines Satzes •  Löschen eines Satzes •  direkter Schlüsselzugriff auf einen Satz •  sor>ert sequen>eller Zugriff auf alle Sätze oder auf Satzbereiche (*) D. Comer: The Ubiquitous B-Tree. ACM Computing Surveys 11(2), 1979
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 21 Mehrwegbäume (4) §  Höhe von M-­‐Wege-­‐Suchbäumen: hB = O(logM n) §  Balancierte Struktur: •  unabhängig von Schlüsselmenge •  unabhängig von Einfügereihenfolge §  Breites Spektrum von Anwendungen •  Dateiorganisa>on („logische Zugriffsmethode“, VSAM) •  Datenbanksysteme (Varianten des B+-­‐Baumes sind in allen DBS zu finden!) •  Text-­‐ und Dokumentenorganisa>on •  Suchmaschinen im Web, ... Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 22 B-­‐Bäume §  Defini>on: Seien k, h ganze Zahlen, h ≥ 0, k > 0. Ein B-­‐Baum B der Klasse τ(k, h) ist entweder ein leerer Baum oder ein geordneter Suchbaum mit folgenden EigenschaKen: 1.  Jeder Pfad von der Wurzel zu einem BlaP hat die gleiche Länge h-­‐1. 2.  Jeder Knoten mit der Ausnahme der Wurzel hat mindestens k und höchstens 2k Einträge. Die Wurzel hat zwischen einem und 2k Einträgen. Die Einträge werden in den Knoten sor>ert gehalten. 3.  Jeder Knoten mit n Einträgen, außer den BläPern, hat mindestens n+1 Kinder. 4.  Seien S1, ..., Sn die Schlüssel eines Knotens mit n+1 Kindern. V0, ... Vn seien die Verweise auf die Kinder. Dann gilt: a) 
b) 
c) 
d) 
V0 verweist auf den Teilbaum mit Schlüsseln kleiner als S1. Vi (0 < i < n) weist auf den Teilbaum mit Schlüsseln zwischen Si und Si+1. Vn verweist auf den Teilbaum mit Schlüsseln größer als Sn. In den BlaPknoten sind die Verweise nicht definiert. Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 23 B-­‐Bäume (2) §  EigenschaKen, die sich aus der Defini>on ergeben •  Der Baum ist, was die Knotenstruktur angeht, vollständig ausgeglichen. •  Jeder Knoten (außer der Wurzel) ist mindestens zur HälKe gefüllt. §  Bemerkungen •  Die Einhaltung der obigen EigenschaKen wird durch Strukturveränderungen wie AuKeilen/Mischen von Knoten und Ausgleich von Inhalten beim Einfügen und Löschen von Einträgen garan>ert. •  Die Defini>on charakterisiert B-­‐Bäume mit geg. Grad k und geg. Höhe h. Im realen Einsatz ist k vorgegeben, aber h ergibt sich aus der Anzahl der enthaltenen Einträge und der durchgeführten Strukturveränderungen! Bei einem Baum der Klasse τ (k, h) mit n Schlüsseln gilt für seine Höhe: log2k+1(n+1) ≤ h ≤ logk+1((n+1)/2) + 1 für n ≥ 1 -  mit 2k+1 = 100, n = 106: Höhe h ≥ 3 Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 24 B-­‐Bäume – Beispiel und EigenschaKen §  B-­‐Baum der Klasse τ(2, 3) • 12 •
• 4 • 9 •
• 16 • 19 •
• 1 • 2 • 3 •
• 10 • 11 •
• 13 • 14 • 15 •
• 20 • 21 • 22 • 23 •
• 5 • 6 • 7 • 8 •
• 17 • 18 •
•  In jedem Knoten stehen die Schlüssel in aufsteigender Ordnung mit K1< K2< ... < Kb. •  Jeder Schlüssel hat eine Doppelrolle als Iden>fikator eines Datensatzes und als Wegweiser im Baum -  pi verweist auf Teilbaum mit Schlüsseln > Ki und < Ki+1 -  in den BlaPknoten sind die Verweise undefiniert •  Alle Schlüssel/Sätze können also sor>ert aufgesucht werden •  Die Klassen τ (k, h) sind nicht alle disjunkt. Beispielsweise ist ein Baum aus τ(2, 3) mit maximaler Belegung ebenso in τ (3, 3) und τ (4, 3). Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 25 B-­‐Bäume -­‐ Knotenformat §  Für einen B-­‐Baum ergibt sich folgendes Knotenformat: L
b
K
D
K
D
...
K
D
freier Platz
P
P
P
P
P
§  Einträge (bei Knoten-­‐ oder Seitengröße L) •  Die Felder für #Einträge (b), Schlüssel (Ki), Daten (Di) und Zeiger haben die festen Längen lb, lK, lD und lp. " L − lb − l p $
•  Maximale Anzahl von Einträgen pro Knoten: bmax = "
$ = 2k
l
+
l
+
l
# K D p%
§  Was sind typische Größen in B-­‐Bäumen? •  (in Byte:) L = 8192, lb = 2, lP = 4, lK = 8, lD = 88 1
1
0
2
1
2
b
2
b-1
b
b
à k = 40 •  Bei ausgelagerten Daten: lD = 4 (Verweis auf Datenseite) à k = 255 Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 26 B-­‐Bäume -­‐ Einfügen §  Einfügen in B-­‐Bäumen: Wurzel läuK über K2k+1
K1
K2
...
K2k
§  Fundamentale Opera>on: Split-­‐Vorgang •  Anforderung einer neuen Seite und •  AuKeilung der Schlüsselmenge nach folgendem Prinzip K
Kk+1
...
Kk
Kk+2
...
K2k+1
1
•  Der miPlere Schlüssel (Median) und der Verweis auf die neue Seite werden zum Vaterknoten gereicht. •  Ggf. muss ein Vaterknoten angelegt werden (Anforderung einer neuen Seite). Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 27 B-­‐Bäume – Einfügen (2) §  Einfügen in B-­‐Bäumen (Forts.) Hier wird eine neue Wurzel angelegt. Kk+1
K1
...
Kk
Kk+2
...
K2k+1
Sobald ein BlaP überläuK, wird ein Split-­‐Vorgang erzwungen, was eine Einfügung in den Vaterknoten impliziert. Wenn dieser überläuK, muss ein Split-­‐Vorgang ausgeführt werden. Betri| der Split-­‐Vorgang (wie hier) die Wurzel, so wird das Anlegen einer neuen Wurzel erzwungen. Dadurch vergrößert sich die Höhe des Baumes um 1. ➭  Bei B-­‐Bäumen ist das Wachstum von den BläPern zur Wurzel hin gerichtet Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 28 B-­‐Bäume – Einfügebeispiel §  Wurzel (= BlaP) 100
200
400
500
700
800
➭  Einfügen von 600 erzeugt Überlauf §  NeuauKeilung von W 100
200
400
500
600
700
800
§  B-­‐Baum nach Split-­‐Vorgang 500
100
Informa>onssysteme 2015 200
400
600
700
800
Kapitel 7: E/A-­‐Architektur und Zugriff 29 B-­‐Bäume -­‐ Einfügealgorithmus §  ErmiPle BlaPknoten •  Suche nach dem Knoten Pn, in dem das neue Element gespeichert werden soll (immer ein BlaP) •  Füge neues Element Kj in den ermiPelten Knoten Pn ein -  ElementEinfügen(Pn, Kj, ∅) §  ElementEinfügen(P, K, V) •  Suche Einfügeposi>on für K in P •  Wenn Platz vorhanden ist, speichere Element K und V, sonst schaffe Platz durch Split-­‐Vorgang und füge ein. -  Fordere neue Seite (P‘) an -  ErmiPle Median Kk+1 für 2k+1 Schlüsseleinträge (inkl. Kj) -  Speichere Elemente mit K < Kk+1 in P, K > Kk+1 in P‘ -  Füge Kk+1 und Verweis auf P‘ in die Vaterseite ein, falls diese vorhanden ist: ElementEinfügen(Vater(P), Kk+1, V(P‘)) -  Ansonsten: neue Wurzelseite mit V(P), Kk+1, V(P‘) ➭  Split-­‐Vorgang als allgemeines Wartungsprinzip Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 30 B-­‐Bäume – Allgemeiner Splitvorgang ...
Kn
Kn+1
...
Pn+1
Pn
K1
P0
...
P1
Kk
Pk-1
...
Kk+1
Pk
Kn
...
K2k
Pk+1
Kk+1
K2k+1
P2k
Kn+1
P2k+1
...
Pn+1
Pn
P‘
K1
P0
Informa>onssysteme 2015 ...
P1
Kk
Pk-1
Kk+2
Pk
Pk+1
...
Pk+2
K2k+1
P2k+1
Kapitel 7: E/A-­‐Architektur und Zugriff 31 B-­‐Bäume – Split-­‐Beispiel §  Split-­‐Vorgang – rekursives Schema 100 200
110 150 170 190
P
➭  Einfügen von 130 mit P130 §  NeuauKeilung 110
des kri>schen Knotens §  BaumausschniP nach Split-­‐Vorgang 150
130
P130
150
170
190
P150
100 150 200
110 130
P130
Informa>onssysteme 2015 170 190
P150
Kapitel 7: E/A-­‐Architektur und Zugriff 32 AuIau eines B-­‐Baumes der Klasse τ(2, h) Einfügereihenfolge: 77
77 12
12 48
48 69
69 33
33 89
89 95
95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 33 AuIau eines B-­‐Baumes der Klasse τ(2, h) (1) Einfügereihenfolge: 77
77 12
12 48
48 69
69 33
33 89
89 95
95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
77
12
Informa>onssysteme 2015 77
48
77
69
77
Kapitel 7: E/A-­‐Architektur und Zugriff 34 AuIau eines B-­‐Baumes der Klasse τ(2, h) (1) Einfügereihenfolge: 77 12 48 69 33
33 89
89 95
95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
77
12
Informa>onssysteme 2015 77
48
77
69
77
Kapitel 7: E/A-­‐Architektur und Zugriff 35 AuIau eines B-­‐Baumes der Klasse τ(2, h) (2) Einfügereihenfolge: 77 12 48 69 33
33 89
89 95
95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informa>onssysteme 2015 33
12
48
33
69
48
48
7769 7777
69
89
95
Kapitel 7: E/A-­‐Architektur und Zugriff 36 AuIau eines B-­‐Baumes der Klasse τ(2, h) (2) Einfügereihenfolge: 77 12 48 69 33 89 95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informa>onssysteme 2015 33
69 7777
89
95
Kapitel 7: E/A-­‐Architektur und Zugriff 37 AuIau eines B-­‐Baumes der Klasse τ(2, h) (3) Einfügereihenfolge: 77 12 48 69 33 89 95 90
90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informa>onssysteme 2015 33
89
69 7777
89
89
95
90
95
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
38 AuIau eines B-­‐Baumes der Klasse τ(2, h) (3) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informa>onssysteme 2015 33
89
69
77
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
39 AuIau eines B-­‐Baumes der Klasse τ(2, h) (4) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37
37 45
45 83
83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informa>onssysteme 2015 33
37
45
89
69
77
83
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
40 AuIau eines B-­‐Baumes der Klasse τ(2, h) (4) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15
15 87
87 97
97 98
98 99
99 50
50
48
12
Informa>onssysteme 2015 33
37
45
89
69
77
83
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
41 AuIau eines B-­‐Baumes der Klasse τ(2, h) (5) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15
15 87
87 97
97 98
98 99
99 50
50
33
2
12
Informa>onssysteme 2015 33
12 37
33 45
37
45
48
89
69
77
83
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
42 AuIau eines B-­‐Baumes der Klasse τ(2, h) (5) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15
15 87
87 97
97 98
98 99
99 50
50
33
2
12
Informa>onssysteme 2015 37
45
48
89
69
77
83
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
43 AuIau eines B-­‐Baumes der Klasse τ(2, h) (6) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15
15 87
87 97
97 98
98 99
99 50
50
33
2
12
Informa>onssysteme 2015 15
37
45
48
89
69
77
83
87
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
97
98
44 AuIau eines B-­‐Baumes der Klasse τ(2, h) (6) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99
99 50
50
33
2
12
Informa>onssysteme 2015 15
37
45
48
89
69
77
83
87
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
97
98
45 AuIau eines B-­‐Baumes der Klasse τ(2, h) (7) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99
99 50
50
33
48
89
97
98
2
12
Informa>onssysteme 2015 15
37
45
69
77
83
87
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
97
97
99
98
46 AuIau eines B-­‐Baumes der Klasse τ(2, h) (7) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
50
33
48
89
97
98
2
12
Informa>onssysteme 2015 15
37
45
69
77
83
87
Kapitel 7: E/A-­‐Architektur und Zugriff 90
95
97
99
98
47 AuIau eines B-­‐Baumes der Klasse τ(2, h) (8) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
50
33
48
89
77
97
89
97
83
2
12
Informa>onssysteme 2015 15
37
45
69
50
77
77
69
83
87
87
Kapitel 7: E/A-­‐Architektur und Zugriff 98
90
95
97
99
98
48 AuIau eines B-­‐Baumes der Klasse τ(2, h) (8) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
33
48
89
77
97
89
97
83
2
12
Informa>onssysteme 2015 15
37
45
69
50
77
69
83
87
87
Kapitel 7: E/A-­‐Architektur und Zugriff 98
90
95
97
99
98
49 AuIau eines B-­‐Baumes der Klasse τ(2, h) (9) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
77
33
48
77
77
89
97
89
97
83
2
12
Informa>onssysteme 2015 15
37
45
69
50
77
69
83
87
87
Kapitel 7: E/A-­‐Architektur und Zugriff 98
90
95
97
99
98
50 AuIau eines B-­‐Baumes der Klasse τ(2, h) (9) Einfügereihenfolge: 77 12 48 69 33 89 95 90 37 45 83 2 15 87 97 98 99 50
77
33
48
77
89
89
97
83
2
12
Informa>onssysteme 2015 15
37
45
69
50
77
69
83
87
87
Kapitel 7: E/A-­‐Architektur und Zugriff 98
90
95
97
99
98
51 B-­‐Bäume -­‐ Löschen Die B-­‐Baum-­‐EigenschaK muss wiederhergestellt werden, wenn die Anzahl der Elemente in einem Knoten kleiner als k wird. Durch Ausgleich mit Elementen aus einer Nachbarseite oder durch Mischen (Konkatena>on) mit einer Nachbarseite wird dieses Problem gelöst. (1) Maßnahme: Ausgleich durch Verschieben von Schlüsseln Beim Ausgleichsvorgang sind in der Seite P k–1 Elemente und in P’ mehr als k Elemente. ...
K
K‘
K
...
n-1
P‘
Kn-1
P‘
Kn+1
...
P0‘
...
P1‘
Kb-1‘
Pb-1‘
Kn
Pb‘
K1
P0
... Kk-1
P1
Pk-1
P
K1‘
P0‘
Kn
n+1
P
K1‘
...
b
...
P1‘
Informa>onssysteme 2015 Kb‘
K1
Pb‘
P0
...
P1
Kk-1
Pk-1
Kapitel 7: E/A-­‐Architektur und Zugriff 52 B-­‐Bäume – Löschbeispiele §  Löschprinzip: Ausgleich 100 150 200
110 120 130
160
P
P
➭b1 > k und b2 = k -­‐ 1 §  BaumausschniP nach Ausgleich 130
150
100 130 200
110 120
150 160
P130
Informa>onssysteme 2015 P150
Kapitel 7: E/A-­‐Architektur und Zugriff 53 B-­‐Bäume – Löschen (2) (2) Maßnahme: Mischen von Seiten ...
Kn-1
Kn
Kn+1
P‘
...
P
K1‘
P0‘
...
Kk‘
P1‘
K1
P k‘
...
P0
Kn-1
Kn+1
...
Kk-1
P1
Pk-1
...
P‘
K1‘
P0‘
Informa>onssysteme 2015 ...
P1‘
Kn
Kk‘
P k‘
K1
P0
...
P1
Kk-1
Pk-1
Kapitel 7: E/A-­‐Architektur und Zugriff 54 B-­‐Bäume – Löschbeispiele (2) §  Löschprinzip: Mischen 100 150 200
110 120
160
P
P
§  BaumausschniP nach Mischen 150
120
100 200
110 120 150 160
P120 P150
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 55 B-­‐Bäume -­‐ Löschalgorithmus 1.  Löschen in BlaPseite •  Suche x in Seite P •  Enxerne x in P und wenn a)  b ≥ k in P: tue nichts b)  b = k–1 in P und b > k in P’: gleiche Unterlauf über P’ aus c)  b = k–1 in P und b = k in P’: mische P und P’. 2.  Löschen in innerer Seite •  Suche x •  Ersetze x = Ki durch kleinsten Schlüssel y in B(Pi) oder größten Schlüssel y in B(Pi-­‐1) (nächstgrößerer oder nächstkleinerer Schlüssel im Baum) •  Enxerne y im BlaP P •  Behandle P wie unter (1) Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 56 B-­‐Bäume – Löschbeispiele (3) 11
1
3
9
15
17
19
18
21
X
25
19
25
19
25
Lösche 21:
(Ausgleich)
X11
1
3
9
15
18
17
Lösche 11:
(innerer Knoten)
15
1
3
9
18
17
Mischen:
15
1
Informa>onssysteme 2015 3
9
17
18
X
19
25
Kapitel 7: E/A-­‐Architektur und Zugriff X
57 B-­‐Bäume -­‐ Kostenbetrachtung §  Kostenanalyse •  Anzahl der zu holenden Seiten: f (fetch) •  Anzahl der zu schreibenden Seiten: w (write) §  Suchen •  fmax = h; favg ≈ fmax §  Einfügen •  fmax = h; favg = fmax •  wmax= 2h + 1 (Split für alle Seiten im Pfad + neue Wurzel) •  wavg< 1 + 2/k (Split mit Wahrscheinlichkeit k) §  Löschen •  fmax= 2h -­‐ 1; wmax= h + 1 (auf allen Ebenen Mischen, bei der Wurzel Ausgleichen) •  favg < h + 1 + 1/k; wavg < 4 + 1/k T. Härder: Mehrwegbäume
(auf der VL-Webseite zu finden)
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 58 B-­‐Bäume – ÜberlauIehandlung §  Verbesserung des Belegungsgrades •  verallgemeinerte ÜberlauIehandlung •  Split-­‐Faktor m > 1 è Verbesserte Speicherplatzbelegung, dafür höhere Einfügekosten Pi
Pi
m=1
Pi
Pi+1
Pi
Pk
Pi+1
Pi-1
Pi
Pi+1
m=2
m=3
1
Pi-1
Informa>onssysteme 2015 Pk
Kapitel 7: E/A-­‐Architektur und Zugriff Pi
2
Pk
Pi+1
59 B-­‐Bäume – Beispiel mit m = 2 5
1
4
7
15
9
11
12
16
17
11
15
16
Einfüge 8:
(jetzt Ausgleichen)
5
1
4
7
12
8
9
Einfüge 10:
(Ausgleich)
17
2 Seiten auf 3
verteilen
5
1
4
7
11
8
9
10
12
15
16
17
Einfüge 6:
5
1
Informa>onssysteme 2015 4
6
7
8
9
15
10
11
Kapitel 7: E/A-­‐Architektur und Zugriff 12
16
17
60 B-­‐Bäume – Belegungsgrad §  Welcher Belegungsgrad β des B-­‐Baums wird erzielt •  bei einfacher ÜberlauIehandlung (Split-­‐Faktor m = 1)? •  beim Einfügen einer sor>erten Schlüsselfolge? §  Speicherplatzbelegung als Funk>on des Split-­‐Faktors Belegung Split-­‐Faktor βmin βavg βmax 1 1/2 = 50% ln2 ≈ 69% 1 2 2/3 = 66% 2 × ln(3/2) ≈ 81% 1 3 3/4 = 75% 3 × ln(4/3) ≈ 86% 1 m m/(m+1) m × ln((m+1)/m) 1 Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 61 B+-­‐Bäume im Vergleich zu B-­‐Bäumen In B-­‐Bäumen spielen die Einträge (Ki, Di, Pi) in den inneren Knoten zwei ganz verschiedene Rollen: •  Die zum Schlüssel Ki gehörenden Daten Di werden gespeichert. •  Der Schlüssel Ki dient als Wegweiser im Baum. Für diese zweite Rolle ist Di vollkommen bedeutungslos. In B+-­‐Bäumen wird in inneren Knoten nur die Wegweiser-­‐Funk>on ausgenutzt, d. h., es sind nur (Ki, Pi) als Einträge zu führen. Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 62 B+-­‐Bäume im Vergleich zu B-­‐Bäumen (2) §  Die Informa>on (Ki, Di) wird in den BlaPknoten abgelegt. §  Für einige Ki ergibt sich eine redundante Speicherung. Die inneren Knoten bilden also einen Index (index part), der einen schnellen direkten Zugriff zu den Schlüsseln gestaPet. §  Der Verzweigungsgrad erhöht sich beträchtlich, was wiederum die Höhe des Baumes reduziert. §  Die BläPer enthalten alle Schlüssel mit ihren zugehörigen Daten in Sor>erreihenfolge. Durch VerkePung aller BlaPknoten (sequence set) lässt sich eine effiziente sequen>elle Verarbeitung erreichen, die beim B-­‐Baum einen umständlichen Durchlauf in symmetrischer Ordnung erforderte. ➭  Die für den prak>schen Einsatz wich>gste Variante des B-­‐Baums ist der B+-­‐Baum. Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 63 B+-­‐Bäume -­‐ Defini>on Der so definierte Baum heißt in der Literatur gelegentlich auch B*-Baum.
§  Defini>on: Seien k, k* und h* ganze Zahlen, h* ≥ 0; k, k* > 0. Ein B+-­‐Baum B der Klasse τ(k, k*, h*) ist entweder ein leerer Baum oder ein geordneter Suchbaum, für den gilt: 1.  Jeder Pfad von der Wurzel zu einem BlaP besitzt die gleiche Länge h*–1. 2.  Jeder Knoten -­‐ außer Wurzeln und BläPern -­‐ hat mindestens k und höchstens 2k Einträge. BläPer haben mindestens k* und höchstens 2k* Einträge. Die Wurzel hat entweder maximal 2k Einträge oder sie ist ein BlaP mit maximal 2k* Einträgen. 3.  Jeder Knoten mit n Einträgen, außer den BläPern, hat n+1 Kinder. 4.  Seien R1, ... Rn die Referenzschlüssel eines inneren Knotens (d.h. auch der Wurzel) mit n+1 Kindern. Seien V0, ..., Vn die Verweise auf diese Kinder. Dann gilt: a)  V0 verweist auf den Teilbaum mit Schlüsseln kleiner als R1. b)  Vi (0 < i < n) weist auf den Teilbaum mit Schlüsseln zwischen Ri und Ri+1 (einschließlich Ri). c)  Vn verweist auf den Teilbaum mit Schlüsseln größer oder gleich Rn Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 64 B+-­‐Bäume -­‐ Knotenformate §  Unterscheidung von zwei Knotenformaten: •  M: Kennung des Seitentyps + #Einträge; feste Länge L •  innere Knoten (k ≤ b ≤ 2k) L
-  L = lM + lp + 2k(lK + lp) # L − lM − l p %
k =#
%
2
∗
(l
+
l
)
$
K
p &
M
K1
...
P1
P0
freier Platz
Kb
Pb-1
Pb
•  BlaPknoten (k* ≤ m ≤ 2k*) -  L = lM + 2lp + 2k*(lK + lD) k* = # L − lM − 2l p %
#
%
$ 2 ∗ (lK + lD ) &
M
PPRIOR
K1
D1
...
Km
Dm
freier Platz
PNEXT
§  Was sind typische Größen in B+-­‐Bäumen? (in Byte:) L = 8192, lM= 4, lP = 4, lK = 8, lD = 88 Innerer Knoten: k = 341; BlaP: k* = 42 Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 65 B+-­‐Bäume – Beispiel §  B+-­‐Baum der Klasse τ(3, 2, 3) 13
3
1
6
10
16
2
10 11 12
3
4
5
Informa>onssysteme 2015 6
7
8
9
19
21
13 14 15
16 17 18
Kapitel 7: E/A-­‐Architektur und Zugriff 21 22 23
19 20
66 B+-­‐Bäume -­‐ Erklärungsmodell Der B+-­‐Baum lässt sich auffassen als eine gekePete sequen>elle Datei von BläPern, die einen Indexteil besitzt, der selbst ein B-­‐Baum ist. Im Indexteil werden insbesondere beim Split-­‐Vorgang die Opera>onen des B-­‐Baums eingesetzt. Indexteil:
B-Baum von Schlüsseln
13
3
1
6
10
16
2
10 11 12
3
4
5
6
7
8
9
19
21
13 14 15
16 17 18
21 22 23
19 20
sequentielle sortierte
Datei der Blätter
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 67 B+-­‐Bäume -­‐ Grundopera>onen (1) Direkte Suche: Da alle Schlüssel in den BläPern sind, kostet die direkte Suche h* Zugriffe. h* ist jedoch im MiPel kleiner als h in B-­‐Bäumen. Da favg beim B-­‐Baum gut mit h abgeschätzt werden kann, erhält man also durch den B+-­‐Baum eine effizientere Unterstützung der direkten Suche. (2) Sequen>elle Suche: Sie erfolgt nach Aufsuchen des Linksaußen der Struktur unter Ausnutzung der VerkePung der BlaPseiten. Es sind zwar ggf. mehr BläPer als beim B-­‐Baum zu verarbeiten, doch da nur h*–1 innere Knoten aufzusuchen sind, wird die sequen>elle Suche ebenfalls effizienter ablaufen. Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 68 B+-­‐Bäume – Grundopera>onen (2) (3) Einfügen: Es ist von der Durchführung und vom Leistungsverhalten her dem Einfügen in einen B-­‐Baum sehr ähnlich. Bei inneren Knoten wird das Spli}ng analog zum B-­‐Baum durchgeführt. Beim Split-­‐
Vorgang einer BlaPseite muss gewährleistet sein, dass jeweils die niedrigsten Schlüssel einer Seite als Wegweiser in den Vaterknoten kopiert werden. Die Verallgemeinerung des Split-­‐Vorgangs ist analog zum B-­‐Baum. (4) Löschen: Datenelemente werden immer von einem BlaP enxernt (keine komplexe Fallunterscheidung wie beim B-­‐Baum). Weiterhin muss beim Löschen eines Schlüssels aus einem BlaP dieser Schlüssel nicht aus dem Indexteil enxernt werden; er behält seine Funk>on als Wegweiser. Das Mischen von BlaPknoten führt zur Löschung des Wegweisers im Vaterknoten. Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 69 B+-­‐Bäume -­‐ Einfügebeispiel 15
<
1
5
9 12
15 19 28
33
53
71
33 37 41 46
≥
53 59 67 95
71 83 99
Einfügen von 45
45
15
1
5
9 12
Informa>onssysteme 2015 33
15 19 28
53
33 37 41
45 46
71
53 59 67 95
Kapitel 7: E/A-­‐Architektur und Zugriff 71 83 99
70 B+-­‐Bäume – Allgemeiner Splitvorgang ...
K1 D1 ...
K1
Kk* Dk* Kk+1* Dk+1* ...
...
K1 D1 ... Kk* Dk*
Informa>onssysteme 2015 ...
K1
Kk+1*
K2k*D2k*
KD
...
Kk+1* Dk+1* ... K D ... K2k*D2k*
Kapitel 7: E/A-­‐Architektur und Zugriff 71 B+-­‐Bäume -­‐ Löschen 45
Lösche 28, 41, 46
15
1
5
9 12
Unterlauf à Ausgleich
33
X
15 19 28
15
5
45 46
X
Lösche 53
1
X
X
33 37 41
9 12
71
53 59 67
71 83 99
45
33
15 19
53
59
X
Mischen
X
33 37
45 53
71
59 67
71 83 99
Mischen
15
1
5
Informa>onssysteme 2015 9 12
15 19
33
33 37
45
71
45 59 67
Kapitel 7: E/A-­‐Architektur und Zugriff 71 83 99
72 B+-­‐Bäume – Präfix-­‐B+-­‐Bäume Wegen der ausschließlichen Wegweiser-­‐Funk>on der Schlüssel in den inneren Knoten ist es nicht nö>g, die Op>mierungsmaßnahmen auf die Schlüssel zu stützen, die in den BlaPknoten tatsächlich vorkommen. ➭  Einsatz von minimalen Separatoren als Wegweiser •  Beispiel: Konstruk>on irgendeines Separators S mit der EigenschaK Cookiemonster ≤ S < Ernie ...
• Bigbird • Burt • Cookiemonster •
• S • ...
• Ernie • Grouch • Snuffleopoggus •
§  Verbesserung der Baumbreite (fan-­‐out) •  Erhöhung der Anzahl der Zeiger in den inneren Knoten •  Schlüsselkomprimierung und Nutzung von „Wegweisern” •  Variabel lange Einträge erfordern Kontrolle des Unterlaufs über die tatsächliche Speicherplatzbelegung R. Bayer, K. Unterauer: Prefix B-trees.
ACM TODS 2, 1 (March 1977)
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 73 Präfix-­‐EigenschaK Sind die Schlüssel Worte über einem Alphabet und ist die Ordnung der Schlüssel in alphabe>scher (lexikographischer) Ordnung, dann gilt folgende EigenschaK: §  Präfix-­‐EigenschaK: •  Seien x und y zwei Schlüssel, so dass x < y. Dann gibt es einen eindeu>gen Präfix ŷ von y mit: (a) ŷ ist ein Separator zwischen x und y und (b) kein anderer Separator zwischen x und y ist kürzer als ŷ. §  Beim Split einer BlaPseite mit Split zwischen x und y wird nun ŷ als Wegweiser für den Vaterknoten bes>mmt. §  Es kann auch sinnvoll sein, Index-­‐Knoten nicht genau in der "MiPe" zu spliPen, sondern eine leichte Abweichung davon zuzulassen. Wieso? Was ist ein guter Separator zwischen Donaudampfschiff-­‐
fahrtsdampferhersteller und DonaudampfschifffahrtsgesellschaK? Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 74 Präfix-­‐B+-­‐Bäume – Beispiel Lahm
Ginter
Boateng
Ginter
Draxler
Götze
Höwedes
Klose
Mustafi
Podolski
Durm
Großkreuz
Höwedes
Informa>onssysteme 2015 Hummels
Weidenfeller
Weidenfeller
Klose
Khedira
Kramer
Kroos
Lahm
Mertesacker
Podolski
Mueller
Kapitel 7: E/A-­‐Architektur und Zugriff Schürrle
Mustafi
Zieler
Schweinsteiger
Neuer
Özil
2-­‐75 Par>elle Wegweiser und Präfix-­‐Komprimierung §  Beobachtung (für ki, pi, ki+1 in inneren Knoten bzw. Wurzel) •  aufeinanderfolgende Wegweiser ki, ki+1 haben oK einen gemeinsamen Präfix κ(pi) •  dann haben im Teilbaum, auf den pi verweist, alle Schlüssel und Wegweiser auch den gleichen Präfix κ(pi) ...
ki
ki+1
...
Schlüssel ≥ ki .. .. < ki+1
K1 D1 ... Kn Dn
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 76 Par>elle Wegweiser und Präfix-­‐Komprimierung (2) §  Op>mierungsmöglichkeiten •  Verwendung von par>ellen Wegweisern -  κ(pi) muss in Teilbaum von pi nicht in den Wegweisern mitgeführt werden -  bei der Suche kann der vollständige Wegweiser aufgrund der Vorfahren im Baum rekonstruiert werden, bzw. der Vergleich erfolgt nur noch über par>elle Schlüssel •  (verlusxreie) Präfixkomprimierung von (par>ellen) Wegweisern oder Schlüsseln innerhalb einer Seite -  für jeden (par>ellen) Schlüssel ki wird nur die Länge des Schlüssels, die Länge des mit Vorgänger gemeinsamen Präfix und der unterschiedliche Schlüsselanteil gespeichert -  generell möglich, erfordert dann aber sequen>elle Suche innerhalb der Seite Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 77 Beispiel – einfacher Präfix-­‐Baum ... Ob
Oberd
Oberl
Oberme
Oberli
Od
Obl
Ochse
Obeldobel Obenauer Ober
Oberländer
Oberdörfer Oberer
Informa>onssysteme 2015 Oberle
Oberger
Ochsenfarth
Obleser
Oberleitner
Oberlies
Obermaier
Obermayr
Obermeyer
Kapitel 7: E/A-­‐Architektur und Zugriff Obradociv
Oberreißer
Ockert
Ochs
Obersat
2-­‐78 Beispiel -­‐ ... mit par>ellen Wegweisern ... gemeinsamer Präfix
(kann auch bei Suche bestimmt werden)
Ob
partielle Wegweiser
Oberd
Oberl
Oberme
Oberli
Od
Obl
Ochse
Obeldobel Obenauer Ober
Oberländer
Oberdörfer Oberer
Informa>onssysteme 2015 Oberle
Oberger
Ochsenfarth
Obleser
Oberleitner
Oberlies
Obermaier
Obermayr
Obermeyer
Kapitel 7: E/A-­‐Architektur und Zugriff Obradociv
Oberreißer
Ockert
Ochs
Obersat
2-­‐79 Beispiel -­‐ ... und komprimierten Wegweisern gemeinsamer Präfix
(kann auch bei Suche bestimmt werden)
Ob
partielle Wegweiser, komprimiert
0,3,erd
2,3,l
Oberme
3,4,i
Od
Obl
Ochse
Obeldobel Obenauer Ober
Oberländer
Oberdörfer Oberer
Informa>onssysteme 2015 Oberle
Oberger
Ochsenfarth
Obleser
Oberleitner
Oberlies
Obermaier
Obermayr
Obermeyer
Kapitel 7: E/A-­‐Architektur und Zugriff Obradociv
Oberreißer
Ockert
Ochs
Obersat
2-­‐80 Bulkloading §  Problemstellung •  Gegeben eine große Menge an Datensätzen •  Wie kann ein B+ Baum darüber aufgebaut werden? •  Das Problem ist natürlich allgemeiner und triP auch bei anderen Bäumen/Indexstrukturen auf. §  Naive Möglichkeit •  Datensätze einzeln nach und nach in B+ Baum einfügen •  D.h. es wird immer von der Wurzel ab nach der passenden Einfügestelle gesucht •  Nicht sehr effizient (auch wenn die oberen Ebenen in einem DB-­‐
Puffer sind) §  Idee •  Sor>ere Daten vor (resul>ert in sor>erte Liste von Seiten) •  Dann baue Baum auf, indem Datenseiten der Reihe nach hinzugefügt werden Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 81 AblauIeispiel §  Annahme: der B+-­‐Baum kann 2 Einträge pro Seite speichern. §  Wir beginnen mit einer leeren Wurzel und fügen immer ganze Seiten ein, hier zuerst die Seite mit Einträgen 3 und 4. Wurzel
Sortierte Seiten,
noch nicht im B+-Baum
3
4
6
Informa>onssysteme 2015 9
10 11
12 13
20 22
23 31
35 36
Kapitel 7: E/A-­‐Architektur und Zugriff 38 41
44
82 AblauIeispiel (2) §  Nachdem die beiden folgenden Seiten eingefügt worden sind ist die Wurzel nun voll. §  Beim Einfügen von (12,13) muss die Wurzel also aufgeteilt werden. Wurzel
6
10
Sortierte Seiten,
noch nicht im B+-Baum
3
4
6
Informa>onssysteme 2015 9
10 11
12 13
20 22
23 31
35 36
Kapitel 7: E/A-­‐Architektur und Zugriff 38 41
44
83 AblauIeispiel (3) §  Beim AuKeilen der Seiten wurden diese hier gleichmäßig auf die neuen Seiten unter der Wurzel aufgeteilt §  Im Allgemeinen häPe man auch anders auKeilen können •  z.B. nach einem bes>mmen Füllgrad (z.B. 80%) •  oder man häPe auch alle alten Einträge in der linken Seite belassen können. Wurzel
10
6
12
Sortierte Seiten,
noch nicht im B+-Baum
3
4
6
Informa>onssysteme 2015 9
10 11
12 13
20 22
23 31
35 36
Kapitel 7: E/A-­‐Architektur und Zugriff 38 41
44
84 AblauIeispiel (4) §  Index-­‐Einträge für die BläPer werden immer in den am weitesten rechts stehenden Index-­‐Knoten direkt über der BlaP-­‐Ebene eingefügt. §  Sollte dieser voll sein, so muss aufgeteilt werden. Wurzel
10
6
20
12
23
35
Sortierte Seiten, noch
nicht im B+-Baum
3
4
6
Informa>onssysteme 2015 9
10 11
12 13
20 22
23 31
35 36
Kapitel 7: E/A-­‐Architektur und Zugriff 38 41
44
85 AblauIeispiel (5) Wurzel
20
10
6
3
4
12
6
Informa>onssysteme 2015 9
Sortierte Seiten, noch
nicht im B+-Baum
35
10 11
23
12 13
20 22
38
23 31
35 36
Kapitel 7: E/A-­‐Architektur und Zugriff 20
38 41
44
86 Zugriff auf eine Satzmenge §  Einfaches Erklärungs-­‐ und Kostenmodell •  m = #Seiten im Segment, NZ = #Seiten einer Zeigerliste •  b = miPlere #Sätze/Seite, q = #Treffer der Anfrage §  Datei-­‐ oder Segment-­‐Scan Datenseiten
NS = m
§  Index-­‐Scan mit Cluster-­‐Bildung 25 61
"q$
NS ≈ h + NZ + # %
#b%
8
13
33 45
•••
••••
••••
77 85
••••
•••
Wurzelseite
Zwischenseiten
Blattseiten
Datenseiten
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 87 Zugriff auf eine Satzmenge (2) §  Einfaches Erklärungs-­‐ und Kostenmodell •  m = #Seiten im Segment, NZ = #Seiten einer Zeigerliste •  b = miPlere #Sätze/Seite, q = #Treffer der Anfrage §  Index-­‐Scan ohne Cluster-­‐Bildung NS ≈ h + NZ + q
Wurzelseite
25 61
8
13
33 45
•••
••••
••••
77 85
••••
Zwischenseiten
•••
Blattseiten
Datenseiten
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 88 Informa>onssuche – sequen>elle Suche §  DB-­‐Beispiel ANGESTELLTER
PNR NAME TAETIGKEIT GEHALT ALTER 496 Peinl Pförtner 2100 63 497 Kinzinger Kopist 2800 25 498 Meyweg Kalligraph 4500 56 ... §  Annahmen •  NS = Anzahl physischer Seitenzugriffe •  ANGESTELLTER hat n Sätze, in Datei/Segment mit m Seiten (z. B. n = 106, m = 104) •  Speicherung: -  als sequen>elle Liste mit miPlerem Blockungsfaktor b -  verstreut über alle m Seiten §  Sequen>elle Suche (z. B. nach TAETIGKEIT = ’KALLIGRAPH’ ) •  Datei-­‐ oder Segment-­‐Scan •  NS = n/b oder NS = m Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 89 Informa>onssuche mit Index §  Anfrage •  Select * From ANGESTELLTER Where TAETIGKEIT = ’KALLIGRAPH’ §  Indexierung bei strukturierten Daten •  Inver>erung von APributen erlaubt „direkten Zugriff“ über die einzelnen Werte •  Beispiel: TAETIGKEIT = {PFOERTNER, KOPIST, KALLIGRAPH, ...} Index T ... ANGESTELLTER
PNR NAME TAETIGKEIT GEHALT ALTER Kalligraph 496 Peinl Pförtner 2100 63 ... 497 Kinzinger Kopist 2800 25 Kopist 498 Meyweg Kalligraph 4500 56 ... ... Pförtner Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 90 Informa>onssuche mit Index -­‐ Kosten §  Annahmen •  Gleichverteilung der APributwerte; •  Unabhängigkeit der APribute •  ji = Anzahl der APributwerte von APribut Ai •  Liste von Zeigern (TIDs) verweist vom APributwert zu den Sätzen •  Index als B+-­‐Baum mit Höhe hB realisiert §  Index-­‐Suche •  Suche im Index und anschließend gezielter Zugriff auf Sätze (Treffer) •  hT = 2, jT = 1000, n = 106, NZT =1 •  NS = hT + NZT + n/jT = 2 + 1 + 106/103 = 1003 •  Cluster-­‐Bildung bei T, b=100: NS = 2 + 1 + 1000/100 = 13 ➭  Indexierung eines APributs wird bes>mmt durch den erwarteten Leistungsgewinn bei der Anfrageauswertung Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 91 Informa>onssuche -­‐ MehraPribu>ndex Select * From ANGESTELLTER Where TAETIGKEIT = ’KALLIGRAPH’ AND ALTER=50 §  Anlegen eines Index (TAETIGKEIT | ALTER) ANGESTELLTER
Index T ... PNR NAME TAETIGKEIT GEHALT Kalligraph 33 496 Peinl Pförtner 2100 497 Kinzinger Kopist 2800 ... Kalligraph 56 498 Meyweg Kalligraph 4500 ... ... 25 Kopist •  hTA = 3, jT = 1000, jA = 50, jTA = jT ·∙ jA, n = 106, NZTA = 1 •  NS = hTA + NZTA + n/(jT ·∙ jA) = 3 + 1 + 106/(5·∙104) = 24 •  NS (Cluster-­‐Bildung bei TA) = 4 + 106/(5·∙104·∙b) = 5 •  erhöhter Spezialisierungsgrad bei der Indexnutzung ALTER 63 25 56 -  Nutzung von Index TA nur für TAETIGKEIT oder nur für ALTER? Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 92 Informa>onssuche – separate Indexe §  Anfrage Select * From ANGESTELLTER Where TAETIGKEIT = ’KALLIGRAPH’ AND ALTER=50 §  Kombina>on von zwei Indexen: TAETIGKEIT und ALTER Index A ... 25 ... Index T 56 ... ... PNR NAME TAETIGKEIT GEHALT ALTER Kalligraph 63 496 Peinl Pförtner 2100 63 ... 497 Kinzinger Kopist 2800 25 Kopist 498 Meyweg Kalligraph 4500 56 ... ANGESTELLTER
... Pförtner Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 93 Informa>onssuche -­‐ Kosten §  Kombina>on von zwei separaten Indexen: TAETIGKEIT und ALTER (Forts.) •  hT = hA = 2, jT = 1000, jA = 50, n = 106, NZT = 1, NZA = 20 -  1000 Tupel mit T=„Kalligraph“ -  20000 Tupel mit A = 50 •  Ansatz 1: Mischen der Sätze NS = hT + NZT + n/jT + hA + NZA + n/jA = 2 + 1 + 103 + 2 + 20 + 2·∙104 = 21025! •  Ansatz 2: Ansatz 1 mit Clusterbildung bei A: NS = 2 + 1 + 103 + 2 + 20 + 2·∙102 = 1225 •  Ansatz 3: Mischen der Zeigerlisten im HSP: NS = hT + NZT + hA + NZA + n/(jA·∙jT) = 2 + 1 + 2 + 20 + 106/5·∙104 = 3 + 22 + 20 = 45! •  Cluster-­‐Bildung bei A für Verbesserung von (3) sinnvoll? Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 94 DB-­‐Server – Allgemeine Aufgaben §  Allgemeine Aufgaben/EigenschaKen von DBS •  Verwaltung von persistenten Daten (lange Lebensdauer) •  effizienter Zugriff (Suche und Aktualisierung) auf große Mengen von Daten (GBytes – PBytes) •  flexibler Mehrbenutzerbetrieb •  Verknüpfung / Verwaltung von Objekten verschiedenen Typs •  Kapselung der Daten und ihre Isola>on von den Anwendungen ➭ (möglichst hoher Grad an Datenunabhängigkeit) §  Datenmodell / DBS-­‐SchniPstelle (SQL-­‐API) •  Opera>onen zur Defini>on von ObjekPypen (Beschreibung der Objekte) •  Opera>onen zum Aufsuchen und Verändern von Daten •  Defini>on von Integritätsbedingungen (Constraints) •  Defini>on von Zugriffskontrollbedingungen Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 95 Architektur eines datenunabhängigen DBS §  Wie werden diese System-­‐ und SchniPstelleneigenschaKen technisch umgesetzt? •  Komplexität des DBS •  Modularität, Portabilität, Erweiterbarkeit, Zuverlässigkeit, . . . •  LaufzeiteigenschaKen (Leistung, Betriebsverhalten, Fehlertoleranz, . . .) §  AuIau in Schichten: •  „güns>ge Zerlegung“ des DBS in „nicht beliebig viele“ Schichten •  op>male Bedienung der Aufgaben der darüberliegenden Schicht •  implemen>erungsunabhängige Beschreibung der SchniPstellen §  Empfohlene Konzepte: •  Geheimnisprinzip (Informa>on Hiding) •  hierarchische Strukturierung •  generische Auslegung der SchniPstellen: Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 96 Vereinfachtes Schichtenmodell Art der Operationen an
Der Schnittstelle
Aufgaben der
Systemschicht
Übersetzung und Optimierung
von Anfragen
Deskriptive Anfragen
Zugriff auf Satzmengen
Datensystem
Satzzugriffe
Verwaltung von physischen
Sätzen und Zugriffspfaden
Zugriffssystem
Seitenzugriffe
DB-Puffer- und
Externspeicherverwaltung
Speichersystem
DB
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 97 Dynamischer Kontrollfluß einer Opera>on an das DBS DBS-­‐Operationen
(API)
Datensystem
• • •
Füge Satz ein
Modifiziere Zugriffspfad
Zugriffssystem
Stelle Seite bereit
Gib Seite frei
Speichersystem
Lies / Schreibe Seite
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 98 Drei-­‐Schichten-­‐Modell – Abbildungen Relationen/Sichten
mit mengenorientierten
Operationen
Vielfalt an Satztypen
und Zugriffspfaden mit
satzorientierten
Operationen
T1 T2 Datensystem
R1
R2
...
Rn
S1
...
S2
Sm
Zugriffssystem
P1
DB-Puffer im HSP mit
Seitenzugriff
R1
S2
S1
P2
R2
P3
P17
Speichersystem
Externspeicher mit
Dateien verschiedenen
Typs
Informa>onssysteme 2015 P1
P17
P2
P3
Kapitel 7: E/A-­‐Architektur und Zugriff 99 DBS-­‐Architektur – weitere Komponenten §  Verwaltung der Daten, die Daten beschreiben: •  Metadaten fallen in allen DBS-­‐Schichten an •  Metadatenverwaltung, DB-­‐Katalog, Data-­‐Dic>onary-­‐System, DD-­‐System, ... §  Transak>onsverwaltung •  Realisierung der ACID-­‐EigenschaKen (Synchronisa>on, Logging/Recovery, Integritätssicherung) Datensystem
Metadatenverwaltung
Zugriffssystem
Transaktionsverwaltung
Speichersystem
Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 100 Zusammenfassung §  Ziel einer Speicherhierarchie •  Geschwindigkeitsanpassung des jeweils größeren und langsameren Speichers an den schnelleren zu vertretbaren Kosten (Kosteneffek>vität) §  Listen auf Externspeichern •  unterstützen vorwiegend fortlaufende Verarbeitung von Satzmengen •  sequen>elle Listen gewährleisten Cluster-­‐Bildung §  Konzept des Mehrwegbaumes •  AuIau sehr breiter Bäume von geringer Höhe (h ~ 3) •  Bezugsgröße: Seite als Transporteinheit zum Externspeicher; Seiten werden künKig immer größer, d. h., das Fan-­‐out wächst weiter •  B-­‐ und B+-­‐Baum gewährleisten eine balancierte Struktur -  unabhängig von Schlüsselmenge -  unabhängig von Einfügereihenfolge §  Informa>onssuche bei strukturierten Dokumenten •  effek>ve Indexnutzung •  genaue Anfrageergebnisse §  AuIau des DB-­‐Servers •  DBS sind hochgradig generische Systeme, die permanente Evolu>on zulassen müssen •  Hierarchische Schichtenmodelle sind unerlässlich! Informa>onssysteme 2015 Kapitel 7: E/A-­‐Architektur und Zugriff 101 
Herunterladen