Bloß nicht den Überblick verlieren: Hier sind die wichtigsten Datenbank-Neuigkeiten der letzten sechs Monate.
SQL im Aufwind
Der NoSQL Pionier Google schreibt, dass die Google-Datenbank „Spanner“ ein SQL-System wird (englische Zusammenfassung). Salesforce verwendet künstliche Intelligenz, um natürliche Sprache in SQL-Abfragen zu übersetzen. Sogar so mancher ORM-Hersteller0 sagt, dass es besser ist, SQL zu verwenden. SQL wird also wieder salonfähig.
Der ausgesprochen populäre Artikel „Why SQL is beating NoSQL, and what this means for the future of data“ ist eine gelungene Zusammenfassung, warum SQL verpönt war, jetzt aber wieder populär wird.
Der Cloud-Krieg geht weiter
In der vorherigen Ausgabe habe ich berichtet, dass die Lizenzkosten für die Oracle-Datenbank in Amazon’s AWS und Microsoft’s Azure Cloud-Umgebungen sprunghaft gestiegen sind.
Im Juli trat dann das Gegenteil für Microsoft-Kunden ein: Die Kosten für SQL Server Standard Edition sind in Amazon’s AWS Cloud um 29 bis 52 Prozent gesunken.
IBMs Umbenennungswahnsinn
Man sagt, dass es in der Informatik nur drei schwierige Probleme gibt: (0) Cache invalidation; (1) Dinge benennen; (2) Um-Eins-daneben-Fehler. Was man bei der Benennung von Dingen alles falsch machen kann, hat IBM im Juni mit der Umbenennung der Db2-Produkte demonstriert.
Alter Name | Neuer Name |
---|---|
DB2 for LUW | Db2 |
DB2 for z/OS | Db2 for z/OS |
DB2 for iSeries | Db2 for i |
Man beachte die subtile, aber bahnbrechende Innovation, das „b“ in Db2 klein zu schreiben.
Aber ganz im Ernst: Bisher war DB2 der gemeinsame Namensbestandteil der Produkte einer Familie. Durch den Zusatz „for“ war die genaue Bezeichnung einzelner Produkte möglich. Da sich diese Produkte im Detail unterscheiden1, sind eindeutige Namen durchaus sinnvoll.
Der neue Name Db2 ist nicht mehr eindeutig: Er bezeichnet sowohl die Produktfamilie als auch ein einzelnes Produkt. Diese mangelnde Unterscheidbarkeit wird bei Internetsuchen zum echten Problem: Webseiten zum vormaligen Produkt DB2 for LUW müssen den Zusatz LUW nicht mehr unbedingt enthalten. Die Verkürzung des Zusatzes iSeries auf ein i macht die Internetrecherche auch nicht einfacher.
Laut Wikipedia sollen Namen der Identifizierung dienen. Ich zweifle daran, dass die neuen Namen diese Funktion noch hinreichend erfüllen.
Eines ist aber sicher: Die neuen Namen bedeuten eine Aufwertung für die LUW-Variante. Im Umkehrschluss sieht es für die anderen Varianten nicht so gut aus. Auch im kürzlich erschienenen Gartner Magic Quadrant für operationale Datenbanken 2017 fällt IBM weiter ab – jetzt schon mit Abstand hinter SAP und Amazon Web Services (AWS).
Andere Hersteller ändern die Versionsnummern
Dass die nächste MySQL-Hauptversion nach 5.7 MySQL 8.0 sein wird, habe ich bereits erwähnt. Mittlerweile gibt es einen Release-Candidate.
Die nächste Hauptversion der Oracle Datenbank wird 18c sein (anstatt 12.2.0.2). Neue Hauptversionen kommen fortan jährlich und verwenden die letzten beiden Ziffern des Jahres als Versionsnummer (siehe auch: Release-Roadmap).
Ab dem kürzlich erschienenen PostgreSQL 10 kommen die PostgreSQL-Hauptversionen ohne Punkt aus.
Neue Hauptversionen
In den letzten sechs Monaten gab es gleich drei neue Hauptversionen populärer Datenbanken.
- SQL Server 2017 (Oktober 2017)
Meine persönlichen Favoriten unter den Neuerungen:
Für Linux verfügbar. Weiterhin gratis für die Entwicklung, inklusive Docker-Images. Die Lizenzen sind „Plattform unabhängig, sodass Kunden die Software entweder auf Windows oder Linux laufen lassen können.“
Adaptive Joins im Batch-Modus: Die Entscheidung zwischen Nested-Loops und Hash-Join fällt erst bei der Ausführung (ähnlich Oracle’s adaptive joins, aber stärker eingeschränkt2).
Funktionen für Graphen: eine
match
-Klausel, die an die Cypher Query Language erinnert.Die
string_agg
-Funktion: ähnlich der Funktionlistagg
des SQL-Standards, aber ohneon overflow
-Klausel.
- PostgreSQL 10 (Oktober 2017)
Meine Auswahl aus den Neuerungen:
Parallel query-Verbesserungen: Merge Join, Bitmap Heap Scan, Index [Only] Scan und mehr.
Optimizer-Statistiken über mehrere Spalten: Damit der Optimizer Zusammenhänge zwischen Spalten berücksichtigen kann.
ICU collations: Regeln zum Vergleichen von Characterstrings, unabhängig vom Betriebssystem.
- MariaDB 10.2 (Mai 2017)
MariaDB3 10.2 hat zwei sehr wichtige Funktionen eingeführt, die auch in MySQL 8.0 kommen werden:
Window-Funktionen: die
over
-Klausel.Die
with
-Klausel: in beiden Varianten: rekursiv und nicht-rekursiv.
Neues auf meinen Webseiten
Artikel, die ich veröffentlicht oder aktualisiert habe:
Ich habe die PDF-Version von „SQL Performance Explained“ aktualisiert (alle Sprachen). Wer die PDF-Version hat, kann die aktuelle Version hier herunterladen. (Alle anderen können sie hier kaufen ;).
Ich habe das 3-Minuten Quiz aktualisiert: Erkennst du die fünf häufigsten SQL-Indizierungsfehler?
Neuer Artikel:
extract
— Zugriff auf Datums- und Zeit-FelderNeuer Artikel: Was ist neu in SQL:2016
Via Twitter, in aller Kürze (folge mir auf Twitter)
The next Oracle Database Express Edition will be 18c XE. Limits: 12GB storage, 2GB RAM.
For comparison: IBM Db2 Express-C: no storage limit, 16GB RAM, 2 cores.
Addendum for the trolls: Yes, the free open source database such as PostgreSQL, MySQL have no limits for the same price.
10 Cool SQL Optimisations That do not Depend on the Cost Model
TIL: Although SQLite’s default collation is case-sensitive, it doesn’t affect LIKE. LIKEs case-sensitivity is controlled by a PRAGMA instead
Explaining isolation levels based on the states that are observable by a client application
“ACIDRain: concurrency-related attacks on database-backed web applications” Warszawski & Bailis ’17
Practical Guide to SQL Transaction Isolation … A really good one.