Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem Zugriffssystem Datensystem Metadaten c Ingo Claßen, Martin Kempa Speichersystem Zugriffssystem Datensystem Metadaten Softwarearchitektur eines Datenbanksystems c Ingo Claßen, Martin Kempa 2/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Speichersystem I Aufgaben I I I I Segmente und Seiten werden auf der Basis von Dateien und Blöcken realisiert Seitenpuffer mit Seitenwechselstrategie wird realisiert Ziel Einsparen von Read-/Write-Operationen in der Datei Schnittstelle I I Datenstrukturen: Segmente, die aus Seiten (page) bestehen Operationen: I I I I create/delete Segment open/close Segment write Seite in Segment/read Seite from Segment release Seite in Segment c Ingo Claßen, Martin Kempa 3/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Speicherhierarchie c Ingo Claßen, Martin Kempa 4/20 I schnell, relativ klein, flüchtig I langsam, relativ groß, nicht flüchtig I sehr langsam, sehr groß, nicht flüchtig Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Exkurs: Dateien I Platte I Linearisierung (abrollen) I Datei = Menge von Blöcken Abbildung: Blocknummer → (Zylinder, Spur/Kopf, Sektor/Block) c Ingo Claßen, Martin Kempa 5/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Seitenpuffer c Ingo Claßen, Martin Kempa 6/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Pufferverwaltung: Bereitstellen einer Seite /* Seite s = (d,b), d. h. Block b aus Datei d */ if s ist im Puffer then return Pufferspeicheradresse für s else suche freien Pufferplatz if kein freier Pufferplatz vorhanden then suche geeignete Seite zu entfernen aus dem Puffer schreibe Seite zurück auf Platte, falls Änderungen entferne Seite aus dem Puffer endif /* an dieser Stelle ist p der freie Pufferplatz */ lies Block b aus Datei d in Pufferplatz p return Pufferspeicheradresse von p endif c Ingo Claßen, Martin Kempa 7/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Zugriffssystem I Aufgaben I I I I I I I Freispeicherverwaltung Record-Manager speichert interne Sätze Zugriffspfadverwaltung realisiert geordnete Datenstrukturen. Sperrverwaltung Log/Recovery Ziel Persistente Speicherung interner Sätze und Realisierung von Zugriffspfaden für effizienten Zugriff Schnittstelle I I Datenstrukturen: Satztypen mit internen Sätzen (Record), Bäume (altern. Hashtabellen) Operationen: I I I create, update, delete satz read satz by id insert into B-Baum c Ingo Claßen, Martin Kempa 8/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Speicherstruktur für Sätze c Ingo Claßen, Martin Kempa 9/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Verwaltung von Sätzen in Seiten I Tuple-Identifier (TID) TID = (Seitennummer, Index im Seitenverzeichnis) c Ingo Claßen, Martin Kempa 10/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Exkurs: Datenstrukturen c Ingo Claßen, Martin Kempa 11/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Zugriffspfad c Ingo Claßen, Martin Kempa 12/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Geclusterte/Nichtgeclusterte Indizes I Geclusterter Index I I I I Physische Speicherung der Datensätze entsprechend der Indexsortierung D. h. Datensätze, deren Indexwerte nahe bei einander liegen, werden physisch nahe bei einander gespeichert (auf der gleichen Seite) Nur einer pro Tabelle Nichtgeclusterter Index I I Physische Speicherung der Datensätze unabhängig von der Indexsortierung Beliebig viele pro Tabelle c Ingo Claßen, Martin Kempa 13/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Dünn gestreute/Dichte Indizes I Dünn gestreuter (sparse) Index I I I I Zeiger auf Seiten Suche nach Datensatz innerhalb der Seite Benötigt wenig Speicher, dadurch wenige Seitenzugriffe, bei der Indexsuche Dichter (dense) Index I I Direkter Zugriff über TID auf den Datensatz Nichtgeclusterte Indizes müssen dicht sein c Ingo Claßen, Martin Kempa 14/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Weitere Aspekte von Indizes I Überdeckende (covering) Indizes I I I Kosten für Einfüge-, Lösch- und Änderungsoperationen I I I Speicherung weiterer Attributwerte im Index Vermeidung von Zugriffen auf Datenseiten, da alle benötigten Daten im Index vorliegen Bei Datenänderungen in den Tabellen müssen die Indizes angepasst werden Wartung von Indizes Indizes sind kein Allheilmittel I I Keine Vorteile bei kleinen Tabellen TableScan kann schneller sein als IndexScan (abhängig von der Selektivität der Indexattribute) c Ingo Claßen, Martin Kempa 15/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Spezielle Zugriffspfade I Bitmap-Indexstrukturen I I I Ein Bitvektor pro Spaltenwert, wobei jede Bitposition für einen Datensatz steht. Steht an der Bitposition der Wert 1, so hat der entsprechende Datensatz den gegebenen Spaltenwert, ansonsten nicht. Multidimensionale Indexstrukturen I I Erweiterung eindimensionaler Indexstrukturen Addressierung von Datensätzen über mehrere Dimensionen c Ingo Claßen, Martin Kempa 16/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Datensystem I Aufgaben I I I I I Data Dictionary Currency Pointer Sortierung Transaktionsverwaltung Schnittstelle I I Datenstrukturen: Satztypen externe Sätze, Index Operationen: I I I insert/delete/update (externer) satz find satz by id, (find satz by attributwert) find satz by index key c Ingo Claßen, Martin Kempa 17/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Relationales Datensystem I Aufgaben I I I I I Realisiert die relationalen Operationen (z. B. Join) Zugriffskontrolle Integritätskontrolle Zugriffspfadauswahl Schnittstelle I I Datenstrukturen: Zeilen, Relationen, Sichten Operationen: SQL: select ... from ..., ... c Ingo Claßen, Martin Kempa 18/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Systemtabellen (Systemkatalog, Data Dictionary) I Tabellen, die die Objekte innerhalb der Datenbank beschreiben I I I I I I I I Tabellen Spalten Schlüssel Indizes Gespeicherte Prozeduren Trigger ... Werden für den laufenden Betrieb benötigt I I I I Kontextanalyse bei Anfragen: Existieren die in der SQL-Anweisung angegebenen Tabellen und Spalten Anfrageoptimierung: Welche Indizes existieren Datenzugriff: Wo beginnt eine Spalte im Datensatz Berechtigungsüberprüfung c Ingo Claßen, Martin Kempa 19/20 Aufbau Datenbanksysteme Speichersystem Zugriffssystem Datensystem Metadaten Beispiel: Oracle-Server I Tabellen select T.table_name from user_tables T I TableName STUDENT VERANSTALTUNG STUDIENGANG BEWERTUNG Spalten select TC.column_name, TC.column_id from user_tab_columns TC where tc.table_name = ’STUDENT’ c Ingo Claßen, Martin Kempa 20/20 ColumnName MATRNR VORNAME NAME STUDIENGANG ColumnId 1 2 3 4 Aufbau Datenbanksysteme