Historische Entwicklung von Datenbanken Agenda 1. Einführung 1.1 Historische Entwicklung 1.2 Motivation für Datenbanken 2. Datenmodelle 2.1 Hierarchisches Datenmodell 2.2 Netzwerk-Datenmodell 2.3 Das CODASYL/DTBTG-Konzept 2.4 Das ANSI/X3/SPARC-Konzept 2 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 1. Einführung 1.1 Historische Entwicklung • Ab 18. Jhd.: Lochkarten • 1956: Erfindung der Festplatte • 1968 – 1975: Hierarchisches Datenmodell • 1975 – 1980: Netzwerkdatenmodell • Ab 1980: Relationales Datenmodell 3 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 1. Einführung 1.2 Motivation für Datenbanken Klassische Programmiersprachen (FORTRAN, ALGOL, Pascal) hatten lediglich primitive DateimanipulationsAnweisungen • Mehr auf Verarbeitung als auf Strukturierung des Datenbestandes ausgerichtet • Keine Beschreibung der Beziehungen der Daten untereinander • Schwierige Pflege der Daten • Starre Kopplung zwischen Datein und Programmen 4 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 1. Einführung 1.2 Motivation für Datenbanken • Änderungen in der Datenstruktur bedingen Änderungen in Programmen und umgekehrt (keine Datenunabhängigkeit) • Kein koordinierter Zugriff durch mehrere Programme • Jedes Programm war zuständig für Datenschutz und –sicherheit 5 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 1. Einführung 1.2 Motivation für Datenbanken Daraus ergaben sich folgende Prinzipien: • Organisatorisch zentrale Betreuung von Daten • Trennung von Daten und Programmen Programm A DBMS DB Programm B DBS 6 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 1. Einführung 1.2 Motivation für Datenbanken Erreichte Ziele durch Einsatz von Datenbanken • Datenunabhängigkeit • Benutzerorientierte Sicht der Daten • Datenintegrität • Vermeidung von Redundanz • Unterstützung der Datenmanipulation • Koordinierung des Mehrbenutzerbetriebs • Datenneutralität • Flexibilität • Effizienz 7 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm Agenda 1. Einführung 1.1 Historische Entwicklung 1.2 Motivation für Datenbanken 2. Datenmodelle 2.1 Hierarchisches Datenmodell 2.2 Netzwerk-Datenmodell 2.3 Das CODASYL/DTBTG-Konzept 2.4 Das ANSI/X3/SPARC-Konzept 8 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle Definition: Datenstrukturen, die zur Beschreibung von Daten und deren Beziehung untereinander zur Verfügung stehen, bezeichnet man als Datenmodell. [Stegemann, 1993] 9 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle Es gibt drei „klassische“ Datenmodelle: • Das hierarchische Modell • Das Netzwerkmodell • Das relationale Modell 10 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle 2.1 hierarchisches Datenmodell • • • • • Ältestes Datenmodell Geht aus Informationsmanagementsystemen (IMS) der 50er und 60er Jahre hervor (Einsatzgebiete: Banken und Versicherungsunternehmen) Eignet sich für Beziehungen, bei denen sich aus einem Oberbegriff viele Unterbegriffe ableiten lassen (1:n-Beziehungen) Zugriff nur über den Suchschlüssel des Objekts der obersten Ebene möglich (die anderen entlang der hierarchischen Ordnung) Anwender muss den Pfad zum gesuchten Datensatz kennen Beispiel: Aufbau der Verzeichnisse im Betriebssystem DOS C:\Studium\EB8\Daba\Präsi.ppt 11 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle 2.1 hierarchisches Datenmodell • Strukturelemente sind: Objekttypen und unbenannte hierarchische Beziehungen • „unbenannt“: keine Bezeichnungen für die Beziehung (Gegensatz dazu: Entity-Relationship-Modell) • Wurzelbaum (Graph aus Objekttypen [Knoten] und Beziehungen [Kanten]) 12 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle 2.1 hierarchisches Datenmodell Pfad Wurzel (root) Pfadlänge: hier Länge = 2 Niveau eines Knoten = Pfadlänge des Knoten von der Wurzel + 1 Kante Höhe eines Wurzelbaums = max. Pfadlänge innere Knoten Nachbarn Blätter Wurzelbaum-Typ / Hierarchie-Typ 13 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle 2.1 hierarchisches Datenmodell Hierarchische Ordnung a1 b11 b12 c121 14 a2 b13 c122 b14 C141 b15 c142 b21 c211 b22 c212 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm b23 2. Datenmodelle 2.1 hierarchisches Datenmodell Darstellung von Beziehungen: NICHT Vater Student MÖGLICH !! Tochter Sohn 1:n - Beziehung 15 Matrikelnr. 1:1 - Beziehung Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm m:n - Beziehung 2. Datenmodelle 2.1 hierarchisches Datenmodell • Darstellungsversuch einer m:n-Beziehung Lieferant m L1 BT1 n L2 BT2 BT1 BT1 BT3 L1 L2 ERHEBLICHE REDUNDANZ !!!!! 16 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm Bauteil BT2 BT3 L1 L2 2. Datenmodelle 2.1 hierarchisches Datenmodell • Redundanzdarstellung: [Bill/Fritsch, 1991] 17 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2. Datenmodelle 2.1 hierarchisches Datenmodell PRO • Werden Daten in Richtung der Hierarchie gesucht, so ist der Zugriff sehr schnell CONTRA • Werden Daten gegen die Richtung der Hierarchie gesucht, muss ggf. die gesamt Datenbank durchsucht werden. In diesem Falle sehr langsam • Unflexibel • Bei komplexen Umgebungen schwierig zu modellieren 18 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Entwicklung – 1971 von der Database Task Group des CODASYL als Standard publiziert – Versuch, die Inflexibilität des Hierarchischen Datenmodells (Vermischung von interner und externer Ebene, nur 1:nBeziehungen, Abhängigkeit der Performance vom jeweiligen Datenbestand, Zugriff nur durch Anwendungsprogramm) zu beseitigen – Netzwerkartige Beziehungen lassen sich ohne zusätzliche Konzepte definieren 19 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Entwicklung – Das NDM erfuhr nie die Verbreitung und Akzeptanz, da Codd 1970 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 wieder mehr an Bedeutung 20 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Strukturelemente E1 Member-Typ b b: Benennung eines Set-Typs Rekord-Typ E2 21 Owner-Typ Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Strukturelemente – Wie beim Hierarchischen Datenmodell bereits erwähnt: Objekttypen und hierarchische Beziehungen (1:mcBeziehungen), die hier Set-Typen genannt werden – Im Netzwerkdatenmodell können nur binäre many-one (bzw. one-many)-Beziehungen dargestellt werden – Set-Typen sind benannte Beziehungen; d.h. sie tragen einen Namen – Ihnen können allerdings keine Attribute zugeordnet werden – Ein Set-Typ ist also eine benannte hierarchische Beziehung ohne Attribute 22 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Darstellung von Strukturen – Die Darstellung einer 1:m-Beziehung wird durch einen Set-Typ dargestellt – Die Darstellung von m:n-Beziehungen wird durch einen einfachen Trick ermöglicht: • Zwischen den beiden Objekttypen wird ein Kett-Objekttyp eingefügt, der mit den beiden anderen Objekttypen je einen Set-Typ darstellt • Die beiden Objekttypen sind darin jeweils die Owner 23 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Darstellung von Strukturen Bauteil Lieferant Kett-Typ „Bauteil-Lieferant“ Geht über in: Bauteil 24 B-L Lieferant Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.2 Netzwerkdatenmodell • Darstellung von Strukturen B 1 B 2 L 1 B 3 B1 L 2 B1 L1 B2 B1 L2 B2 L2 B3 L1 L1 25 L2 Historische Entwicklung von Datenbanken Jochen Löhl B3 Mario Lörcher Ingo Sahm B3 L2 2.2 Netzwerkdatenmodell • Stärken – Normierter Zugriff und Modellierung. – Sehr effizient, wenn die Verarbeitung der physischen Organisation entspricht – Keine strenge Hierarchie durch Abbildung von m:n-Beziehungen • Schwächen – Mangelhafte Datenunabhängigkeit: • Kleine Änderungen an der Datenorganisation haben gewaltige Auswirkungen auf die Programme. – Komplexe Modellierung, da nur eingeschränkte Mechanismen verfügbar. – Anwendungsprogramme sind sehr komplex und schwer wartbar 26 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept CODASYL (Conference on Data Systems Languages) • Gründung im Rahmen eines Treffens von 40 Fachleuten aus Herstellerbranche, Rüstungsindustrie, staatlichen und militärischen Computerzentren am 28. und 29. Mai 1959 • Bedarf nach einer maschinen- und herstellerunabhängigen Programmiersprache für Verwaltungsanwendungen • Probleme des Militärs durch Rechnervielfalt und verwaltungstechnische Expansion • Nach sechs Monaten Spezifikation und Veröffentlichung der Programmiersprache COBOL (COmmon Business Oriented Language) 27 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept CODASYL (Conference on Data Systems Languages) • 1969: DBTG-Report (DBTG: Data Base Task Group) • 1971: Überarbeitete Version des DBTG-Reports Vorstellung des CODASYL/DBTG-Konzepts • 1975: Enhanced Cobol Cobol erweitert um DB-Manipulationen • CODASYL als solches exisitert heute nicht mehr einige Ausschüsse arbeiten jedoch noch • Archivierte Dokumente im Charles Babbage Institute, University of Minnesota 28 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept Entwicklung des CODASYL/DBTG-Konzepts • 1967 Gründung der Database Task Group (DBTG) Ziel: 29 Entwicklung eines Datenmodells um die Inflexibilität des hierarchischen Datenmodells zu beseitigen Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept Entwicklung des CODASYL/DBTG-Konzepts Unzulänglichkeiten des hierarchischen Datenmodells: • • • • Vermischung von interner und externer Ebene nur 1:n-Beziehungen Abhängigkeit der Performance vom jeweiligen Datenmodell Zugriff nur durch Anwendungsprogramme 30 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept Entwicklung des CODASYL/DBTG-Konzepts • Deshalb Entwicklung des CODASYL/DBTG-Konzepts durch die Data Base Task Group (DBTG) • Netzwerkdatenmodell • Erster Vorschlag zur Standardisierung von Datenbanksystemen vorgestellt 1971 • Zunächst nur zwei Ebenen der Datenbeschreibung: – Schema – Subschema 31 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept Schema • Beschreibt die logische Datenstruktur einschließlich der logischen Zugriffspfade einer Datenbank insgesamt • Formale Beschreibung durch Data Definition Language (DDL) 32 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept Subschema • Beschreibt die logische Datenstruktur aus der Sicht eines Anwendungsprogramms • Von einer Anwendung benötigte Datenmenge In der Regel Teilmenge aller Daten der Datenbank (kann strukturell anders zusammengestellt sein) • Darf jedoch nicht im Widerspruch zum Schema stehen • Formale Beschreibung durch Subschema-Beschreibungssprache 33 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept • Datenmanipulation durch DML (Data Manipulation Language) benutzt COBOL als Wirtssprache • Device Media Control Language für die Beschreibung der physischen Speicherorganisation vorgesehen, jedoch nicht spezifiziert • Beschreibung der physischen Speicherschicht erst 1978 als Data Storage Description Language (DSDL) 34 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept • CODASYL/DBTG-Konzept wurde nach seiner Veröffentlichung als Verbesserung gegenüber dem hierarchischen Datenmodell begrüßt • Führende Datenbankhersteller boten darauf basierende DBMS an: Siemens: UDS Unisys: DMS-1100 Honeywell: IDS DEC: DBMS 10 35 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept • Allerdings erreichte das CODASYL/DBTG-Konzept nie die vorhergesagte Akzeptanz und Verbreitung • Gründe: keine Unterstützung durch IBM (Verhinderung der Entstehung eines Standards) Veröffentlichung des relationalen Datenbankmodells durch Ted Codd 1970 Modellierung einfacher und flexibler noch heute gebräuchlich 36 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.3 Das CODASYL/DBTG-Konzept 2. 3. 4. 5. 9. 6. 7. 8. 1. Anwenderprogramm OS Datentransfers DBMS Datentransfer Anforderung greift wertet fordert verwaltet stellt aufdem Speicher Anforderder I/O-Operazwischen zwischen SystemAnwenDaten verzu ung, tionen Speichern Puffer System-Puffern derprogramm arbeitet vomSubschema DBMS für vom die verschiedene und OS Daten StatusSysteman und undArAnwenderprogramme Schema Puffern beitsbereich informationen aus der zurAnwenVerfüdung (z. gung entsprechend B. Fehlermeld.) Subschema und Anforderung 37 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.4 Das ANSI/X3/SPARC-Konzept • 1975 entwickelt von einer Arbeitsgruppe des American National Standards Institute (ANSI) ANSI/X3/SPARC = ANS Committee on Computers / Standards Planung and Requirement Committee • Besteht aus drei Ebenen: Externes Schema (bei CODASYL Subschema) Konzeptionelles Schema (bei CODASYL Schema) Internes Schema (physische Organisation der Daten) • Als Entwurfskonzept und in der Terminologie zu Datenbanksystemen weitgehend durchgesetzt 38 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm 2.4 Das ANSI/X3/SPARC-Konzept Verarbeitet das konzeptionelle Schema Enthält die Metadaten (Beschreibung der Daten, logische Datenorganisation, Zugriffsrechte,...) 39 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm Vielen Dank für die Aufmerksamkeit! Fragen? 40 Historische Entwicklung von Datenbanken Jochen Löhl Mario Lörcher Ingo Sahm