Physische Datenorganisation Physische Datenorganisation 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 Übersicht Datenbanken, Relationen und Tupel werden auf der untersten Ebene der bereits vorgestellten 3-Schichten-Architektur - der physischen Ebene - durch "reale" Datenstrukturen (meist Dateien) realisiert. Die Bereitstellung und Verwaltung dieser Datenstrukturen erfolgt in letzter Konsequenz - wie bei jeder vom Rechner genutzten Datenstruktur - durch entsprechende Dienste des Betriebssystems. Jedes DBMS enthält jedoch auch selbst Komponenten, insgesamt unter dem Begriff 'Speicherverwaltung' zusammengefasst, die für Aufbau und Verwaltung der physischen Ausprägungen der Datenbanken zuständig sind. Zentrale Aufgaben der Speicherverwaltung sind: Abbildung logischer Relationsschemata auf Dateien Aufbau zusätzlicher Datenstrukturen zur Verbesserung der Zugriffseffizienz (Zugriffspfade, insbesondere Indexstrukturen) Abwicklung aller Manipulationen gespeicherter Daten in Folge von Änderungsbefehlen, die an der Nutzerschnittstelle des DBMS auflaufen. In diesem Kapitel wird eine kurze, an Kapitel 7 des Kemper-Buchs orientierte Einführung in die wichtigsten Prinzipien der physischen DB-Organisation gegeben. 2002 Prof. Dr. Rainer Manthey Informationssysteme 2
Speicherstrukturen Physische Datenorganisation 6.1 Speicherstrukturen 2002 Prof. Dr. Rainer Manthey Informationssysteme 3 Speicherhierarchie Zugriffszeiten: Register 1-10ns Cache 10-100ns Hauptspeicher Plattenspeicher Zugriffslücke: Faktor 10 5 100-1000ns 10 ms Archivspeicher sec 2002 Prof. Dr. Rainer Manthey Informationssysteme 4
Magnetplattenspeicher 2002 Prof. Dr. Rainer Manthey Informationssysteme 5 2002 Prof. Dr. Rainer Manthey Informationssysteme 6
Hauptspeicher als Datenbankpuffer Operationen auf Daten können nur im Hauptspeicher durchgeführt werden! Folge: Zu bearbeitende Daten müssen immer seitenweise in den Hauptspeicher eingelesen ("gepuffert") und nach der Modifikation (irgendwann) wieder ausgelagert werden (Strategien: siehe Kapitel 7 im Zshg. mit Transaktionen) Für das DBMS dient der größte Teil des Hauptspeichers damit als Datenbankpuffer. gepufferte Seite verdrängen einlagern Hauptspeicher (transient, "vorübergehend") Hintergrundspeicher (persistent, "dauerhaft") 2002 Prof. Dr. Rainer Manthey Informationssysteme 7 Ein- und Auslagern von Seiten Der Systempuffer ist in Seitenrahmen gleicher Größe aufgeteilt. Ein Rahmen kann eine Seite aufnehmen. Überzählige Seiten werden auf die Platte ausgelagert. Details zur Seitenverwaltung durch das Betriebssystem: siehe Informatik II Konsequenz: DBMS-Komponente zur Speicherverwaltung ist eng mit Betriebssystem verzahnt. Hauptspeicher 0 4K 8K 12K Hintergrundspeicher (Platte) 16K 20K 24K 28K 32K 36K 40K 44K 48K 52K 56K 60K Seitenrahmen Seite 2002 Prof. Dr. Rainer Manthey Informationssysteme 8
Speicherung von Tupeln auf Seiten Prinzip der Abbildung von Relationen auf Seiten: pro Relation: Datei aus mehreren (aufeinanderfolgenden) Seiten pro Seite: interne Datensatztabelle mit Verweisen auf alle Tupel dieser Seite Adressierung einzelner Tupel mittels Tupel-Identifikator (TID) TID besteht aus zwei Teilen: Seitennummer Nummer eines Eintrags in interner Datensatztabelle der Seite Indirektion ist nützlich bei Reorganisation im Inneren der Seite. TID 4711 2 1 2 3 5001 Grundzüge... 4052 Logik... 5041 Ethik... Seite 4711 2002 Prof. Dr. Rainer Manthey Informationssysteme 9 Interne Reorganisation Aufgrund der indirekten Adressierung von Tupeln mittels TIDs sind die meisten internen Reorganisationen auf Seiten ohne nach aussen sichtbare Adressänderungen möglich: Tupel (nach Modifikation) innerhalb der Seite verschoben, ohne den TID zu ändern 2002 Prof. Dr. Rainer Manthey Informationssysteme 10
Verdrängen eines Tupels von einer Seite Ist eine Seite zu voll geworden, müssen Tupel ggf. auf andere Seiten verlagert ("verdrängt") werden. interner Verweis auf neue Position des verdrängten Datensatzes: Keine externe TID-Änderung nötig! 2002 Prof. Dr. Rainer Manthey Informationssysteme 11 Indexstrukturen Physische Datenorganisation 6.2 Indexstrukturen 2002 Prof. Dr. Rainer Manthey Informationssysteme 12
Zugriffspfade und Indexe Datenbankmanagementsysteme verwenden in der Regel zahlreiche intern verwaltete Hilfs-Datenstrukturen, um den Zugriff auf größere Tabellen zu beschleunigen. Solche Datenstrukturen werden allgemein Zugriffspfade genannt. Die wichtigste Zugriffshilfe stellen Indexe dar, spezielle Formen von Suchbäumen, die anhand bestimmter Indexierungskriterien (meist bestimmte Attribute) einen gezielten Zugriff auf Datensätze bieten, die die Indexwerte enthalten (statt sequentiell in der ganzen Tabelle danach suchen zu müssen). Der Begriff 'Index' ist motiviert durch die Indexseiten von Büchern. Plural für diesen "terminus technicus" ist 'Indexe' (nicht 'Indizes'), das zugehörige Verb ist 'indexieren' (nicht 'indizieren') - Empfehlung, keine "Duden-Regel". Die meisten SQL-Dialekte kennen mittlerweile eigene DDL-Befehle zum Anlegen bzw. Löschen von Indexen auf eines oder mehrere Spalten einer Tabelle: CREATE INDEX <index-name> ON <table-name> <list-of-column-names> DROP INDEX <index-name> 2002 Prof. Dr. Rainer Manthey Informationssysteme 13 Indexe: Übersicht Pro Relation gibt es normalerweise mindestens einen Index, der die Werte des Primärschlüssels der Relation indexiert (und oft automatisch angelegt wird): Primärindex Darüberhinaus kann es mehrere Sekundärindexe geben, die beliebige andere Attribute/A.kombinationen indexieren, auch wenn diese nicht die Schlüsseleigenschaft besitzen. Zur Implementierung von Indexen werden vom DBMS unterschiedliche Formen spezieller Datenstrukturen verwendet, deren Auswahl nur bei großen kommerziellen Systemen vom DB-Administrator beeinflusst werden kann: Suchbäume: ISAM-Dateien B-Bäume, (Präfix-)B + -Bäume R-Bäume, R+-Bäume (mehrdimensionale Indexstrukturen) Hashing, Erweitertes Hashing hier nicht behandelt (siehe Kemper Kap. 7) Die Verwendung von Indexen unterliegt einem typischen "Tradeoff" verbrauchter Ressourcen: Einem Zeitgewinn beim Zugriff auf Daten steht ein Zeitverlust durch die Indexverwaltung und ein Speicherplatzverbrauch für die Indexstrukturen gegenüber. 2002 Prof. Dr. Rainer Manthey Informationssysteme 14
ISAM-Organisation einfachste Form der Indexierung: Index-Sequential Access Method (ISAM) Jeder Datensatz (hier: jedes Tupel) besteht aus den Werten des/der indexierten Attributs/A.te ("Suchschlüssel S") und denen der übrigen Attribute (Daten D). Die Suchschlüsselwerte werden auf eigenen Speicherseiten sequentiell und sortiert abwechselnd mit Verweisen auf die zugehörigen Datenseiten gespeichert. Suche innerhalb einer Seite: sequentiell! Bei Modifikationen der Indexseiten ist u.u. hoher Verwaltungsaufwand erforderlich (Ausgleichen benachbarter Seiten, Umsetzen von Verweisen, Anlegen neuer Seiten, Verschieben von Schlüsseln)... S 1 S 2... S k... S l... S m Indexseiten... S 1 < S 2 Datenseiten D 1 D 2... D s D t... D... s D v... D w 2002 Prof. Dr. Rainer Manthey Informationssysteme 15 B-Bäume weniger "anfällig" bei Umorganisation: spezielle balancierte Suchbäume, die zur Seitenstruktur eines DB-Speichers passen B-Bäume B? Das Prinzip der B-Bäume wurde estmals 1971 in einer Arbeit von Bayer und McCreight eingeführt. Jeder Knoten eines B-Baums entspricht einer Seite des Speichers (i.a. mehrere 100 Datensätze/Schlüsselwerte pro Seite). Knoten enthalten sowohl Schlüssel als auch Daten (bzw. TIDs von Datensätzen), d.h. keine Unterscheidung mehr zwischen Index- und Datenseiten. Interne Organisation nach dem Binärbaum-Prinzip (analog zu ISAM): Verweise auf Nachfolgerseiten wechseln mit Schlüssel ab. linker Nachfolgerknoten (pro Schlüsselwert!): kleinere Schlüsselwerte rechter Nachfolgerknoten: größere Schlüsselwerte Da viele Verweise von einem Knoten ausgehen, hat jeder Knoten i.a. mehr als zwei Nachfolger: Mehrwegbäume 2002 Prof. Dr. Rainer Manthey Informationssysteme 16
B-Baum: Prinzipschaubild Verweis bei Primärindex: zug. Datensatz bei Sekundärindex: TID Suchschlüssel 2002 Prof. Dr. Rainer Manthey Informationssysteme 17 B-Baum: Füllungsgrad und Verwaltungsprinzipien wichtige Grundidee des B-Baumprinzips: Für jeden Knoten eines B-Baums gibt es einen minimalen und einen maximalen Füllungsgrad, der strikt eingehalten werden muss. stets gilt: maximaler Füllungsgrad = 2 minimaler Füllungsgrad!! Bezeichnung für die minimale Zahl an Datensätzen in einer Seite: Grad des Baums In einem B-Baum vom Grad k enthält jeder Knoten (ausser der Wurzel) mindestens k Datensätze und höchstens 2 k Einträge. Motivation: [k, 2 k ]-Intervall ermöglicht einfaches Aufspalten bzw. Verschmelzen von Knoten bei Über- oder Unterlauf nach DB-Änderungen bei Überlauf: 2 k + 1 Elemente im Knoten Aufspalten in 2 Knoten mit k Elementen Verschieben des mittleren Elements in den Vaterknoten (eventuell wiederholt bis zur Wurzel) bei Unterlauf: k - 1 Elemente im Knoten zunächst Ausgleichen durch Verschieben von Daten in Nachbarknoten im Extremfall: Verschmelzen von zwei Knoten zu einem 2002 Prof. Dr. Rainer Manthey Informationssysteme 18
B-Baum: "Definition" 2002 Prof. Dr. Rainer Manthey Informationssysteme 19 B-Baum: Beispiel k = 2 15? Suchkomplexität: logarithmisch (O(log k (n)) (bei n Datensätzen im B-Baum) 2002 Prof. Dr. Rainer Manthey Informationssysteme 20
Einfügen in einen B-Baum k = 2 einzufügender Wert: 17 13 16 19 Überlauf! 14 15 17 18 Aufspalten neu 2002 Prof. Dr. Rainer Manthey Informationssysteme 21 Einfügen eines neuen Objekts (Datensatz) in einen B-Baum Einfügealgorithmus für B-Bäume (Prinzip): 2002 Prof. Dr. Rainer Manthey Informationssysteme 22
Löschen aus einem B-Baum k = 2 zu löschender Wert: 7 Unterlauf! Auffüllen (Löschalgorithmus: komplexer als Einfügealgorithmus) 2002 Prof. Dr. Rainer Manthey Informationssysteme 23 Physische Datenorganisation: weitergehende Quellen Die Einführung in die Grundlagen der physischen Datenorganisation in diesem Kapitel ist relativ kurz und knapp ausgefallen. Es gibt zu diesem Thema noch wesentlich mehr zu sagen, was aber den Rahmen dieser Vorlesung sprengt. Insbesondere zum physischen Entwurf haben Sie hier gar keine Informationen erhalten. weiterführende Veranstaltung mit Schwerpunkt "Physische Datenorganisation": Vorlesung "Relationale Datenbanken" (Th. Bode) im SS 2003 Sehr gutes, neues Lehrbuch dazu: Theo Härder, Erhard Rahm: "Datenbanksysteme: Konzepte und Techniken der Implementierung", 2. Aufl. 2001, Springer-Verlag zugehörige Vorlesung von Prof. Rahm im Web: http://dbs.uni-leipzig.de/de/skripte/idbs1/inhalt.html 2002 Prof. Dr. Rainer Manthey Informationssysteme 24