Es muss ja nicht immer Tatort oder Bundesliga sein: Der allseits bekannte Martin Fowler über NoSQL auf der goto; conference:
Mitzunehmen: Die grobe Unterscheidung der Datenbanken in Hinsicht auf deren Orientierung auf Dokumente, Spalten-Familien, Graphen oder Schlüssel-Werte-Speicher; die Verwendung impliziter Schemata, trotz „Schemalosigkeit“; ihre Eignung vor allem in Cluster-Umgebungen; die Besonderheiten der Graphen-Datenbanken, deren Datenmodell nicht an Aggregaten orientiert ist, sondern an Beziehungen; die Entscheidung für oder gegen eine DB anhand der Art, wie man Abfragen gestalten wird bzw. gestalten muss; Graph-Datenbanken setzen ebenfalls das ACID-Konzept um; Version-Stamp-Ansatz um bei SQL- wie NoSQL-Datenspeichervorgängen Konflikte zu vermeiden; der Zielkonflikt zwischen Konsistenz und Verfügbarkeit auf partitionierten Systemen – Du kannst nicht beides haben; dies ist nicht nur eine technische, sondern auch geschäftliche Entscheidung.
Allgemeine Gründe für eine NoSQL-Entscheidung? Große Datenmengen, die sich nicht mehr gut auf nur einer Maschine speichern lassen (die Datenmengen werden zukünftig für Unternehmen und Projekte eher größer); viele Projekte profitieren davon, Beispiel „natürliches Aggregat Artikel-Objekt“, Versprechen eines einfacheren Entwicklungsansatzes; Maskieren/Verstecken der Datenbank hinter (Micro-)Services bzw. Applikationen, Wegfall der Datenbank als Integrations-Datenbank; Data-Warehouse versus Agile-Analytics-Ansätzen.
Werden die SQL-Datenbanken zugunsten der NoSQL-Datenbanken wegfallen? Vermutlich nicht. Es wird eher ein Nebeneinander spezialisierter Datenbanken für die verschiedenen Szenarien geben, z.B. Graph-Datenbank für das Empfehlungssystem, SQL für Finanztransaktionen, Dokument-orientierte NoSQL-DB für Produktkataloge usw.
Thanks Martin, nice talk.