Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:datenbanksysteme

Datenbanksysteme

Datenbanken besitzen in der Praxis eine immense Bedeutung. So schätzt man, dass mehr als 50% der Software-Entwicklung in der Industrie auf dem Gebiet der betrieblichen Informationssysteme erfolgt. Hinter jedem größeren Informatiksystem, sei es nun ein Webshop, ein Content-Management-System oder ein Enterprise-Resource-Planning-System, steckt ein Datenbanksystem.

Historische Entwicklung

In den frühen Anfängen der Informatik wurden Daten von Anwenderprogrammen direkt in sequentiellen Dateien gespeichert. Diese Form der Datenspeicherung hatte erhebliche Nachteile. Sollte z. B. ein Datensatz um ein Datenfeld erweitert werden, musste man ein eigenes Konvertierungsprogramm schreiben, das die bisherige Datendatei eingelesen und mit der erweiterten Struktur neu geschrieben hat. Wurde von einem anderen Datenprogramm die gleiche Datei benutzt, so musste auch dieses Programm entsprechend verändert werden.

Beispiel An der Schule werden an verschiedenen Stellen Stammdaten der Schüler wie Vorname, Nachname, Geburtsdatum benötigt, z. B. im Sekretariat, in der Bibliothek und beim Studienleiter, der die Kurse einteilt. Alle nutzen unterschiedliche Programme und verwalten dabei ihre eigene Schülerdatei.

Die Probleme, die hierbei auftreten, sind ersichtlich:

  • Datenredundanz, d. h. die gleichen Daten werden mehrfach gespeichert.
  • Gefahr der Dateninkonsistenz, d.h. bei Änderungen können wegen der mehrfach gespeicherten Daten Widersprüche auftreten. Verlässt ein Schüler die Schule, so wird er mit dem Programm im Sekretariat gelöscht, aber mit einem anderen immer noch in Kurse eingeteilt.
  • Unflexibel gegenüber Änderungen, kurz gesagt, Änderungen der Datenstruktur verlangen Änderungen der Programme; zusätzliche Aufgaben verlangen neue Datenorganisation, da diese an der alten Zielsetzung ausgerichtet waren. Abfragen über mehrere Datenbestände hinweg lassen sich in diesem System kaum realisieren, z. B. eine Abfrage über die Daten der Bibliothek und der Kurseinteilung: „Lesen Schüler der Deutsch-Leistungskurse mehr klassische Literatur?“.
  • Datenschutzprobleme und Datensicherheit, Benutzer bzw. Programme besitzen vollen Zugriff auf die dem Programm zugeordnete Daten. So könnte z. B. das Bibliotheksprogramm aufgrund einer Fehlfunktion sämtliche Ausleiher löschen.
  • Keine Einhaltung von Standards, d. h. Datenbestände werden an unterschiedlichen Stellen in unterschiedlichen Formaten abgespeichert und sind nicht ohne weiteres austauschbar. Z. B. können die Schülerdaten im Sekretariat in einem Format vorliegen, das vom Bibliotheksprogramm nicht verstanden wird, so dass diese Daten dort extra eingegeben werden müssen.
  • Kein Mehrbenutzerbetrieb, d. h. es kann immer nur ein Anwender auf eine Datei zugreifen.

Datenbanksystem

In den 1960er Jahren wurde daher als neues Konzept eine separate Softwareschicht zwischen Dateiverwaltung und Anwenderprogramm eingeführt. Ein Datenbanksystem - bestehend aus dem Datenbankmanagementsystem (DBMS) und den Datenbanken - repräsentiert dieses Konzept.

Drei-Ebenen-Architektur

Das Datenbankmanagementsystem bildet nun eine einheitliche Schnittstelle zwischen den Benutzern und Daten. Aus ihm resultiert eine Drei-Ebenen-Architektur, bei der auf jeder Ebene spezifische Aspekte des Datenbanksystems beschrieben und realisiert werden.

Externe Ebene

Das DBMS stellt Benutzern - das können Menschen, aber auch Programme sein - die Daten in einer für sie brauchbaren Form in individuellen Benutzersichten zur Verfügung. Ändert sich eine Anwendung, dann muss nicht mehr die Datenorganisation geändert werden, sondern lediglich eine neue „externe Sicht“ (View) auf die Daten geschaffen werden. Datensicherheit und Datenschutz können leichter gewährleistet werden. So erhält ein Benutzer durch seine spezifische Sicht nur Zugriff auf Daten, für die er eine Zugriffsberechtigung besitzt. Der Anwendungsprogrammierer entwickelt die Formulare, Datenbankskripte bzw. Anwendungsprogramme für die Nutzung der Datenbank.

Konzeptionelle Ebene

Das DBMS verwaltet zentral alle Daten eines Unternehmens, einer Institution, eines Projekts usw. Redundanzen und Inkonsistenzen können so vermieden werden und gemeinsame Standards werden eingehalten. Die Daten sind gemäß ihren logischen Zusammenhängen organisiert und nicht entsprechend den Anforderungen spezieller Anwendungen. Das DBMS kann durch spezifische Kontrollen beim Eingeben, Löschen und Ändern von Daten Fehler vermeiden helfen. So ist es z.B. nicht möglich, einem nicht existierenden Schüler Kurse zuzuweisen oder Kurse zu belegen, deren Kursnummern in der Datenbank nicht vorkommen. Sie enthält die logische Gesamtsicht auf das Datenmodell. Mit Hilfe von Relationen wird beschrieben, welche Daten in der Datenbank gespeichert sind und wie die Beziehungen zueinander sind. Die Relationen werden aus der Entity-Relationship-Modellierung abgeleitet. Der Datenbankadministrator arbeitet auf dieser Ebene.

Interne Ebene

Das DBMS realisiert auch die Speicherung der Daten auf den Speichermedien. Es geht um Fragen der physischen Speicherung der Daten, wie z. B. welche Daten werden zu Einheiten (Datensätzen) auf einem Massenspeicher zusammengefasst, in welcher Organisationsform werden die Daten gespeichert, wie erfolgt ein schneller Zugriff (Suchbaum, Hashtabelle usw.) und welche Sortierverfahren werden angewendet. Die Realisierung der internen Ebene ist Sache des Datenbanksystem-Entwicklers.

Aus der Drei-Ebenen-Architektur ergeben sich klare Vorteile.

  • Physische Änderungen wie z.B. anderes Speichermedium oder Update des Datenbanksystems wirken sich nicht auf die konzeptionelle oder externe Ebene aus, da die interne von der konzeptionellen und externen Ebene getrennt ist. (physische Datenunabhängigkeit)
  • Änderungen an der Datenbankstruktur haben keine Auswirkungen auf die externe Ebene, also die Formulare, Datenbankskripte und Anwendungsprogramme, da die konzeptionelle und die externe Ebene getrennt sind. (logische Datenunabhängigkeit)

Aufgaben

1. Es soll eine Datenbank für eine Bücherei eingerichtet werden. Ein einzelnes Buch sei beschrieben durch die folgenden Merkmale: Inventarnummer des Buches, ISBN-Nummer, Autor, Titel, Fachgebiet, Verlag, Erscheinungsort und -jahr, Auflage, Preis.
a) Zu welcher Ebene gehört diese Beschreibung?
b) Nehmen wir an, die Datenbank soll in Pascal oder Java geschrieben werden. Welche Hilfsmittel stehen dann zur Verfügung, um möglichst saubere Schnittstellen zwischen den einzelnen Ebenen zu realisieren? Welche Designentscheidungen bei der Planung des Programms gehören zur physischen, welche zur konzeptuellen, welche zur externen Ebene? Inwieweit lässt sich Datenunabhängigkeit wahren?

2. Analysieren Sie bei jeder der folgenden Umstellungen, auf welcher der Ebenen eines bestehenden Datenbanksystems jeweils etwas geändert werden muss:
a) Neuer Rechner, aufwärts kompatibel, gleiches Betriebssystem, gleiches Datenbanksystem.
b) Neuer Rechner, anderes Fabrikat, gleiches Betriebssystem, gleiches Datenbanksystem.
c) Neue Platten mit anderer Struktur.
d) Ein neues Programm benutzt bestehende Daten.
e) Ein neues Programm X benutzt bestehende Daten und zusätzliche neue Datenstrukturen.
f) Eine neue Verbindung zwischen zwei existierenden Typen wird eingeführt, bisher gab es z.B. zwischen Schülern und Lehrern nur die Verbindung, wer Tutor ist. Jetzt gebe es zusätzlich die Verbindung, wer für jeden Schüler frei wählbarer Vertrauenslehrer ist.
g) Der Bestand einer Datenbank wird geteilt.

db/datenbanksysteme.txt · Zuletzt geändert: 2014/05/01 15:03 von roehner