slot couchdb
- Author
- Muharem Hrnjadovic
Zusammenfassung
Was ist CouchDB
CouchDB ist eine Dokumentorientierte Datenbank, d.h. keine Tabellen und Relationen wie bei SQL, sondern einfache Ablage von Name/Wert-Paaren (vereinfacht).
Warum CouchDB
Gegenüber relationalen DBs eine sehr gute lese-performance, außerdem gute Verteilung (replikation und merge). CouchDB bietet eine Versionsverwaltung auf den Datensätzen ("Dokumenten"), dabei wird eine einfache Konfliktlösung realisiert (last one wins).
Es gibt ein einfaches Berechtigungsmodell, dies ist aber nicht besonders fein granular. Nach Installation darf zunächst jeder Daten anlegen und verändern!
CouchDB ist besonders für Web-Anwendungen geeignet: Zugriff auf Daten erfolgt einfach via Rest (http / standard port 5984). Dazu gibt es verschiedene Rest-URLs - z.B.
- GET /_all_dbs - Alle Datenbanken (JSON)
- GET /_uuids - alle Dok-IDs
- PUT /dbname - neue DB anlegen
CouchDB kann man bspsweise auch in Firebug ansprechen: http://benatkin.com/weblog/2008/09/13/trying-out-couchdb-in-firebug/ Außerdem gibt es ein hilfreiches Admin-Backend (ähnlich php-my-admin): einfach http://localhost:5984/_utils öffnen!
Python-Anbindung via package couchdb http://code.google.com/p/couchdb-python/
Beinhaltet u.a.
- chouchdb.client - create server
- couchdb.schema - high-level API, ORM-mapper-like (ähnlich django)
chouchdb package definiert Klasse "Document" - darüber wird Schema durch Klasse definiert.