CouchDB: Neue Datenbank fürs Web

Relationale Datenbank war gestern. Viele Entwickler verwenden heute Datenbanken, die ohne SQL auskommen. Der zurzeit populärste Vertreter der Gattung ist CouchDB.

Wer sich in den letzten Jahren irgendwann einmal mit der Entwicklung von Webanwendungen beschäftigt hat, wird gemerkt haben, dass es in praktisch jedem Framework eine so genannte ORM-Schicht gibt. ORM bedeutet objekt-relationales Mapping, also die Zuordnung von auf höherer Programmierebene verwendeten Objekten auf die relationalen Strukturen einer Datenbank. Angesichts des Aufwands, unterschiedliche Welten zu vereinen, könnte es naheliegen, die Daten gleich als Objekt zu speichern, wie es zum Beispiel db4o macht.

Einen etwas anderen Weg geht CouchDB [1], das die Struktur der gespeicherten Dokumente in den Mittelpunkt stellt. Insbesondere müssen die gespeicherten Daten nicht einer vorab erstellten Definition genügen, dem so genannten Schema, weshalb CouchDB auch als schema-lose Database bezeichnet wird. Die Flexibilität geht soweit, dass einzelne Dokumente sogar unterschiedliche Elemente/Felder enthalten dürfen. Als Netzwerkprotokoll verwendet CouchDB das vom Web bekannte HTTP und liefert Daten im JSON-Format aus, womit sich Webentwickler sofort zu Hause fühlen dürften. Gemäß dem REST-Prinzip, das Datendienste wiederum auf der Basis von HTTP realisiert, steht zum Speichern in der Datenbank die Operation PUT oder POST, zum Lesen das bekannte GET zur Verügung. Im einfachsten Fall sieht eine Abfrage so aus wie eine Web-URL: »http://localhost:5984/Datenbank/Ressource«. Eine Liste aller Datenbanken ist unter »http://localhost:5984/_all_dbs« zu finden.

Erlang verlangt

Doch bevor es um die Nutzung der CouchDB geht, noch ein paar Worte zur Installation. CouchDB ist in Erlang geschrieben, der ehemals hausinternen Sprache von Ericsson, die ebenfalls in letzter Zeit ziemlich gehypet wird. Das muss uns nicht weiter kümmern, man braucht allerdings zum Compilieren von CouchDB die Erlang-Umgebung, die für alle gängigen Distributionen in den Repositories enthalten ist.

Für diesen Artikel habe ich Debian Etch verwendet, das die Erlang-Version 12b3 mitbringt, die jedenfalls für CouchDB genügt. Einfach »aptitude install erlang« eingeben und fertig, dito bei Ubuntu. Red-Hat-, Fedora, CentOS- und Suse-Benutzer verwenden stattdessen einfach »yum«. Nach dem Configure-Script folgen »make« und »make install«, was unter anderem einen Benutzer »couchdb« in der Passwort-Datei anlegt. Wer ohne Benutzerwechsel CouchDB starten möchte, kann sich selbst der Gruppe »couchdb« hinzufügen und den passenden Verzeichnissen Gruppenschreibrechte geben:

chmod -R g+w /usr/local/var/lib/couchdb/
chmod -R g+w /usr/local/var/log/couchdb/

Der Befehl »couchdb« startet schließlich die Datenbank, die ihre Meldungen direkt im Terminal ausgibt (Abbildung 1). Daemon-Mode und so weiter lassen sich über Kommandozeilenparameter festlegen.

Abbildung 1: In einem Terminal gestartet, gibt CouchDB seine Meldungen direkt aus.

Die Datenbank ist unter Port 5984 zu erreichen (von Haus aus nur unter der Localhost-Adresse), hinter der URL »http://localhost:5984/_utils« verbirgt sich ein brauchbares Web-Interface namens Futon. Dort lassen sich mit wenigen Klicks neue Datenbanken und in diesen wiederum CouchDB-Dokumente anlegen, verändern und löschen . Für neue Dokumente geben Sie entweder einen Wert für das spezielle Property »_id« ein, das den Datensatz eindeutig identifiziert, oder lassen die ID von CouchDB erzeugen. Außerdem enthält Futon eine eigene Seite für die Replikation der CouchDB (Abbildung 2).

Abbildung 2: Das CouchDB-Frontend Futon kann auch zur Replikation der Datenbank verwendet werden.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABEPrint-AusgabenDigitale Ausgaben
ABONNEMENTSPrint-AbosDigitales Abo
TABLET & SMARTPHONE APPS
Bald erhältlich

Deutschland