KAPITEL 3 DATEIORGANISATION UND ZUGRIFFSSTRUKTUREN h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 1 Dateiorganisation und Zugriffsstrukturen Inhalte des Kapitels • Seiten, Sätze und Adressierung • Klassifikation der Speichertechniken • Baumverfahren • Hash-Verfahren • Klassifikation von Zugriffspfaden • Cluster-Bildung • Spaltenorientierte Datenbanken • Physische Datendefinition in relationalen DBMS Lernziele • Verstehen des internen Aufbaus von Seiten und Sätzen sowie deren Adressierung • Kenntnis der wichtigsten Dateiorganisationsformen und Arten von Zugriffspfaden wann sollte welche Art verwendet werden? • Kennenlernen von Möglichkeiten zur physischen Datendefinition in konkreten relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 2 Einordnung in die 5-Schichten-Architektur Mengenorientierte Schnittstelle Datensystem Satzorientierte Schnittstelle Zugriffssystem Interne Satzschnittstelle Speichersystem Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Geräteschnittstelle Externspeicher h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 3 Einordnung in die 5-Schichten-Architektur • Speichersystem fordert über Systempufferschnittstelle Seiten an • interpretiert diese als interne Datensätze • interne Realisierung der logischen Datensätze mit Hilfe von Zeigern, speziellen Indexeinträgen und weiteren Hilfsstrukturen • Zugriffssystem abstrahiert von der konkreten Realisierung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 4 Seitenzugriff als Flachenhals • Maß für die Geschwindigkeit von Datenbankoperationen: – Anzahl der Seitenzugriffe auf dem Sekundärspeicher (wegen Zugriffslücke) – aber auch Hauptspeicheroperationen nicht beliebig vernachlässigbar Geschwindigkeit des Zugriffs abhängig von der Qualität des Zugriffspfades, d.h. der Anzahl der benötigten Seitenzugriffe Seitenzugriff als Flaschenhals ist wichtige Randbedingung für die Implementierung aller darüber liegenden Strukturen und Schichten! h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 5 Seiten, Sätze, Adressierung • Struktur der Seiten: doppelt verkettete Liste • Header, u.a. – Informationen über Vorgänger- und Nachfolger-Seite – Informationen über Typ der Sätze – Zeitstempel (für Recovery) – Angabe über freien Platz • Adressierung eines Satzes: – Beispielsweise durch Seitennummer und Offset (relative Adresse in Bytes vom Seitenanfang) - Beispiel: (115, 142) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 6 Einpassen von Datensätzen in Seiten • Nichtspannsätze: jeder Datensatz in maximal einer Seite • Spannsätze: Datensatz eventuell in mehreren Seiten • Standard: Nichtspannsätze (nur im Falle von BLOBs oder CLOBs Spannsätze üblich) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 7 Speichervarianten für Sätze variabler Länge n 1 • Vorteil Strategie b): leichtere Navigation innerhalb des Satzes h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 8 TID-Konzept: Motivation • Bisher: Adressierung eines Satzes durch Seitennummer und Offset, wobei der Offset die relative Adresse in Bytes vom Seitenanfang ist – z.B. (115, 142) • Diese Adresse wird in Verweisen von außen, z.B. in Index-Einträgen etc. verwendet. • Was passiert beim Verschieben eines Satz? Konzept notwendig, welches beim Verschieben eines Satzes innerhalb der Seite nicht zum Anpassen der Verweise führt. Tupel Identifier (TID) (oft auch als Record Identifier (RID) bezeichnet) in relationalen Datenbanksystemen heute Stand der Technik h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 9 TID-Konzept – 1(3) • Tupel-Identifier (TID) ist Datensatz-Adresse bestehend aus Seitennummer und Offset • Offset verweist innerhalb der Seite bei einem Offset-Wert von i auf den i-ten Eintrag in einer Liste von Tupel-Zeigern, die am Anfang der Seite stehen • Jeder Tupel-Zeiger enthält Offsetwert innerhalb der Seite Verschiebung auf der Seite: sämtliche Verweise von außen bleiben unverändert h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 10 TID-Konzept – 2(3) • Verschiebungen auf eine andere Seite: statt altem Datensatz neuer TID-Zeiger • mehrstufige Referenz (> 2) aus Effizienzgründen nicht wünschenswert Lösungsvariante? • außerdem: Reorganisation in regelmäßigen Abständen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 11 TID-Konzept – 3(3) • Alternative: fester, logischer TID – in der Literatur auch Data Base Key genannt bzw. im objektobjektorientierten und objektrelationalem Kontext: Object Identifier (OID) – Zuordnungstabelle mit OID und phys. Adresse (Page Pointer PP) – in Indexen etc. wird OID verwendet keine Änderungen in Indexen bei Verschieben des Datensatzes notwendig aber: immer 2 Seitenzugriffe außerdem: Hotspot beim Locking Modifikation: Verwenden eines Probable Page Pointer (PPP) – in Indexen etc. wird sowohl die OID als auch der PPP gespeichert – Bei Änderungen (erstmal) nur Anpassung des PP in Zuordnungstabelle (nicht PPP in Indexen) – Zugriff: normalerweise über PPP (nur 1 Seitenzugriff) – falls Datensatz an Position des PPP nicht gefunden wird → „langer“ Weg über OID und PP (3 Seitenzugriffe) – außerdem Anpassung PPP h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 12 Seitenstruktur in IBM DB2 • Datensatzadressen als relative Byteadresse auf der jeweiligen Seite • Gelöschte Datensätze werden durch -1 repräsentiert • Freispeicher: nur der zusammenhängende Bereich nach dem Satzverzeichnis Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 13 Oracle: Seitenaufbau und Parameter • Mit den Parametern pctfree und pctused kann die Speicherplatzausnutzung in den Seiten (Database Block) beeinflusst werden Auswirkungen auf die Performance von Änderungsoperationen Quelle: Oracle Database Administrator's Guide 10g:2004 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 14 Oracle: Storage Parameter • Weitere Storage Parameter für Oracle-Tabellen: create table tabelle ( ...) pctfree 20 pctused 40 storage ( initial 10MB, next 2MB, minextents 1, maxextents 20, pctincrease 0, freelists 3 ) tablespace USER_TBLSPACE; • pctfree: Seitenanteil, der nicht für insert-Operationen genutzt werden soll (Reservebereich für update); Default 10 • pctused: Grenze, bei der eine zuvor bis zu pctfree gefüllte Seite wieder für insert genutzt werden darf; Default 40 • freelists: Anzahl der Freispeicherlisten (insb. für paralleles Einfügen) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 15 Dateiorganisation und Zugriffsstrukturen • • • • • • • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 16 Speichertechniken • Motivation: Ablage von Datensätzen in Seiten – technische Sicht (wie): voriger Abschnitt – Zuordnung (welche Datensätze in welchen Seiten) noch nicht diskutiert – ist aber entscheidend für die Effizienz des Zugriffs! (Stichwort: Seitenzugriff als Flaschenhals) – außerdem: zusätzliche Strukturen (Indexdateien, Zugriffspfade) für effizienten Zugriff • Speichertechniken (insbesondere Zugriffspfade) waren und sind eines DER Themen in der Datenbankforschung und -literatur, da ihre effiziente Umsetzung – abhängig vom jeweiligen Anwendungskontext – einer der entscheidenden Faktoren für die Datenbank-Performance ist. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 17 Klassifikation der Speichertechniken • Kriterien – wird interne Relation selbst organisiert (Dateiorganisationsform) oder zusätzliche Zugriffsmöglichkeit auf bestehende interne Relation realisiert (Zugriffspfad) – Art der Zuordnung von gegebenen Attributwerten zu DatensatzAdressen – Arten von Anfragen, die durch Dateiorganisationsformen und Zugriffspfade effizient unterstützt werden können h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 18 Anforderungen an Speichertechniken • dynamisches Verhalten • Effizienz beim Einzelzugriff (Schlüsselsuche beim Primärindex) • Effizienz beim Mehrfachzugriff (Schlüsselsuche beim Sekundärindex) • Ausnutzung für sequentiellen Durchlauf (Sortierung, geclusterter Index) • Clustering • Anfragetypen: exact-match, partial-match, range queries (Bereichsanfragen) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 19 Dateiorganisation vs. Zugriffspfad • Dateiorganisationsform: Form der Speicherung der internen Relation – unsortierte Speicherung von internen Tupeln: Heap-Organisation – sortierte Speicherung von internen Tupeln: sequenzielle Organisation – gestreute Speicherung von internen Tupeln: Hash-Organisation – (Speicherung von internen Tupeln in mehrdimensionalen Räumen: mehrdimensionale Dateiorganisationsformen) • üblich: zusätzliche sortierter Zugriffspfad über Primärschlüssel h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 20 Dateiorganisation vs. Zugriffspfad • Zugriffspfad: über grundlegende Dateiorganisationsform hinausgehende Zugriffsstruktur, etwa Indexdatei mit Einträgen (K, K↑): • K: Suchschlüssel, genauer: Zugriffsattribute und Zugriffsattributwerte • K↑: – ist Datensatz selbst Zugriffspfad wird Dateiorganisationsform – ist Adresse genau eines internen Tupels Primärschlüssel – ist Liste von Tupeladressen Sekundärschlüssel mit (K, K↑1), ... , (K, K↑n) für denselben Zugriffsattributwert h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 21 Dateiorganisation und Zugriffsstrukturen • • • • • • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 22 Wiederholung DB (Bachelor) Baumverfahren • Stufenanzahl dynamisch verändern • wichtigste Baumverfahren: B-Bäume und ihre Varianten • B-Baum-Varianten sind allgegenwärtig in heutigen Datenbanksystemen (egal ob relational, objektrelational, objektorientiert, …) B-Bäume • ausgeglichener, balancierter Suchbaum • Ausgeglichen oder balanciert: alle Pfade von der Wurzel zu den Blättern des Baumes gleich lang • Hauptspeicher-Implementierungsstruktur: binäre Suchbäume, beispielsweise AVL-Bäume von Adelson-Velskii und Landis • Datenbankbereich: Knoten der Suchbäume zugeschnitten auf Seitenstruktur des Datenbanksystems • mehrere Zugriffsattributwerte auf einer Seite = Mehrwegbäume h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 23 Wiederholung DB (Bachelor) Prinzip des B-Baumes • B-Baum von Bayer (B für balanciert, breit, Bayer, NICHT: binär) • dynamischer, balancierter Indexbaum, bei dem jeder Indexeintrag auf eine Seite der Hauptdatei zeigt • Mehrwegbaum völlig ausgeglichen, wenn – 1. alle Wege von Wurzel bis zu Blättern gleich lang – 2. jeder Knoten gleich viele Indexeinträge • vollständiges Ausgleichen zu teuer, deshalb B-Baum-Kriterium: – Jede Seite außer der Wurzelseite enthält zwischen m und 2m Einträge. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 24 Wiederholung DB (Bachelor) Seitenformat des B-Baums • Seitenformat: Z0 S1 Z1 D1 S2 Z2 D2 S3 … Sm Zm D frei m Zi = Zeiger auf Seite der nächsten Stufe Si = Schlüssel (Zugriffsattributwert) Di = Daten des Satzes oder Verweis auf den Satz (bzw. die Sätze) d.h. materialisiert oder referenziert • B-Baum als Primär- und Sekundärindex geeignet • Datensätze direkt in die Indexseiten Dateiorganisationsform h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 25 Wiederholung DB (Bachelor) Definition B-Baum • Ordnung eines B-Baumes ist minimale Anzahl der Einträge auf den Indexseiten außer der Wurzelseite • Bsp.: B-Baum der Ordnung 8 faßt auf jeder inneren Indexseite zwischen 8 und 16 Einträgen • Def.: Ein Indexbaum ist ein B-Baum der Ordnung m, wenn er die folgenden Eigenschaften erfüllt: 1. Jede Seite, außer der Wurzelseite, enthält mindestens m Elemente. Jede Seite enthält höchstens 2m Elemente. 2. Alle Blattseiten liegen auf der gleichen Stufe. 3. Die Elemente werden in allen Seiten sortiert gespeichert. Jede Seite ist entweder eine Blattseite ohne Nachfolger oder hat i + 1 Nachfolger, falls i die Anzahl ihrer Elemente ist. 4. Für einen Element Ei gilt, dass die Werte zwischen Ei-1 und Ei im linken Teilbaum und die Werte zwischen Ei und Ei+1 im rechten Teilbaum gespeichert werden. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 26 Wiederholung DB (Bachelor) Suchen in B-Bäumen lookup • startend auf Wurzelseite Eintrag im B-Baum ermitteln, der den gesuchten Zugriffsattributwert w überdeckt Zeiger verfolgen, Seite nächster Stufe laden • Beispiel: Suchen: 38, 20, 6 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 27 Wiederholung DB (Bachelor) Einfügen in B-Bäumen • Beispiel (m = 1) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 28 Wiederholung DB (Bachelor) Einfügen in B-Bäumen • Beispiel (Fortsetzung) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 29 Wiederholung DB (Bachelor) Einfügen in B-Bäumen insert: Einfügen eines Wertes w • mit lookup entsprechende Blattseite suchen – passende Seite n < 2m Elemente w einsortieren – passende Seite n = 2m Elemente neue Seite erzeugen, ersten m Werte auf Originalseite letzten m Werte auf neue Seite mittleres Element auf entsprechende Indexseite nach oben – ggf. diesen Prozess rekursiv bis zur Wurzel wiederholen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 30 Wiederholung DB (Bachelor) Löschen in B-Bäumen bei weniger als m Elementen auf Seite: Unterlauf delete: Löschen eines Wertes w • mit lookup entsprechende Seite suchen – w auf Blattseite gespeichert Wert löschen; ggf. Unterlauf behandeln – w nicht auf Blattseite gespeichert Wert löschen, durch lexikographisch nächstkleineres Element von einer Blattseite ersetzen; ggf. Unterlauf auf Blattseite behandeln • Unterlaufbehandlung – Ausgleichen mit der benachbarten Seite (benachbarte Seite n Elemente mit n > m) – oder Zusammenlegen zweier Seiten zu einer (Nachbarseite n = m Elemente), das „mittlere“ Element von Indexseite darüber dazu; auf Indexseite ggf.Unterlauf behandeln h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 31 Wiederholung DB (Bachelor) Löschen in B-Bäumen • Beispiel (m = 2) : Löschen von 22 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 32 B-Bäume: Komplexität der Operationen • n Datensätze in der Hauptdatei Aufwand beim Einfügen, Suchen und Löschen im B-Baum immer O(logm(n)) Operationen • Konkretes Beispiel: – Seiten der Größe 4 KB, Zugriffsattributwert 32 Bytes, 8-Byte-Zeiger zwischen 50 und 100 Indexeinträge pro Seite Ordnung dieses B-Baumes 50 – 1.000.000 Datensätze log50(1.000.000) = 4 Seitenzugriffe im schlechtesten Fall – Wurzelseite jedes B-Baumes normalerweise im Puffer 3 Seitenzugriffe – Wieviel Seitenzugriffe würde der Zugriff ohne Index benötigen? h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 33 Varianten • B+-Bäume: Daten nur auf den Blattseiten • B*-Bäume: Aufteilen von Seiten vermeiden durch „Shuffle“ • Präfix-B-Bäume: Zeichenketten als Zugriffsattributwerte, nur Präfix indexieren h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 34 B+-Baum: Prinzip • in der Praxis am häufigsten eingesetzte Variante des B-Baumes: effizientere Änderungsoperationen, Verringerung der Baumhöhe • Daten nur auf den Blattseiten – innere Knoten enthalten nur Schlüssel und Zeiger auf nachfolgenden Seite der nächsten Stufe: • Seitenformat innere Knoten: Z0 S1 Z1 S2 Z2 S3 … Sm Zm frei Sm Dm frei Zi = Zeiger auf Seite der nächsten Stufe Si = Schlüssel • Seitenformat Blattknoten: V S1 D1 S2 D2 S3 … N Si = Schlüssel Di = Daten des Satzes oder Verweis auf den Satz V = Vorgänger-Zeiger N = Nachfolger-Zeiger h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 35 Beispiel: B-Baum vs. B+-Baum 13 Schulz … 14 Meier … • keine Daten in den inneren Knoten es passen mehr Einträge auf eine Seite Reduktion der Höhe des Baumes weniger Seitenzugriffe bei lookup, insert, delete (aber jetzt immer logm(n)) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 36 Variante des B+-Baum • Speicherung der Datensätze(!) in den Blattseiten schnelle fortlaufende Verarbeitung aller Datensätze in auf- oder absteigender Sortierreihenfolge! Verschmelzen von Zugriffsstruktur und Dateiorganisation h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 37 B*-Baum • Problem beim B-Baum bzw. B+-Baum: häufiges Aufspalten von Seiten und geringe Speicherplatzausnutzung von nahe 50% • B*-Baum: – statt Aufteilen von Seiten bei Überlauf zunächst Neuverteilen der Datensätze auf eventuell nicht voll ausgelastete Nachbarseiten – falls nicht möglich: zwei Seiten in drei aufteilen ohne Verschiebung eines Elements nach oben (ermöglicht durchschnittliche Speicherplatzausnutzung von 66% statt 50%) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 38 Speicherbedarf für B-Baum • Wie kann der maximale Speicheraufwand für einen B-Baum abgeschätzt werden? h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 39 Dateiorganisation und Zugriffsstrukturen • • • • • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 40 Hash-Verfahren: Grundprinzip • Basis-Hash-Funktion: h(k) = k mod m mit m möglichst Primzahl • Überlauf-Behandlung – Überlaufseiten als verkettete Liste – lineares Sondieren hi(k) = (h(k) + i) mod m – quadratisches Sondieren hi(k) = (h(k)+ i2) mod m – doppeltes Hashen hi(k) = (h(k) + h'(k)*i) mod m h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 41 Hash-Verfahren für Datenbanken Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 42 Operationen und Zeitkomplexität • lookup, modify, insert, delete – lookup benötigt maximal 1 + #B(h(w)) Seitenzugriffe mit #B(h(w)) Anzahl der Seiten (inklusive der Überlaufseiten) des Buckets für Hash-Wert h(w) – Untere Schranke 2 (Zugriff auf Hash-Verzeichnis plus Zugriff auf erste Seite) – Zeitschranke für modify, insert und delete? sehr effizient für Suche einzelner Werte (konstante Zugriffskosten - bei ausreichendem Speicherplatz und gut streuender Hash-Funktion 2 Zugriffe!) • Bereichsanfragen? • sortierte Ausgabe von Datensätzen? h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 43 Probleme bei statischen Hash-Verfahren • Hash-Funktion bildet die Schlüsselwerte auf einen festen Bildbereich ab • Was passiert, wenn dieser erweitert werden muss? – neue Hash-Funktion – Reorganisation (Re-Hashing) aller Datensätze! Dynamisches Hashen – Idee: feste Hash-Funktion, aber dynamisch erweiterbarer Bildbereich – Verschiedene Realisierungsvarianten • Lineares Hashen • Erweiterbares Hashen • Spiral-Hashen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 44 Prinzip lineares Hashen • Folge von Hash-Funktionen, die wie folgt charakterisiert sind: – hi : dom(Primärschlüssel) → { 0, . . . , 2i × N }: eine Folge von HashFunktionen mit i { 0, 1, 2, . . .} und N als Anfangsgröße des HashVerzeichnisses – Wert von i: Level der Hash-Funktion • Für diese Hash-Funktionen gelten die folgenden Bedingungen: – hi+1(w) = hi (w) für etwa die Hälfte aller w dom(Primärschlüssel) – hi+1(w) = hi (w) + 2i × N für die andere Hälfte – Bedingungen sind zum Beispiel erfüllt, wenn hi (w) als w mod (2i × N) gewählt wird h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 45 Realisierung lineares Hashen • Zu einem Zeitpunkt: für ein w höchstens zwei Hash-Funktionen zuständig, deren Level nur um 1 differiert • Entscheidung zwischen diesen beiden durch Split-Zeiger – sp Split-Zeiger (gibt an, welche Seite als nächstes geteilt wird) – lv Level (gibt an, welche Hash-Funktionen benutzt werden) lookup: s := hlv (w); if s < sp then s := hlv+1(w); • zuerst Hash-Wert mit der „kleineren“ Hash-Funktion bestimmen • liegt dieser unter dem Wert des Split-Zeigers größere Hash-Funktion verwenden h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 46 Beispiel für lineares Hashen 0 • Schlüsselwerte (zur Vereinfachung): Bitfolgen • Hash-Funktion: die ersten n Bits in umgekehrter Reihenfolge als Zahl, d.h. h1 interpretiert die erste Zahl, h2 die ersten beiden usw. Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 47 Splitten einer Seite 1. Die Sätze der Seite (Bucket), auf die sp zeigt, werden mittels hlv+1 neu verteilt ca. die Hälfte der Sätze wird auf Seite (Bucket) unter Hash-Nummer 2lv × N + sp verschoben 2. Der Split-Zeiger wird weitergesetzt: sp := sp + 1; 3. Nach Abarbeiten eines Levels wird wieder bei Seite 0 begonnen; der Level wird um 1 erhöht h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 48 Beispiel für lineares Hashen Beispiel: h2 (0010000) = 00 < 1 → h3 (0010000) = 001 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Quelle: Saake/Heuer/Sattler:2005 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 49 … nach Splitten einer Seite … Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 50 … nach Splitten zweier weiterer Seiten Nachteile des Verfahrens? Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 51 Dateiorganisation und Zugriffsstrukturen • • • • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 52 Klassifikation von Zugriffspfaden Verschiedene (i.a. orthogonale) Möglichkeiten der Klassifikation: • dünnbesetzter vs. dichtbesetzter Index • geclusterter vs. nicht-geclusterter Index • Ein-Attribut vs. Mehr-Attribut-Index h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 53 Dünn- vs. dichtbesetzter Index • dünnbesetzter Index: nicht für jeden Zugriffsattributwert K ein Eintrag in Indexdatei – interne Relation sortiert nach Zugriffsattributen: im Index reicht ein Eintrag pro Seite Index verweist mit (K1,K1↑) auf Seitenanführer, nächste Indexeintrag (K2,K2↑) – Datensatz mit Zugriffsattributwert K? mit K1 < K? < K2 ist auf Seite von K1↑ zu finden • dichtbesetzter Index: für jeden Datensatz der internen Relation ein Eintrag in Indexdatei indexsequenzielle Datei: sortierte Datei mit dünnbesetztem Index als Primärindex Primärindex muss dichtbesetzter Index sein, wenn Dateiorganisationsform Heap-Datei h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 54 Geclusterter vs. nicht-geclusterter Index – 1(2) • geclusterter Index: in der gleichen Form sortiert wie interne Relation – Bsp.: interne Relation KUNDEN nach Kundennummern sortiert Indexdatei über dem Attribut KNr üblicherweise geclustert • nicht-geclusterter Index: anders organisiert als interne Relation – Bsp.: über Name ein Sekundärindex, Datei selbst nach KNr sortiert jeder dünnbesetzte Index ist auch geclusterter Index, aber nicht umgekehrt Sekundärindex kann nur dichtbesetzter, nicht-geclusterter Index sein h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 55 Geclusterter vs. nicht-geclusterter Index – 2(2) Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 56 Ein-Attribut- vs. Mehr-Attribut-Index • Ein-Attribut-Index (non-composite index): Zugriffspfad über einem einzigen Zugriffsattribut • Mehr-Attribut-Index (composite index): Zugriffspfad über mehreren Attributen • Bsp.: Attribute Name und PLZ unterstützen – entweder zwei Ein-Attribut-Indexe – oder ein Zwei-Attribut-Index über beiden Attributen • Vorteil Mehr-Attribut-Index: bei exact-match nur ein Indexzugriff (weniger Seitenzugriffe) • Mehr-Attribut-Index: Ausführungsart bestimmt, ob neben exact-match auch noch partial-match effizient unterstützt wird (eindimensional oder mehrdimensional) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 57 Ein- vs. mehrdimensionale Zugriffsstruktur • Ein-Attribut-Index immer eindimensionale Zugriffsstruktur: (Zugriffsattributwerte definieren lineare Ordnung in eindimensionalem Raum) • Mehr-Attribut-Index ist eindimensionale oder mehrdimensionale Zugriffsstruktur: – eindimensionaler Fall: Kombinationen der verschiedenen Zugriffsattributwerte konkateniert als einen einzigen Zugriffsattributwert betrachten (wieder lineare Ordnung in eindimensionalem Raum) keine partial-match-Anfragen – mehrdimensionaler Fall: Menge der Zugriffsattributwerte spannt mehrdimensionalen Raum auf bei partial-match bestimmt horizontale oder vertikale Gerade im Raum die Treffermenge mehrdimensionale Bäume mehrdimensionale Hash-Verfahren Grid-Files h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 58 Weitere Zugriffsstrukturen Spezifische Anforderungen für • Geometrische Strukturen in Geoinformationssystemen, CAD-Systemen etc. – mehrdimensionale Bäume (insbesondere Quadtrees, R-Bäume, Grid-Files) • Multimedia-Daten – mehrdimensionale Bäume, hochdimensionale Index für Feature-Vektoren • Objektstrukturen – hierarchische Indexe für Klassen- und Komponentenhierarchien • Information Retrieval – invertierte Listen, Signaturindexe • XML – Pfadindexe • Data Warehouse – Bitmap-Indexe, UB-Bäume • … Literatur (Überblick und weitere Referenzen): G. Saake, A. Heuer, und K. Sattler: Datenbanken: Implementierungstechniken. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 59 Dateiorganisation und Zugriffsstrukturen • • • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 60 Cluster-Bildung • Ziel: gemeinsame Speicherung von (zusammengehörigen) Datensätzen auf Seiten • wichtige Spezialfälle: – Clusterung nach Schlüsselattributen Bereichsanfragen und Gruppierungen unterstützen: Datensätze in der Sortierreihenfolge zusammenhängend auf Seiten speichern index-organisierte Tabellen – Clusterung basierend auf Fremdschlüsselattributen Gruppen von Datensätzen, die einen Attributwert gemeinsam haben, werden auf Seiten gemeinsam gespeichert (Verbundanfragen) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 61 Cluster für Verbundanfragen • Verbundattribut: Cluster-Schlüssel Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 62 Definition von Clustern • Oracle-Notation: create cluster BESTELL_CLUSTER (BestellNr int) pctused 80 pctfree 5; create table BESTELLUNG ( BestellNr int primary key, ...) cluster BESTELL_CLUSTER (BestellNr); create table BESTELL_POSITION ( Position int, BestellNr int references BESTELLUNG, ... constraint BestellPosKey primary key (Position, BestellNr) ) cluster BESTELL_CLUSTER (BestellNr); h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 63 Organisation von Clustern • Indexierte Cluster nutzen einen in Sortierreihenfolge aufgebauten Index (z.B. B+-Baum) über den Cluster-Schlüssel zum Zugriff auf die Cluster – Speicherung von Cluster-Identifikatoren anstelle von TIDs create index BESTELL_CLUSTER_IDX on cluster BESTELL_CLUSTER; • Hash-Cluster bestimmen den passenden Cluster mit Hilfe einer Hashfunktion – Abbildung Cluster-Schlüssel → Blockadresse create cluster BESTELL_CLUSTER (BestellNr int) pctused 80 pctfree 5 size 2k hash is BestellNr hashkeys 100000; h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 64 Dateiorganisation und Zugriffsstrukturen • • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 65 Spaltenorientierte DBMS: Motivation • Charakteristika von Operationen in verschiedenen Anwendungsszenarien: • OLTP: Lese- und Schreiboperationen auf einzelnen Datensätzen – beim kompletten Lesen einer Tabelle werden viele nicht benötigte Datensätze gelesen – Optimierung des gezielten Zugriffs auf Datensätze mit Indexen • OLAP: Leseoperationen auf vielen Datensätzen (wobei i.a. nur einzelne Attribute relevant sind) – beim kompletten Lesen einer Tabelle werden viele nicht benötigte Attributwerte gelesen Optimierung durch viele Indexe (ggf. Index auf jedem Attribut) Alternative: vertikale Partitionierung (siehe Kapitel 7) Neuer Ansatz: Column-Oriented Database Systems (Spaltenorientierte DBMS) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 66 Spaltenorientierte DBMS: Idee • Fundamentale Veränderung der Art, wie Datensätze gespeichert werden: + Einfaches Insert / Update + Nur Lesen relevanter Daten − Lesen nicht benötigter Daten + Bessere Kompressionsmöglichkeiten − Insert / Update aufwändig − Zusammenfügen versch. Daten aufwändig suitable for read-mostly, read-intensive, large data repositories Quelle: Harizopoulos/Abadi/Boncz: VLDB2009 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 67 Spaltenorientierte DBMS: Historie* und Literatur • Erste Papiere mit ähnlichen Ansätzen schon in den 70er Jahren • 1985: DSM-Paper: G. P. Copeland and S. Khoshafia: A decomposition storage model. SIGMOD Conference 1985 • 1990er Jahre: Kommerzialisierung durch Sybase IQ • bis 2000: Überwiegend im Kontext von Main-Memory-Datenbanken erforscht und eingesetzt • seit 2005: Wiedergeburt Lese-optimierter DBMS als Column Store mit Systemen wie C-Store, MonetDB/X100 etc. Wichtige Paper: – M. Stonebraker, D. J. Abadi, A. Batkin et al.: C-Store: A Column-oriented DBMS. VLDB 2005 – D. J. Abadi, S. Madden, N. Hachem: Column-stores vs. row-stores: how different are they really? SIGMOD Conference 2008 – D. J. Abadi, P. A. Boncz, S. Harizopoulos: Column-oriented Database Systems. VLDB Conference 2009 – Weitere Paper zu vertiefenden Themen rund um Column-oriented Database Systems auf allen aktuellen DB-Konferenzen (BTW, SIGMOD, VLDB, EDBT) *Quelle: Harizopoulos/Abadi/Boncz: VLDB2009 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 68 Spaltenorientierte DBMS: Konzepte (1) • Kompression – Spalten lassen sich besser komprimieren als Zeilen – Typische* Kompressionsraten: 1:3 für row-store, 1:10 für columnstore – Warum? – Diverse Kompressionsalgorithmen (Run-length Encoding, Bit-vector Encoding, Differential Encoding etc.) – Datenbankoperationen: so lange wie möglich auf komprimierten Daten arbeiten Anpassung der Implementierung der Datenbankoperationen notwendig bzw. Einführung neuer Operatoren *Quelle: Harizopoulos/Abadi/Boncz: VLDB2009 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 69 Spaltenorientierte DBMS: Konzepte (2) • Leseoperationen – Wann werden Tuple „zusammengesetzt“? early materialization vs. late materialization (nahezu) alle Datenbankoperationen müssen angepasst werden bzw. neue Operatoren eingeführt werden • Änderungsoperationen (insert / delete) – Problem? • I/O für jede Spalte • Re-Komprimierung Kein update-in-place sondern differential lists mit regelmäßigen merge-Operationen Anpassung der Lese- und Schreiboperatoren! Anpassung des Transaktionskonzepts! Vertiefung dieser Themen in Vorlesung „Big Data Technologien“ h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 70 Spaltenorientierte DBMS: Systeme Kommerziell • Sybase IQ • Vertica • VectorWise • 1010data • ParAccel • Infobright • IBM Informix Warehouse Accelarator • Exasol • SAP HANA • …. Open Source • MonetDB • Infobright • (C-Store) • … h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 71 Spaltenorientierte DBMS: Alternativen • Alternativen bzw. Simulation des Column-Store in einem Row-based Datenbankmanagementsystem: Quelle: Harizopoulos/Abadi/Boncz: VLDB2009 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 72 Spaltenorientierte DBMS: Alternativen • SSBM (Star Schema Benchmark): sehr verbreiteter Data Warehouse Benchmark (basiert auf TPC-H Benchmark Datenmodell) Quelle: Abadi: 2008 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 73 Trend Spaltenorientierte DBMS: Trend • Row-Store-Systeme mit Column-Stores Unterstützung – Oracle • Erste Ansätze in Oracle 11g Release 2 für Exadata systems (Appliance, 2010) hybrid columnar compression • July 2014 (12.1.0.2): “Oracle In-Memory Database”: duplicate data column-oriented in main memory – IBM Smart Analytics Optimizer • 2010 – MS SQL Server • MS SQL Server 2012: neuer Indextyp COLUMNSTORE • MS SQL Server 2014: Clustered Colum Store Index (full table) – IBM DB2 • 10.5 BLU Acceleration (April 2013): column-organized tables – PostgreSQL • Extension for PostgreSQL (April 2014) • SAP HANA (Appliance): Row-Store und Column-Store h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 74 Dateiorganisation und Zugriffsstrukturen • Seiten, Sätze und Adressierung Klassifikation der Speichertechniken Baumverfahren Hash-Verfahren Klassifikation von Zugriffspfaden Cluster-Bildung Spaltenorientierte Datenbanken Physische Datendefinition in relationalen DBMS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 75 Oracle: Datenorganisation und Zugriffspfade – 1(2) • Standardtabellen als Heap • Standard-Index: B+-Baum • Anlegen von index-organisierten Tabellen möglich: speichern Tupel direkt in den Blättern eines B+-Baums • Clusterung mehrerer Relationen möglich; Cluster-Indexe als B+-Baum oder als Hash-Index • Bitmap-Indexe für Data Warehouse • benutzerdefinierte funktions-basierte Indexe • … h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 76 Oracle: Datenorganisation und Zugriffspfade – 2(2) • Index-organisierte Tabelle create table tabelle ( ...) organization index tablespace USER_TBLSPACE, pctthreshold 20 overflow tablespace OVER_TBLSPACE; – Ablage der Daten in den Blättern des B+-Baums – pctthreshold: Threshold für Speicherung von nicht-indexierten Attributen im Überlaufbereich (Wert: 1-50 – Prozentsatz der Blockgröße) – optional including: Festlegung der im Index aufzunehmenden Attribute (alle weiteren → Überlaufbereich) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 77 DB2: Datenorganisation und Zugriffspfade • Standardtabellen als Heap • Append-Mode-Tabellen, die für insert-Operationen optimiert sind (Einfügen immer am Ende) • bereichsgeclusterte Tabellen • Multidimensionale Clustering-Tabellen • Standard-Index: B+-Baum • auch geclusterte Indexe möglich: create index name on tabelle (attribut) cluster; • benutzerdefinierte funktions-basierte Indexe • … h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 78 Microsoft SQL Server: Datenorganisation und Zugriffspfade create [ unique ] [ clustered | nonclustered ] index name on table-name ( ...) [ with fillfactor = value, pad_index, ...] • nicht-geclusterter Index: nur Row-IDs in Blattseiten • geclusterter Index: Datensätze auf Blattseiten • fillfactor: frei zu haltender Platz für Blattseiten beim Aufbau (pad_index auch für mittlere Seiten) • weitere spezielle Indexstrukturen: – Indexe auf berechneten Spalten – indexierte Sichten (geclusterter Index auf Sicht) ≡ materialisierte Sicht h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 79 Trend Self-tuning DBMS: Indexempfehlungen Motivation • Indexe erhöhen die Performance beim Zugriff drastisch • aber: Indexverwaltung ist zusätzlicher Overhead Ziel • Basierend auf Workload-Auswertung Empfehlung geeigneter Indexe Herausforderungen • Wie ermittelt man, ob ein Index etwas bringt (bringen würde)? • Komplexität der Ermittlung – Menge von Anfragen Q1, ..., Qm – Indexkandidaten I1, ..., In mit Größe und Verwaltungskosten – Profit von Ii bzgl. Qk – Aufgabe: Finde Indexkonfiguration C { I1, ..., In } • die Größenbeschränkung einhält und • Gesamtprofit (unter Berücksichtigung der Verwaltungskosten) maximiert Rucksack-Problem (knapsack) – Komplexität? h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 80 Trend Self-tuning DBMS: Indexempfehlungen Typische Vorgehensweise (in ähnlicher Form in den neuesten Versionen von DB2, Oracle, MS SQL Server implementiert) • Input: Workload – durch DBA vorgegebenes (gewichtetes) SQL-Statement-Profil – teilweise vom DBMS gesammelte Informationen über SQL-Statements • Verarbeitung – Durchrechnen verschiedener Konfigurationsvarianten mit Hilfe des Optimizers („what if“ Index) • Output: Vorschläge zum Anlegen bzw. Löschen von – Indexen – materialisierten Sichten – horizontalen Tabellenpartitionierung (siehe Kapitel 7) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 81 Zusammenfassung • Satzadressierung: TID-Konzept • Dateiorganisation – Heap-Speicherung als Standard – indexsequenzielle Organisation – Clusterbildung • Zugriffspfade – B-Baum und Varianten – Hash-Verfahren, insbesondere dynamische Hash-Verfahren • Aktuelle Entwicklung für lese-intensive Anwendungen mit sehr großen Datenmengen: Spaltenorientierte DBMS (Column-oriented Database Systems) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 82 Architektur von Datenbanksystemen Architektur von Datenbanksystemen Verwaltung des Hintergrundspeichers Dateiorganisation und Zugriffsstrukturen • Basisalgorithmen für Datenbank-Operationen • Anfrageoptimierung • Transaktionsverwaltung und Recovery • Verteilte Datenbankarchitekturen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 83