Webcam Diggs Cam


DBMS - Grundkonzept

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?


Schedule-Prinzip

Was sind die drei Hauptaufgaben eines DBMS?

  1. Daten Speichern und Verwalten - also ein Sprachkonzept zur Kommunikation und Abstraktion
  2. Bereitstellen von Daten in Form von Anfragen
    Übersetzer, welcher Übergang zwischen Benutzerebene und interner Ebene darstellt
    (Integritätskontrollen, Sicherungsmechanismen etc.)
  3. Mehrbenutzersystem - Zugriffskontrolle und Sperrmechanismen

Was sind die Nachteile von Dateisystemen?

  1. keine Trennung von Programm und Daten (keine Daten-Programm Abhängigkeit)
  2. Redundanzen durch anwendungsbezogende Dateistrukturen
  3. 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)


DBMS-Prinzip

Welche acht Schritte führt das DBMS nach einer (deskriptiven) Anfrage aus?

  1. Syntax prüfen (Integritätscheck)
  2. Tabellen in Schema vorhanden?
  3. Zugriffsrechte prüfen
  4. Festellen welche Operationen intern auszuführen sind und wie der Anfrage-Operand intern gespeichert ist
  5. Erstellung eines effizienten Codestückes zur Antwortberechnung
  6. Operanden aus Datenbank lesen
  7. Aufbereiten der Operanden (Optimieren)
  8. 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).

Printansicht Inhalt Anfang zurück vor
Kapitel 1DBMS Konzept
Eigenschaften, Bestandteile, Ebenen...
Kapitel 2DB Entwurf
Qualitätsmerkmale, funktionale Abhängigkeiten, ER...
Kapitel 3Normalformen
Übersicht Normalformen, Anomalien...
Kapitel 4Relationalität
Regeln und Vorgehensweisen...
Kapitel 5Sprachen
relationale Sprachen, SQL, Query...
Kapitel 6Datenorganisation
Tertiärspeicher, Adressierung, Indexe, ISAM...
Kapitel 7Transaktionskonzept
Datenintegrität, Serialisierbarkeit, ACID...
Kapitel 8Concurrency Control
Read-Write Modell, Schedules, Prinzip...
Kapitel 9Scheduler & Recovery
2-Phasen-Sperren,Deadlocks,Recovery...
PDF download:
Kleine ÜbersichtNormalformen
DMBSDMBS Bestandteile
Concurrency ControlConcurrency Control
All In OneKomplett (115 KByte)
Quellen:
Gottfried Vossen
Datenbankmanagementsysteme
Heuer und Saake
Konzepte und Sprachen
Prof. Benn
Skript und Vorlesung
Relationale Datenbanken
Andreas Kelz
Word Wide Web
Verschiedenste Seiten
Links:
Relationale Datenbanken
Andreas Kelz
ER Modell
Universität Wien

login

last change 06.04.2008 16:28:52  © 2002 - 2005 Holger Kreissl