Aufbau Datenbanksysteme

Werbung
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
Herunterladen