Historisch

Der Begriff Datenbank tauchte das erste Mal 1962 auf. Die Kassetten-basierten Speicher wurden langsam durch Festplatten abgelöst. Diese erlaubten direkten Zugriff auf Daten (ohne vor- oder zurückzuspulen) und ermöglichten so mehreren Benutzern «gleichzeitigen Zugriff» auf die Daten. Dies stellte aber auch neue Anforderungen an die Software.

1960er – Navigationale DBs

IBM System/360

Grosse Systeme speicherten Einträge (records). Die Einträge waren verlinkt. So konnte man z.B. von einer Abteilung auf den ersten Angestellten dieser Abteilung schliessen. Der erste Angestellte, war dann verlinkt mit dem nächsten Angestellten, usw.

Die Abfrage-Sprache war wie ein prozedurales Programm, z.B.

get department with name='Sales'
get first employee in set department-employees
until end-of-set do {
  get next employee in set department-employees
  process employee
}

Kritisiert wurden die Benutzerfreundlichkeit, da der Code schnell unlesbar wurde, und Datenunabhängigkeit, da bei einer Änderung der Datenstruktur der Anwendungscode auch angepasst werden musste.

1970er – Relationale DBs

1970 beschrieb der bei IBM angestellte Edgar F. Codd in einer Reihe von Publikationen ein neues System zum Speichern und Bearbeiten von grossen Datenbanken. Die Daten sollten in «Tabellen» fester Länge gespeichert werden. Zusätzliche Informationen würden in weiteren Tabellen abgespeichert und verknüpft.

Edgar F. Codd, (IBM via Wikipedia, fair use)

Codd beschrieb auch eine mögliche Sprache um auf diese Daten zuzugreifen. Mit einem mathematischen Beweis zeigte er, dass so eine Mengenbasierte Sprache alle nötigen Operationen einer «normalen» Datenbank sowie ein einfaches System um Daten zu suchen und Ergebnisse zurückzuliefern abdecken kann.

Mehrere Firmen und Universitäten begannen Datenbanken nach Codds Modell umzusetzen.

  • Die Universität Berkeley entwickelte INGRES mit der Datensprache QUEL. Aus INGRES entstand später das heute sehr beliebte PostgreSQL
  • System R hiess die relationale Datenbank von IBM. Sie wurde auch weiterentwickelt und mit der Standardsprache SQL versehen
  • Larry Ellison's Oracle Database basierte auf IBMs System R und schlug dieses auf dem Markt

Der Wissenschaftler Peter Chen veröffentlichte 1976 eine Arbeit zum Datenbank-Design. Sein Entity-Relationship-Modell wurde sehr populär, weil es eine weniger mathematische Beschreibung lieferte und sich sehr gut zum Modellieren von relationalen Datenbanken eignete. Bis heute werden ER-Diagramme zur grafischen Darstellung von Datenbanken verwendet.

1980er – Desktop-PCs

Die Desktop-PCs wurden nun genug leistungsfähig, um relationale DB auszuführen. Das Produkt «dBase» vom mittlerweile vom Markt verschwundenen Anbieter «Ashton Tate» beherrschte den Markt. Noch heute verwenden gewisse Programm das Dateiformat von «dBase».

IBM-Werbung aus Magazin, ca. 1981

1990er – Objekt-orientierte DBs

Die Objekt-orientierte Programmierung erlebte in dieser Zeit einen Aufschwung. Die Daten werden dort in Objekten abgespeichert. Daraus ergab sich das Bedürfnis solche Objekte auch in Datenbanken abzuspeichern.

Desktop-Screenshot Windows 3.0, 1990

2000er – XML, NoSQL und NewSQL

Mit dem Boom des Internets kam eine verstärkte Nachfrage nach einem «universellen» Datenaustauschformat: Dafür vorgesehen war XML. Bald schon existierten XML-Datenbanken, als Datenbanken, welche ihre Daten im XML-Format speichern.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<verzeichnis>
     <titel>Wikipedia Städteverzeichnis</titel>
     <eintrag>
          <stichwort>Genf</stichwort>
          <eintragstext>Genf ist der Sitz von ...</eintragstext>
     </eintrag>
     <eintrag>
          <stichwort>Köln</stichwort>
          <eintragstext>Köln ist eine Stadt, die ...</eintragstext>
     </eintrag>
</verzeichnis>

XML-Datenbanken gehören der Gruppe der «Dokumenten-orientierten Datenbanken» an. Im weiteren Sinne gehören sie auch zu den noSQL-Datenbanken.

Mit noSQL (not only SQL) kommt eine neue Kategorie von Datenbanken auf. Ihre Vorteile liegen darin, dass sie im Gegensatz zu relationalen Datenbanken sehr schnell sind, in verteilten System arbeiten und somit mit massiv vielen Schreib- und Lesevorgänge umgehen können. Dies alles aber mit Einbussen an anderen Orten.

Unter dem Begriff newSQL fasst man Datenbanken zusammen, welche Vorteile von noSQL und relationalen DBs kombinieren möchten.

Je nach Anwendung wird heute ein passendes Datenbankmodell gewählt. Häufig ist es ein klassisches, relationales Modell. Teilweise greift man aber aus verschiedenen Gründen auf die anderen hier beschriebenen Modelle zurück.


IBM System/360
Lothar Schaack via Wikimedia Commons (CC-BY-SA)
https://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F038812-0014,_Wolfsburg,_VW_Autowerk.jpg
19.4.2018
Edgar F. Codd
IBM via Wikimedia Commons (fair use)
https://en.wikipedia.org/wiki/File:Edgar_F_Codd.jpg
19.4.2018
IBM-Werbung
Time Magazine, Ausgabe 18. Januar 1982
Desktop-Screenshot Windows 3.0
Modernponderer via Wikimedia Commons (© Microsoft)
https://en.wikipedia.org/wiki/File:Windows_3.0_workspace.png
23.4.2018