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.

Ähnliche Beiträge

Modernizr – HTML5 und CSS3 mit Fallback Manchmal ist der Teufel ein Eichhörnchen, und scheinbar hat er sich an einem langen Winterabend überlegt, der beste Weg die Menschheit zu quälen wären...
knockout.js – was ist es, was kann es? Nicht zuletzt durch ein Tutorial bei tutsplus.com bin ich auf knockout.js aufmerksam geworden. Da inzwischen ein regelrechter Hype um das relative kle...
Microjs – Micro-Frameworks für Vanilla Javas... Im Bereich der Webentwicklung herrscht derzeit eine "Totschläger-Mentalität" - erster Schritt beim Aufsetzen einer neuen Seite, bzw. des grundlegenden...
Kostenlose Bücher für JavaScript Die großen Verlage (zumindest die amerikanischen) hauen ja regelmäßig kostenlose eBooks raus, diese sind weder minderwertig, noch eingekürzt noch triv...

Schreibe einen Kommentar