FACHHOCHSCHULE HEILBRONN Hochschule für Technik und Wirtschaft Studiengang Electronic Business (EB) Handout Historische Entwicklung von Datenbanken von Jochen Löhl Mario Lörcher Ingo Sahm im SOMMERSEMESTER 2005 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken Inhaltsverzeichnis 1. Einführung............................................................................................................... 1 1.1 Historische Entwicklung..................................................................................... 1 1.2 Motivation für Datenbanken............................................................................... 1 1.2.1 Historisches................................................................................................. 1 1.2.2 Erreichte Ziele ............................................................................................. 2 2. Datenmodelle .......................................................................................................... 3 2.1 Allgemein........................................................................................................... 3 2.1.1 Definition ..................................................................................................... 3 2.1.2 Datenmodelle – Ein Überblick..................................................................... 3 2.2 Hierarchisches Datenmodell.............................................................................. 4 2.2.1 Entwicklung und Struktur ............................................................................ 4 2.2.2 Der Wurzelbaum ......................................................................................... 5 2.2.3 Die hierarchische Ordnung ......................................................................... 5 2.2.4 Die Beziehungen......................................................................................... 6 2.2.5 Redundanz.................................................................................................. 6 2.3 Netzwerk-Datenmodell ...................................................................................... 7 2.3.1 Entwicklung................................................................................................. 7 2.3.2 Strukturelemente des Netzwerk-Datenmodells ........................................... 8 2.3.3 Darstellung von Strukturen im NDM............................................................ 8 2.3.4 Bewertung des Netzwerkdatenmodells ....................................................... 9 2.4 Das CODASYL/DBTG-Konzept....................................................................... 10 2.4.1 CODASYL ................................................................................................. 10 2.4.2 Entwicklung des CODASYL/DBTG-Konzepts ........................................... 10 2.4.3 Aufbau eines DBS nach dem CODASYL/DBTG-Konzept......................... 12 2.5 Das ANSI/X3/SPARC-Konzept ........................................................................ 13 II Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 1. Einführung 1.1 Historische Entwicklung Kleiner Zeitlicher Überblick über die historische Entwicklung: • Ab 18. Jhd.: Lochkarten • 1956: Erfindung der Festplatte • 1968 – 1975: Hierarchisches Datenmodell • 1975 – 1980: Netzwerkdatenmodell • Ab 1980: Relationales Datenmodell 1.2 Motivation für Datenbanken 1.2.1 Historisches Klassische Programmiersprachen wie FORTRAN, ALGOL, Pascal, etc. hatten lediglich primitive Dateimanipulations-Anweisungen. Diese waren mehr auf Verarbeitung als auf Strukturierung des Datenbestandes ausgerichtet. Es existierte keine Beschreibung der Beziehungen der Daten untereinander. Somit war es nur mit großem Aufwand möglich die Daten zu pflegen. Zwischen Dateien und Programmen bestand eine starre Kopplung. Erschwerend kam hinzu, dass Änderungen in der Datenstruktur auch Änderungen in Programmen und umgekehrt (keine Datenunabhängigkeit) bedingten. Ein koordinierter Zugriff durch mehrere Programme war nicht möglich und jedes Programm war zuständig für Datenschutz und –sicherheit der Daten. Daraus ergaben sich folgende Prinzipien: 1. Organisatorisch zentrale Betreuung von Daten 2. Trennung von Daten und Programmen Abbildung 1 verdeutlicht die Trennung von Daten und Programmen und stellt auch das Datenbanksystem (DBS) sowie die Kommunikation zwischen dem Datenbankmanagementsystem (DBMS) und der Datenbank (DB) dar. 1 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken Abbildung 1: Trennung von Programmen und Daten 1.2.2 Erreichte Ziele Folgende Ziele konnten durch den Einsatz von Datenbanken erreicht werden: • Datenunabhängigkeit • Benutzerorientierte Sicht der Daten • Datenintegrität • Vermeidung von Redundanz • Unterstützung der Datenmanipulation • Koordinierung des Mehrbenutzerbetriebs • Datenneutralität • Flexibilität • Effizienz 2 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 2. Datenmodelle 2.1 Allgemein 2.1.1 Definition Datenstrukturen, die zur Beschreibung von Daten und deren Beziehung untereinander zur Verfügung stehen, bezeichnet man als Datenmodell. 2.1.2 Datenmodelle – Ein Überblick Hierarchisches Datenmodell: ältestes Datenmodell, bei dem ein Datensatz mit allen hierarchisch von ihm abhängigen Datensätzen als Einheit betrachtet wird. Dieses Konzept eignet sich für Beziehungen, bei denen sich aus einem Oberbegriff viele Unterbegriffe ableiten lassen (1:n-Beziehungen). Eine Beziehung zwischen einzelnen, in verschiedenen Ebenen abgespeicherten Datensätzen ist nicht möglich, was bei komplexen Beziehungen eine hohe Redundanz der Daten zur Folge hat. Ein Zugriff kann nur über den Suchschlüssel des Objekts der obersten Ebene erfolgen, wobei der Anwender den Pfad zum gesuchten Datensatz kennen muss. Netzwerkmodell: Im Gegensatz zum hierarchischen Ansatz kann beim Netzwerkmodell ein Datensatz eine beliebige Anzahl übergeordneter Datensätze aufweisen (n:m-Beziehungen). Das Netzwerkmodell eignet sich zum Beispiel für die Modellierung einer Stückliste, da ein Bauteil aus mehreren untergeordneten Teilen bestehen und zum anderen in mehrere übergeordnete Baugruppen eingehen kann. Bezüglich der Daten besteht Redundanzfreiheit, da sich überschneidende Beziehungen nicht durch mehrmalige physische Speicherung, sondern durch Verkettungen realisiert werden. Der Zugriff kann über beliebige Datensätze erfolgen, allerdings muss wiederum ein möglicher Pfad zum gewünschten Datensatz bekannt sein. Relationales Datenmodell: Beim relationalen Datenmodell stehen als Strukturelemente ausschließlich Relationen, die sich durch Tabellen darstellen lassen, zur Verfügung. Die Datensätze bilden die Zeilen, und die Merkmale des Objekts bzw. die Datenfelder entsprechen den Spalten der Tabelle. Beziehungen zwischen beliebigen Datensätzen werden über gleiche Feldinhalte hergestellt. Der Zugriff auf bestimmte Datensätze wird über die Feldinhalte ermöglicht. Dementsprechend arbeitet der Benutzer nur mit logischen, mengenorientierten Abfragen, wobei die physische Speicherung und der Datenzugriff für ihn im Hintergrund bleiben. Während sich beim Relationenmodell im Vergleich zu den oben beschriebenen Konzepten der Handha3 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken bungskomfort erhöht, steigen die Anforderungen im Hinblick auf die Rechengeschwindigkeit und die Zugriffsgeschwindigkeit auf die Speichermedien des Computers in erheblichem Maße, denn ein über die Angabe von Datenwerten definierter Zugriff kann die Durchsuchung sämtlicher Tabellen erforderlich machen. Objektorientiertes Datenmodell: Das objektorientierte Datenmodell beinhaltet eine Kombination von Ansätzen der klassischen Datenmodelle, der objektorientierten Programmierung und der Wissensrepräsentation. Ziel ist es, die Struktur und das Verhalten komplexer Objekte 1:1 in der Datenbank abzubilden. Insgesamt läßt sich feststellen, dass sich vollständig objektorientierte Datenbanken derzeit (1995) noch weitgehend im Entwicklungs- bzw. Erprobungsstadium befinden. Für den Anwender ist derzeit - bei entsprechenden Herstellerangaben - im Hinblick auf die Erfüllung dieses Kriteriums besondere Vorsicht angebracht. 2.2 Hierarchisches Datenmodell 2.2.1 Entwicklung und Struktur Das hierarchische Datenmodell ist das älteste Datenmodell. Es geht aus Informationsmanagementsystemen (IMS) der 50er und 60er Jahre hervor. Eingesetzt wurde es häufig in Banken und Versicherungsunternehmen. Das Model bildet die Entitätstypen/Klassen in einer streng hierarchischen Ordnung (Vater - Sohn) ab, bei der im Prinzip nur 1:1- und 1:n-Assoziationen möglich sind. Ein untergeordneter Entitätstyp (eine Subklasse) kann also nur zu einem einzigen VaterTyp (Oberklasse) gehören. So eignet es sich für Beziehungen, bei denen sich aus einem Oberbegriff viele Unterbegriffe ableiten lassen (1:n-Beziehungen). Ein Zugriff ist lediglich über den Suchschlüssel des Objekts der obersten Ebene möglich, deshalb muss der Anwender den Pfad zum gesuchten Datensatz genau kennen. Beispiel: Aufbau der Verzeichnisse im Betriebssystem DOS C:\Studium\EB8\Daba\Präsi.ppt Strukturelemente des hierarchischen Modells sind: 1. Objekttypen und 2. unbenannte hierarchische Beziehungen 4 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken „unbenannt“: Kanten haben keine Bezeichnungen für die Beziehung (Gegensatz dazu: Entity-Relationship-Modell) 2.2.2 Der Wurzelbaum Unter einem Wurzelbaum versteht man den Graph des Modells. Dieser besteht aus Knoten [Objekttypen] und Kanten [Beziehungen]. Abbildung 2: Wurzelbaum 2.2.3 Die hierarchische Ordnung Abbildung 3: Hierarchische Ordnung 5 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 2.2.4 Die Beziehungen Abbildung 4: Beziehungen 2.2.5 Redundanz Abbildung 5: Darstellung der Redundanz bei n:m-Beziehungen 6 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 2.3 Netzwerk-Datenmodell 2.3.1 Entwicklung Das Netzwerkdatenmodell wurde 1971 von der Database Task Group des Committee in Data Systems Languages (CODASYL/DBTG) als Standard publiziert; es wird daher auch als CODASYL/DBTG-Modell bezeichnet. Hinter der Entwicklung dieses Standards stand der Versuch, die Inflexibilität des Hierarchischen Datenmodells (Vermischung von interner und externer Ebene, nur 1:n-Beziehungen, Abhängigkeit der Performance vom jeweiligen Datenmodell, Zugriff nur durch Anwendungsprogramme) zu beseitigen. Das Netzwerkdatenbankmodell verkörpert ein heute nicht mehr besonders verbreitetes Datenbankmodell. Hierbei kann ein Datensatz mehrere Vorgänger haben. Im Gegensatz zum hierarchischen Datenmodell lassen sich im NetzwerkDatenmodell ohne zusätzliche Konzepte netzwerkartige Beziehungen definieren. Allerdings werden hier auch strukturbezogene Information durch die Definition von „Verbindungen“ zwischen Objekttypen dargestellt und wird damit wiederum eine prozedurale Datenverarbeitung induziert. Hier wurde der erfolgreiche Versuch unternommen, einen Standard für Datenbanksysteme zu schaffen. Es existieren meist unterschiedliche Suchwege um zu einem bestimmten Datensatz zu kommen. Das Netzwerkdatenbankmodell hat sich aus dem hierarchischen Datenbankmodell entwickelt und wurde hauptsächlich auf Großrechnern eingesetzt. Seit den 90er Jahren wird das Netzwerkdatenbankmodell vom relationalen Datenbankmodell mehr und mehr verdrängt. Der CODASYL-Standard wurde nach seiner Veröffentlichung als wesentliche Verbesserung gegenüber dem Hierarchischen Datenmodell begrüßt; führende Datenbankhersteller wie Siemens, Unisys, Honeywell oder DEC boten umgehend darauf basierende Datenbankmanagementsysteme an. Dass diese Systeme jedoch nie die Verbreitung und Akzeptanz erfuhren, die ihnen vorausgesagt wurde, lag daran, dass 1970 Codd sein Relationales Datenmodell veröffentlichte; dieses Modell ging hinsichtlich der Flexibilität und Einfachheit in der Modellierung weit über den CODASYL-Standard hinaus. Mit der Idee des Semantic Web gewinnt das Netzwerkdatenbankmodell allerdings wieder mehr an Bedeutung. 7 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 2.3.2 Strukturelemente des Netzwerk-Datenmodells Strukturelemente des Netzwerk-Datenmodells sind, wie beim hierarchischen Modell, wiederum Objekttypen und hierarchische Beziehungen (1:mc-Beziehungen), die hier Set-Typen genannt werden, wobei der Begriff „Set“ in diesem Zusammenhang nicht der üblichen mathematischen Bedeutung (i.S.e. Menge) zu tun hat. Im NetzwerkDatenmodell können nur binäre many-one- (bzw. one-many)-Beziehungen dargestellt werden. Im Unterschied zum hierarchischen Modell können im Netzwerkmodell a priori mit Set-Typen netzwerkartige Strukturen definiert werden. Ein weiterer Unterschied besteht darin, dass Set-Typen benannte Beziehungen sind, d.h. sie tragen einen Namen. Ihnen können allerdings ebenfalls keine Attribute zugeordnet werden. Kurzgefasst ist ein Set-Typ also eine benannte hierarchische Beziehung ohne Attribute. E1 Owner-Typ b: Benennung eines Set-Typs b E2 Member-Typ Einem Set-Typ entsprechen auf der Objekt-Ebene mehrere Sets. Jedes Set besteht aus genau einem Owner und 0, 1 oder mehreren Membern. Ein Objekt kann in den Sets eines Set-Typs höchstens einmal als Owner und/oder höchstens einmal als Member auftreten (aber durchaus in mehreren Sets verschiedenen Typs). 2.3.3 Darstellung von Strukturen im NDM Die Darstellung einer 1:m-Beziehung ist im Netzwerk-Datenmodell natürlich nicht trivial, sie wird durch einen Set-Typ dargestellt. Die Darstellung einer m:n-Beziehung wird durch einen einfachen Trick erreicht (das uns übrigens auch im RelationenModell wieder begegnen wird). Zwischen die beiden Objekttypen der m:n-Beziehung wird ein Kett-Objekttyp (link entity type) eingefügt, der mit den beiden anderen Objekten je ein Set-Typ bildet. Die beiden Objekttypen sind darin jeweils die Owner. 8 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken Bauteil Lieferant geht über in: Bauteil B-L Lieferant Objekttypen können auch mit sich selbst in einer Beziehung stehen. Z.B. kann ein Bauteil Teil eines anderen Bauteils sein. Strukturell spricht man dabei von einer Schleife. Beziehungen dieser Art lassen sich ebenfalls mit Hilfe von Kett-EntityTypen darstellen. 2.3.4 Bewertung des Netzwerkdatenmodells Vorteile: • Die Vorteile des Netzwerkmodells beseitigen gerade etwa die Nachteile des relationalen Datenmodells. • Die Beziehungen zwischen Daten sind gut ersichtlich, im Konzept wie auch fallspezifisch. Nachteile: • Das Modellieren einer Netzwerkdatenbasis ist anspruchsvoller, da komplexere Beziehungen, die nicht ins hierarchische Schema passen, über mehrere Set-Typen und so genannte Kettrecords "aufgebaut" werden müssen. • Die explizite Speicherung der Beziehungen zwischen Daten kann mitunter viel Speicherplatz beanspruchen. • Wartung ist schwierig und aufwändig • kaum physische Datenunabhängigkeit Wie beim Hierarchischen Datenmodell wird auch hier beim Anwender sehr viel vorausgesetzt: • Er muss die Struktur der gesamten Datenbank kennen, um den Zugriffspfad zusammenstellen zu können. 9 Jochen Löhl, Mario Lörcher, Ingo Sahm • Historische Entwicklung von Datenanken Er muss Zugriffs-Algorithmen formulieren können, d.h. er muss nicht nur wissen, was er als Ergebnis haben will, sondern zusätzlich, wie man zu diesen Daten gelangt. Damit ist der Datenbankzugriff für Programmier-Laien immer noch zu schwierig und umständlich. 2.4 Das CODASYL/DBTG-Konzept 2.4.1 CODASYL CODASYL (COnference on DAta SYstems Languages) wurde im Rahmen eines Treffens von 40 Fachleuten aus Herstellerbranche, Rüstungsindustrie sowie staatlichen und militärischen Computerzentren am 28. und 29. Mai 1959 gegründet. Hintergrund des Treffens waren Probleme des US-Militärs im IT-Bereich, die durch die zunehmende Rechnervielfalt und die verwaltungstechnische Expansion hervorgerufen wurden. Diese sollten durch eine maschinen- und herstellerunabhängige Programmiersprache für Verwaltungsanwendungen gelöst werden, der Entwicklung das vorrangige Ziel von CODASYL war. Nur sechs Monate später, Anfang 1960, kam es zur Spezifikation und Veröffentlichung der Programmiersprache COBOL (COmmon Business Oriented Language). 1975 wurde schließlich Enhanced COBOL veröffentlicht, das COBOL um Datenbankmanipulationen erweiterte. Wenngleich einige Ausschüsse noch arbeiten, existiert CODASYL heute nicht mehr. Die erarbeiteten Dokumente wurden Charles Babbage Institute der University of Minnesota in den USA übergeben. 2.4.2 Entwicklung des CODASYL/DBTG-Konzepts 1967 wurde ein Untergremium von CODASYL, die Data Base Task Group (DBTG) gegründet, das die Entwicklung eines Datenmodells zur Aufgabe hatte, das die Inflexibilität und die Unzulänglichkeiten des hierarchischen Datenmodells beseitigen sollte: • Vermischung von interner und externer Ebene • nur 1:n-Beziehungen 10 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken • Abhängigkeit der Performance vom jeweiligen Datenmodell • Zugriff nur durch Anwendungsprogramme Das entwickelte Modell, das nach seiner Herkunft als CODASYL/DBTG-Konzept bekannt ist, ist ein Netzwerkdatenmodell und stellt einen ersten Vorschlag zur Standardisierung von Datenbanksystemen dar. Einen ersten Bericht legte die DBTG 1969 vor, eine überarbeitete Version folgte 1971. Das CODASYL/DBTG-Konzept besteht grundsätzlich aus zwei Ebenen der Datenbeschreibung: dem Schema und dem Subschema. Das Schema beschreibt dabei die logische Datenstruktur einschließlich der logischen Zugriffspfade einer Datenbank insgesamt. Dazu stellt das Datenmodell eine Data Definition Language (DDL) zur Verfügung. Das Subschema hingegen beschreibt die logische Datenstruktur aus der Sicht eines Anwendungsprogramms und stellt jeder Anwendung die von ihr benötigten Daten zur Verfügung. Dabei darf das Subschema jedoch nicht in Widerspruch mit dem Schema stehen. Die formale Beschreibung erfolgt mittels einer SubschemaBeschreibungssprache. Die Datenmanipulation des CODASYL/DBTG-Konzepts erfolgt mittels einer Data Manipulation Language (DML), die COBOL als Wirtssprache verwendet. Ursprünglich wurde eine Device Media Control Language für die Beschreibung der physischen Speicherorganisation geplant. Diese wurde jedoch nie spezifiziert. Eine Beschreibung der physischen Speicherschicht wurde erst 1978 mit der Veröffentlichung der Data Storage Description Language (DSDL) möglich. Das CODASYL/DBTG-Konzept wurde nach seiner Veröffentlichung als Verbesserung gegenüber dem hierarchischen Datenmodell begrüßt. Führende Datenbankhersteller boten darauf basierende Datenbankmanagementsysteme an. So gab es UDS von Siemens, Unisys veröffentlichte DMS-1100, Honeywell IDS und DEC das DBMS 10. Dennoch erreichte das CODASYL/DBTG-Konzept nie die vorhergesagte Akzeptanz und Verbreitung. Das lag unter anderem daran, dass das Datenmodell von IBM nicht unterstützt wurde und somit nicht zu einem Standard werden konnte. Zudem veröffentlichte Ted Codd 1970 das relationale Datenmodell, das einfacher und flexibler und noch heute gebräuchlich ist. 11 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 2.4.3 Aufbau eines DBS nach dem CODASYL/DBTG-Konzept Abbildung 6: Aufbau eines DBS nach dem CODASYL/DBTG-Konzepf 1. 2. 3. 4. 5. 6. 7. 8. 9. Die Anwendung fordert Daten vom DBMS an. Das DBMS wertet die Anforderung, das Schema und das Subschema aus. Das DBMS fordert Input- und Output-Operationen vom Betriebssystem an. Das Betriebssystem greift auf den Speicher zu. Es findet ein Datentransfer zwischen dem Speicher und den Systempuffern statt. Die Daten werden entsprechend der Anforderung und dem Subschema der Anwendung in den Arbeitsbereich der Anwendung transferiert. Vom DBMS werden der Anwendung Statusinformationen (z. B. Fehlermeldungen) zur Verfügung gestellt. Das Anwendungsprogramm verarbeitet die erhaltenen Daten. Das DBMS verwaltet die System-Puffer für mehrere Anwendungen. 12 Jochen Löhl, Mario Lörcher, Ingo Sahm Historische Entwicklung von Datenanken 2.5 Das ANSI/X3/SPARC-Konzept Das ANSI/X3/SPARC-Konzept wurde 1975 von einer Arbeitsgruppe des American National Standards Institute (ANSI) entwickelt (ANSI/X3/SPARC = ANS Committee on Computers / Standards Planung and Requirement Committee. Im Gegensatz zu CODASYL besteht es aus drei Ebenen: Dem externen Schema, das für die Darstellung der Daten für einzelne Anwendungen zuständig ist (CODASYL: Subschema), dem konzeptionellen Schema für die logische Verwaltung der Daten innerhalb des Datenbanksystems (CODASYL: Schema) und zusätzlich dem internen Schema für die physische Organisation der Daten. Bis heute hat sich dieses Konzept als Entwurfskonzept und in der Terminologie zu Datenbanksystemen weitgehend durchgesetzt. Abbildung 7: Das ANSI/X3/SPARC-Konzept 13