Datenbanken 2 Inhalt Inhalt Alle Infos zu Vorlesung und Proseminar:

Werbung
Inhalt
Datenbanken 2
Einführung, Physische Datenorganisation
1
Einführung
2
Speichermedien
FB Computerwissenschaften
Universität Salzburg
3
Speicherzugriff
Version 18. Oktober 2016
4
Datei Organisation
Nikolaus Augsten
[email protected]
Wintersemester 2016/17
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
1 / 48
Augsten (Univ. Salzburg)
Einführung
Speichermedien
3
Speicherzugriff
4
Datei Organisation
Augsten (Univ. Salzburg)
2 / 48
Alle Infos zu Vorlesung und Proseminar:
Einführung
2
Wintersemester 2016/17
Einführung
Inhalt
1
DB2 – Physische Datenorganisation
http://dbresearch.uni-salzburg.at/teaching/2016ws/db2/
DB2 – Physische Datenorganisation
Wintersemester 2016/17
3 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
4 / 48
Einführung
Einführung
Was erwartet Sie inhaltlich?
Die ANSI/SPARC Drei-Ebenen Architektur
Benutzer
Benutzer
Datenbanken 1: Logische Ebene
Externe
Sicht
Externe Sicht
Konzeptioneller Entwurf (ER)
Relationale Algebra
SQL
Relationale Entwurfstheorie
Benutzer
...
Externe
Sicht
Abbildung zwischen externer
Sicht und logischer Ebene
Logische Ebene
Datenbanken 2: Physische Ebene
Wie baue (programmiere) ich ein Datenbanksystem?
Logische Ebene
Abbildung zwischen logischer
und physischer Ebene
Daten müssen physisch gespeichert werden
Datenstrukturen und Zugriffs-Algorithmen müssen gefunden werden
SQL-Anfragen müssen in ausführbare Programme umgesetzte werden
Physische Ebene
Physische Ebene
Es geht um die Effizienz (schneller ist besser)
Gespeicherte Datenbank
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
5 / 48
Augsten (Univ. Salzburg)
Einführung
DB2 – Physische Datenorganisation
Wintersemester 2016/17
6 / 48
Wintersemester 2016/17
8 / 48
Speichermedien
Inhaltsübersicht Datenbanksysteme
Inhalt
1. Physische Datenorganisation
Speichermedien, Dateiorganisation
Kapitel 7 in Kemper und Eickler
Chapter 10 in Silberschatz et al.
1
Einführung
2
Speichermedien
3
Speicherzugriff
4
Datei Organisation
2. Indexstrukturen
Sequentielle Dateien, B+ Baum, Statisches Hashing, Dynamisches
Hashing, Mehrere Suchschlüssel, Indices in SQL
Kapitel 7 in Kemper und Eickler
Chapter 11 in Silberschatz et al.
3. Anfragebearbeitung
Effiziente Implementierung der (relationalen) Operatoren
Kapitel 8 in Kemper und Eickler
Chapter 12 in Silberschatz et al.
4. Anfrageoptimierung
Äquivalenzregeln und Äquivalenzumformungen, Join Ordnungen
Kapiteln 8 in Kemper und Eickler
Chapter 13 in Silberschatz et al.
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
7 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Speichermedien
Speichermedien
Speichermedien/1
Speichermedien/2
Verschiedene Arten von Speichermedien sind für Datenbanksysteme
relevant.
Speichermedien lassen sich in Speicherhierarchie anordnen.
Klassifizierung der Speichermedien nach:
Zugriffsgeschwindigkeit
Kosten pro Dateneinheit
Verlässlichkeit
flüchtig
schneller Zugriff (x0 bis x00 ns; 1 ns = 10−9 s)
meist zu klein (oder zu teuer) um gesamte Datenbank zu speichern
mehrere GB weit verbreitet
Preise derzeit ca. 5 EUR/GB (DRAM)
Kapazitäten steigen ständig und Preis/Byte sinkt
(ca. Faktor 2 alle 2-3 Jahre)
Flüchtige vs. persistente Speicher
Flüchtig (volatile): Inhalt geht nach Ausschalten verloren
Persistent (non-volatile): Inhalt bleibt auch nach Ausschalten
DB2 – Physische Datenorganisation
flüchtig
am schnellsten und am teuersten
von System Hardware verwaltet
Hauptspeicher (RAM)
Datenverlust durch Stromausfall oder Systemabsturz
Physische Fehler des Speichermediums
Augsten (Univ. Salzburg)
Cache
Wintersemester 2016/17
9 / 48
Augsten (Univ. Salzburg)
Speichermedien
Wintersemester 2016/17
10 / 48
Speichermedien
Speichermedien/3
Speichermedien/4
Flash memory (SSD)
Festplatte
persistent
lesen ist sehr schnell (x0 bis x00 µs; 1 µs = 10−6 s)
hohe sequentielle Datentransferrate (bis 500 MB/s)
nicht-sequentieller Zugriff nur ca. 25% langsamer
Schreibzugriff langsamer und komplizierter
persistent
Daten sind auf Magnetscheiben gespeichert, mechanische Drehung
sehr viel langsamer als RAM (Zugriff im ms-Bereich; 1 ms = 10−3 s)
sequentielles Lesen: 25–100 MB/s
billig: Preise teils unter 0.1 EUR/GB
sehr viel mehr Platz als im Hauptspeicher; derzeit x00 GB - 4 TB
Kapazitäten stark ansteigend (Faktor 2 bis 3 alle 2 Jahre)
Hauptmedium für Langzeitspeicher: speichert gesamte Datenbank
für den Zugriff müssen Daten von der Platte in den Hauptspeicher
geladen werden
direkter Zugriff, d.h., Daten können in beliebiger Reihenfolge gelesen
werden
Diskette vs. Festplatte
Daten können nicht überschrieben werden, sondern müssen zuerst
gelöscht werden
nur beschränkte Anzahl von Schreib/Lösch-Zyklen sind möglich
Preise derzeit ca. 1 EUR/GB
Speichermedien: NAND Flash Technologie (Firmware: auch NOR)
weit verbreitet in Embedded Devices (z.B. Digitalkamera)
auch als EEPROM bekannt (Electrically Erasable Programmable
Read-Only Memory)
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
DB2 – Physische Datenorganisation
Wintersemester 2016/17
11 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
12 / 48
Speichermedien
Speichermedien
Speichermedien/5
Speichermedien/6
Optische Datenträger
Band
persistent
Daten werden optisch via Laser von einer drehenden Platte gelesen
lesen und schreiben langsamer als auf magnetischen Platten
sequentielles Lesen: 1 Mbit/s (CD) bis 400 Mbit/s (Blu-ray)
verschiedene Typen:
CD-ROM (640 MB), DVD (4.7 to 17 GB), Blu-ray (25 to 129 GB)
write-once, read-many (WORM) als Archivspeicher verwendet
mehrfach schreibbare Typen vorhanden (CD-RW, DVD-RW,
DVD-RAM)
Jukebox-System mit austauschbaren Platten und mehreren Laufwerken
sowie einem automatischen Mechanismus zum Platten wechseln –
“CD-Wechsler” mit hunderten CD, DVD, oder Blu-ray disks
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
13 / 48
persistent
Zugriff sehr langsam, da sequentieller Zugriff
Datentransfer jedoch z.T. wie Festplatte (z.B. 120 MB/s, komprimiert
240MB/s)
sehr hohe Kapazität (mehrere TB)
sehr billig (ab 10 EUR/TB)
hauptsächlich für Backups genutzt
Band kann aus dem Laufwerk genommen werden
Band Jukebox für sehr große Datenmengen
x00 TB (1 terabyte = 1012 bytes) bis Petabyte (1 petabyte = 1015
bytes)
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Speichermedien
14 / 48
Speichermedien
Speichermedien/7
Festplatten/1
Meist sind Datenbanken auf magnetischen Platten gespeichert, weil:
Speichermedien können hierarchisch nach Geschwindigkeit und
Kosten geordnet werden:
Primärspeicher: flüchtig, schnell, teuer
die Datenbank zu groß für den Hauptspeicher ist
der Plattenspeicher persistent ist
Plattenspeicher billiger als Hauptspeicher ist
Register
Schematischer Aufbau einer Festplatte:
Cache
track t
e.g., Cache, Hauptspeicher
Sekundärspeicher: persistent, langsamer
und günstiger als Primärspeicher
e.g., Magnetplatten, Flash Speicher
auch Online-Speicher genannt
Tertiärspeicher: persistent, sehr
langsam, sehr günstig
e.g., Magnetbänder, optischer
Speicher
auch Offline-Speicher genannt
DB2 – Physische Datenorganisation
spindle
Hauptspeicher
arm assembly
Flashspeicher
sector s
Magnetische Platte
Optische Platte
cylinder c
read-write
head
Magnetband
platter
Datenbank muss mit Speichermedien auf allen Ebenen umgehen
Augsten (Univ. Salzburg)
Wintersemester 2016/17
Wintersemester 2016/17
rotation
15 / 48
Augsten (Univ. Salzburg)
arm
DB2 – Physische Datenorganisation
Wintersemester 2016/17
16 / 48
Speichermedien
Speichermedien
Festplatten/2
Festplatten/3
Controller: Schnittstelle zwischen Computersystem und Festplatten:
übersetzt high-level Befehle (z.B. bestimmten Sektor lesen) in
Hardware Aktivitäten (z.B. Disk Arm bewegen und Sektor lesen)
für jeden Sektor wird Checksum geschrieben
beim Lesen wird Checksum überprüft
Drei Arbeitsvorgänge für Zugriff auf Festplatte:
Spurwechsel (seek time): Schreib-/Lesekopf auf richtige Spur bewegen
Latenz (rotational latency): Warten, bis sich der erste gesuchte Sektor
unter dem Kopf vorbeibewegt.
Systembus
Lesezeit: Sektoren lesen/schreiben, hängt mit Datenrate (data
transfer rate) zusammen
Festplattencontroller
Zugriffszeit = Spurwechsel + Latenz + Lesezeit
Festplatten
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
17 / 48
Augsten (Univ. Salzburg)
Speichermedien
DB2 – Physische Datenorganisation
Wintersemester 2016/17
18 / 48
Speichermedien
Festplatten/4
Festplatten/5
Performance Parameter von Festplatten
Spurwechsel: gerechnet wird mit mittlerer Seek Time (=1/2 worst
case seek time, typisch 2-10ms)
Latenz:
Block: (auch “Seite”) zusammenhängende Reihe von Sektoren auf
einer bestimmten Spur
errechnet sich aus Drehzahl (5400rpm-15000rpm)
rpm = revolutions per minute
Latenz [s] = 60 / Drehzahl [rpm]
mittlere Latenz: 1/2 worst case (2ms-5.5ms)
Interblock Gaps: ungenützter Speicherplatz zwischen Sektoren
ein Block ist eine logische Einheit für den Zugriff auf Daten.
Datenrate: Rate mit der Daten gelesen/geschrieben werden können
(z.B. 25-100 MB/s)
Mean time to failure (MTTF): mittlere Laufzeit bis zum ersten Mal
ein Hardware-Fehler auftritt
Daten zwischen Platte und Hauptspeicher werden in Blocks übertragen
Datenbank-Dateien sind in Blocks unterteilt
Block Größen: 4-16 kB
kleine Blocks: mehr Zugriffe erforderlich
große Blocks: Ineffizienz durch nur teilweise gefüllte Blocks
typisch: mehrere Jahre
keine Garantie, nur statistische Wahrscheinlichkeit
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
19 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
20 / 48
Speichermedien
Speicherzugriff
Integrierte Übung 1.1
Inhalt
Betrachte folgende Festplatte: Sektor-Größe B = 512 Bytes, Interblock
Gap Size G = 128 Bytes, Sektoren/Spur S = 20, Spuren pro Scheibenseite
T = 400, Anzahl der beidseitig beschriebenen Scheiben D = 15, mittlerer
Spurwechsel sp = 30ms, Drehzahl dz = 2400rpm.
1
Einführung
2
Speichermedien
3
Speicherzugriff
4
Datei Organisation
Bestimme die folgenden Werte:
a) gesamte Kapazität der Festplatte
b) nutzbare Kapazität der Festplatte
c) mittlere Zugriffszeit (1 Sektor lesen)
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
21 / 48
Augsten (Univ. Salzburg)
Speicherzugriff
DB2 – Physische Datenorganisation
Wintersemester 2016/17
22 / 48
Speicherzugriff
Speicherhierarchie
Platten Zugriff Optimieren
o
Analogie
Register
(< 1 ns)
Kopf
(1 Min)
Caches
(L1, L2, L3)
(> 1 ns)
Raum
(10 Min)
Hauptspeicher
(≈ 100 ns)
Stadt
(1 Std)
Hintergrundspeicher
(Platte)
(≈ 10 ms = 10.000.000 ns)
Pluto
(2 Jahre)
Archivspeicher
(Bänder, DVDs)
(> 1 s)
MMMMMMMMMMMMMMMMMMMMMMMMMM M
Andromeda
(2000 Jahre)
Zugriffslücke 10E5
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
Wichtiges Ziel von DBMSs: Transfer von Daten zwischen Platten und
Hauptspeicher möglichst effizient gestalten.
optimieren/minimieren der Anzahl der Zugriffe
minimieren der Anzahl der Blöcke
so viel Blöcke als möglich im Hauptspeicher halten (→ Puffer Manager)
Techniken zur Optimierung des Block Speicher Zugriffs:
1. Disk Arm Scheduling
2. Geeignete Dateistrukturen
3. Schreib-Puffer und Log Disk
23 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
24 / 48
Speicherzugriff
Speicherzugriff
Block Speicher Zugriff/3
Block Speicher Zugriff/4
Disk Arm Scheduling: Zugriffe so ordnen, dass Bewegung des Arms
minimiert wird.
Elevator Algorithm (Aufzug-Algorithmus):
Disk Controller ordnet die Anfragen nach Spur (von innen nach außen
oder umgekehrt)
Bewege Arm in eine Richtung und erledige alle Zugriffe unterwegs bis
keine Zugriffe mehr in diese Richtung vorhanden sind
Richtung umkehren und die letzten beiden Schritte wiederholen
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
25 / 48
Datei Organization: Daten so in Blöcken speichern, wie sie später
zugegriffen werden.
z.B. verwandte Informationen auf benachbarten Blöcken speichern
Fragmentierung: Blöcke einer Datei sind nicht hintereinander auf der
Platte abgespeichert
Gründe für Fragmentierung sind z.B.
Daten werden eingefügt oder gelöscht
die freien Blöcke auf der Platte sind verstreut, d.h., auch neue Dateien
sind schon zerstückelt
sequentieller Zugriff auf fragmentierte Dateien erfordert erhöhte
Bewegung des Zugriffsarm
manche Systeme erlauben das Defragmentieren des Dateisystems
Augsten (Univ. Salzburg)
Speicherzugriff
DB2 – Physische Datenorganisation
Wintersemester 2016/17
26 / 48
Speicherzugriff
Block Speicher Zugriff/5
Puffer Manager/1
Schreibzugriffe können asynchron erfolgen um Throughput
(Zugriffe/Sekunde) zu erhöhen
Persistente Puffer: Block wird zunächst auf persistenten RAM (RAM
mit Batterie-Backup oder Flash Speicher) geschrieben; der Controller
schreibt auf die Platte, wenn diese gerade nicht beschäftigt ist oder
der Block zu lange im Puffer war.
auch bei Stromausfall sind Daten sicher
Schreibzugriffe können geordnet werden um Bewegung des
Zugriffsarms zu minimieren
Datenbank Operationen, die auf sicheres Schreiben warten müssen,
können fortgesetzt werden
Puffer: Hauptspeicher-Bereich für Kopien von Platten-Blöcken
Puffer Manager: Subsystem zur Verwaltung des Puffers
Anzahl der Platten-Zugriffe soll minimiert werden
ähnlich der virtuellen Speicherverwaltung in Betriebssystemen
Log Disk: Eine Platte, auf die der Log aller Schreibzugriffe sequentiell
geschrieben wird
wird gleich verwendet wie persistenter RAM
Log schreiben ist sehr schnell, da kaum Spurwechsel erforderlich
erfordert keine spezielle Hardware
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
27 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
28 / 48
Speicherzugriff
Speicherzugriff
Puffer Manager/2
Ersetzstrategien für Pufferseiten/1
LRU Strategie (least recently used): Ersetzte Block der am längsten
nicht benutzt wurde
Programm fragt Puffer Manager an, wenn es einen Block von der
Platte braucht.
Puffer Manager Algorithmus:
Idee: Zugriffsmuster der Vergangenheit benutzten um zukünfiges
Verhalten vorherzusagen
erfolgreich in Betriebssystemen eingesetzt
1. Programm fordert Plattenblock an
2. Falls Block nicht im Puffer ist:
Der Puffer Manager reserivert Speicher im Puffer (wobei nötigenfalls
andere Blöcke aus dem Puffer geworfen werden)
Ein rausgeworfener Block wird nur auf die Platte geschrieben, falls er
seit dem letzten Schreiben auf die Platte geändert wurde.
Der Puffer Manager liest den Block von der Platte in den Puffer.
3. Der Puffer Manager gibt dem anfordernden Programm die
Hauptspeicheradresse des Blocks im Puffer zurück.
Es gibt verschiedene Strategien zum Ersetzen von Blöcken im Puffer.
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
29 / 48
MRU Strategie: (most recently used): Ersetze zuletzt benutzten Block
als erstes.
LRU kann schlecht für bestimmte Zugriffsmuster in Datenbanken sein,
z.B. wiederholtes Scannen von Daten
Anfragen in DBMSs habe wohldefinierte Zugriffsmuster (z.B.
sequentielles Lesen) und das DBMS kann die Information aus den
Bentuzeranfragen verwenden, um zukünfig benötigte Blöcke
vorherzusagen
Augsten (Univ. Salzburg)
Speicherzugriff
30 / 48
Integrierte Übung 1.2
Beispiel: Berechne Join mit Nested Loops
für jedes Tupel tr von R:
für jedes Tupel ts von S:
wenn ts und tr das Join-Prädikate erfüllen, dann ...
Zwischen R (2 Blöcke) und S (3 Blöcke) soll einen Nested Loop Join
ausgeführt werden. Jeder Block enthält nur 1 Tupel.
Der Puffer fasst 3 Blöcke.
Betrachte den Puffer während des Joins und zähle die Anzahl der
geladenen Blöcke für folgende Puffer-Strategien:
Verschiedene Zugriffsmuster für R und S
ein R-Block wird nicht mehr benötigt, sobald das letzte Tuple des
Blocks bearbeitet wurde; er sollte also sofort entfernt werden, auch
wenn er gerade erst benutzt worden ist
ein S-Block wird nochmal benötigt, wenn alle anderen S-Blöcke
abgearbeitet sind
DB2 – Physische Datenorganisation
Wintersemester 2016/17
Speicherzugriff
Ersetzstrategien für Pufferseiten/2
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
LRU
MRU
Welche Strategies eignet sich besser?
31 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
32 / 48
Speicherzugriff
Speicherzugriff
Ersetzstrategien für Pufferseiten/3
Ersetzstrategien für Pufferseiten/4
Informationen für Ersatzstrategien in DBMSs:
Pinned block: Darf nicht aus dem Puffer entfernt werden.
z.B. der R-Block, bevor alle Tupel bearbeitet sind
Toss Immediate Strategy: Block wird sofort rausgeworfen, wenn das
letzte Tupel bearbeitet wurde
z.B. der R Block soblad das letzte Tupel bearbeitet wurde
Gemischte Strategie mit Tipps vom Anfrageoptimierer ist am
erfolgreichsten.
MRU + Pinned Block ist die beste Strategie für den Nested Loop Join
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
33 / 48
Zugriffspfade haben wohldefinierte Zugriffsmuster (z.B. sequentielles
Lesen)
Information im Anfrageplan um zukünftige Blockanfragen
vorherzusagen
Statistik über die Wahrscheinlichkeit, dass eine Anfrage für eine
bestimmte Relation kommt
z.B. das Datenbankverzeichnis (speichert Schema) wird oft zugegriffen
Heuristic: Verzeichnis im Hauptspeicher halten
Augsten (Univ. Salzburg)
Datei Organisation
DB2 – Physische Datenorganisation
Wintersemester 2016/17
34 / 48
Datei Organisation
Inhalt
Datei Organisation
Datei: (file) aus logischer Sicht eine Reihe von Datensätzen
1
Einführung
2
Speichermedien
3
Speicherzugriff
4
Datei Organisation
ein Datensatz (record) ist eine Reihe von Datenfeldern
mehrere Datensätze in einem Platten-Block
Kopfteil (header): Informationen über Datei (z.B. interne Organisation)
Abbildung von Datenbank in Dateien:
eine Relation wird in eine Datei gespeichert
ein Tupel entspricht einem Datensatz in der Datei
Cooked vs. raw files:
cooked: DBMS verwendet Dateisystem des Betriebssystems (einfacher,
code reuse)
raw: DBMS verwaltet Plattenbereich selbst (unabhängig von
Betriebssystem, bessere Performance, z.B. Oracle)
Fixe vs. variable Größe von Datensätzen:
fix: einfach, unflexibel, Speicher-ineffizient
variabel: komplizierter, flexibel, Speicher-effizient
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
35 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
36 / 48
Datei Organisation
Datei Organisation
Fixe Datensatzlänge/1
Fixe Datensatzlänge/2
Speicheradresse: i-ter Datensatz wird ab Byte m ∗ (i − 1) gespeichert,
wobei m die Größe des Datensatzes ist
Datensätze an der Blockgrenze:
überlappend: Datensätze werden an Blockgrenze geteilt
(zwei Blockzugriffe für geteilten Datensatz erforderlich)
nicht-überlappend: Datensätze dürfen Blockgrenze nicht überschreiten
(freier Platz am Ende des Blocks bleibt ungenutzt)
mehrere Möglichkeiten zum Löschen des i-ten Datensatzes:
(a) verschiebe Datensätze i + 1, ..., n nach
i, ..., n − 1
(b) verschiebe letzten Datensatz im Block
nach i
(c) nicht verschieben, sondern “Free List”
verwalten
Augsten (Univ. Salzburg)
record
record
record
record
record
record
record
record
record
0
1
2
3
4
5
6
7
8
A-102
A-305
A-215
A-101
A-222
A-201
A-217
A-110
A-218
DB2 – Physische Datenorganisation
Perryridge
Round Hill
Mianus
Downtown
Redwood
Perryridge
Brighton
Downtown
Perryridge
speichere Adresse des ersten freien Datensatzes im Kopfteil der Datei
freier Datensatz speichert Pointer zum nächsten freien Datensatz
→ der Speicherbereich des gelöschten
Datensatzes wird für Free List Pointer
verwendet
Beispiel: Free List nach löschen der
Datensätze 4, 6, 1 (in dieser
Reihenfolge)
400
350
700
500
700
900
750
600
700
Wintersemester 2016/17
Free List:
37 / 48
Augsten (Univ. Salzburg)
Datei Organisation
header
record 0
record 1
record 2
record 3
record 4
record 5
record 6
record 7
record 8
DB2 – Physische Datenorganisation
A-102
Perryridge
400
A-215
A-101
Mianus
Downtown
700
500
A-201
Perryridge
900
A-110
A-218
Downtown
Perryridge
600
700
Wintersemester 2016/17
38 / 48
Datei Organisation
Variable Datensatzlänge/1
Slotted Pages/1
Slotted Page:
Warum Datensätze mit variabler Größe?
Kopfteil (header)
freier Speicher
Datensätze
Datenfelder variabler Länge (z.B., VARCHAR)
verschiedene Typen von Datensätzen in einer Datei
Platz sparen: z.B. in Tabellen mit vielen null-Werten (häufig in der
Praxis)
Kopfteil speichert:
Datensätze verschieben kann erforderlich werden:
Datensätze können größer werden und im vorgesehenen
Speicherbereich nicht mehr Platz haben
neue Datensätze werden zwischen existierenden Datensätzen eingefügt
Datensätze werden gelöscht (leere Zwischenräume verhindern)
Pointer soll sich nicht ändern:
Anzahl der Datensätze
Ende des freien Speichers
Größe und Pointer auf Startposition jedes Datensatzes
Datensätze
Block Header
Größe
Position
#Einträge
Freier Speicher
alle existierenden Referenzen zum Datensatz müssten geändert werden
das wäre kompliziert und teuer
Lösung: Slotted Pages (TID-Konzept)
Ende des freien Speichers
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
39 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
40 / 48
Datei Organisation
Datei Organisation
Slotted Pages/2
Slotted Pages/3
TID: Tuple Identifier besteht aus
Verschieben innerhalb des Blocks:
Nummer des Blocks (page ID)
Offset des Pointers zum Datensatz
Pointer im Kopfteil wird geändert
TID ändert sich nicht
Datensätze werden nicht direkt adressiert, sondern über TID
TID
TID
4711
4711
2
2
1 2 3
1 2 3
5001 Grundlagen
5001 Grundlagen
4052 Logik
5041 Ethik
5041 Ethik
4052 Mathem. Logik
Page 4711
Page 4711
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
41 / 48
Augsten (Univ. Salzburg)
Datei Organisation
DB2 – Physische Datenorganisation
Wintersemester 2016/17
42 / 48
Datei Organisation
Slotted Pages/4
Organisation von Datensätzen in Dateien/1
Verschieben zwischen Blöcken:
Datensatz wird ersetzt durch Referenz auf neuen Block, welche nur
intern genutzt wird
Zugriff auf Datensatz erfordert das Lesen von zwei Blöcken
TID des Datensatzes ändert sich nicht
weitere Verschiebungen modifizieren stets Referenz im ursprünglichen
Block (d.h. es entsteht keine verkettete Liste)
Heap Datei: ein Datensatz kann irgendwo gespeichert werden, wo
Platz frei ist, oder er wird am Ende angehängt
Sequentielle Datei: Datensätze werden nach einem bestimmten
Datenfeld sortiert abgespeichert
TID
4711
Verschiedene Ansätze, um Datensätze in Dateien logisch anzuordnen
(primary file organisation):
2
1 2 3
Hash Datei: der Hash-Wert für ein Datenfeld wird berechnet; der
Hash-Wert bestimmt, in welchem Block der Datei der Datensatz
gespeichert wird
1 2 3
5001 Grundlagen
4052 Mathem. Logik
Normalerweise wird jede Tabelle in eigener Datei gespeichert.
5041 Ethik
4812
Page 4711
Augsten (Univ. Salzburg)
3
Page 4812
DB2 – Physische Datenorganisation
Wintersemester 2016/17
43 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
44 / 48
Datei Organisation
Datei Organisation
Organisation von Datensätzen in Dateien/2
Organisation von Datensätzen in Dateien/3
Sequentielle Datei: Datensätze nach Suchschlüssel (ein oder mehrere
Datenfelder) geordnet
Datensätze sind mit Pointern verkettet
gut für Anwendungen, die sequentiellen Zugriff auf gesamte Datei
brauchen
Datensätze sollten – soweit möglich – nicht nur logisch, sondern auch
physisch sortiert abgelegt werden
Beispiel: Konto(KontoNr, FilialName, Kontostand)
record
record
record
record
record
record
record
record
record
Augsten (Univ. Salzburg)
0
1
2
3
4
5
6
7
8
A-217
A-101
A-110
A-215
A-102
A-201
A-218
A-222
A-305
Brighton
Downtown
Downtown
Mianus
Perryridge
Perryridge
Perryridge
Redwood
Round Hill
750
500
600
700
400
900
700
700
350
DB2 – Physische Datenorganisation
Physische Ordnung erhalten ist schwierig.
Löschen:
Datensätze sind mit Pointern verkettet (verkettete Liste)
gelöschter Datensatz wird aus der verketteten Liste genommen
→ leere Zwischenräume reduzieren Datendichte
Einfügen:
finde Block, in den neuer Datensatz
eingefügt werden müsste
falls freier Speicher im Block: einfügen
falls zu wenig freier Speicher:
Datensatz in Überlauf-Block (overflow
block) speichern
Wintersemester 2016/17
45 / 48
A-217
A-101
A-110
A-215
A-102
A-201
A-218
A-222
A-305
Brighton
Downtown
Downtown
Mianus
Perryridge
Perryridge
Perryridge
Redwood
Round Hill
750
500
600
700
400
900
700
700
350
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
46 / 48
Datei Organisation
Datenbankverzeichnis/1
Datenbankverzeichnis/2
Datenbankverzeichnis (Katalog): speichert Metadaten
Physische Speicherung des Datenbankverzeichnisses:
Informationen über Relationen
spezielle Datenstrukturen für effizienten Zugriff optimiert
Relationen welche bestehende Strategien für effizienten Zugriff nutzten
Name der Relation
Name und Typen der Attribute jeder Relation
Name und Definition von Views
Integritätsbedingungen (z.B. Schlüssel und Fremdschlüssel)
Beispiel-Relationen in einem Verzeichnis (vereinfacht):
RELATION-METADATA(relation-name, number-of-attributes,
storage-organization, location)
ATTRIBUTE-METADATA(attribute-name, relation-name,
domain-type, position, length)
USER-METADATA(user-name, encrypted-password, group)
INDEX-METADATA(index-name, relation-name,
index-type,index-attributes)
VIEW-METADATA(view-name, definition)
Benutzerverwaltung
Statistische Beschreibung der Instanz
Anzahl der Tupel in der Relation
häufigste Werte
Physische Dateiorganisation
wie ist eine Relation gespeichert (sequentiell/Hash/...)
physicher Speicherort (z.B. Festplatte)
Dateiname oder Adresse des ersten Blocks auf der Festplatte
PostgreSQL (ver 9.3): mehr als 70 Relationen:
http://www.postgresql.org/docs/9.3/static/catalogs-overview.html
Information über Indexstrukturen
DB2 – Physische Datenorganisation
0
1
2
3
4
5
6
7
8
→ Tabelle sortiert lesen erfordert
A-888 North Town 800
nicht-sequentiellen Blockzugriff
Datei muss von Zeit zu Zeit reorganisiert werden, um physische
Ordnung wieder herzustellen
Datei Organisation
Augsten (Univ. Salzburg)
record
record
record
record
record
record
record
record
record
Wintersemester 2016/17
47 / 48
Augsten (Univ. Salzburg)
DB2 – Physische Datenorganisation
Wintersemester 2016/17
48 / 48
Herunterladen