Platz 5: NoSQL-Datenbanken
Der Datenstrom ist überall und so groß wie nie zuvor. Und die Zeiten, in denen "SQL" und "Datenbank" gleichbedeutend waren, verblassen schnell. Zum Teil, weil die alten Datenbankstrukturen nicht angemessen mit der Flut von Daten aus Web-2.0-Anwendungen umgehen können.
Die größten Websites spucken Terabytes an Daten aus, die wenig Ähnlichkeit mit den Zeilen und Spalten von Zahlen aus der Buchhaltung haben. Stattdessen werden die Details des Website-Verkehrs in Dateien gespeichert und durch Cron-Jobs spät in die Nacht ausgewertet. Zur Nutzung und Auswertung dieser Daten braucht man geeignete Verfahren - dazu wäre auch eine herkömmliche Datenbank in der Lage, wenn sie nicht so überladen mit Mechanismen wäre, die die Daten letztlich als konsistente „Masse“ belässt.
Sicher, man kann alles anpassen und mit viel Arbeit in eine relationale Datenbank pressen, aber das bedeutet gleichzeitig, dass Sie für anspruchsvolle Mechanismen bezahlen, die eigentlich für die Buchhaltung entwickelt wurden. Wenn bestimmte Daten nicht die besonderen Funktionen der Top-Datenbanken benötigen, dann gibt es auch keinen Grund, für diese Leistung Geld auszugeben und die Konsequenzen (Anforderungen) der dafür benötigten Strukturen auf sich zu nehmen.
Die Lösung? Entkommen sie diesen oft ungewollten Zwängen und folgen Sie einem neuen Ansatz: NoSQL. Einfache NoSQL-Datenbanken arbeiten mit einfachen Schlüssel-Wert-Paaren, die durch Attribute verbunden werden. Es gibt keine Tabelle mit leeren Spalten und keine Problem damit, neue Ad-hoc-Tags oder Werte zu den Elementen hinzuzufügen. Transaktionen sind optional.
Die heutige NoSQL-Lösungen umfassen Project Voldemort, Cassandra, Dynamite, HBase, Hypertable, CouchDB und MongoDB. Es scheinen jeden Tag neue hinzuzukommen. Jeder Ansatz bietet auf leicht unterschiedliche Weise Zugang zu den Daten. CouchDB zum Beispiel erfordert, dass die Suchanfrage als einen JavaScript-Funktion geschrieben wird. MongoDB nutzt „Sharding“, eine große Datenbank wird von Anfang an in Teilstücke zerlegt und über mehrere Server verteilt.
Einfache Schlüssel-Wert-Paare sind nur der Anfang. Neo4J zum Beispiel bietet eine grafische Datenbank, die Abfragen wie in einem Netzwerk ermöglicht. Wenn Sie die Namen aller Hunde der Freunde eines Freundes erfahren wollen, benötigt die Abfrage nur ein paar Zeilen Code.
Das Anspruchsvolle ist es, die erforderlichen Funktionen zu erhalten und diejenigen auszuschließen, die man nicht benötigt. Project Cassandra zum Beispiel folgt dem "eventually consistent"-Modell. Neo4J erfordert die Erweiterung Lucene oder ein anderes Indizierungs-Paket, wenn Sie Daten nach Namen oder nach Inhalten durchsuchen wollen, weil Neo4J nur dafür ausgelegt ist, das Netzwerk selbst zu durchsuchen.
Alle diese neuen Projekte sind die neusten Versuche, durch die Abkehr von zu hohen Anforderungen wieder einfach hohe Geschwindigkeiten in Datenbanken zu ermöglichen. Schauen Sie sich hier auch nach speziellen Anpassungen um, die die entsprechenden Regeln vereinfachen und gleichzeitig die Abwärtskompatibilität und einfache Bedienung ermöglichen. Sie dürfen eine neue Ära der Datenverarbeitung erwarten, die wie nichts ist was wir zuvor erlebt haben.