KAPITEL 3 DATEIORGANISATION UND ZUGRIFFSSTRUKTUREN



Ähnliche Dokumente
KAPITEL 3 DATEIORGANISATION UND ZUGRIFFSSTRUKTUREN

Teil IV. Dateiorganisation und Zugriffsstrukturen

Cluster-Bildung. VL Datenbanken II 4 107

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Kapitel 8: Physischer Datenbankentwurf

Teil IV Dateiorganisation und Zugriffsstrukturen

Algorithmen und Datenstrukturen 1

Rückblick: Pufferverwaltung

Datenbanken: Indexe. Motivation und Konzepte

Einordnung in 5-Schichten-Architektur. 4. Dateiorganisation / Zugriffsstrukturen. Klassifikation der Speichertechniken.

Fokus bisher lag bisher auf sinnvoller Abbildung eines Ausschnitts der realen Welt in einer relationalen Datenbank

ADS: Algorithmen und Datenstrukturen

Datenbanksysteme SS 2013

Aufbau Datenbanksysteme

KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN

Abschluss Einblick und Ausblick

Zusatzskript Datenmanagement: physische Strukturen B+- und B*-Baum B+-Baum

Indizes B+Bäume in Oracle. Jörg Winkler

Ausarbeitung zum Thema:

B*-BÄUME. Ein Index ist seinerseits wieder nichts anderes als eine Datei mit unpinned Records.

Wintersemester 2016/ Matrikelnummer: Hinweise. Unterschrift

Baumbasierte Strukturen

Einordnung in 5-Schichten-Architektur. 4. Dateiorganisation / Zugriffsstrukturen. Klassifikation der Speichertechniken.

4. Dateiorganisation / Zugriffsstrukturen. Einordnung in 5-Schichten-Architektur

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Mehrwegbäume Motivation

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

Bäume, Suchbäume und Hash-Tabellen

Performance in der Oracle Datenbank von Anfang an

Dateiorganisation und Zugriffsstrukturen

Mehrdimensionale Zugriffspfade und Dateiorganisation

KAPITEL 2 SPEICHERSTRUKTUREN UND VERWALTUNG DES HINTERGRUNDSPEICHERS

Architektur von Datenbanksystemen

Oracle 10g Einführung

Hash-Verfahren. Einführung

Teil VII. Hashverfahren

Physische Datenbankdefinition in. Arthur Bauer

Hash-Verfahren. Prof. Dr. T. Kudraß 1

MS SQL Server: Index Management. Stephan Arenswald 10. Juli 2008

DB-Zugriffsverfahren: Übersicht B-Bäume B*-Bäume Übersicht

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Oracle 9i Einführung Performance Tuning

Slotted Pages Wie ordnet man eine Menge von Sätzen auf eine Seite an? ffl Seite besteht aus drei Teilen fixer Seitenkopf (z.b. mit Seitennr, LSN) Slot

Physische Datenorganisation

technische universität dortmund Fakultät für Informatik LS 8 Speichern von Daten Prof. Dr. Katharina Morik

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Neues aus der nicht-, semi- und relationalen Welt

Möglichkeiten und Grenzen von Oracle Advanced Compression. Olaf Herden Duale Hochschule BW Campus Horb

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Datenbanksysteme II Physische Repräsentation von Daten Felix Naumann

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

5.8.2 Erweiterungen Dynamische Hash-Funktionen (mit variabler Tabellengröße)?

Literatur: Jeffrey D. Ullman: Principles of Database Systems, 2 nd Edition 1982, Kapitel 2.2

Datenbanksysteme II Indexstrukturen Felix Naumann

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

OPERATIONEN AUF EINER DATENBANK

6.4 Minimale Überdeckung: Basis für Normalisierungsalgorithmen

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Oracle 9i Einführung Performance Tuning

Indexstrukturen in Datenbanken

Inhaltsverzeichnis. vii.

14. Dateiorganisation/Zugriffsstrukturen. Überblick. Fünf-Schichten-Architektur. 5-Schichten-Architektur: Schnittstellen I

6. Anfragebearbeitung

Dynamische Datenstrukturen

Gleichheitsanfrage vs. Bereichsanfrage

Seminar Datenbanken Martin Gerstmann

Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle

Datenbanken. Interne Datenorganisation:

Datenbanken 1. Kapitel 4: Interne Datenorganisation 4-1. Datenbanken 1 (Bachelor)

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

4.3 R-Bäume (I) Idee. basiert auf der Technik überlappender Seitenregionen verallgemeinert die Idee des B + -Baums auf den 2-dimensionalen Raum

2. Architektur von Datenbanksystemen

Industrie 4.0 und Smart Data

Relationales Datenbanksystem Oracle

KAPITEL 2 VERWALTUNG DES HINTERGRUNDSPEICHERS

Synchronisationsmodul Informatik Teil-Modul Datenbanken

Datenstrukturen und Algorithmen. Vorlesung 5

Datenbanken: Datenkompression. Dr. Matthias Uflacker, Stefan Klauck 2. Mai 2018

1 Einführung Ziele der Vorlesung Die Idee Lernkarte Selbsttest-Frage 3 Literaturhinweise 3

Baum-Indexverfahren. Einführung

Teil XI Spalten-orientierte DBMSs

Datenbanken 2. Kapitel 5: Pufferverwaltung und Optimierung von Zugriffspfaden

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1

Objektrelationale Datenbanken

INDEXDATEIEN ( INDEXED FILES )

Organisationsformen der Speicherstrukturen

Data Warehouse Technologien

Veit Köppen Gunter Saake Kai-Uwe Sattler. 2. Auflage. Data Warehouse Technologien

Vorlesung Datenbankmanagementsysteme

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen?

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM

7.3 Baum-Indexstrukturen

Rückblick: Datenorganisation & Indexstrukturen

Transkript:

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 Speichersystem Interne Satzschnittstelle Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Externspeicher Geräteschnittstelle 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

Kriterien Klassifikation der Speichertechniken wird interne Relation selbst organisiert (Dateiorganisationsform) oder zusätzliche Zugriffsmöglichkeit auf bestehende interne Relation realisiert (Zugriffspfad) Art der Zuordnung von gegebenen Attributwerten zu Datensatz- Adressen 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: Z 0 S 1 Z 1 D 1 S 2 Z D 2 S S m Z D 2 3 m m frei Z i = Zeiger auf Seite der nächsten Stufe S i = Schlüssel (Zugriffsattributwert) D i = 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 E i gilt, dass die Werte zwischen E i-1 und E i im linken Teilbaum und die Werte zwischen E i und E i+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(log m (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 log 50 (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: Z 0 S 1 Z 1 S 2 Z 2 S 3 S m Z m frei Z i = Zeiger auf Seite der nächsten Stufe S i = Schlüssel Seitenformat Blattknoten: V S 1 D 1 S 2 D 2 S S m D frei 3 m N S i = Schlüssel D i = 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 log m (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 h i (k) = (h(k) + i) mod m quadratisches Sondieren h i (k) = (h(k)+ i 2 ) mod m doppeltes Hashen h i (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: h i : dom(primärschlüssel) { 0,..., 2 i N }: eine Folge von Hash- Funktionen mit i { 0, 1, 2,...} und N als Anfangsgröße des Hash- Verzeichnisses Wert von i: Level der Hash-Funktion Für diese Hash-Funktionen gelten die folgenden Bedingungen: h i+1 (w) = h i (w) für etwa die Hälfte aller w dom(primärschlüssel) h i+1 (w) = h i (w) + 2 i N für die andere Hälfte Bedingungen sind zum Beispiel erfüllt, wenn h i (w) als w mod (2 i 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 := h lv (w); if s < sp then s := h lv+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. h 1 interpretiert die erste Zahl, h 2 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 h lv+1 neu verteilt ca. die Hälfte der Sätze wird auf Seite (Bucket) unter Hash-Nummer 2 lv 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: h 2 (0010000) = 00 < 1 h 3 (0010000) = 001 Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 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 (K 1,K 1 ) auf Seitenanführer, nächste Indexeintrag (K 2,K 2 ) Datensatz mit Zugriffsattributwert K? mit K 1 < K? < K 2 ist auf Seite von K 1 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

Verbundattribut: Cluster-Schlüssel Cluster für Verbundanfragen Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 3: Dateiorganisation und Zugriffsstrukturen 62

Oracle-Notation: Definition von Clustern 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

Kompression Spaltenorientierte DBMS: Konzepte (1) 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 Q 1,..., Q m Indexkandidaten I 1,..., I n mit Größe und Verwaltungskosten Profit von I i bzgl. Q k Aufgabe: Finde Indexkonfiguration C { I 1,..., I n } 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

Satzadressierung: TID-Konzept Dateiorganisation Zusammenfassung 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