Bild eines Teleskops

Neues über Datenbanken — Sommer 2019

Zweimal im Jahr lasse ich die Nachrichten der letzten sechs Monate Revue passieren und verpacke die interessantesten Neuigkeiten in eine kurze Geschichte. Es ist wieder so weit. Abonniere den Newsletter, um künftige Ausgaben zu erhalten.

SQL wächst

In früheren Ausgaben habe ich die wachsende Adaption von SQL sowohl unter traditionellen Datenbanken wie MySQL, als auch unter nicht-relationalen Systemen wie Elasticsearch immer wieder angesprochen. In dieser Ausgabe geht es um das Wachstum des SQL-Standards selbst. Dafür rücke ich drei Hersteller proprietärer Abfragesprachen ins Rampenlicht, die versuchen die Konzepte Ihrer Sprachen in den SQL-Standard einzubringen.

Rasdaman und mehrdimensionale Arrays (SQL/MDA)

Der erste Vertreter dieser Gattung hat es bereits geschafft. Im Juni wurde der SQL-Standard um einen neuen Teil erweitert: ISO/IEC 9075-15:2019 Multi dimensional arrays (SQL/MDA).

Damit kann man massiv mehrdimensionale Arrays wie N-Kanal-Satellitenbilder speichern und verarbeiten. Das heißt, dass SQL jetzt Bilddaten dekodieren kann, um mit Pixelkoordinaten direkt auf Bildbereiche zuzugreifen und diese weiterzuverarbeiten. Details darüber finden sich in einem technischen Report.

Die treibende Kraft hinter dieser Erweiterung war Peter Baumann, der die Adaption der Konzepte aus der Rasdaman-Datenbank initiiert und mitverfasst hat.

Neo4j, Graph Query Language (GQL) und SQL/PGQ

Der nächste Vorstoß zur Standardisierung wird maßgeblich von Neo4j getrieben und steht gerade an einem kritischen Punkt: Die Abstimmung über die Schaffung eines neuen Standards – GQL – läuft. Wenn diese Abstimmung positiv ausgeht, wird in den nächsten Jahren an den normativen Dokumenten gearbeitet, die eine neue Datenbanksprache definieren.

GQL ist also keine SQL-Erweiterung, sondern eine neue Sprache, die speziell auf die Verarbeitung von Graphen ausgerichtet ist. Dennoch gibt es Querverbindungen zwischen SQL und GQL. Einerseits soll GQL einige Eigenschaften durch Verweise auf den SQL-Standard „erben“. Andererseits soll der SQL-Standard um einen neuen Teil 16 (SQL/PGQ) ergänzt werden, damit eine Teilfunktionalität von GQL direkt in SQL zur Verfügung steht – hierfür steht das Jahr 2020 im Raum.

Apache und Streaming-Data

Ganz am Anfang des Normierungsprozesses steht man beim Thema Streaming-Data. Eine treibende Kraft ist hier Apache, die selbst mehrere Streaming-Plattformen anbieten, für die es SQL-ähnliche Sprachen gibt (KSQL, Spark, Flink, …). Ende Mai wurde ein Vorschlag veröffentlicht (Zusammenfassung), der zeigt, dass SQL Streaming-Data sehr effektiv verarbeiten kann, wenn man einige kleine, nicht-invasive Ergänzungen an SQL vornimmt. Daher starten die Autoren den Normierungsprozess.

Cloud Wars: Sonderbare Allianz gegen eigene Hardware

Seit Release 12.2 gibt es bei der Oracle Datenbank ein interessantes Muster: Neue Zusatzfunktionen (Optionen und Management Packs) werden nur noch in der Oracle-Cloud und auf Engineered-Systems, also nur auf Oracle-Hardware, angeboten. Möchte man die Oracle-Datenbank auf eigener Hardware betreiben, muss man auf diese Zusatzfunktionen, die die Verwaltung großer Installationen erleichtern, verzichten. Diese Einschränkung betrifft nicht nur Endkunden, die die Datenbank auf eigener Hardware betreiben wollen, sondern auch Cloud-Anbieter wie Microsoft und Amazon.

In eigener Sache: Schulungstermin 16.-20. September in Wien

Seit SQL-92 hat sich einiges getan. Mein 5-tägiges Training ist das Update für Entwickler. Alle Details und die Anmeldung sind hier!

In diesem Licht ist wohl die neue Allianz zwischen Microsoft und Oracle zu sehen: Die beiden Cloud-Anbieter haben eine Direktverbindung zwischen zwei Rechenzentren hergestellt und auch für eine integriertes Identity- und Access-Management gesorgt. Bei den in der Pressemitteilung vorgestellten Szenarien wird die Oracle-Datenbank jeweils in der Oracle-Cloud, die Anwendung aber in der Azure-Cloud betrieben. Der einzige Grund, die Oracle-Cloud zu verwenden, ist offenbar die Oracle-Datenbank und dass vielleicht auch nur aufgrund der beschränkten Verfügbarkeit neuer Managementfunktionen auf eigener Hardware. Beim Betrieb der Applikationssoftware gibt sich Oracle wohl geschlagen.

Technologie und Wissenschaft

Neben dem eben erwähnten „sanften“ Druck der Hersteller, Kunden in die Cloud zu bewegen, bietet ein Cloud-Deployment natürlich auch intrinsische Vorteile. Das ist neben den verbrauchsorientierten Kosten vor allem die verdammt einfache Verwaltung. In einer Cloud-Umgebung braucht man nur weniger Klicks, um eine Datenbank samt Redundanz über zwei Rechenzentren zu „installieren“.

Diese einfache Verwaltung bringt jedoch ein neues Risiko: Bugs in der Managementsoftware der Cloud-Lösung selbst. Dazu analysiert ein aktuelles Paper (Zusammenfassung) kritische Azure-Zwischenfälle über einen Beobachtungszeitraum von sechs Monaten in 2018. Eine Erkenntnis: 40 % dieser Zwischenfälle wurden von Fehlern in der Cloud-Software selbst verursacht. Ein Beispiel dafür hat es dann im Jänner 2019 in die Nachrichten geschafft: Ein fehlerhafter Automatismus hat ungerechtfertigt Kundendatenbanken gelöscht.

Ein anderes lesenswertes Paper gibt einen Überblick über das CALM-Theorem (Zusammenfassung). Bei diesem Theorem geht es darum, den Koordinierungsaufwand beim Zugriff auf geteilte Daten zu vermeiden und dadurch die Performance zu erhöhen.

Und zuletzt noch ein Paper über die effiziente Implementierung von Sliding Windows: Optimal and General Out-of-Order Sliding-Window Aggregation.

Neue Versionen

Oracle Datenbank 19c (Februar, April, zweites Halbjahr)

Wie oben erwähnt, hat die schrittweise Freigabe neuer Datenbankversionen bei Oracle bereits Tradition. Bei dieser Release gab es jedoch eine überraschende Reihenfolge: im Februar wurde Version 19c auf LiveSQL, dem Oracle online SQL-Portal, freigegeben, im April dann der Download für Linux zur Verfügung gestellt. In der Oracle Cloud gibt es 19c bisher nur für Exadata – die restlichen Cloud-Angebote sind für das zweite Halbjahr 2019 angekündigt.

Inhaltlich hat man sich bei Version 19c auf das Lösen bekannter Probleme konzentriert, anstatt neue Funktionen einzuführen.

Siehe: Oracle Database Release 19c New Features

MariaDB 10.4 (Juni)

Mit MariaDB 10.4 wurden die ersten Schritte zur Einführung der Applikationsversionierung geliefert. Leider ist die bisher gelieferte Funktionalität für sich genommen noch nicht sehr nützlich. Die fehlende Schlüsselfunktionalität WITHOUT OVERLAPS ist aktuell für Version 10.5 geplant.

Siehe: Changes and Improvements in MariaDB 10.4

IBM Db2 11.5 (LUW) (Juni?)

IBM hat der vorherigen Version 11.1 aus dem Jahr 2016 durch „Mod Packs“ immer wieder neue Funktionen hinzugefügt. Zuletzt zum Beispiel JSON_TABLE mit Mod Pack 4 im Dezember 2018. Die im Juni erschienene Version 11.5 dreht sich, aus Marketingsicht, um AI. Im What's New-Dokument kommt der Begriff AI aber kein einziges Mal vor. Jeder möge seinen eigenen Schluss ziehen.

Siehe: What's New for Db2 Version 11.5 GA

MySQL 8.0.12 bis 16 (Juli 2018 bis April 2019)

Für MySQL erscheinen seit letztem Jahr quartalsweise Releases, die auch neue Funktionen einführen. Nennenswerte SQL-Erweiterungen seit der ersten 8.0 GA-Version (8.0.11) sind LATERAL und CHECK-Constraints.

Siehe: MySQL 8.0 Release Notes

Eine genauere Analyse der neuen SQL-Funktionen dieser Releases erscheint in den nächsten Monaten auf modern-sql.com (Twitter, Email, RSS).

Neue Artikel, Folien und Aufzeichnungen

Via Twitter, in aller Kürze (folge mir auf Twitter)

Über Markus Winand

Markus Winand ist der SQL Renaissance Ambassador auf der Mission, Entwickler auf die Evolution von SQL im 21. Jahrhundert aufmerksam zu machen. Sein Buch „SQL Performance Explained“ ist in fünf Sprachen erschienen und kann online kostenlos auf use-the-index-luke.com gelesen werden. Momentan arbeitet Markus an seinem nächsten Buch, dass schon während des Entstehens online gelesen werden kann (modern-sql.com). Markus kann als Trainer, Sprecher und Berater auf winand.at engagiert werden.

Mit Markus Winand verbinden

Markus Winand auf LinkedInMarkus Winand auf XINGMarkus Winand auf Twitter