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