Database Reference
In-Depth Information
zes verwendet werden. So kann z. B. im Fall von JSON aus dem Dokumentinhalt mithilfe
eines JSON-Parsers ein JavaScript-Objekt erzeugt werden.
Gerade bei Frontend-getriebener Anwendungsentwicklung ergibt sich die Datenstruktur für
die einzelnen Dokumenttypen mehr oder weniger direkt aus dem Datenmodell der Anwen-
dungsoberfläche und deren für Ein- und Ausgabe verwendeten Elementen wie z. B. Formu-
lare oder Tabellen. Ähnlich verhält es sich bei der Entwicklung auf Basis moderner Client-
JavaScript-Frameworks: Dort werden die Daten in Form von JSON-Objekten vorgehalten
und können in einer dokumentenorientierten Datenbank direkt und ohne weitere Transfor-
mation persistiert werden, z. B. durch Serialisierung in eine Zeichenkette oder Speicherung
in einem binären Format wie BSON [1].
Dokumentenorientierte Datenbanken sind einfach anzuwenden
Die Einfachheit bei der Anwendung ist einer der Hauptgründe für die Beliebtheit und
den Erfolg aktueller Dokumentendatenbanken. Allerdings zeigen sich mit zunehmender
Komplexität des Datenmodells auch Nachteile. Zum einen ist die Abfrage über die
Dokumenten-ID allein meist nicht ausreichend, da man Dokumente auch über deren Eigen-
schaften finden möchte. Dies erfordert eine zusätzliche Indizierung, die in der Regel über
textbasierte Indexframeworks erfolgt.
Zum anderen besteht oft der Wunsch, die Struktur der gespeicherten Dokumente zu defi-
nieren, zu typisieren und auf Basis der Typzuordnung Regeln und Einschränkungen (Cons-
traints) festzuschreiben. Außerdem möchte man Daten möglichst redundanzfrei abbilden,
um die Dokumente nicht unnötig groß werden zu lassen und vor allem Änderungen an Da-
tenobjekten nicht mehrfach in der Datenbank propagieren zu müssen, wo sie referenziert
werden. Das erreicht man durch Normalisierung [2], d. h. Zerlegung und Aufteilung in En-
titäten, die so weit wie möglich redundanzfrei sind. Diese Zusammenhänge, auch Relatio-
nen genannt, bilden zusammen mit den Constraints ein Schema und sind gewollte Abhän-
gigkeiten im Datenmodell, die einem als Entwickler die Erhaltung der Konsistenz und Ver-
meidung der Redundanz stark erleichtern.
Relationale Datenbanken bringen hier viele praktische Funktionen wie Constraints und
Trigger mit, die in dokumentenorientierten Datenbanken meist nicht vorhanden sind oder
zusätzlichen Aufwand erfordern. Graphdatenbanken sind durch ihr flexibles Schema ge-
genüber Dokumentendatenbanken zunächst nicht unbedingt im Vorteil, was die Einhaltung
Search WWH ::




Custom Search