NoSQL: Die schlanke Zukunft dicker Datenbanken
Schon mal von CouchDB oder MongoDB gehört? Wir stellen ihnen die jungen Vertreter einer neuen Generation von Datenbanken vor, die einfach nicht mehr relational sein wollen.
Durch das JavaScript Datenaustauschformat JSON (JavaScript Object Notation) können NoSQL-Lösungen schnell in ein Projekt eingebunden werden. Aber diese Vorteile müssen durch Nachteile eingekauft werden. Denn die einzelnen NoSQL-Produkte adressieren jeweils sehr eng umrissene Einsatzgebiete. Daher gilt es natürlich im Vorfeld zu prüfen, welche Aufgaben an die Datenbank herangetragen werden sollen.
NoSQL-Lösungen sind bereits Realität: So hat etwa der US-Web-Entwickler Hashrocket bei einem Kunden in der Pharma-Branche eine relationale Datenbank mit NoSQL-Technologie abgelöst. Dabei kam die quelloffene MongoDB zum Einsatz. Die Dokument-orientierte, skalierbare und schemafreie Datenbank erledigt jetzt Kundenabfragen in einer Pharma-Anwendung mehr oder weniger in Echtzeit. Die bestehende SQL-basierte Anwendung kam zum einen mit der Komplexität und der großen Menge der Tabellen aber auch mit der Menge der Abrufe nicht mehr zu recht und so dauerten Abfragen meist mehrere Minuten oder gar Stunden.
Die Web-Entwickler Durran Jordan und Les Hill haben sich dann für einen ganz neuen Weg entschieden: Die wichtigsten Daten wurden in eine Hierarchie gebracht und so konnten die gesamten Daten in einer einzigen Abfrage gelesen werden. In der alten Architektur waren dafür verschiedene Fragen, Unterabfragen und Auswahlmechanismen nötig, die kombiniert werden mussten.
Daten, die sich gut in einer Baumstruktur darstellen lassen und große Teile die sich in einer Linie oder auf einem ‘Stamm’ fortführen lassen, eigenen sich gut für diese Art der Speicherung. Auch sehr große Datenmengen können sich eventuell mit NoSQL schneller verarbeiten lassen. Anwendungen, die keine Multi-Objekt-Transaktionen voraussetzen, lassen sich ebenfalls mit einer postrelationalen Lösung umsetzen.