Kapitel 1 - DBMS Grundkonzept
- Hauptaufgaben eines Datenbankmanagmentsystems
- Wozu braucht man ein DBMS?
- Schwerpunkte der Implementierung, wie Datenunabhängigkeit und Effizienz
- Was ist ein Datenmodell und welche gibt es?
- Was ist das Ansi/Sparc Drei-Schichten-Modell?
- In welche fünf Ebenen läßt sich ein DBMS einteilen?
- Was macht das Data Dictonary?
- Wie arbeitet der Query Prozessor?
|

Was sind die drei Hauptaufgaben eines DBMS?
- Daten Speichern und Verwalten - also ein Sprachkonzept zur Kommunikation und
Abstraktion
- Bereitstellen von Daten in Form von Anfragen
Übersetzer, welcher Übergang zwischen Benutzerebene und interner Ebene
darstellt
(Integritätskontrollen, Sicherungsmechanismen etc.)
- Mehrbenutzersystem - Zugriffskontrolle und Sperrmechanismen
Was sind die Nachteile von Dateisystemen?
- keine Trennung von Programm und Daten (keine Daten-Programm
Abhängigkeit)
-
Redundanzen durch anwendungsbezogende Dateistrukturen
-
Inkonsistenz schnell vorhanden, da keine Schutzmechanismen
Ein DBMS soll diese Nachteile eliminieren durch
- Trennen von Programm und Daten
- Datenintegrität durch Redundanzvermeidung
- Auswertbarkeit der Daten
- Zentralisierung der Dienstleistungen (Parser, Recovery...)
Welche Schwerpunkte sind bei der Implementierung zu betrachten?
- Datenunabhängigkeit
- Effiziente Organisation
- Datensicherheit
- Datenschutz
- Datenmodell
Was ist Datenunabhängigkeit
...bedeutet eine (weitgehende) Unabhängigkeit von Daten mit ihren arbeitenden
Programmen und Nutzern. Dies bedeutet, daß die physische Organisation der Daten für
Dialoge und Programme transparent sein soll. Das heißt ein
Programm muß sich nicht um die Datenstruktur und den Zugriffspfad kümmern.
Physische Datenunabhängigkeit
Bezieht sich darauf, dass Anwenderprogramme sich nicht um die interne
Speicherung und Verwaltung der Daten kümmern müssen. So sollten Datenbanktuning
oder Erweiterung von Speicherstrukturen keine Auswirkungen auf Anwendungsprogramme
haben.
Logische Datenunabhängigkeit
besagt, dass ein Datenbestand und seine Zusammenhänge für verschiedene
Anwendungen aus unterschiedlichen Perspektiven interpretiert werden können.
- Die ANSI-SPARC macht logische und physische Datenabhängigkeit möglich
- Durch Einführung der drei Ebenen
- logische Datenunabhängigkeit, da externe Schema Anwendungen vor Änderungen des internen Schema (z.B. Änderungen am Schema) schützen
- physische Datenunabhängigkeit, da konzeptuelles Schema Anwendungen vor Änderungen des internen Schemas (z.B. Tuning) schützt
Merktabelle: Zusammenhang
Was ist mit effizienter Organisation gemeint?
Anfragen an das DBMS müssen in akzeptabler Zeit beantwortbar sein. Aus diesem
Grund müssen geeignete Organisationsformen zur Verfügung gestellt werden, nach
denen die Daten effizient von externen Speichern gelesen und geschrieben werden
können.
Wozu Datensicherheit?
Im Falle eines Betriebsmittelsausfalles kann der interne Zustand der Datenbank
in einen nicht definierten Zustand geraten. Das DBMS muss deshalb Funktionen
bereitstellen, welche dies überwachen und gegebenenfalls reparieren - das so
genannte Recovery.
Was ist mit Datenschutz gemeint?
Um sensible Daten zu schützen sind gewisse Vorkehrungen notwendig. Es muss
möglich sein verschiedenen Nutzern auch verschiedene Rechte zuweisen zu können.
Insbesondere Datensicherheit und Datenintegrität sind Gegenstand der Sparc
Drei-Sichten-Architektur.
Was ist ein Datenmodell?
Ist das zentrale Hilfsmittel zur Herstellung einer Abstraktion eines gegebenen
Realweltausschnitts und den Einzelheiten der physischen Speicherung. Es umfaßt eine
Menge von Konzepten mit denen sich die Struktur einer DB beschreiben läßt.
Struktur: Datentypen, Beziehungen, Bedingungen, welche von Daten
erfüllt werden sollen (DDL)
Operationen: zur Beschreibung von Anfragen und Updates an eine
Datenbank (DML)
Was ist ein Schema?
Schemata sind Modelle verschiedener Abstraktionsniveaus bzw. Ebenen, die durch
eine Datenbankbeschreibungssprache so beschrieben sind, dass diese durch das DBMS
verarbeitet werden können.
Welche drei wichtigen Datenmodelle gibt es?
Hierarchisches Datenbanksystem, Netzwerksysteme und Relationales Modell.
Erklären sie das hierarchische Datenbanksystem!
Ein Record ist hier ein Knoten einer Baumstruktur, welche die Beziehungen
zwischen dieses Records darstellt. Ein Knoten kann mehrere Nachfolger haben.
Während einem Knoten mehrere Söhne zugeordnet werden können, kann er aber höchstens
einen Vorgänger haben. Falls aus logischer Sicht zwei verschiedene Knoten den
gleichen Record als Nachfolger haben, muss dieser mehrfach, also redundant,
aufgeführt werden.
Technisch werden die Beziehungen zwischen den Records über Pointer realisiert. Der
Zugriff erfolgt über eine geeignete Traversierung (z.B. Preoorder) der Struktur vom
Wurzelknotens ausgehend.
Das hierarchische Modell erlaubt es, Datensätze mit variabler Länge (also mit
Wiederholungsgruppen) einfach zu modellieren. Dazu wird ein Datensatz in einen Teil
ohne und einen Teil mit Wiederholungsgruppen aufgeteil.
Einfügen, Löschen und Ändern kann immer nur im Rahmen der Hierarchie geschehen.
D.h. es kann kein direkter Zugriff erfolgen, sondern nur über den Vater. Es ist
also ein sequentielles Travasieren notwendig.
Welche Probleme hat das hierarchische System?
N:M Beziehungen sind nicht direkt abbildbar, weil die möglichen 1:n-Beziehnungen
gerichtet sind von 1 zu n. Somit würde die Struktur keinen Baum sondern einen
Graphen darstellen. Werden Datensätze an einer zweiten Stelle zur Verarbeitung
erneut benötigt, müssen diese auch noch einmal im Modell auftreten. Das heisst, es
herrscht Redundanz...
Um die Graphenbildung und Redundanzen zu vermeiden werden virtuelle Satztypen
eingeführt. Dies wird vor allem bei der Implementierung der Bill Of Material
(Stückliste) genutzt!
Was sind Netzwerksysteme?
Netzwerksysteme sind den hierarchischen Systemen ähnlich. Sie müssen sich aber
nicht der Baumstruktur beugen. Redundante Knoten sind hier auch nicht notwendig, da
Link-Records eingeführt werden, welche die Mehrfachzuweisungen realisieren. Es
werden ebenso Pointer zur Umsetzung der Beziehungen verwendet.
Beziehungstypen sind ausschließlich 1:1 oder 1:n und werden als gerichteter Graph
zwischen den Satztypen dargestellt.
Set-Typen
Die Bezeichnung Set drückt aus, daß zu jedem logischen Datensatz A ein Satz vom Typ
B gehört, zu dem alle Sätze gehören, die über A mit B in Beziehnung stehen. Es kann
aber auch Sätze geben die zu keinem andern Satztyp in Beziehung stehen.
Owner & Member
Owner ist im hierarchischen Modell der Vater.
Member ist im hierarchischen Modell der Sohn.
n:m Beziehungen im Netzwerkmodell
N:M Beziehungen werden in 1:n Beziehungen mit Hilfe eines Kettsatzes
(Kett-Record)erzeugt, welcher in beiden Beziehungen als Member eingetragen wird.
Daraus ergibt sich ein ungerichteter Graph, da man hin- und zurückgelangen
kann.
Das Netzwerkmodell ist zwar leistungsfähiger als das Hierarchische Modell, lässt
sich aber weitaus schwieriger Implementieren und Verarbeiten. Das Auffinden von
Datensätzen ist wesentlich komplizierter, da durch das Netzwerk navigiert werden
muss.
Currency Konzept
Currency bedeutet, daß Bezug auf die aktuelle Position im Netzwerk unter Verwendung
interner Datenbankaktualitäts-Indikatoren genommen werden kann (Currency
Indicators). Die Werte der Indikatoren können als datenbankinterne Schlüssel
gesehen werden.
- hierarchischem Modell und Netzwerkmodell verbindet Daten mit Zeigern
- deshalb kaum Trennung von interner und konzeptioneller Ebene möglich
- Anfragesprache muss entlang der Zeiger Navigieren
- Das Relationale Modell speichert Daten in Tabellenstrukturen und basiert auf 3-Ebenen Architektur
- Objektorientierte Datenbanken sind besonders für das Ablgegen komplexer Objekte geeignet
Merktabelle: Zusammenfassung
Wie funktioniert das Relationale System?
Dieses Modell verzichtet im Gegensatz zu den anderen auf Pointer zur
Darstellung von Beziehungen. Daten werden ausschließlich über inhaltliche Angaben
aufeinander bezogen. Die Entities einer Klasse werden in Form von Tabellen
(Relationen) dargestellt, in deren Zeilen die Beschreibungen stehen. Die Struktur
der Tabelle wird über die Spalten-Überschriften festgelegt. Eine Zeile einer
Relation wird als Tupel bezeichnet.
Eine wichtige Eigenschaft für Attribute ist der elementare Charakter, d.h. es sind
keine zusammengesetzten Attribute oder ähnliches erlaubt. Die gespeicherten Daten
werden ausschliesslich über mengenorientiert verknüpft. Der Zugriff erfolgt über
fünf grundlegenden Operationen:
- Selektion (Zeilenauswahl) - nicht mit SELECT Befehl zu verwechseln
- Projektion (Spaltenauswahl) - Schemareduzierend - Gefahr der
Schlüsselzerstörung
- Vereinigung - Schemaerhaltende Operation
- Differenz - keine n:m-Beziehung
- Kartesisches Produkt - n:m-Beziehung und somit quadratischer Aufwand!
Folgende Operationen sind keine Grundoperationen:
- Join (Verbund), Equi Join (Kreuzprodukt mit anschliessender Selektion)
- Natural Join (Operanden nicht rekonstruierbar - Kreuzprodukt,Selektion und
Projektion)
- Restriktion
- Division (zum einfachen Filtern von Relationen)
Was kennzeichnet das Objektorientierte Modell?
Hier wird ein Entity-Typ durch eine Klasse mit den dazugehörigen Funktionen
repräsentiert. Attribute der Klassen müssen nicht atomar sein, sondern bestehen aus
Records, Listen oder Mengen. Durch das Prinzip der Vererbung kann die Struktur
eines Entity-Typs an andere Klassen weiteregegeben werden. Binäre Beziehungen
können durch mengenwertige Attribute modelliert werden.
class Person
type tuple (name : String, geb_datum : Date, kinder : list(Person))
end;
class Student inherit Person
type tuple (mat_nr : Integer, hoert : set (Vorlesung))
end;
class Vorlesung
type tuple (titel : String, gehoert_von : set (Student))
end;
Beispielquelle: Universität Osnabrück
Wie sieht das Ansi/Sparc Modell aus?
|
Externe Ebene
|
Umfasst verschiedene Sichten der Nutzer (z.B. ein SQL Statement) Diese
Subschemata werden in einem externen Schema beschrieben, welches nur diesen
Ausschnitt der konzeptuellen Schicht enthält und gegebenenfalls Teile
verwehrt.
|
|
Konzeptuelle Ebene
|
Repräsentiert die logische Gesamtsicht der Daten und ihrer Beziehungen
untereinander. Sie beschreibt also das, was in der Datenbank abgelegt werden
soll. Ferner werden auch Integritätsbedingungen und Zugriffsrechte
dokumentiert.
- Stabiler Bezugspunkt für alle Anwendungen (ändert sich kaum)
- Dokumentation (Das Datenbankschema dokumentiert einen Weltausschnitt)
- Kontrolle (bietet Möglichkeit der Nutzung zentraler Dienste, wie
Versionsmanagment)
- Datenunabhängigkeit
|
|
Interne Ebene
|
Verwaltung der Daten als "interne Records" (Datensätze). Informationen über
Art und Aufbau verwendeter Datenstrukturen und spezieller
Zugriffsmechanismen. Sie lokalisiert die Daten auf den Sekundärspeichern und
ist extrem eng mit dem Betriebssystem verknüpft (z.B. Wandlung logischer
Adressen in physikalische)
|
Transformationsvorschriften beschreiben, wie man aus einem konzeptuellen
Modell ein internes bzw. externes Modell herleitet. Werden Änderungen an der
Internen Ebene vorgenommen, so müssen nur die Transformationsregeln angepasst
werden.
Datenmodelle auf der 3-Ebenen Architektur basierend, gewährleisten ein hohes
Maß an Datenunabhängigkeit.
Physische Datenunabhängigkeit:
Bei Änderungen des internen Schemas sind nur die Transformationsvorschriften
zu ändern. Externe Sichten bleiben unbeeinflusst. Anders
gesagt, beschreibt Physische Datenunabhängigkeit die Isolierung der
Anwendungen von der physischen Dateiorganisation.
Logische Datenunabhängigkeit:
Die Anwendungen werden von der konzeptuellen Ebene der Modellierung isoliert.
In Abhängigkeit von der Flexibilität der Transformationen können ggf.
unterschiedliche Interpretationen der Daten in den externen Schemata
niederschlagen.
Statische Datenunabhängigkeit:
Die Anwendung muss bei statischer Datenunabhänigkeit bei Änderungen im
konzeptuellen oder internen Modell neu gebunden werden. (Erreicht durch
Binden zur Übersetzungszeit)
Dynamische Datenunabhängigkeit:
Anwendungen sind von allen Änderungen völlig unabhängig. (Erreicht durch
Binden zur Zugriffszeit)
|

Welche acht Schritte führt das DBMS nach einer (deskriptiven) Anfrage aus?
- Syntax prüfen (Integritätscheck)
- Tabellen in Schema vorhanden?
- Zugriffsrechte prüfen
- Festellen welche Operationen intern auszuführen sind und wie der
Anfrage-Operand intern gespeichert ist
- Erstellung eines effizienten Codestückes zur Antwortberechnung
- Operanden aus Datenbank lesen
- Aufbereiten der Operanden (Optimieren)
- Sicherstellen, daß Operanden nicht während Ausführung durch andere Anfragen
geändert werden (Kritischer Abschnitt - Zwei Phasen Protokoll)
In welche fünf Ebenen kann man die Struktur eines DBMS einteilen?
-
Ebene 1 der Benutzersprache
-
Ebene 2 der Anfrageverarbeitung
-
Ebene 3 der Zugriffsstrukturen
-
Ebene 4 der Synchronisation paralleler Zugriffe
-
Ebene 5 der Speicherverwaltung
Beschreiben Sie die 5 Ebenen des DBMS!
|
Ebene 1 der Benutzersprache
|
|
I/O-Prozessor
nimmt Anfragen entgegen und gibt Ergebnisse und Fehler aus.
Parser
übernimmt syntaktische Analyse der Anfrage bzw. des Auftrages.
Precompiler
für eingebettete Kommandos.
Autorisierungskontrolle
in jedem Falle bevor es zu Ebene 2 geht!
Weitergabe des Codes an Ebene 2 ( Update - oder den Query-Prozessor) durch
die Autorisierungskontrolle (bei relationalen DB als Baum mit Operanden als
Blätter und Operatoren als Knoten)
|
|
Ebene 2 der Anfrageverarbeitung
|
|
Update-Prozessor:
Änderungen in der Datenbank vornehmen
Integritätsprüfung:
semantische Korrektheit der DB = Konsistenz, deren Regeln beim Erstellen des
Schemas definiert werden, wie z.B. höhe<>0
Query-Prozessor:
nur Anfragen an Datenbank und somit keine Integritätsprüfung notwendig, dafür
aber Optimierung
Optimierer:
versucht unnötigerweise komplizierte Benutzeranfragen zu vereinfachen
Weitergabe des Codes an Ebene 3 durch den Optimierer
|
|
Ebene 3 der Zugriffsstrukturen
|
|
Zugriffsplanerstellung
Bestimmung eines Zugriffspfades aus den vorhandenen Zugriffsstrukturen (z.B.
Indexe)
Code-Erzeugung
Erzeugung des Zugriffs- und Ausführungscodes, was immer nur eine Folge von
Lese und Schreiboperationen (=Transaktionen) sind
Weitergabe der Transaktionen an die Transaktionsmanager
|
|
Ebene 4 der Synchronisation paralleler Zugriffe
|
|
Transaktionsverwaltung:
Synchronisation parallel ablaufender Transaktionen durch Verzahnung, da
Nutzer einer DB nie exklusiven Zugriff hat. Kein sequentieller Ablauf, da
sonst kurze Transaktionen gegebenenfalls lange warten müssen, obwohl diese in
disjunkten Teilen arbeiten
Scheduler:
Synchronisation der zeitlich überlappten Transaktionen (Concurrency
Control)
Recovery-Manager:
Transaktionen werden nach "Alles oder Nichts" Prinzip bearbeitet. Wird eine
Transaktion nicht beendet, stellt der Recovery Manager den Urzustand der DB
mit Hilfe des Log-Buches wieder her. (auch nach Hardwarefehlern o.ä.)
|
|
Ebene 5 der Speicherverwaltung
|
|
Buffermanager
Hauptspeicherverwaltung für jede Transaktion
Data-Manager
mit Geräte- und Sekundärspeichermanager führt die physischen Zugriffe
aus
Nutzung von Betriebssystem Funktionen
|
|
Alle Ebenen sind mit dem Data-Dictonary verbunden!
|
Was ist das Data Dictonary?
Metadaten bzw. Beschreibungen der Daten und somit der Schemata werden im Data
Dictonary gespeichert. Datenbank selbst und das interne Logbuch der Datenbank sind
zwei weitere zentrale Systemkomponenten.
Es enhält unter anderem...
- die Beschreibung der Daten
- Angaben, welche Programme welche Daten nutzen
- Konsistenzbedingungen
- Zugriffsrechte
Was macht der Query-Prozessor des DBMS?
Er stellt einen Pool von Ausführungsoperatoren sowie
Mechanismen für deren Kommunikation und Synchronisation (zB. Pipes) zur Verfügung.
Im Grunde ist der Anfrageprozessor dafür verantwortlich die algebraischen
Ausdrücke auf physischer Ebene zu verarbeiten. Dabei wird optimiert durch
Parallelverarbeitung mehrerer Prozesse. Ein Prozess schreibt ein
Zwischenergebnis in ein File und eine andere Prozess nimmt diese Zwischenergebnisse
heraus zur Fortsetzung der Operation.
Was sind die drei wichtigsten Dienste eines DBMS?
Datenmanager, Zugriffsmanager und Systempuffermanager stellen die wichtigsten
Dienste im DBMS dar...
Was macht der Datenmanager?
Der Datenmanager ist die Mengenschnittstelle. Er übersetzt und optimiert die
Anfragen, Integritäts- und Zugriffskontrollen.
Was macht der Zugriffsmanager?
Stellt eine 1-Tupel-Schnittstelle dar. Er ist verantwortlich für
Einfügen/Löschen/Suchen und Ändern von Tupeln. Er stellt Operatoren für Schemata
und Transaktionsmanagement bereit.
Welche Aufgabe hat der Systempuffermanager?
Der Systempuffermanager ist die Seitenschnittstelle, welche bei Bedarf neue
Seiten vom Betriebssystem anfordert (pinned pages).
|
|
|
|
|
|
Kapitel 1
|
DBMS Konzept
|
|
Eigenschaften, Bestandteile, Ebenen...
|
|
Kapitel 2
|
DB Entwurf
|
|
Qualitätsmerkmale, funktionale Abhängigkeiten, ER...
|
|
Kapitel 3
|
Normalformen
|
|
Übersicht Normalformen, Anomalien...
|
|
Kapitel 4
|
Relationalität
|
|
Regeln und Vorgehensweisen...
|
|
Kapitel 5
|
Sprachen
|
|
relationale Sprachen, SQL, Query...
|
|
Kapitel 6
|
Datenorganisation
|
|
Tertiärspeicher, Adressierung, Indexe, ISAM...
|
|
Kapitel 7
|
Transaktionskonzept
|
|
Datenintegrität, Serialisierbarkeit, ACID...
|
|
Kapitel 8
|
Concurrency Control
|
|
Read-Write Modell, Schedules, Prinzip...
|
|
Kapitel 9
|
Scheduler & Recovery
|
|
2-Phasen-Sperren,Deadlocks,Recovery...
|
|
|
|
|
|
|
Quellen:
|
Gottfried Vossen
Datenbankmanagementsysteme
|
Heuer und Saake
Konzepte und Sprachen
|
Prof. Benn
Skript und Vorlesung
|
Relationale Datenbanken
Andreas Kelz
|
Word Wide Web
Verschiedenste Seiten
|
|
|
|
|