Brave new World: Was ist eigentlich NoSQL !?

Derzeit entsteht ein regelrechter Hype um die sogenannten NoSQL-Datenbanken wie zum Beispiel CouchDB oder MongoDB, aber was ist das eigentlich? Wie der Name schon sagt: man benutzt kein SQL, um auf die Datenbank zuzugreifen, aber NoSQL ist noch viel mehr!

Um zu verstehen, was Not only SQL eigentlich macht, ist es hilfreich, erst einmal zu Wissen was unsere Lieblings-Datenbank MySQL eigentlich alles so treibt: MySQL ist eine relationale Datenbank, die SQL spricht und über fest definierte Schemas (Tabellen) verfügt.  Relational heißt sie deshalb, weil (sehr sehr einfach ausgedrückt) eine einzelne Tabelle eine Relation zwischen Definition und Daten darstellt. Jeder Eintrag muss eindeutig sein (Primary Key) und Beziehungen zwischen Tabellen sind möglich (Foreign Keys). Operationen auf diese Tabellen werden durch die relationale Algebra bestimmt, und finden zumeist in SQL statt.

Das Problem ist nun, das relationale Datenbanken sehr schwer skalierbar sind, und die gesamte relationale Algebra beherrschen, obwohl der Entwickler nur eine kleine Teilmenge verwendet oder braucht. Besser ausgedrückt: Die Ansprüche an den Administrator wachsen mit der Anzahl der Daten! Erschwerend kommt hinzu, dass eine relationale Datenbank nicht in der Cloud betrieben werden kann.

Keine sonderlich großen Probleme, wenn man von einer 08/15-Community ausgeht, aber wenn man Facebook heißt, die Datenbank für die Mails 50TB hat, und man mal eben mit einem SELECT die Mails für einen bestimmten Benutzer abfragen möchte, hat man ein Problem.

Und genau hier kommt NoSQL ins Spiel. NoSQL-Datenbanken sprechen nicht nur nicht SQL, sondern sind auch keine relationale Datenbank! Die einfachste Form einer NoSQL-Datenbank ist die, dass man ein Key und ein Value abspeichern kann (vom Prinzip her also ein Array). Komplexere Strukturen funktionieren NICHT. Dies ist für die meisten Anwendungen ausreichend! Als Beispiel zum Beispiel ein Content Management System: Hier könnte als KEY die ID, und als Value das Dokument (oder ein serialisiertes Dokument) herhalten.

Manche NoSQL-Datenbanken erweitern dieses Konzept, in dem sie zusätzlich eine Verzeichnisstruktur zur Verfügung stellen. Ein prima Beispiel für eine solche Struktur ist die Registry von Windows!

Und jetzt mal ein bisschen Metacode, damit man sich etwas zu diesem Thema vorstellen kann:

$nosql = new nosql_database();
$nosql->login($username,$password);
$nosql->getRoot();
$nosql->addNode(‘my’).addNode(‘directory’);
$nosql->chdir(/my/directory’);
$nosql->put($key,$val);
print $nosql->get($key);

Ähnliche Beiträge

PouchDB – CouchDB mit Javascript Ich habe ja schon desöfteren verkündet, das man nicht alles mit MySQL todschlagen muss. Zum einen gibt es sinnvolle Key-Value-Stores, zum anderen Date...
MySQL – Optimale Größe für Feldtypen Was ich wirklich und mit aller Leidenschaft hasse, sind Programmierer die im Fire&Forget-Stil Größen von Feldtypen in MySQL setzen - und dann auch...
Openark-Kit – coole Tools für MySQL Shlomi Noach hat eine interessante Tool-Sammlung für MySQL veröffentlicht. Das Ganze funktioniert über die Shell und setzt Python voraus. Die Tools si...
Chive – eine phpMyAdmin-Alternative !? Meine Meinung über phpMyAdmin dürfte inzwischen hinlänglich bekannt sein, um so interessierter bin ich an Alternativen wie zum Beispiel den Adminer. M...

Eine Antwort auf „Brave new World: Was ist eigentlich NoSQL !?“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.