Top Up Home HTML2PDF Historischer Überblick

Vorbemerkung - SQL Forever

Viele Aspekte von Datenbanksystemen sind alt, aber heutzutage immer noch relevant

Immer mal wieder wird ein Ersatz für SQL vorgeschlagen. Nach einiger Zeit stellt sich heraus, das dieser nicht wirklich besser ist

Stattdessen werden sinnvolle Ideen dieser Ersatztvorschläge in SQL übernommen

Hinweis

  • Dieser Überblick basiert auf Folien von Andy Pavlo (link)
  • History of Databases (link)

1960er Jahre - Die Welt vor den relationalen Systemen

Einzeltupel-Verarbeitung

Programmorientierter Zugriff

Keine deklarative Abfragesprache

Vertreter

  • Netzwerk-Datenmodell
  • Hierachisches Datenmodell

Noch in Großrechnersystemen im Einsatz

Keine Neuentwicklung auf deren Basis

1970er Jahre - Das relationale Datenmodell

Konzepte

  • Tabellen
  • Referenzen zwischen Tabellen
  • Normalisierung

Theoretische Grundlagen

  • Ted Codd: A relational Model of Data for Large Shared Data Banks
  • Reines Konzept
  • Implementierbarkeit effizienter Systeme unklar

Erste Implementierungen:

  • System R - IBM Research
  • INGRES - U.C. Berkeley
  • Oracle - Larry Ellison

1980er Jahre - Siegeszug des relationalen Modells

Das relationale Modell setzt sich durch

SQL-Standard

Bekannte kommerzielle Anbieter

  • Oracle
  • IBM DB2
  • Sybase
  • Informix
  • Terradata

Oracle setzt sich durch

Stonebraker entwickelt Postgres als objektrelationales DBMS

1980er Jahre - Aufkommen und Niedergang objekt-orientierter Datenbanksysteme

Vermeidung des "relational-object impedance mismatch"

Direkte Umsetzung von Konzepten objektorientierter Sprachen in der Datenbank

Führen nur noch ein Nischendasein

  • ObjectStore, letztes Update 2014, Rank 141 in DB Engines

1990er Jahre - Konsolidierung relationaler Datenbanksysteme

Keine großen Veränderungen/Fortschritte im Bereich Datenbanksysteme

Kommerzielle Anbieter beherrschen den Markt

Neue Systeme:

  • Microsoft SQL Server
  • MySQL
  • SQLite

Aufkommen dedzierter OLAP-Systeme - Data Cubes

2000er Jahre - Internet Boom

Kommerzielle Anbieter zu schwergewichtig und teuer

Open-Source-Systemen fehlen wichtige Funktionen

Viele Unternehmen bauen eigene Middleware zur horizontalen Skalierung von Datenbanksysteen (scale out statt scale up)

2000er Jahre - Data-Warehouse-Systeme

Aufkommen spezieller OLAP-Systeme

  • Verteilt / Shared-Nothing
  • Relational / SQL
  • Kommerziell

Entscheidende Leistungsgewinne durch Spaltenorientierung

Systeme:

  • Netezza
  • Greenplum
  • Vertica
  • MonetDB

2000er Jahre - Map-Reduce-Systeme

Big Data

  • Analyse sehr großer Datenmengen
  • Verteiltes Programmier- und Ausführungsmodell
  • Google entwickelt erste Lösung - für seine Suchmaschine
  • Yahoo - Hadoop - Open Source, Java
  • Kein explizites Datenmodell - steckt in den Analysefunktionen
  • kein SQL
  • Programmorientierte Sprachen: Pig

Situation

  • Großer Hype
  • Große Probleme
  • Einführung von SQL in dieses Modell, keine gute Idee

System:

  • MAPR-DB

2000er Jahre - NoSQL-Systeme

Fokus auf hoher Verfügbarkeit und großer Skalierbarkeit

  • Nichtrelational
  • Schemalos
  • Keine Transaktionen
  • Kein SQL
  • Open Source

Systeme:

  • Redis
  • Cassandra
  • MongoDB

2010er Jahre - New-SQL- / Distributed-SQL-Systeme

Vereinigung der Vorteile von SQL- und NoSQL-Systeme

  • Verteilt
  • Hohe Verfügbarkeit
  • Horizontale Skalierbarkeit
  • Relational
  • SQL
  • Transaktionen

Systeme:

  • TiDB
  • YugabyteDB
  • Singlestore
  • CockroachDB

2010er Jahre - Cloud-Systeme

Datenbanken als Service

Containerbasiert

Cloud-Native, komplett neues Design

Systeme (OLTP):

  • Amazon DynamoDB
  • Amazon Aurora
  • Azure SQL Server
  • Google AlloyDB

Systeme (OLAP):

  • Snowflake
  • Amazon Redshift
  • Google Big Query

2010er Jahre - Shared-Disk

Trennung von Ausführungs- und Speichermaschine

Disaggregation

Uanhängige Skalierung der beiden Komponenten

Log Structured Storage

2010er Jahre - Graph-Systeme

Graph-Strukturen - Knoten und Kanten

Abfragesprache Cypher

SQL:2023 ergänzt SQL um Graph Query Syntax

Native Graph Databases - Direkt Speicherung von Referenzen

  • Behauptete bessere Performance als relationale Systeme
  • Neuere Forschung zeigt, dass relationale Systeme vergleichbare bzw. besser Performance bringen können als native Systeme

Systeme:

  • Neo4j
  • TigerGraph
  • Amazon Neptune

2010er Jahre - Timeseries Systems

Spezialisierte Systeme für Zeitreihen- bzw. Ereignisdaten

Systeme:

  • influxdb
  • Timescale
  • Clickhousee
  • Prometheus

Neue Entwicklungen

Composable Data Systems

Apache Arrow

DuckDB

...

Db-Sites

Database of Databases (link)

DB-Engines (link)