31.01.2014 Aufrufe

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation und Zugriffsstrukturen

Dateiorganisation und Zugriffsstrukturen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

KAPITEL 3<br />

DATEIORGANISATION UND<br />

ZUGRIFFSSTRUKTUREN<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 1


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Inhalte des Kapitels<br />

• Seiten, Sätze <strong>und</strong> Adressierung<br />

• Klassifikation der Speichertechniken<br />

• Baumverfahren<br />

• Hash-Verfahren<br />

• Klassifikation von Zugriffspfaden<br />

• Cluster-Bildung<br />

• Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

Lernziele<br />

• Verstehen des internen Aufbaus von Seiten <strong>und</strong> Sätzen sowie deren<br />

Adressierung<br />

• Kenntnis der wichtigsten <strong>Dateiorganisation</strong>sformen <strong>und</strong> Arten von<br />

Zugriffspfaden wann sollte welche Art verwendet werden?<br />

• Kennenlernen von Möglichkeiten zur physischen Datendefinition in konkreten<br />

relationalen DBMS<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 2


Einordnung in die 5-Schichten-Architektur<br />

Mengenorientierte Schnittstelle<br />

Datensystem<br />

Satzorientierte Schnittstelle<br />

Zugriffssystem<br />

Speichersystem<br />

Interne Satzschnittstelle<br />

Systempufferschnittstelle<br />

Pufferverwaltung<br />

Dateischnittstelle<br />

Betriebssystem<br />

Externspeicher<br />

Geräteschnittstelle<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 3


Einordnung in die 5-Schichten-Architektur<br />

• Speichersystem fordert über Systempufferschnittstelle Seiten an<br />

• interpretiert diese als interne Datensätze<br />

• interne Realisierung der logischen Datensätze mit Hilfe von Zeigern,<br />

speziellen Indexeinträgen <strong>und</strong> weiteren Hilfsstrukturen<br />

• Zugriffssystem abstrahiert von der konkreten Realisierung<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 4


Seitenzugriff als Flachenhals<br />

• Maß für die Geschwindigkeit von Datenbankoperationen:<br />

– Anzahl der Seitenzugriffe auf dem Sek<strong>und</strong>ärspeicher (wegen<br />

Zugriffslücke)<br />

– aber auch Hauptspeicheroperationen nicht beliebig<br />

vernachlässigbar<br />

Geschwindigkeit des Zugriffs abhängig von der Qualität des<br />

Zugriffspfades, d.h. der Anzahl der benötigten Seitenzugriffe<br />

Seitenzugriff als Flaschenhals ist wichtige Randbedingung für die<br />

Implementierung aller darüber liegenden Strukturen <strong>und</strong> Schichten!<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 5


Seiten, Sätze, Adressierung<br />

• Struktur der Seiten: doppelt verkettete Liste<br />

• Header, u.a.<br />

– Informationen über Vorgänger- <strong>und</strong> Nachfolger-Seite<br />

– Informationen über Typ der Sätze<br />

– Zeitstempel (für Recovery)<br />

– Angabe über freien Platz<br />

• Adressierung eines Satzes:<br />

– Beispielsweise durch Seitennummer <strong>und</strong> Offset (relative Adresse in Bytes<br />

vom Seitenanfang) - Beispiel: (115, 142)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 6


Einpassen von Datensätzen in Seiten<br />

• Nichtspannsätze: jeder Datensatz in maximal einer Seite<br />

• Spannsätze: Datensatz eventuell in mehreren Seiten<br />

• Standard: Nichtspannsätze (nur im Falle von BLOBs oder CLOBs Spannsätze<br />

üblich)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 7


Speichervarianten für Sätze variabler Länge<br />

n 1<br />

• Vorteil Strategie b): leichtere Navigation innerhalb des Satzes<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 8


TID-Konzept: Motivation<br />

• Bisher: Adressierung eines Satzes durch Seitennummer <strong>und</strong> Offset,<br />

wobei der Offset die relative Adresse in Bytes vom Seitenanfang ist –<br />

z.B. (115, 142)<br />

• Diese Adresse wird in Verweisen von außen, z.B. in Index-Einträgen etc.<br />

verwendet.<br />

• Was passiert beim Verschieben eines Satz?<br />

Konzept notwendig, welches beim Verschieben eines Satzes innerhalb<br />

der Seite nicht zum Anpassen der Verweise führt.<br />

Tupel Identifier (TID) (oft auch als Record Identifier (RID) bezeichnet)<br />

in relationalen Datenbanksystemen heute Stand der Technik<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 9


TID-Konzept – 1(3)<br />

• Tupel-Identifier (TID) ist Datensatz-Adresse bestehend aus Seitennummer <strong>und</strong><br />

Offset<br />

• Offset verweist innerhalb der Seite bei einem Offset-Wert von i auf den i-ten<br />

Eintrag in einer Liste von Tupel-Zeigern, die am Anfang der Seite stehen<br />

• Jeder Tupel-Zeiger enthält Offsetwert innerhalb der Seite<br />

Verschiebung auf der Seite: sämtliche Verweise von außen bleiben<br />

unverändert<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 10


TID-Konzept – 2(3)<br />

• Verschiebungen auf eine andere Seite: statt altem Datensatz neuer TID-Zeiger<br />

• mehrstufige Referenz (> 2) aus Effizienzgründen nicht wünschenswert -<br />

Lösungsvariante?<br />

• außerdem: Reorganisation in regelmäßigen Abständen<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 11


TID-Konzept – 3(3)<br />

• Alternative: fester, logischer TID – in der Literatur auch Data Base Key genannt<br />

bzw. im objektobjektorientierten <strong>und</strong> objektrelationalem Kontext: Object<br />

Identifier (OID)<br />

– Zuordnungstabelle mit OID <strong>und</strong> phys. Adresse (Page Pointer PP)<br />

– in Indexen etc. wird OID verwendet<br />

keine Änderungen in Indexen bei Verschieben des Datensatzes notwendig<br />

aber: immer 2 Seitenzugriffe <br />

außerdem: Hotspot beim Locking<br />

Modifikation: Verwenden eines Probable Page Pointer (PPP)<br />

– in Indexen etc. wird sowohl die OID als auch der PPP gespeichert<br />

– Bei Änderungen (erstmal) nur Anpassung des PP in Zuordnungstabelle<br />

(nicht PPP in Indexen)<br />

– Zugriff: normalerweise über PPP (nur 1 Seitenzugriff)<br />

– falls Datensatz an Position des PPP nicht gef<strong>und</strong>en wird → „langer“ Weg<br />

über OID <strong>und</strong> PP (3 Seitenzugriffe) – außerdem Anpassung PPP<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 12


Seitenstruktur in IBM DB2<br />

• Datensatzadressen als<br />

relative Byteadresse<br />

auf der jeweiligen<br />

Seite<br />

• Gelöschte Datensätze<br />

werden durch -1<br />

repräsentiert<br />

• Freispeicher: nur der<br />

zusammenhängende<br />

Bereich nach dem<br />

Satzverzeichnis<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 13


Oracle: Seitenaufbau <strong>und</strong> Parameter<br />

• Mit den Parametern pctfree <strong>und</strong> pctused kann die<br />

Speicherplatzausnutzung in den Seiten (Database Block) beeinflusst werden<br />

Auswirkungen auf die Performance von Änderungsoperationen<br />

Quelle: Oracle Database Administrator's Guide 10g:2004<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 14


Oracle: Storage Parameter<br />

• Weitere Storage Parameter für Oracle-Tabellen:<br />

create table tabelle ( ...)<br />

pctfree 20 pctused 40<br />

storage (<br />

initial 10MB, next 2MB,<br />

minextents 1, maxextents 20,<br />

pctincrease 0, freelists 3 )<br />

tablespace USER_TBLSPACE;<br />

• pctfree: Seitenanteil, der nicht für insert-Operationen genutzt werden<br />

soll (Reservebereich für update); Default 10<br />

• pctused: Grenze, bei der eine zuvor bis zu pctfree gefüllte Seite wieder<br />

für insert genutzt werden darf; Default 40<br />

• freelists: Anzahl der Freispeicherlisten (insb. für paralleles Einfügen)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 15


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Seiten, Sätze <strong>und</strong> Adressierung<br />

• Klassifikation der Speichertechniken<br />

• Baumverfahren<br />

• Hash-Verfahren<br />

• Klassifikation von Zugriffspfaden<br />

• Cluster-Bildung<br />

• Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 16


Speichertechniken<br />

• Motivation: Ablage von Datensätzen in Seiten<br />

– technische Sicht (wie): voriger Abschnitt<br />

– Zuordnung (welche Datensätze in welchen Seiten) noch nicht<br />

diskutiert – ist aber entscheidend für die Effizienz des Zugriffs!<br />

(Stichwort: Seitenzugriff als Flaschenhals)<br />

– außerdem: zusätzliche Strukturen (Indexdateien, Zugriffspfade) für<br />

effizienten Zugriff<br />

• Speichertechniken (insbesondere Zugriffspfade) waren <strong>und</strong> sind eines<br />

DER Themen in der Datenbankforschung <strong>und</strong> -literatur, da ihre<br />

effiziente Umsetzung – abhängig vom jeweiligen Anwendungskontext –<br />

einer der entscheidenden Faktoren für die Datenbank-Performance ist.<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 17


• Kriterien<br />

Klassifikation der Speichertechniken<br />

– wird interne Relation selbst organisiert (<strong>Dateiorganisation</strong>sform)<br />

oder zusätzliche Zugriffsmöglichkeit auf bestehende interne<br />

Relation realisiert (Zugriffspfad)<br />

– Art der Zuordnung von gegebenen Attributwerten zu Datensatz-<br />

Adressen<br />

– Arten von Anfragen, die durch <strong>Dateiorganisation</strong>sformen <strong>und</strong><br />

Zugriffspfade effizient unterstützt werden können<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 18


Anforderungen an Speichertechniken<br />

• dynamisches Verhalten<br />

• Effizienz beim Einzelzugriff (Schlüsselsuche beim Primärindex)<br />

• Effizienz beim Mehrfachzugriff (Schlüsselsuche beim Sek<strong>und</strong>ärindex)<br />

• Ausnutzung für sequentiellen Durchlauf (Sortierung, geclusterter Index)<br />

• Clustering<br />

• Anfragetypen: exact-match, partial-match, range queries<br />

(Bereichsanfragen)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 19


<strong>Dateiorganisation</strong> vs. Zugriffspfad<br />

• <strong>Dateiorganisation</strong>sform: Form der Speicherung der internen Relation<br />

– unsortierte Speicherung von internen Tupeln: Heap-Organisation<br />

– sortierte Speicherung von internen Tupeln: sequenzielle<br />

Organisation<br />

– gestreute Speicherung von internen Tupeln: Hash-Organisation<br />

– (Speicherung von internen Tupeln in mehrdimensionalen Räumen:<br />

mehrdimensionale <strong>Dateiorganisation</strong>sformen)<br />

• üblich: zusätzliche sortierter Zugriffspfad über Primärschlüssel<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 20


<strong>Dateiorganisation</strong> vs. Zugriffspfad<br />

• Zugriffspfad: über gr<strong>und</strong>legende <strong>Dateiorganisation</strong>sform<br />

hinausgehende Zugriffsstruktur, etwa Indexdatei mit Einträgen (K, K↑):<br />

• K: Suchschlüssel, genauer: Zugriffsattribute <strong>und</strong> Zugriffsattributwerte<br />

• K↑:<br />

– ist Datensatz selbst Zugriffspfad wird <strong>Dateiorganisation</strong>sform<br />

– ist Adresse genau eines internen Tupels Primärschlüssel<br />

– ist Liste von Tupeladressen Sek<strong>und</strong>ärschlüssel<br />

mit (K, K↑ 1 ), ... , (K, K↑ n ) für denselben Zugriffsattributwert<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 21


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Seiten, Sätze <strong>und</strong> Adressierung<br />

Klassifikation der Speichertechniken<br />

• Baumverfahren<br />

• Hash-Verfahren<br />

• Klassifikation von Zugriffspfaden<br />

• Cluster-Bildung<br />

• Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 22


Wiederholung<br />

DB (Bachelor)<br />

Baumverfahren<br />

• Stufenanzahl dynamisch verändern<br />

• wichtigste Baumverfahren: B-Bäume <strong>und</strong> ihre Varianten<br />

• B-Baum-Varianten sind allgegenwärtig in heutigen Datenbanksystemen<br />

(egal ob relational, objektrelational, objektorientiert, …)<br />

B-Bäume<br />

• ausgeglichener, balancierter Suchbaum<br />

• Ausgeglichen oder balanciert: alle Pfade von der Wurzel zu den Blättern<br />

des Baumes gleich lang<br />

• Hauptspeicher-Implementierungsstruktur: binäre Suchbäume,<br />

beispielsweise AVL-Bäume von Adelson-Velskii <strong>und</strong> Landis<br />

• Datenbankbereich: Knoten der Suchbäume zugeschnitten auf<br />

Seitenstruktur des Datenbanksystems<br />

• mehrere Zugriffsattributwerte auf einer Seite = Mehrwegbäume<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 23


Wiederholung<br />

DB (Bachelor)<br />

Prinzip des B-Baumes<br />

• B-Baum von Bayer (B für balanciert, breit, Bayer, NICHT: binär)<br />

• dynamischer, balancierter Indexbaum, bei dem jeder Indexeintrag auf eine<br />

Seite der Hauptdatei zeigt<br />

• Mehrwegbaum völlig ausgeglichen, wenn<br />

– 1. alle Wege von Wurzel bis zu Blättern gleich lang<br />

– 2. jeder Knoten gleich viele Indexeinträge<br />

• vollständiges Ausgleichen zu teuer, deshalb B-Baum-Kriterium:<br />

– Jede Seite außer der Wurzelseite enthält zwischen m <strong>und</strong> 2m Einträge.<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 24


Wiederholung<br />

DB (Bachelor)<br />

Seitenformat des B-Baums<br />

• Seitenformat:<br />

Z 0 S 1 Z 1 D 1 S 2 Z D 2 S … S m Z D<br />

2<br />

3<br />

m<br />

m<br />

frei<br />

Z i = Zeiger auf Seite der nächsten Stufe<br />

S i = Schlüssel (Zugriffsattributwert)<br />

D i = Daten des Satzes oder Verweis auf den Satz (bzw. die Sätze)<br />

d.h. materialisiert oder referenziert<br />

• B-Baum als Primär- <strong>und</strong> Sek<strong>und</strong>ärindex geeignet<br />

• Datensätze direkt in die Indexseiten <strong>Dateiorganisation</strong>sform<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 25


Wiederholung<br />

DB (Bachelor)<br />

Definition B-Baum<br />

• Ordnung eines B-Baumes ist minimale Anzahl der Einträge auf den<br />

Indexseiten außer der Wurzelseite<br />

• Bsp.: B-Baum der Ordnung 8 faßt auf jeder inneren Indexseite zwischen<br />

8 <strong>und</strong> 16 Einträgen<br />

• Def.: Ein Indexbaum ist ein B-Baum der Ordnung m, wenn er die<br />

folgenden Eigenschaften erfüllt:<br />

1. Jede Seite, außer der Wurzelseite, enthält mindestens m Elemente.<br />

Jede Seite enthält höchstens 2m Elemente.<br />

2. Alle Blattseiten liegen auf der gleichen Stufe.<br />

3. Die Elemente werden in allen Seiten sortiert gespeichert. Jede<br />

Seite ist entweder eine Blattseite ohne Nachfolger oder<br />

hat i + 1 Nachfolger, falls i die Anzahl ihrer Elemente ist.<br />

4. Für einen Element E i gilt, dass die Werte zwischen E i-1 <strong>und</strong> E i im<br />

linken Teilbaum <strong>und</strong> die Werte zwischen E i <strong>und</strong> E i+1 im rechten<br />

Teilbaum gespeichert werden.<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 26


Wiederholung<br />

DB (Bachelor)<br />

Suchen in B-Bäumen<br />

lookup<br />

• startend auf Wurzelseite Eintrag im B-Baum ermitteln, der den<br />

gesuchten Zugriffsattributwert w überdeckt Zeiger verfolgen, Seite<br />

nächster Stufe laden<br />

• Beispiel: Suchen: 38, 20, 6<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 27


Wiederholung<br />

DB (Bachelor)<br />

Einfügen in B-Bäumen<br />

• Beispiel (m = 1)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 28


Wiederholung<br />

DB (Bachelor)<br />

Einfügen in B-Bäumen<br />

• Beispiel (Fortsetzung)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 29


Wiederholung<br />

DB (Bachelor)<br />

Einfügen in B-Bäumen<br />

insert: Einfügen eines Wertes w<br />

• mit lookup entsprechende Blattseite suchen<br />

– passende Seite n < 2m Elemente w einsortieren<br />

– passende Seite n = 2m Elemente neue Seite erzeugen,<br />

ersten m Werte auf Originalseite<br />

letzten m Werte auf neue Seite<br />

mittleres Element auf entsprechende Indexseite nach oben<br />

– ggf. diesen Prozess rekursiv bis zur Wurzel wiederholen<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 30


Wiederholung<br />

DB (Bachelor)<br />

Löschen in B-Bäumen<br />

bei weniger als m Elementen auf Seite: Unterlauf<br />

delete: Löschen eines Wertes w<br />

• mit lookup entsprechende Seite suchen<br />

– w auf Blattseite gespeichert Wert löschen; ggf. Unterlauf behandeln<br />

– w nicht auf Blattseite gespeichert Wert löschen, durch lexikographisch<br />

nächstkleineres Element von einer Blattseite ersetzen; ggf. Unterlauf auf<br />

Blattseite behandeln<br />

• Unterlaufbehandlung<br />

– Ausgleichen mit der benachbarten Seite (benachbarte Seite n Elemente<br />

mit n > m)<br />

– oder Zusammenlegen zweier Seiten zu einer (Nachbarseite n = m<br />

Elemente), das „mittlere“ Element von Indexseite darüber dazu; auf<br />

Indexseite ggf.Unterlauf behandeln<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 31


Wiederholung<br />

DB (Bachelor)<br />

Löschen in B-Bäumen<br />

• Beispiel (m = 2) : Löschen von 22<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 32


B-Bäume: Komplexität der Operationen<br />

• n Datensätze in der Hauptdatei<br />

Aufwand beim Einfügen, Suchen <strong>und</strong> Löschen im B-Baum immer<br />

O(log m (n)) Operationen<br />

• Konkretes Beispiel:<br />

– Seiten der Größe 4 KB, Zugriffsattributwert 32 Bytes, 8-Byte-Zeiger<br />

zwischen 50 <strong>und</strong> 100 Indexeinträge pro Seite<br />

Ordnung dieses B-Baumes 50<br />

– 1.000.000 Datensätze<br />

log 50 (1.000.000) = 4 Seitenzugriffe im schlechtesten Fall<br />

– Wurzelseite jedes B-Baumes normalerweise im Puffer<br />

3 Seitenzugriffe<br />

– Wieviel Seitenzugriffe würde der Zugriff ohne Index benötigen?<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 33


Varianten<br />

• B + -Bäume: Daten nur auf den Blattseiten<br />

• B*-Bäume: Aufteilen von Seiten vermeiden durch „Shuffle“<br />

• Präfix-B-Bäume: Zeichenketten als Zugriffsattributwerte, nur Präfix<br />

indexieren<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 34


B + -Baum: Prinzip<br />

• in der Praxis am häufigsten eingesetzte Variante des B-Baumes:<br />

effizientere Änderungsoperationen, Verringerung der Baumhöhe<br />

• Daten nur auf den Blattseiten – innere Knoten enthalten nur Schlüssel<br />

<strong>und</strong> Zeiger auf nachfolgenden Seite der nächsten Stufe:<br />

• Seitenformat innere Knoten:<br />

Z 0 S 1 Z 1 S 2 Z 2 S 3 … S m Z m<br />

frei<br />

Z i = Zeiger auf Seite der nächsten Stufe<br />

S i = Schlüssel<br />

• Seitenformat Blattknoten:<br />

V S 1 D 1 S 2 D 2 S … S m D frei 3 m<br />

N<br />

S i = Schlüssel<br />

D i = Daten des Satzes oder Verweis auf den Satz<br />

V = Vorgänger-Zeiger N = Nachfolger-Zeiger<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 35


Beispiel: B-Baum vs. B + -Baum<br />

13 Schulz …<br />

14 Meier …<br />

• keine Daten in den inneren Knoten<br />

es passen mehr Einträge auf eine Seite<br />

Reduktion der Höhe des Baumes<br />

weniger Seitenzugriffe bei lookup, insert, delete (aber jetzt immer log m (n))<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 36


Variante des B + -Baum<br />

• Speicherung der Datensätze(!) in den Blattseiten<br />

schnelle fortlaufende Verarbeitung aller Datensätze in auf- oder<br />

absteigender Sortierreihenfolge!<br />

Verschmelzen von Zugriffsstruktur <strong>und</strong> <strong>Dateiorganisation</strong><br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 37


B*-Baum<br />

• Problem beim B-Baum bzw. B + -Baum: häufiges Aufspalten von Seiten<br />

<strong>und</strong> geringe Speicherplatzausnutzung von nahe 50%<br />

• B*-Baum:<br />

– statt Aufteilen von Seiten bei Überlauf zunächst Neuverteilen der<br />

Datensätze auf eventuell nicht voll ausgelastete Nachbarseiten<br />

– falls nicht möglich: zwei Seiten in drei aufteilen ohne Verschiebung<br />

eines Elements nach oben (ermöglicht durchschnittliche<br />

Speicherplatzausnutzung von 66% statt 50%)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 38


Speicherbedarf für B-Baum<br />

• Wie kann der maximale Speicheraufwand für einen B-Baum<br />

abgeschätzt werden?<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 39


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Seiten, Sätze <strong>und</strong> Adressierung<br />

Klassifikation der Speichertechniken<br />

Baumverfahren<br />

• Hash-Verfahren<br />

• Klassifikation von Zugriffspfaden<br />

• Cluster-Bildung<br />

• Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 40


Hash-Verfahren: Gr<strong>und</strong>prinzip<br />

• Basis-Hash-Funktion: h(k) = k mod m mit m möglichst Primzahl<br />

• Überlauf-Behandlung<br />

– Überlaufseiten als verkettete Liste<br />

– lineares Sondieren h i (k) = (h(k) + i) mod m<br />

– quadratisches Sondieren h i (k) = (h(k)+ i 2 ) mod m<br />

– doppeltes Hashen h i (k) = (h(k) + h'(k)*i) mod m<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 41


Hash-Verfahren für Datenbanken<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 42


Operationen <strong>und</strong> Zeitkomplexität<br />

• lookup, modify, insert, delete<br />

– lookup benötigt maximal 1 + #B(h(w)) Seitenzugriffe<br />

mit #B(h(w)) Anzahl der Seiten (inklusive der Überlaufseiten) des<br />

Buckets für Hash-Wert h(w)<br />

– Untere Schranke 2 (Zugriff auf Hash-Verzeichnis plus Zugriff auf<br />

erste Seite)<br />

– Zeitschranke für modify, insert <strong>und</strong> delete?<br />

sehr effizient für Suche einzelner Werte (konstante Zugriffskosten - bei<br />

ausreichendem Speicherplatz <strong>und</strong> gut streuender Hash-Funktion<br />

2 Zugriffe!)<br />

• Bereichsanfragen?<br />

• sortierte Ausgabe von Datensätzen?<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 43


Probleme bei statischen Hash-Verfahren<br />

• Hash-Funktion bildet die Schlüsselwerte auf einen festen Bildbereich ab<br />

• Was passiert, wenn dieser erweitert werden muss?<br />

– neue Hash-Funktion<br />

– Reorganisation (Re-Hashing) aller Datensätze!<br />

Dynamisches Hashen<br />

– Idee: feste Hash-Funktion, aber dynamisch erweiterbarer<br />

Bildbereich<br />

– Verschiedene Realisierungsvarianten<br />

• Lineares Hashen<br />

• Erweiterbares Hashen<br />

• Spiral-Hashen<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 44


Prinzip lineares Hashen<br />

• Folge von Hash-Funktionen, die wie folgt charakterisiert sind:<br />

– h i : dom(Primärschlüssel) → { 0, . . . , 2 i × N }: eine Folge von Hash-<br />

Funktionen mit i ∈ { 0, 1, 2, . . .} <strong>und</strong> N als Anfangsgröße des Hash-<br />

Verzeichnisses<br />

– Wert von i: Level der Hash-Funktion<br />

• Für diese Hash-Funktionen gelten die folgenden Bedingungen:<br />

– h i+1 (w) = h i (w) für etwa die Hälfte aller w ∈ dom(Primärschlüssel)<br />

– h i+1 (w) = h i (w) + 2 i × N für die andere Hälfte<br />

– Bedingungen sind zum Beispiel erfüllt,<br />

wenn h i (w) als w mod (2 i × N) gewählt wird<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 45


Realisierung lineares Hashen<br />

• Zu einem Zeitpunkt: für ein w höchstens zwei Hash-Funktionen<br />

zuständig, deren Level nur um 1 differiert<br />

• Entscheidung zwischen diesen beiden durch Split-Zeiger<br />

– sp Split-Zeiger (gibt an, welche Seite als nächstes geteilt wird)<br />

– lv Level (gibt an, welche Hash-Funktionen benutzt werden)<br />

lookup:<br />

s := h lv (w);<br />

if s < sp then<br />

s := h lv+1 (w);<br />

• zuerst Hash-Wert mit der „kleineren“ Hash-Funktion bestimmen<br />

• liegt dieser unter dem Wert des Split-Zeigers größere Hash-Funktion<br />

verwenden<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 46


Beispiel für lineares Hashen<br />

0<br />

• Schlüsselwerte (zur Vereinfachung): Bitfolgen<br />

• Hash-Funktion: die ersten n Bits in umgekehrter Reihenfolge als Zahl,<br />

d.h. h 1 interpretiert die erste Zahl, h 2 die ersten beiden usw.<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 47


Splitten einer Seite<br />

1. Die Sätze der Seite (Bucket), auf die sp zeigt, werden mittels h lv+1 neu<br />

verteilt<br />

ca. die Hälfte der Sätze wird auf Seite (Bucket) unter Hash-Nummer<br />

2 lv × N + sp verschoben<br />

2. Der Split-Zeiger wird weitergesetzt: sp := sp + 1;<br />

3. Nach Abarbeiten eines Levels wird wieder bei Seite 0 begonnen; der<br />

Level wird um 1 erhöht<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 48


Beispiel für lineares Hashen<br />

Beispiel: h 2 (0010000) = 00 < 1 → h 3 (0010000) = 001<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 49


… nach Splitten einer Seite …<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 50


… nach Splitten zweier weiterer Seiten<br />

Nachteile des<br />

Verfahrens?<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 51


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Seiten, Sätze <strong>und</strong> Adressierung<br />

Klassifikation der Speichertechniken<br />

Baumverfahren<br />

Hash-Verfahren<br />

• Klassifikation von Zugriffspfaden<br />

• Cluster-Bildung<br />

• Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 52


Klassifikation von Zugriffspfaden<br />

Verschiedene (i.a. orthogonale) Möglichkeiten der Klassifikation:<br />

• dünnbesetzter vs. dichtbesetzter Index<br />

• geclusterter vs. nicht-geclusterter Index<br />

• Ein-Attribut vs. Mehr-Attribut-Index<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 53


Dünn- vs. dichtbesetzter Index<br />

• dünnbesetzter Index: nicht für jeden Zugriffsattributwert K ein Eintrag<br />

in Indexdatei<br />

– interne Relation sortiert nach Zugriffsattributen: im Index reicht ein<br />

Eintrag pro Seite Index verweist mit (K 1 ,K 1 ↑) auf Seitenanführer,<br />

nächste Indexeintrag (K 2 ,K 2 ↑)<br />

– Datensatz mit Zugriffsattributwert K ? mit K 1 < K ? < K 2 ist auf Seite<br />

von K 1 ↑ zu finden<br />

• dichtbesetzter Index: für jeden Datensatz der internen Relation ein<br />

Eintrag in Indexdatei<br />

indexsequenzielle Datei: sortierte Datei mit dünnbesetztem Index als<br />

Primärindex<br />

Primärindex muss dichtbesetzter Index sein, wenn<br />

<strong>Dateiorganisation</strong>sform Heap-Datei<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 54


Geclusterter vs. nicht-geclusterter Index – 1(2)<br />

• geclusterter Index: in der gleichen Form sortiert wie interne Relation<br />

– Bsp.: interne Relation KUNDEN nach K<strong>und</strong>ennummern sortiert <br />

Indexdatei über dem Attribut KNr üblicherweise geclustert<br />

• nicht-geclusterter Index: anders organisiert als interne Relation<br />

– Bsp.: über Name ein Sek<strong>und</strong>ärindex, Datei selbst nach KNr sortiert<br />

jeder dünnbesetzte Index ist auch geclusterter Index, aber nicht<br />

umgekehrt<br />

Sek<strong>und</strong>ärindex kann nur dichtbesetzter, nicht-geclusterter Index sein<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 55


Geclusterter vs. nicht-geclusterter Index – 2(2)<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 56


Ein-Attribut- vs. Mehr-Attribut-Index<br />

• Ein-Attribut-Index (non-composite index): Zugriffspfad über einem<br />

einzigen Zugriffsattribut<br />

• Mehr-Attribut-Index (composite index): Zugriffspfad über mehreren<br />

Attributen<br />

• Bsp.: Attribute Name <strong>und</strong> PLZ unterstützen<br />

– entweder zwei Ein-Attribut-Indexe<br />

– oder ein Zwei-Attribut-Index über beiden Attributen<br />

• Vorteil Mehr-Attribut-Index: bei exact-match nur ein Indexzugriff<br />

(weniger Seitenzugriffe)<br />

• Mehr-Attribut-Index: Ausführungsart bestimmt, ob neben exact-match<br />

auch noch partial-match effizient unterstützt wird (eindimensional<br />

oder mehrdimensional)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 57


Ein- vs. mehrdimensionale Zugriffsstruktur<br />

• Ein-Attribut-Index immer eindimensionale Zugriffsstruktur:<br />

(Zugriffsattributwerte definieren lineare Ordnung in eindimensionalem<br />

Raum)<br />

• Mehr-Attribut-Index ist eindimensionale oder mehrdimensionale<br />

Zugriffsstruktur:<br />

– eindimensionaler Fall: Kombinationen der verschiedenen<br />

Zugriffsattributwerte konkateniert als einen einzigen<br />

Zugriffsattributwert betrachten (wieder lineare Ordnung in<br />

eindimensionalem Raum) keine partial-match-Anfragen<br />

– mehrdimensionaler Fall: Menge der Zugriffsattributwerte spannt<br />

mehrdimensionalen Raum auf bei partial-match bestimmt<br />

horizontale oder vertikale Gerade im Raum die Treffermenge<br />

mehrdimensionale Bäume<br />

mehrdimensionale Hash-Verfahren<br />

Grid-Files<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 58


Weitere <strong>Zugriffsstrukturen</strong><br />

Spezifische Anforderungen für<br />

• Geometrische Strukturen in Geoinformationssystemen, CAD-Systemen etc.<br />

– mehrdimensionale Bäume (insbesondere Quadtrees, R-Bäume, Grid-Files)<br />

• Multimedia-Daten<br />

– mehrdimensionale Bäume, hochdimensionale Index für Feature-Vektoren<br />

• Objektstrukturen<br />

– hierarchische Indexe für Klassen- <strong>und</strong> Komponentenhierarchien<br />

• Information Retrieval<br />

– invertierte Listen, Signaturindexe<br />

• XML<br />

– Pfadindexe<br />

• Data Warehouse<br />

– Bitmap-Indexe, UB-Bäume<br />

• …<br />

Literatur (Überblick <strong>und</strong> weitere Referenzen):<br />

G. Saake, A. Heuer, <strong>und</strong> K. Sattler: Datenbanken: Implementierungstechniken.<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 59


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Seiten, Sätze <strong>und</strong> Adressierung<br />

Klassifikation der Speichertechniken<br />

Baumverfahren<br />

Hash-Verfahren<br />

Klassifikation von Zugriffspfaden<br />

• Cluster-Bildung<br />

• Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 60


Cluster-Bildung<br />

• Ziel: gemeinsame Speicherung von (zusammengehörigen) Datensätzen<br />

auf Seiten<br />

• wichtige Spezialfälle:<br />

– Clusterung nach Schlüsselattributen<br />

Bereichsanfragen <strong>und</strong> Gruppierungen unterstützen:<br />

Datensätze in der Sortierreihenfolge zusammenhängend auf Seiten<br />

speichern index-organisierte Tabellen<br />

– Clusterung basierend auf Fremdschlüsselattributen<br />

Gruppen von Datensätzen, die einen Attributwert gemeinsam<br />

haben, werden auf Seiten gemeinsam gespeichert<br />

(Verb<strong>und</strong>anfragen)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 61


• Verb<strong>und</strong>attribut:<br />

Cluster-Schlüssel<br />

Cluster für Verb<strong>und</strong>anfragen<br />

Quelle: Saake/Heuer/Sattler:2005<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 62


• Oracle-Notation:<br />

Definition von Clustern<br />

create cluster BESTELL_CLUSTER<br />

(BestellNr int)<br />

pctused 80 pctfree 5;<br />

create table BESTELLUNG (<br />

BestellNr int primary key, ...)<br />

cluster BESTELL_CLUSTER (BestellNr);<br />

create table BESTELL_POSITION (<br />

Position int,<br />

BestellNr int references BESTELLUNG,<br />

...<br />

constraint BestellPosKey primary key (Position, BestellNr)<br />

)<br />

cluster BESTELL_CLUSTER (BestellNr);<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 63


Organisation von Clustern<br />

• Indexierte Cluster nutzen einen in Sortierreihenfolge aufgebauten Index<br />

(z.B. B + -Baum) über den Cluster-Schlüssel zum Zugriff auf die Cluster<br />

– Speicherung von Cluster-Identifikatoren anstelle von TIDs<br />

create index BESTELL_CLUSTER_IDX<br />

on cluster BESTELL_CLUSTER;<br />

• Hash-Cluster bestimmen den passenden Cluster mit Hilfe einer<br />

Hashfunktion<br />

– Abbildung Cluster-Schlüssel → Blockadresse<br />

create cluster BESTELL_CLUSTER (BestellNr int)<br />

pctused 80<br />

pctfree 5<br />

size 2k<br />

hash is BestellNr<br />

hashkeys 100000;<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 64


Oracle: Datenorganisation <strong>und</strong> Zugriffspfade – 1(2)<br />

• Standardtabellen als Heap<br />

• Standard-Index: B+-Baum<br />

• Anlegen von index-organisierten Tabellen möglich: speichern Tupel<br />

direkt in den Blättern eines B+-Baums<br />

• Clusterung mehrerer Relationen möglich; Cluster-Indexe als B+-Baum<br />

oder als Hash-Index<br />

• Bitmap-Indexe für Data Warehouse<br />

• benutzerdefinierte funktions-basierte Indexe<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 65


Oracle: Datenorganisation <strong>und</strong> Zugriffspfade – 2(2)<br />

• Index-organisierte Tabelle<br />

create table tabelle ( ...)<br />

organization index<br />

tablespace USER_TBLSPACE,<br />

pctthreshold 20<br />

overflow tablespace OVER_TBLSPACE;<br />

– Ablage der Daten in den Blättern des B+-Baums<br />

– pctthreshold: Threshold für Speicherung von nicht-indexierten<br />

Attributen im Überlaufbereich (Wert: 1-50 – Prozentsatz der<br />

Blockgröße)<br />

– optional including: Festlegung der im Index aufzunehmenden<br />

Attribute (alle weiteren → Überlaufbereich)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 66


DB2: Datenorganisation <strong>und</strong> Zugriffspfade<br />

• Standardtabellen als Heap<br />

• Append-Mode-Tabellen, die für insert-Operationen optimiert sind<br />

(Einfügen immer am Ende)<br />

• bereichsgeclusterte Tabellen<br />

• Multidimensionale Clustering-Tabellen<br />

• Standard-Index: B+-Baum<br />

• auch geclusterte Indexe möglich:<br />

create index name<br />

on tabelle (attribut) cluster;<br />

• benutzerdefinierte funktions-basierte Indexe<br />

• …<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 67


Microsoft SQL Server:<br />

Datenorganisation <strong>und</strong> Zugriffspfade<br />

create [ unique ]<br />

[ clustered | nonclustered ] index name<br />

on table-name ( ...)<br />

[ with fillfactor = value, pad_index, ...]<br />

• nicht-geclusterter Index: nur Row-IDs in Blattseiten<br />

• geclusterter Index: Datensätze auf Blattseiten<br />

• fillfactor: frei zu haltender Platz für Blattseiten beim Aufbau (pad_index auch<br />

für mittlere Seiten)<br />

• weitere spezielle Indexstrukturen:<br />

– Indexe auf berechneten Spalten<br />

– indexierte Sichten (geclusterter Index auf Sicht) ≡ materialisierte Sicht<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 68


Trend<br />

Self-tuning DBMS: Indexempfehlungen<br />

Motivation<br />

• Indexe erhöhen die Performance beim Zugriff drastisch<br />

• aber: Indexverwaltung ist zusätzlicher Overhead<br />

Ziel<br />

• Basierend auf Workload-Auswertung Empfehlung geeigneter Indexe<br />

Herausforderungen<br />

• Wie ermittelt man, ob ein Index etwas bringt (bringen würde)?<br />

• Komplexität der Ermittlung<br />

– Menge von Anfragen Q 1 , ..., Q m<br />

– Indexkandidaten I 1 , ..., I n mit Größe <strong>und</strong> Verwaltungskosten<br />

– Profit von I i bzgl. Q k<br />

– Aufgabe: Finde Indexkonfiguration C ⊆ { I 1 , ..., I n }<br />

• die Größenbeschränkung einhält <strong>und</strong><br />

• Gesamtprofit (unter Berücksichtigung der Verwaltungskosten) maximiert<br />

Rucksack-Problem (knapsack) – Komplexität?<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 69


Trend<br />

Self-tuning DBMS: Indexempfehlungen<br />

Typische Vorgehensweise (in ähnlicher Form in den neuesten Versionen von DB2,<br />

Oracle, MS SQL Server implementiert)<br />

• Input: Workload<br />

– durch DBA vorgegebenes (gewichtetes) SQL-Statement-Profil<br />

– teilweise vom DBMS gesammelte Informationen über SQL-Statements<br />

• Verarbeitung<br />

– Durchrechnen verschiedener Konfigurationsvarianten mit Hilfe des<br />

Optimizers („what if“ Index)<br />

• Output: Vorschläge zum Anlegen bzw. Löschen von<br />

– Indexen<br />

– materialisierten Sichten<br />

– horizontalen Tabellenpartitionierung (siehe Kapitel 7)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 70


<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

Seiten, Sätze <strong>und</strong> Adressierung<br />

Klassifikation der Speichertechniken<br />

Baumverfahren<br />

Hash-Verfahren<br />

Klassifikation von Zugriffspfaden<br />

Cluster-Bildung<br />

Physische Datendefinition in relationalen DBMS<br />

• Spaltenorientierte Datenbanken<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 71


Trend<br />

Spaltenorientierte DBMS: Motivation<br />

• Charakteristika von Operationen in verschiedenen Anwendungsszenarien:<br />

• OLTP: Lese- <strong>und</strong> Schreiboperationen auf einzelnen Datensätzen<br />

– beim kompletten Lesen einer Tabelle werden viele nicht benötigte<br />

Datensätze gelesen<br />

– Optimierung des gezielten Zugriffs auf Datensätze mit Indexen<br />

• OLAP: Leseoperationen auf vielen Datensätzen (wobei i.a. nur einzelne<br />

Attribute relevant sind)<br />

– beim kompletten Lesen einer Tabelle werden viele nicht benötigte<br />

Attributwerte gelesen<br />

Optimierung durch viele Indexe (ggf. Index auf jedem Attribut)<br />

Alternative: vertikale Partitionierung (siehe Kapitel 7)<br />

Neuer Ansatz:<br />

Column-Oriented Database Systems (Spaltenorientierte DBMS)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 72


Trend<br />

Spaltenorientierte DBMS: Idee<br />

• F<strong>und</strong>amentale Veränderung der Art, wie Datensätze gespeichert werden:<br />

+ Einfaches Insert / Update + Nur Lesen relevanter Daten<br />

− Lesen nicht benötigter Daten + Bessere Kompressionsmöglichkeiten<br />

− Insert / Update aufwändig<br />

− Zusammenfügen versch. Daten aufwändig<br />

suitable for read-mostly, read-intensive, large data repositories<br />

Quelle: Harizopoulos/Abadi/Boncz: VLDB2009<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 73


Spaltenorientierte DBMS:<br />

Historie* <strong>und</strong> Literatur<br />

• Erste Papiere mit ähnlichen Ansätzen schon in den 70er Jahren<br />

• 1985: DSM-Paper: G. P. Copeland and S. Khoshafia: A decomposition storage<br />

model. SIGMOD Conference 1985<br />

• 1990er Jahre: Kommerzialisierung durch Sybase IQ<br />

• bis 2000: Überwiegend im Kontext von Main-Memory-Datenbanken erforscht<br />

<strong>und</strong> eingesetzt<br />

Trend<br />

• seit 2005: Wiedergeburt Lese-optimierter DBMS als Column Store mit<br />

Systemen wie C-Store, MonetDB/X100 etc.<br />

Wichtige Paper:<br />

– M. Stonebraker, D. J. Abadi, A. Batkin et al.: C-Store: A Column-oriented<br />

DBMS. VLDB 2005<br />

– D. J. Abadi, S. Madden, N. Hachem: Column-stores vs. row-stores: how<br />

different are they really? SIGMOD Conference 2008<br />

– D. J. Abadi, P. A. Boncz, S. Harizopoulos: Column-oriented Database<br />

Systems. VLDB Conference 2009<br />

– Weitere Paper zu vertiefenden Themen r<strong>und</strong> um Column-oriented<br />

Database Systems auf allen aktuellen DB-Konferenzen (BTW, SIGMOD,<br />

VLDB, EDBT)<br />

*Quelle: Harizopoulos/Abadi/Boncz: VLDB2009<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 74


Trend<br />

Spaltenorientierte DBMS: Konzepte (1)<br />

• Kompression<br />

– Spalten lassen sich besser komprimieren als Zeilen<br />

– Typische* Kompressionsraten: 1:3 für row-store, 1:10 für columnstore<br />

– Warum?<br />

– Diverse Kompressionsalgorithmen (Run-length Encoding, Bit-vector<br />

Encoding, Differenatial Encoding etc.)<br />

– Datenbankoperationen: so lange wie möglich auf komprimierten<br />

Daten arbeiten Anpassung der Implementierung der<br />

Datenbankoperationen notwendig bzw. Einführung neuer<br />

Operatoren<br />

*Quelle: Harizopoulos/Abadi/Boncz: VLDB2009<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 75


Trend<br />

Spaltenorientierte DBMS: Konzepte (2)<br />

• Leseoperationen<br />

– Wann werden Tuple „zusammengesetzt“?<br />

early materialization vs. late materialization<br />

(nahezu) alle Datenbankoperationen müssen angepasst werden<br />

bzw. neue Operatoren eingeführt werden<br />

• Änderungsoperationen (insert / delete)<br />

– Problem?<br />

• I/O für jede Spalte<br />

• Re-Komprimierung<br />

Kein update-in-place sondern differential lists mit regelmäßigen<br />

merge-Operationen<br />

Anpassung der Lese- <strong>und</strong> Schreiboperatoren!<br />

Anpassung des Transaktionskonzepts!<br />

Vertiefung dieser Themen in Vorlesung „Big Data Technologien“<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 76


Trend<br />

Spaltenorientierte DBMS: Systeme<br />

Kommerziell<br />

• Sybase IQ<br />

• Vertica<br />

• VectorWise<br />

• 1010data<br />

• ParAccel<br />

• Infobright<br />

• IBM Informix Warehouse Accelarator<br />

• Exasol<br />

• SAP HANA<br />

• ….<br />

Open Source<br />

• MonetDB<br />

• Infobright<br />

• (C-Store)<br />

• …<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 77


Trend<br />

Spaltenorientierte DBMS: Alternativen<br />

• Alternativen bzw. Simulation des Column-Store in einem Row-based<br />

Datenbankmanagementsystem:<br />

Quelle: Harizopoulos/Abadi/Boncz: VLDB2009<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 78


Trend<br />

Spaltenorientierte DBMS: Alternativen<br />

• SSBM (Star Schema Benchmark): sehr verbreiteter Data Warehouse<br />

Benchmark (basiert auf TPC-H Benchmark Datenmodell)<br />

Quelle: Abadi: 2008<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 79


Trend<br />

Spaltenorientierte DBMS: Trend<br />

• Hybride Column-Row-Systeme<br />

– Row-Store-Systeme um Vorteile eines Column-Stores anreichern?<br />

• Oracle: erste Ansätze in Oracle 11g Release 2 auf Exadata Systemen<br />

(Appliance) hybrid columnar compression<br />

• MS SQL Server (Projekt Apollo, BTW 2013)<br />

– MS SQL Server 2012: neuer Indextype: COLUMNSTORE<br />

» Secondary index only, not updateable<br />

– MS SQL Server vNext<br />

» Updateable column store index<br />

» Can be used as base storage (clustered index)<br />

• SAP HANA (Appliance): Row-Store <strong>und</strong> Column-Store<br />

• IBM Smart Analytics Optimizer<br />

– Column-Store-Systemen Eigenschaften von Row-Store-Systemen<br />

hinzufügen?<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 80


• Satzadressierung: TID-Konzept<br />

• <strong>Dateiorganisation</strong><br />

Zusammenfassung<br />

– Heap-Speicherung als Standard<br />

– indexsequenzielle Organisation<br />

– Clusterbildung<br />

• Zugriffspfade<br />

– B-Baum <strong>und</strong> Varianten<br />

– Hash-Verfahren, insbesondere dynamische Hash-Verfahren<br />

• Aktuelle Entwicklung für lese-intensive Anwendungen mit sehr großen<br />

Datenmengen: Spaltenorientierte DBMS (Column-oriented Database<br />

Systems)<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 81


Architektur von Datenbanksystemen<br />

Architektur von Datenbanksystemen<br />

Verwaltung des Hintergr<strong>und</strong>speichers<br />

<strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong><br />

• Basisalgorithmen für Datenbank-Operationen<br />

• Anfrageoptimierung<br />

• Transaktionsverwaltung <strong>und</strong> Recovery<br />

• Verteilte Datenbankarchitekturen<br />

• Aktuelle Entwicklungen<br />

h_da Prof. Dr. Uta Störl Architektur von DBMS SoSe 2013 Kapitel 3: <strong>Dateiorganisation</strong> <strong>und</strong> <strong>Zugriffsstrukturen</strong> 82

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!