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

Entwurfsmuster für JavaScript Entwurfsmuster (englisch: Design Patterns) sind eine Art Best Practice für Programmiersprachen. Also der optimale Weg ein Ziel zu erreichen. Entwurfsm...
Top MySQL Performance Tipps Im MySQL Forge ist eine interessante Liste bzgl. MySQL Performance aufgetaucht. Einige Hinweise sind nichts neues (Benutze niemals SELECT *), andere s...
TaffyDB – Datenbank für JavaScript In vielen Fällen läuft es heutzutage so, das Daten in Tabellen zum Beispiel nicht mehr direkt eingesetzt, sondern mittels AJAX nachgeladen werden. Ger...
Photoshop mit Javascript Zu sagen man kennt Photoshop nicht wäre als wenn ein Eisverkäufer mit der Gabel die Waffeln füllt. Erstaunlicherweise ist es aber so, dass nicht ein B...

Schreibe einen Kommentar