"Need-to-know"- Prinzip und Datenunabhängigkeit

11.05.1979

Der Autor dieses Gastkommentars, Dr. Theo Härder, hat in Kalifornien am Projekt "System R" im IBM-Forschungslaboratorium San José mitgearbeitet. Er hat versucht, seine dort gewonnenen Erfahrungen bei der Entwicklung und Realisierung von Systemen zur Verwaltung großer Datenmengen und die dort verwendeten Lösungskonzepte neben den herkömmlichen Ansätzen in einem Buch "Implementierung von Datenbanksystemen", erschienen im Hanser Verlag, niederzulegen. Wir drucken hier den ersten Abschnitt 1.1 "Bisherige Entwicklung auf dem Gebiet der Datenbanksysteme" ab.

Sehr viele Anwendungssysteme für die Verarbeitung von Massendaten in der Wirtschaft und öffentlichen Verwaltung stellen vollkommen eigenständige Programmentwicklungen dar, die neben der Lösung des Anwendungsproblems als primäre Aufgabenstellung auch alle Aspekte der Kontrolle und Speicherung der Daten bewältigen. Dieser Ansatz isolierter Problemlösung, der die konventionelle Datenverarbeitung kennzeichnet, impliziert eine Reihe schwerwiegender Nachteile. Dadurch, daß jedes Anwendungssystem seine eigenen Daten verwaltet, wird in einem Unternehmen durch wiederholte Speicherung verschiedener Daten in unterschiedlichen Dateien ein hoher Grad an Redundanz eingeführt. Zeitgerechte Änderung von Daten wird durch Mehrfachkopien verhindert. Da es sich bei den einzelnen Dateien um private Daten eines Anwendungssystems handelt, ist es offensichtlich folgerichtig, daß Daten- und Speicherungsstrukturen auf die spezielle Anwendung zugeschnitten sind. Aus Gründen der Wirksamkeit werden sehr viele Annahmen über Details dieser Strukturen in das Anwendungsprogramm aufgenommen. Selbst die Zugriffslogik des Programms wird von der ausgewählten Speicherungsstruktur bestimmt. Wegen dieser Abhängigkeiten haben schon geringfügige Änderungen in den Daten- oder Speicherungsstrukturen massive Programmänderungen zur Folge. Weiterhin obliegt die Kontrolle der Richtigkeit und Qualität der verarbeiteten Daten dem Anwendungsprogramm.

Isolierte Problemlösung

Der einzelne Anwendungsprogrammierer bestimmt die Art und das Ausmaß der sogenannten Integritäts- oder Konsistenzkontrollen, was aus der Sicht einer isolierten Problemlösung gerechtfertigt ist. Für die Gesamtheit aller Anwendungen eines Unternehmens sind jedoch Maßnahmen anzustreben die eine einheitliche und widerspruchsfreie Integritätskontrolle aller Daten garantieren. Durch die Delegation der Verantwortung für die Integrität der Daten an den Programmierer ist dieses zentrale Anliegen nicht zu erreichen. Zur Beseitigung dieser Probleme galt es eine allgemeine Lösung zu finden welche

þdie Redundanz der Daten im Hinblick auf die Verarbeitungsprozesse vermeidet,

þdie Unabhängigkeit der Anwendungsprogramme von den Daten erhöht,

þdie zentrale Kontrolle der Datenintegrität ermöglicht.

Als Zielvorstellung reifte seit Anfang der sechziger Jahre die Idee heran, ein Programmsystem zu entwickeln, das den Anwender von allen Aufgaben der Kontrolle und Verwaltung großer Datenmengen befreit, damit er durch Konzentration auf die eigentlichen Aspekte seiner Anwendungsprobleme seine Arbeitsproduktivität steigern kann. Ein solches System, das für eine Vielzahl von Benutzern das Aufsuchen, Warten und Speichern der Daten übernimmt, bezeichnet man als Datenbanksystem (DSB). Es besteht aus einer Datenbank als der Menge der zentral gespeicherten Daten und dem Datenverwaltungssystem als Zusammenfassung aller Prozeduren zu ihrer Handhabung.

Ein hoher Grad an Datenunabhängigkeit wird dadurch erreicht, daß den Benutzern alle unnötigen Kenntnisse über die Daten und deren Speicherung verborgen bleiben.

Sie beziehen sich in ihren Verarbeitungsprozessen auf eine logische Sicht der Daten und müssen deshalb ihre Verarbeitungsschritte mit Hilfe vorgegebener Operatoren unabhängig von aktuellen Zugriffs- und Speicherungsstrukturen planen. Auf diese Weise werden die Anwendungsprogramme von den physischen Strukturen der Datenbank isoliert, so daß sie bei möglichen Änderungen und Reorganisationen gültig bleiben. Das Verbergen unnötiger Information ist ein wichtiges Entwurfsprinzip bei großen Programmsystemen und hat als

"need-to-know"-Prinzip oder als "Geheimhaltungsprinzip" allgemeine Beachtung gefunden (Pa 72).

Das dominierende Motiv

Diese Zielvorstellungen wurden bisher schrittweise durch immer mächtigere Systementwicklungen angenähert. Dabei läßt sich das Streben nach erhöhter Datenunabhängigkeit deutlich als dominierendes Motiv für die Weiterentwicklung von Datenbankkonzepten erkennen, so daß das Wissen des Benutzers, wie auf die Daten zugegriffen wird, welche Zugriffspfade vorhanden sind und welche Implementierungstechniken angewendet wurden, schrittweise verringert werden konnte.

Teilt man die bisherige Entwicklung nach Generationen ein (Wh 73), so können folgende Unterscheidungskriterien angegeben werden: In der Generation 0 schrieb der Programmierer seine Ein-/

Ausgaberoutinen selbst und speicherte seine Daten direkt als Speicherzuordnungsstrukturen auf externe Speichermedien. In der ersten Generation wurden diese Aufgaben durch Zugriffsmethoden des Betriebssystems wie SAM, ISAM

oder BDAM standardisiert. Die Änderung bestimmter Parameter der Speicherzuordnungsstrukturen hatte dadurch keinen Einfluß mehr auf Anwendungsprogramme. In der zweiten Generation wurden sogenannte "Dateiverwaltungssysteme", die Änderungsdienst, Sortierung und Aufbereitung der Daten einer einzelnen Datei übernahmen, und "Report-Generatoren" eingeführt (RPG, MARK IV).

Auf logischen Zugriffspfaden

Die Systeme der dritten Generation wie IDS, IMS (IMS 75) und Implementierungen nach dem DBTG-Report (DBTG 71) erhoben zum ersten Mal den Anspruch, allgemeine Datenbanksysteme zu sein. Es wurden umfassende Sprachen, um die Daten zu beschreiben (Data Definition Language = DDL) und als Programmierer zu handhaben (Manipulation Language = DML) eingeführt. Mit Hilfe prozeduraler Sprachen konnten Daten mehrerer Dateien miteinander verknüpft werden. In Systemen dieser Generation wurde angestrebt, daß der navigierende Programmierer (Ba 73) sich nur noch auf logische Zugriffspfade zu beziehen hat, um von deren konkreter Implementierung unabhängig zu sein.

Die vierte Generation von Datenbanksystemen, die durch das Relationsmodell (Co 70) oder Entity Set Model (Se 73) begründet wurde, weist keinerlei physische Abhängigkeiten mehr auf und realisiert ein hohes Maß an logischer Datenunabhängigkeit. Der Benutzer kennt nur noch die logische Beschreibung der Datenstruktur und hat eine deskriptive Datenmanipulationssprache mit hohem Auswahlvermögen. Das Datenbanksystem hat die alleinige Kontrolle über die Zugriffspfade. Anfragen in Sprachen nach dem Prädikatenkalkül erster Ordnung oder nach der Relationenalgebra (Co 71a) werden vom Datenbanksystem dadurch unterstützt, daß automatisch verhandene Zugriffspfade zum wirksamen Aufsuchen von Daten ausgewählt werden. Aus Änderungen von Zugriffspfaden resultieren nicht mehr Programmfehler, sondern nur noch Zeitunterschiede in der Behandlung solcher Anforderungen.

Entnommen aus: Härder, Implementierung von Datenbanksystemen, 322 Seiten. 1978. Carl Hanser Verlag, München, Wien. Kartoniert 42 Mark.