8. Physischer Datenbankentwurf Kapitel 8: Physischer Datenbankentwurf I I Speicherung und Verwaltung der Relationen einer relationalen Datenbank so, dass eine möglichst große Effizienz der einzelnen Anwendungen auf der Datenbank ermöglicht wird. Vor dem Hintergrund eines logischen Schemas und den Anforderungen der geplanten Anwendungen wird ein geeignetes physisches Schema definiert. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 1 8. Physischer Datenbankentwurf 8.1. Grundlagen 8.1 Grundlagen Begriffe I I I I physische Datenbank: Menge von Dateien, Datei: Menge von gleichartigen Sätzen, Satz: In ein oder mehrere Felder unterteilter Speicherbereich. relationale Datenbanken: Relationen, Tupel und Attribute. Indexstrukturen Hilfsstrukturen zur Gewährleistung eines effizienten Zugriffs zu den Daten einer physischen Datenbank. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 2 8. Physischer Datenbankentwurf 8.1. Grundlagen Zugriffseinheiten I I I I Seiten, oder auch Blöcke, ein Block besteht aus einer Reihe aufeinander folgender Seiten, eine Seite enthält in der Regel mehrere Tupel. Typischerweise hat eine Seite eine Größe von 4KB bis 8KB und ein Block eine Größe von bis zu 32KB. Speicherhierarchie I I I Primärspeicher (interner Speicher) bestehend aus Cache und einem in Seitenrahmen unterteilten Hauptspeicher. Direkter Zugriff im Nanosekundenbereich. Sekundärspeicher (externer Speicher), typischerweise in Seiten unterteilter externer Plattenpeicher. Direkter Zugriff im Millisekundenbereich. Tertiärspeicher (Archiv): kein direkter Zugriff möglich. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 3 8. Physischer Datenbankentwurf 8.1. Grundlagen Pufferverwaltung I I I I I I Anzahl benötigter Seiten einer Datenbank typischerweise erheblich größer, als die Anzahl zur Verfügung stehenden Seitenrahmen. Datenbankpuffer: im Hauptspeicher für die Datenbank verfügbaren Seitenrahmen. =⇒ Pufferverwaltung: für angeforderte Seiten der Datenbank muss ein Seitenrahmen im Puffer gefunden werden; sonst Seitenfehler. Wann kann der Inhalt eines Rahmens durch eine neue Seite ersetzt werden? Es ist aus Effizienzgründen häufig sinnvoll, geänderte Seiten nicht direkt in die Datenbank zurück zuschreiben, bzw. ein Prefetching der Seiten vorzunehmen. Eine Änderung heißt materialisiert, wenn die entsprechende Seite in den externen Speicher der Datenbank zurückgeschrieben ist. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 4 8. Physischer Datenbankentwurf 8.1. Grundlagen Adressierung I I I I I Tupelidentifikatoren der Form Tid = (b, s), wobei b eine Seitenummer und s eine Tupelnummer innerhalb der Seite b. Mittels eines in der betreffenden Seite abgelegten Adressbuchs (Directory) kann in Abhängigkeit des Wertes s die physische Adresse des Tupels in der Seite gefunden werden. Tupel sind lediglich in ihrer Seite frei verschiebbar. Verschiebbarkeit über Seitengrenzen mittels Verweisketten. Tupel mit variabel langen Attributwerten verlangen Längenzähler, bzw. eine Zeigerliste. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 5 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen 8.2 Dateiorganisationsformen und Indexstrukturen Zugriffsarten I I I I I Durchsuchen (scan) einer gesamten Relation. Suchen (search). Lesen derjenigen Tupel, die eine über ihren Attributen formulierte Bedingung erfüllen. Bereichssuchen (range search): in den Bedingungen über den Attributen stehen nicht ausschließlich Gleichheitsoperatoren, sondern beliebige andere arithmetische Vergleichsoperatoren. Einfügen (insert) eines Tupels in eine Seite. Löschen (delete) eines Tupels in einer Seite. Ändern (update) der Inhalt eines Tupels einer Seite. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 6 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen Haufenorganisation I I I Zufällige Anordnung der Tupel in den Seiten. Suchen eines Tupels benötigt im Mittel n2 Seitenzugriffe. Einfügen eines Tupels benötigt 2 Seitenzugriffe. Was gilt für den Aufwand für das Löschen und Ändern eines Tupels? Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 7 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen Suchbaum I I I Die Tupel sind nach dem Suchschlüssel sortiert. Suchen eines Tupels benötigt eine logarithmische Anzahl Seitenzugriffe. Einfügen eines Tupels: s. später. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 8 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen Hashverfahren I I I Mittels einer Hashfunktion wird einem Suchschlüsselwert eine Seitennummer zugeordnet. Suchen eines Tupels benötigt in der Regel ein bis zwei Seitenzugriffe. Einfügen? Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 9 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen Primär- und Sekundärindex I I Ein Suchschlüssel ist die einem Index zugrunde liegende Attributkombination. Bei einem Primärindex ist der Primärschlüssel der Relation im Suchschlüssel enthalten. Sekundärindex anderenfalls. Ein Suchschlüsselwert identifiziert i.A. eine Menge von Tupeln. Zu einer Relation existieren typischerweise mehrere Indexstrukturen über jeweils unterschiedlichen Suchschlüsseln. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 10 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen Seite 11 Beispiel (Africa, ET) (1, 2) (Asia, ET) (F) D Europe 100 (1) ET Africa 90 ET Asia 10 F Europe 100 (TR) (1, 3) (Asia, RU) (2, 1) (Asia, TR) (2, 3) (2) ... spärlicher Index (Europe, D) (1, 1) RU Asia 80 RU Europe 20 TR Asia 68 TR Europe 32 (Europe, F) (1, 4) (Europe, RU) (2, 2) (Europe, TR) (2, 4) Seiten der Relation ... dichter Index ... Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 8. Physischer Datenbankentwurf 8.2. Dateiorganisationsformen und Indexstrukturen weitere Indexformen I I I I I geballt: logisch zusammengehörende Tupel sind auch physisch benachbart gespeichert. Vorteile? dicht: pro Suchschlüsselwert der Tupel der betreffenden Relation einen Verweis, spärlich: pro Intervall von Suchschlüsselwerten einen Verweis. Eine Relation heißt invertiert bzgl. einem Attribut, wenn ein dichter Sekundärindex zu diesem Attribut existiert, sie heißt voll invertiert, wenn zu jedem Attribut ein dichter Sekundärindex existiert. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 12 8. Physischer Datenbankentwurf 8.3. Baum-Indexstrukturen Seite 13 8.3 Baum-Indexstrukturen B-Baum der Ordnung (m, l); m > 3, l ≥ 1 und m gerade. I Die Wurzel ist entweder ein Blatt oder hat mindestens zwei direkte Nachfolger. I Jeder innere Knoten außer der Wurzel hat mindestens direkte Nachfolger. I Die Länge des Pfades von der Wurzel zu einem Blatt ist für alle Blätter gleich. I Die inneren Knoten haben die Form (p0 , k1 , p1 , k2 , p2 , . . . , kn , pn ), wobei m ≤ n ≤ m − 1. Es gilt: 2 I I I I m 2 und höchstens m pi ist ein Zeiger auf den i + 1-ten direkten Nachfolger und jedes ki ist ein Suchschlüsselwert, 0 ≤ i ≤ n. Die Suchschlüsselwerte sind geordnet, d.h. ki < kj , für 1 ≤ i < j ≤ n. Alle Suchschlüsselwerte im linken (rechten) Teilbaum von ki sind kleiner (größer oder gleich) als der Wert von ki , 1 ≤ i ≤ n. Die Blätter haben die Form (k1∗ , k2∗ , . . . , kg∗ ), wobei g ≤ l und ki∗ das Tupel mit Suchschlüsselwert ki . Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 8. Physischer Datenbankentwurf 8.3. Baum-Indexstrukturen Seite 14 Beispiel RU ET F (D,Europe,100) TR (TR,Asia,68) (TR,Europe,32) (ET,Africa,90) (ET,Asia,10) (RU,Asia,80) (RU,Europe,20) (F,Europe,100) Eigenschaften I I dlogm Ne ≤ h ≤ b1 + log m2 N2 c. Anzahl Externzugriffe für Suchen, Einfügen und Löschen: O(h). Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 8. Physischer Datenbankentwurf I I 8.3. Baum-Indexstrukturen Bereichsanfragen? Sekundärindex? mehrattributiger Suchschlüssel I I I Konkatenation der einzelnen Attributwerte. In welcher Reihenfolge? Unabhängige Indexstrukturen über den einzelnen Attributen. Nachbarschaftsbeziehungen? =⇒ mehrdimensionale Zugriffsstrukturen. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 15 8. Physischer Datenbankentwurf 8.4. Hash-Indexstrukturen 8.4 Hash-Indexstrukturen I Eine gegebene Relation wird mittels einer Streuungsfunktion (Hashfunktion) h in Seiten aufgeteilt. Die Seiten seien numeriert von 0, 1, . . . , K − 1. Auf der Menge der Suchschlüsselwerte k sollte h(k) möglichst gleichverteilt über 0, 1, . . . , K − 1 sein. I Mittels h wird jedem Tupel in Abhängigkeit seines Suchschlüsselwertes k eine Seite h(k) = k mod K . Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 16 8. Physischer Datenbankentwurf I I I I I I I 8.4. Hash-Indexstrukturen Direkter Zugriff zu den Tupeln einer Relation mit einem einzigen Externzugriff, sofern hinreichend viele Seiten zur Verfügung gestellt werden und die Hashfunktion annähernd eine Gleichverteilung der Tupel in den Seiten bewirkt. Werden mehr Tupel einer Seite zugeordnet, als diese aufnehmen kann, so müssen der Seite Überlaufseiten zugeordnet werden. Typischerweise werden die Seiten im Mittel beim Aufbau eines Hashindex nur zu 80% gefüllt. Zugriff zu den Tupeln gemäß einer Sortierfolge wird nicht unterstützt. Bereichsanfragen? Sekundärindex? Behandlung mehrattributiger Schlüssel analog zu einem B-Baum. Folien zum Buch Datenbanken: Grundlagen und XML-Technologien, Elsevier Spektrum Akademischer Verlag, 2005 Seite 17