Kapitel 1 - DBMS Grundkonzept
|
Inhalt
|
- 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
|
|
|
|
|
|
|