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

Bike – Minimalistischer Ersatz fĂŒr phpMyAdmi... Ich bin nach wie vor kein Freund von phpMyAdmin, und meine Lieblingslösung ist nach wie vor Adminer. Ausserdem ist mir inzwischen ĂŒberhaupt nicht klar...
DBKiss – eine weitere Alternative zu phpMyAdmin Meine Meinung bzgl. phpMyAdmin dĂŒrfte inzwischen hinlĂ€nglich bekannt sein, ich fĂŒr meinen Teil benutze inzwischen fast nur noch Adminer fĂŒr das Frank ...
Was wird nun aus MySQL? Das Monty Widenius Sun verlÀsst, ist ja fast schon ein alter Hut. Zu behÀbig sei der Branchen-Riese, und scheinbar scheint es auch einige Diskussionen...
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...

Ein Kommentar

Schreibe einen Kommentar