Database Reference
In-Depth Information
und mit einfachem Interface. Um jedoch gute Rundenzeiten zu fahren, bedarf es ein wenig
Übung. Bitte legen Sie die Datenbank autohaus wieder an, wir werden sie noch brauchen.
Dokumente I: Daten
Bei relationalen Datenbanksystemen besteht ein Datensatz aus einer Zeile einer Tabelle mit
allen definierten Spalten (Feldern). In CouchDB spricht man von „Dokument“ anstelle ei-
nes Datensatzes. Der große Unterschied zwischen einem Datensatz aus einer relationalen
Datenbank und einem Dokument in CouchDB ist die Freiheit der Datenfelder in CouchDB.
Während man bei einer SQL-Tabelle an die Vorgaben der Spalten gebunden ist, kann sich
jedes Dokument in CouchDB von einem anderen in seinen Datenfeldern unterscheiden. Ein
einzelnes Dokument kann auch jederzeit um Felder erweitert bzw. verringert werden. Die
Daten innerhalb eines Dokuments werden in reinem Text in der JSON-Notation gespei-
chert:
{"_id":1,"type"="autohaus","name":"Meier",
"marken":["Audi","VW"],stadt:"Berlin"}
{"_id":2,"type"="autohaus","name":"Schulze",
"marken":["BMW"],stadt:"Berlin"}
{"_id":3,"type"="autohaus","name":"Schmidt",
"marken":["Skoda"],stadt:"Hannover"}
Anders als bei SQL-Tabellen wird bei CouchDB ein zu ändernder Datensatz komplett an
den alten Datensatz angehängt und bekommt eine neue interne Revisionsnummer. Damit
ist ein weiterer Unterschied sichtbar: Man kann keine einzelnen Felder eines Dokuments
verändern. Änderungen an einem Attribut werden im Client vorgenommen, und das ge-
samte Dokument wird als Update eingespielt. Dadurch kann sichergestellt werden, dass
immer ein Datensatz vorhanden ist, auch wenn das Update fehlschlägt. Jedes Dokument
beinhaltet zudem eine eindeutige ID (entweder von CouchDB vergeben oder manuell mit-
geliefert) und die Anzahl der Felder eines Dokuments ist nicht limitiert (abgesehen von
den Voreinstellungen der CouchDB, die eine maximale Größe eines Dokuments vorgeben),
allerdings dürfen Feldnamen nicht zweimal vorkommen. Als Datentypen können Strings,
Zahlen, Boolean, Arrays und Objekte (auch in Kombination) verwendet werden. Ebenfalls
interessant: Anders als in relationalen Datenbanken werden Dokumente bei Veränderun-
gen nicht gesperrt. Möchten Sie ein bestehendes Dokument bearbeiten und abspeichern,
muss nur die vorangegangene Revisionsnummer mit angegeben werden. Wenn nun zwei
Personen gleichzeitig einen Datensatz verändern und abspeichern wollen, so „gewinnt“ der
Search WWH ::




Custom Search