Dateiorganisation und Zugriffsstrukturen
Dateiorganisation und Zugriffsstrukturen
Dateiorganisation und Zugriffsstrukturen
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