 
                                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