WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Vorlesung #2
Physische Datenorganisation
„Fahrplan“
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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
Indexstrukturen (Algorithmen und Datenstrukturen!)
ISAM
B-Bäume
Hashing
Clustering (Ballung)
Unterstützung eines Anwendungsverhaltens
Physische Datenorganisation in SQL
Fazit und Ausblick Vorlesung #3
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
2
Einführung und Motivation
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
3
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Externes
Schema
- Sicht 1
Physische
Ebene
Logische Ebene
Wiederholung: DBMS
3 -Abstraktionsebenen
© Bojan Milijaš, 20.10.2004
Externes
Schema
- Sicht 2
Externes
... Schema
- Sicht n
Konzeptionelles
Schema
Physische Speicherung
– internes Schema
Vorlesung #2 - Physische Datenorganization
4
3 Abstraktionsebenen
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Ebene 1: Sichten – Datenbank VIEWs
Ebene 2: Relationen – Datenbank Tabellen
mit ihren logischen Attributen
Ebene 3: Datenstrukturen bzw.
Speicherstrukturen – Datenbank Tabellen mit
ihren physischen Attributen
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
5
WS 2004/2005
Beispiel: logische und
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
physische Datenunabhängigkeit
Studenten
Internet-Besucher
CREATE VIEW ProfVorlesung
CREATE VIEW ProfVorlesung
AS
AS SELECT Name, Titel
ProfVerlesung
FROM Dozenten
SELECT Name, Titel
NATURAL JOIN lesen
FROM Professoren, Vorlesungen
NATURAL JOIN Kurse;
WHERE PersNr = gelesenVon;
Professoren Vorlesungen
lesen
Kurse
Dozenten
IOT lesen
PT lesen CT lesen,Kurse
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
6
Erläuterung zum Beispiel
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
7
Speichermedien und
Speicherhierarchien
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
8
Puffer-Verwaltung
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
9
Abbildung von Relationen auf
den Sekundarspeicher
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
10
Indexstrukturen
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
11
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
B-Bäume
Binärbäume wurden als Suchstruktur für den
Hauptspeicher konzipiert
Für den Hintergrundspeicher nimmt man balancierte
Mehrwegbäume, deren Knotengrößen auf die
Seitenkapazitäten angepasst sind
Balancierung bedeutet, dass jedes Blatt von der
Wurzel gleich entfernt ist, d.h. die Suche logk(n)
dauert
k ist der Verzweigungsgrad
n – Anzahl der Datensätze
... Kemper 7.30 – 7.113
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
12
B+-Bäume
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Die Höhe des B-Baums ist direkt abhängig von der
Satzgröße
Je höher der Verzweigungsgrad des Baumes ist,
umso „flacher“ ist der Baum, umso effizienter ist der
Zugriff
B+- Baum = die Daten werden nur in den Blättern
abgespeichert, der Rest des Baumes ist „hohl“ und
stellt lediglich eine sehr effiziente Road Map zum
Auffinden der gewünschten Datensätze
Die Reorganisation ist durch die Verwendung der
Referenzschlüssel im Baum viel effizienter, da sich
die Datensätze nur in Blättern verändern
... Kemper 113 - 114
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
13
Präfix B+-Bäume
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Verbesserungsmöglichkeit: statt gesamten
Schlüsseln nur Teile von Schlüsseln, d.h.
Präfixe zu speichern
Gut bei Nachnamen, z.B. nur erste
Buchstabe statt dem gesamten Namen
Schlecht bei Werten mit gleichen Präfixen wie
„Systemprogramm“,
„Systemprogrammierung“,
„Systemprogrammierer“ usw.
... Kemper 115
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
14
Hashing
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Das Ziel: ein Datum mit einem bis zwei
Datenzugriffen zu finden (Bäume logk(n) )
Hashing ist die Technik die in Compilerbau,
Betriebsystemen etc. oft angewendet wird
Zugriff zwischen O(1) und O(n), in der Praxis aber
meistens sehr gute Ergebnisse
Beschreibung: mit Hilfe einer Hashfunktion wird eine
Schlüsselmenge S wird auf eine Hashtabelle B
(Buckets) abgebildet
h: S B
wobei |S| >> |B|
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
15
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Hashing (2)
Wegen |S| >> |B| ist h nicht injektiv, d.h. es ist in der
Hashtabelle nicht genug Platz für alle Schlüssel aus
S
Als Hashfunktion wählt man meistens das
Divisonsrestverfahren (Modulo-Funktion)
h(x) := x mod p
p soll wegen der besseren Streuung eine Primzahl sein
Es kann auftreten h(s1) = h(s2) = b1
Man braucht dann eine Kollisionsroutine
Statisches Hashing – Chaining der Sätze gleichem h(s)
Erweiterbares Hashing – dynamisches Wachsen der HashTabelle
... Kemper 125 - 139
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
16
Mehrdimensionale
Indexstrukturen
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
für häufige Anfragen mit Selektionsprädikaten
über mehrere gleiche Attribute, z.B. wenn
sehr oft Alter und Gehalt gemeinsam
abgefragt werden
kann sehr schön mit algorithmischer
Geometrie und Bildverarbeitung verknüpft
werden
... Kemper 150 - 162
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
17
Clustering
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Ballung von Datensätzen
Oft selektierte Datensätze sollten idealerweise
physikalisch auf einer Seite abgespeichert werden
Die Tupeln einer Relation werden sortiert nach den
Werten eines Attributs physikalisch abgelegt
Problem: es wird oft über mehrere Attribute abgefragt
Lösung: Zusammenspiel zwischen mehreren
Indexstrukturen und Clustering
Weitere Möglichkeit für Clustering: Materialisierung
von Beziehung (Join Clusters)
Bsp: Professoren werden verzahnt mit Vorlesungen
abgespeichert (verzahnte Objektballung)
... Kemper 163 - 166
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
18
Clustering und Index-Pflege
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Bei Verwendung mehrer Indexstrukturen auf einer
Tabelle muss eine zusätzliche Indirektion pro Index
eingeführt und zusätzlich gepflegt werden
Die INSERTs und UPDATEs führen in der Regel zur
aufwändigen Index-Reorganisationen (zusätzliche
Zeiger bei Indirektion, B-Baum
Änderungsoperationen wie Spalten und
Zusammenfassen der Knoten)
In der Praxis werden Indizies aus Effizienzgründen
oft vor der Durchführung der Massen-UPDATEs und
INSERTS gelöscht und danach neu erstellt. Es
bestehen aber auch die Möglichkeiten der OnlineReorganisation und Aktualisierung
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
19
Unterstützung des
Anwenderverhaltens
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
20
WS 2004/2005
Unterstützung des
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
21
Physische Dateiorganisation
in SQL
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
22
Physische Dateiorganisation
in ORACLE
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
(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š, 20.10.2004
Vorlesung #2 - Physische Datenorganization
23
Fazit Vorlesung #2
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
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
Zugriffstechniken: B+Bäume, Hashing, Clustering
Unterstützung des Anwenderverhaltens
(so gut wie keine) SQL Standards
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
24
Ausblick Vorlesung #3
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Anfragebearbeitung
Logische Optimierung
Äquivalenzen und „Rechenregeln“ in der relationalen
Algebra
Anwendung der Transformationsregeln für
Optimierungszwecke
Physische Optimierung
Selektion, Join-Operatoren
Gruppierung, Duplikateliminierung, Projektion,
Vereinigung, Sortierung
Kostenmodelle
Tuning
© Bojan Milijaš, 20.10.2004
Vorlesung #2 - Physische Datenorganization
25
WS 2004/2005
Datenbanken II - 5W
Mi 17:00 – 18:30
G 3.18
Vorlesung #2
Ende