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 Datenbanken in das komplette Dokumente abgelegt werden. Jetzt werden sich wahrscheinlich die ersten melden, die meinen das man das auch locker mit MySQL machen kann, aber der tiefere Sinn sei einmal dahingestellt. Stellt man sich nämlich einmal vor das man große XML-Objekte in einer DB speichern will, dann nutzt einem MySQL an der Stelle gar nichts mehr. Man besitzt eine Table mit zwei Spalten (Id und XML) und schaut dann erstmal doof aus der Wäsche, weil mit Indexen kommt man nicht weit und die Fulltext-Search von MySQL wäre der komplette Overkill – mal ganz davon ab das diese mit XML so rein gar nichts anfangen kann.

Screenshot von PouchDB bei GitHub

CouchDB versucht, eine dokumentenorientierte Datenbank mit den Vorzügen einer relationalen Datenbank zu verbinden. Apache CouchDB wird auch oft als Datenbank für das Web bezeichnet, da es JSON spricht und besonders darauf ausgerichtet ist, Browsertechnologien zu unterstützen. CouchDB ist im hohen Maße skalierbar und kann mittels Events Ereignisse bei Änderungen initiieren. Bei Ubuntu wird der Server zum Beispiel für die Synchronisierung der Bookmarks eingesetzt. CouchDB enthält die CouchAPP das ein komplettes Web Application Framework mit CouchDB als Grundlage zur Verfügung stellt.

PouchDB hilft nun bei der Replikation von Daten zwischen verschiedenen Instanzen von CouchDB. Braucht man nicht, braucht man ja bei MySQL schließlich auch nicht? ;) Tja, dummerweise habe ich grad vergessen zu erwähnen dass das mit PouchDB auch offline geht! ;) Die Javascript Library verwendet die HTML5 IndexedDB API und speichert die Daten lokal ab. Sobald man online ist synchronisiert die Library mit einem zentralen CouchDB-Server. Dies geht parallel auf mehreren Rechnern mit verschiedenen Datenbeständen ebenso, wie auf mehrere verschiedene Server.

Um wieder zu einem Beispiel zurückzukommen: bei einem solchen Konstrukt ist es logisch wie einfach zum Beispiel eine Synchronisierung von Bookmarks auf mehreren Rechnern – wie bei Ubuntu Standard – eingesetzt werden kann. MySQL ist inzwischen als relationale Datenbank nicht mehr die erste Wahl für alle möglichen Anwendungen, sondern es existieren durchaus sinnvolle Alternativen die dem Anwendungszweck besser angepasst sind.

Schreibe einen Kommentar

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