Manchmal geschehen Dinge rund um die IT, die ich nicht verstehe. Rümpfe ich gelegentlich die Nase über Entwicklungen, die wahrlich nicht mehr taufrisch sind, aber dennoch als technische Revolution gefeiert werden, so schüttel‘ ich auch mal den Kopf, wenn wirklich neue und hoch interessante IT-Entwicklungen kaum Gehör bekommen. CouchDB ist so ein Fall.
CouchDB ist Vertreter eines neuen Datenbanktyps, und zwar einer so genannten dokumentenbasierten Datenbank. CouchDB speichert Daten nicht in Tabellen, Zeilen und Spalten, sondern verwaltet sie in Dokumenten. Anders als bei relationalen Datenbanksystemen werden Abfragen nicht über die Datenbankabfragesprache SQL definiert, sondern über HTTP-Befehle entsprechend den Prinzipien des REST-Paradigmas: Speicheroperationen über HTTP PUT beziehungsweise POST und Leseoperationen über HTTP GET. Angefragte Daten werden im JSON-Format ausgegeben, das gerade bei Webprogrammierern bekannt und geschätzt ist. Gespeicherten Daten müssen nicht einer vorab erstellten Definition genügen, dem so genannten Schema, weshalb CouchDB auch als schemalose Datenbank bezeichnet wird. Im Mittelpunkt steht stets die Struktur der gespeicherten Dokumente.
CouchDB ist dabei nicht als Ersatz für relationale Datenbanken zu betrachten. Jeder Ansatz hat unterschiedliche Stärken und Schwächen. Wenn es jedoch um die Speicherung von Dokumenten (Blogeinträge, E-Mails, Webseiten, Bilder, Videos) geht, die sehr unterschiedlich strukturiert sind, hat der dokumentenbasierte Datenbankansatz von CouchDB deutliche Performancevorteile gegenüber einer relationalen Datenbank, die dagegen bestens mit fest strukturierten Daten klar kommt.
CouchDB wurde in Erlang programmiert. Erlang ist eine so genannte funktionale Programmiersprache, die ihre Stärke in verteilten Systemen und bei paralleler Verarbeitung ausspielen kann. Diese Eigenschaften hat CouchDB geerbt und setzt sie konsequent um. Datenbankeinsatz in verteilten Systemen, Skalierbarkeit und Performancegewinn bei heterogenen Dokumentstrukturen sind die Folge. Also alles im Bereich der Webprogrammierung.
Bei O’Reilly sind zwei Bücher zu CouchDB erschienen. CouchDB: The Definitive Guide, englischsprachig, geschrieben von drei CouchDB-Core-Entwicklern und das deutschsprachige CouchDB – kurz & gut von Mario Scheliga, das sowohl Einstiegshilfe als auch Nachschlagewerk ist.