WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Vorlesung #10 Physische Datenorganisation „Fahrplan“ WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 60 Minuten #10, 30 Minuten #11 Einführung und Motivation Trennung der logischen und der physischen Ebene einer Datenbank Speichermedien (Platten, RAID usw.), Speicherhierarchien (Cache, Hauptspeicher, Hintergrundsspeicher usw.) Abbildung von Relationen auf den Hintergrundsspeicher Unterstützung eines Anwendungsverhaltens Physische Datenorganisation in SQL Fazit © Bojan Milijaš, 07.12.2012 Einführung und Motivation WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Die Benutzung und somit die Akzeptanz einer Datenbank wird maßgeblich durch die Antwortzeiten des Systems bestimmt. Selbst eine sehr gut modellierte Datenbank(anwendung) wird von Benutzern nicht akzeptiert, wenn sie langsam ist. Eine effiziente physische Organisation der Daten und der Zugriffe ist die Voraussetzung für akzeptable Datenbanken. Physische Organisation der Daten muss unabhängig von logischen Schema-Veränderungen bleiben, um SystemÄnderungen und vor allem System-Wachstum effizient unterstützen können. Man hat die Wahl zwischen mehreren physischen Entwürfen und kann das Optimale wählen. Die heute marktbeherrschenden (objekt)relationalen Datenbanken haben sich auch dank effizienter physischen Implementierung und der strikten Trennung zwischen der logischen und der physischen Ebene durchgesetzt. © Bojan Milijaš, 07.12.2012 WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Externes Schema - Sicht 1 Physische Ebene Logische Ebene Wiederholung: DBMS 3 -Abstraktionsebenen © Bojan Milijaš, 07.12.2012 Externes Schema - Sicht 2 Externes ... Schema - Sicht n Konzeptionelles Schema Physische Speicherung – internes Schema 3 Abstraktionsebenen WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Ebene 1 (externe): Sichten – Datenbank VIEWs Ebene 2 (konzeptionelle) : Relationen– Datenbank Tabellen mit ihren logischen Attributen Ebene 3 (interne): Datenstrukturen bzw. Speicherstrukturen – Datenbank Tabellen mit ihren physischen Attributen © Bojan Milijaš, 07.12.2012 Externes Schema - Sicht 1 Physische Ebene Logische Ebene DBMS – 3 Abstraktionsebenen © Bojan Milijaš, 07.12.2012 Externes Schema - Sicht 2 WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 ... Konzeptionelles Schema Physische Speicherung – internes Schema Externes Schema - Sicht n Beispiel: logische und physische Datenunabhängigkeit Studenten Logische Ebene CREATE VIEW ProfVorlesung AS SELECT Name, Titel FROM Professoren, Vorlesungen WHERE PersNr = gelesenVon; Internet-Besucher CREATE VIEW ProfVorlesung AS SELECT Name, Titel ProfVerlesung FROM Dozenten NATURAL JOIN lesen NATURAL JOIN Kurse; Professoren Vorlesungen Physische Ebene WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 lesen Kurse Dozenten IOT lesen PT lesen CT lesen,Kurse © Bojan Milijaš, 07.12.2012 Erläuterung zum Beispiel WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Man hat mehrere Möglichkeiten, eine Relation („logische“ Tabelle mit ihren Attributen) als eine „physische“ oder DBMSTabelle zu implementieren. Die Abkürzungen bedeuten (keine Standard-Abkürzungen) IOT – Index Organized Table HT – Heap Table CT – Clustered Tables PT – Partitioned Tables SQL Code Beispiele am Ende der Vorlesung! © Bojan Milijaš, 07.12.2012 Speichermedien und Speicherhierarchien WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Es gibt eine Zugriffslücke 105 zwischen dem Haupt- und dem Hintergrundsspeicher, die vor allem an mechanische Vorgänge innerhalb eines Plattenstapels zurückzuführen ist RAID Systeme sind fehlertoleranter und performanter als einzelne Platten ... weiter Folien Kemper 7.2 – 7.22 © Bojan Milijaš, 07.12.2012 Puffer-Verwaltung WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Hauptspeicher ist nicht nur viel schneller sondern auch viel kleiner als Hintergrundsspeicher nicht genug Platz für alle Seiten Ständiges Ein-/ und Auslagern der Seiten mit dem Ziel möglichst viele aktuelle oder in der nächsten Zukunft gebrauchte Seiten im Hauptspeicher bereit zu halten ... Kemper 7.24 – 7.25 © Bojan Milijaš, 07.12.2012 Abbildung von Relationen auf den Sekundarspeicher WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Die Tupel einer Relation (Zeilen, Rows) werden so abgespeichert, dass sie nicht über die Grenzen einer Seite hinausgehen. Jeder Tupel enthält eine Tupel-ID, jede Seite eine interne Datensatztabelle Beim Wachstum der Tupel muss reorganisiert d.h auf andere Seiten umgezogen werden ... Kemper 7.26 – 7.29 © Bojan Milijaš, 07.12.2012 Indexstrukturen WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 ISAM – Index Sequential Access Method Vom Prinzip her wie ein Daumenindex eines Wörterbuchs mit Indexseiten und Datenseiten Schlechtes Verhalten bei UPDATE Operationen Hinzufügen einer weiteren Indirektion (eines weiteren Zeigers) B-Bäume © Bojan Milijaš, 07.12.2012 Unterstützung des Anwenderverhaltens WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Für unterschiedliche Arten von Abfragen und/oder Veränderungsoperationen eignen sich unterschiedliche Zugriffstechniken unterschiedlich gut Beispiel: Exact Match Query vs. Range Query --exact SELECT Name Besser mit Hashing! FROM Professoren WHERE PersNr = 4711; -- range SELECT Name +Baum! Besser mit B FROM Professoren WHERE Gehalt BETWEEN 40000 AND 50000; © Bojan Milijaš, 07.12.2012 WS 2012/13 Unterstützung des Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Anwenderverhaltens (2) Es gibt noch weitere Möglichkeiten, die Zugriffe bzw. Speicherung der Daten effizienter zu gestalten BITMAP und BITMAP JOIN Index nur für lesende Zugriffe wird bei Data Warehousing vorgestellt Partitionierung Tabelle wird in unterschiedliche Partionen aufgeteilt, die unterschiedlich voneinander physikalisch verwaltet werden können wird bei verteilten Datenbanken vorgestellt © Bojan Milijaš, 07.12.2012 Physische Dateiorganisation in SQL WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 So gut wie keine Standardisierung CREATE INDEX SemesterInd ON Studenten(Semester); DROP IINDEX SemesterInd; Zu beachten sind die Eigenschaften des jeweiligen DBMS, so legt z.B. Oracle für jedes Primärschlüsselattribut automatische einen Index an © Bojan Milijaš, 07.12.2012 Physische Dateiorganisation in ORACLE WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 (2 von ca. 60 Klauseln) CREATE TABLE { segment_attributes_clause [ data_segment_compression ] | ORGANIZATION { HEAP [ segment_attributes_clause ] [ data_segment_compression ] | INDEX [ segment_attributes_clause ] index_org_table_clause | EXTERNAL external_table_clause } | CLUSTER cluster ( column[, column ]... ) } physical attributes clause: [{ PCTFREE integer | PCTUSED integer | INITRANS integer | MAXTRANS integer | storage_clause } [ PCTFREE integer | PCTUSED integer | INITRANS integer | MAXTRANS integer | storage_clause ]... ] © Bojan Milijaš, 07.12.2012 Fazit WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Bedeutung der strikten Trennung der logischen und physischen Ebene einer Datenbank und deren positive Auswirkung auf die Performance und Flexibilität der Datenbank Speichermedien (RAM, Platte, RAID, Bänder) Speicherhierarchien, Zugriffslücke, Notwendigkeit der Pufferverwaltung Ideen für die Unterstützung des Anwenderverhaltens (so gut wie keine) SQL Standards © Bojan Milijaš, 07.12.2012 WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R 2.007 Vorlesung #9 Ende