„Apache CouchDB has started. Time to relax.” So werden Nutzer des Datenbank-Ma­nage­ment-Systems CouchDB beim Start begrüßt. Ent­span­nung und Sorg­lo­sig­keit beim Datenbank-Ma­nage­ment stehen laut der Ent­wick­ler des Systems dabei an oberster Stelle, denn „Couch” soll auch für Datenbank-Laien, die nicht viel bis gar nichts mit der Technik am Hut haben, einfach zu bedienen und leicht ver­ständ­lich sein. Viele intuitiv er­fass­ba­re Elemente und nut­zer­freund­li­che Be­dien­bar­keit machen die Open-Source-Software zu einem echten Unikum, bei dem Ansätze do­ku­ment­ori­en­tier­ter Da­ten­ban­ken mit denen re­la­tio­na­ler Da­ten­ban­ken verbunden werden. Was Apache CouchDB leistet, wie und wo es ein­ge­setzt wird und welche Vorteile „Couch“ Un­ter­neh­men ver­schaf­fen kann, erfahren Sie in den folgenden Ab­schnit­ten.

Da­ten­ban­ken bilden das Fundament von Software

Da­ten­ban­ken sind die Basis, auf der Un­ter­neh­men arbeiten und auf der Software ent­wi­ckelt wird. Kun­den­da­ten, Pro­dukt­da­ten, Versand- und Zah­lungs­da­ten und Hunderte weitere Da­ten­sät­ze bilden das Ner­ven­sys­tem der meisten Un­ter­neh­men. Die Art und Weise der Da­ten­spei­che­rung hängt dabei grund­le­gend vom ver­wen­de­ten Da­ten­bank­mo­dell ab. Das tra­di­tio­nel­le Modell der re­la­tio­na­len Da­ten­ban­ken sortiert Da­ten­sät­ze bei­spiels­wei­se ent­spre­chend ge­mein­sa­mer Re­la­tio­nen. Nicht-re­la­tio­na­le Modelle, die auch als NoSQL-Da­ten­ban­ken be­zeich­net werden, nutzen andere Methoden: Eine Form nicht-re­la­tio­na­ler Da­ten­ban­ken sind bei­spiels­wei­se do­ku­ment­ori­en­tier­te Da­ten­ban­ken wie die hier the­ma­ti­sier­te Lösung Apache CouchDB.

Hinweis

CouchDB lässt sich ganz einfach auf einem be­lie­bi­gen Server anwenden. Für eine leis­tungs­star­ke und ef­fi­zi­en­te Anwendung kann Apache CouchDB zum Beispiel in der Cloud, wie etwa auf einem Cloud-Server von IONOS, in­stal­liert werden.

Die wich­tigs­ten Hard Facts über CouchDB

CouchDB ist ein Datenbank-Ma­nage­ment-System, das sich die besten Aspekte do­ku­ment­ori­en­tier­ter Da­ten­ban­ken zu Nutze macht, um die Leis­tungs­fä­hig­keit von re­la­tio­na­len Da­ten­ban­ken zu erreichen. Ver­ant­wort­lich für die Ent­wick­lung von Couch ist die Apache Software Foun­da­ti­on, die 2005 mit der Arbeit an der freien Software Apache CouchDB begann und diese seitdem kon­ti­nu­ier­lich wei­ter­ent­wi­ckelt hat.

CouchDB ist mit den gängigen Be­triebs­sys­te­men Linux, Unix, macOS und Windows kom­pa­ti­bel und wurde in der Pro­gram­mier­spra­che Erlang ent­wi­ckelt. Die stan­dard­mä­ßi­ge Skript-Sprache für den Zugriff auf Couch-Da­ten­sät­ze ist Ja­va­Script.

CouchDB als Al­ter­na­ti­ve zu re­la­tio­na­len Da­ten­ban­ken

Do­ku­ment­ba­sier­te Da­ten­ban­ken wie CouchDB speichern Da­ten­sät­ze nicht in Form von Tabellen und Zeilen, sondern als ei­gen­stän­di­ge, in sich ge­schlos­se­ne Dokumente. Diese lassen sich also bei­spiels­wei­se mit Rech­nun­gen ver­glei­chen:

Eine Rechnung ist ein ei­gen­stän­di­ges Dokument, das alle re­le­van­ten In­for­ma­tio­nen in einem voll­stän­di­gen Datensatz vereint – Rech­nungs­stel­ler, Rech­nungs­num­mer, Empfänger, Preis, verkaufte Ge­gen­stän­de, Anschrift des Rech­nungs­stel­lers und des Emp­fän­gers sind es­sen­zi­el­le In­for­ma­tio­nen dieses un­ver­wech­sel­ba­ren Da­ten­sat­zes. Während diese In­for­ma­tio­nen in einer re­la­tio­na­len Datenbank auf viele ver­schie­de­ne Zeilen auf­ge­teilt sind, erlaubt CouchDB es, all diese In­for­ma­tio­nen in einem Dokument zu sammeln. Die Daten müssen also nicht im Vorhinein struk­tu­riert sein. Die Struktur ergibt sich aus dem Dokument selbst. CouchDB kann daher als sche­ma­frei­es Datenbank-Ma­nage­ment-System ver­stan­den werden.

Der do­ku­men­ten­ori­en­tier­te Ansatz ver­ein­facht den Ent­wick­lungs­pro­zess maß­geb­lich. Darüber hinaus erlaubt er es, Da­ten­sät­ze, die zwar se­man­tisch ähnlich sind (bspw. gleiche Da­tei­for­ma­te haben), sich syn­tak­tisch (hin­sicht­lich Aufbau und interner Struktur) aber von­ein­an­der un­ter­schei­den, gebündelt zu sammeln.

Die Vorteile von Apache CouchDB

Ein Vorteil von CouchDB ist die gute Syn­chro­ni­sie­rung mehrerer Da­ten­ban­ken, wobei diese ef­fi­zi­en­te Syn­chro­ni­sie­rung besonders wichtig ist, um Daten in einem CouchDB-Cluster zu verteilen. Auf diese Weise ent­ste­hen­de Da­ten­red­un­dan­zen entlasten das gesamte System. Da­ten­bank­an­fra­gen können in­fol­ge­des­sen von un­ter­schied­li­chen CouchDB-Instanzen be­ant­wor­tet werden. Geo­gra­fisch verteilte, riesige Da­ten­bank­net­ze sind pro­blem­los möglich.

Bei der Syn­chro­ni­sa­ti­on der Datenbank für ver­schie­de­ne Anwender an ver­schie­de­nen Stand­or­ten setzt Apache CouchDB auf eine in­kre­men­tel­le Strategie, was den ent­schei­den­den Vorteil hat, dass schlechte oder weg­fal­len­de Netz­werk­ver­bin­dun­gen dem Syn­chro­ni­sa­ti­ons­pro­zess nicht schaden. Nach Ver­bin­dungs­pro­ble­men macht die Da­ten­bank­lö­sung genau da weiter, wo sie vor Abbruch der Ver­bin­dung aufgehört hat. Die Ent­wick­ler betonen hierbei, dass das System derartige Even­tua­li­tä­ten nicht ignoriert und re­gel­recht davon ausgeht, dass solche Fehler im Alltag vorkommen können.

Des Weiteren nutzt CouchDB das ein­steig­er­freund­li­che JSON-Format (kurz für Ja­va­Script Object Notation) für die Über­tra­gung und Spei­che­rung seiner Da­ten­sät­ze. Diesem Format ist der sche­ma­freie Aufbau zu verdanken, der es – anders als bei re­la­tio­na­len Modellen – erlaubt, auch bis dato un­struk­tu­rier­te In­for­ma­tio­nen ab­zu­spei­chern.

Nutzer können sich außerdem auf die einfache Bedienung von CouchDB verlassen, da es sich auf gängige und bekannte Web-Tech­no­lo­gien wie REST, JSON und Ja­va­Script stützt. Einem viel­fäl­ti­gen Einsatz von großen Ser­ver­clus­tern bis hin zu mobilen End­ge­rä­ten steht damit nichts entgegen.

Warum CouchDB nicht für jeden die ideale Datenbank ist

Die Ent­wick­ler von Apache CouchDB betonen selbst, dass sie re­la­tio­na­le Da­ten­ban­ken nicht ver­drän­gen wollen und können, sondern CouchDB neben diesen po­si­tio­nie­ren und Nutzern eine einfache Al­ter­na­ti­ve anbieten möchten. Nicht für jedes Un­ter­neh­men ist eine do­ku­ment­ori­en­tier­te Datenbank emp­feh­lens­wert oder aus­rei­chend.

Man sollte sich bei­spiels­wei­se im Klaren darüber sein, dass re­la­tio­na­le Da­ten­bank­sys­te­me prak­ti­scher und nut­zer­freund­li­cher für die­je­ni­gen sind, die ihre Da­ten­sät­ze re­gel­mä­ßig in Form von Be­rech­nun­gen oder weiteren kom­ple­xe­ren Anfragen über­ar­bei­ten wollen. Grund dafür ist, dass ent­spre­chen­de Funk­tio­nen bei CouchDB selbst eingebaut werden müssten, was mit einem hohen Mehr­auf­wand verbunden wäre und das er­for­der­li­che Know-how vor­aus­setzt.

Ein­satz­be­rei­che von Apache CouchDB

Wie bereits an­ge­deu­tet, ist CouchDB im Bereich der Ent­wick­lun­gen von Web-Ap­pli­ka­tio­nen eine gute Al­ter­na­ti­ve mit vielen einfach zu be­die­nen­den Funk­tio­nen. Die Ent­wick­ler betonen in diesem Zu­sam­men­hang, dass andere Da­ten­bank­sys­te­me oft an das Web angepasst werden, während CouchDB extra für das Web her­ge­stellt wurde. Im Einsatz ist die Da­ten­bank­lö­sung bei­spiels­wei­se bei vielen Webseiten und Facebook-An­wen­dun­gen. Darüber hinaus wurde sie in der Ver­gan­gen­heit von Ubuntu, der wohl be­lieb­tes­ten Linux-Dis­tri­bu­ti­on, verwendet, um Le­se­zei­chen und Adressen zu syn­chro­ni­sie­ren – ein weiteres Beispiel für so­ge­nann­te „Real World Data“.

CouchDB mit wenigen Klicks in­stal­lie­ren und aufrufen

CouchDB ist mit den gängigen Be­triebs­sys­te­men kom­pa­ti­bel, daher bieten die Ent­wick­ler auf ihrer Website Download-Versionen für jedes Be­triebs­sys­tem. Je nach System un­ter­schei­det sich die Vor­ge­hens­wei­se bei der In­stal­la­ti­on – unter Linux/Ubuntu sehen die not­wen­di­gen Schritte bei­spiels­wei­se fol­gen­der­ma­ßen aus:

Zunächst ak­tua­li­sie­ren Sie die Pa­ket­ver­wal­tung Ihrer Ubuntu-In­stal­la­ti­on und fügen das PPA-Re­po­si­to­ry hinzu:

sudo apt update
sudo apt install software-properties-common

An­schlie­ßend ak­tua­li­sie­ren Sie die Pa­ket­ver­wal­tung erneut:

sudo apt update

Im Anschluss in­stal­lie­ren Sie CouchDB mit folgendem Terminal-Befehl:

sudo apt install couchdb
Tipp

Aus­führ­li­che In­stal­la­ti­ons­an­lei­tun­gen für diverse Systeme finden Sie in den Online-Do­ku­men­ta­tio­nen von Apache CouchDB.

Zum Hauptmenü