Involvierte Definitionen
:Veranstaltung
: DEDSReferenz
:- @storl2024 (KE6, NoSQL: Datenmodelle und Techniken; Teil 1.4 und Teil 1.5)
- @stoerl2024 (p. 12, p. 14)
⠀
Proposition: Prinzipien der dokumentorientierten NoSQL-Datenmodellierung
Die Prinzipien der dokumentorientierten NoSQL-Datenmodellierung unterscheiden sich deutlich von denen der relationalen Datenmodellierung, hauptsächlich aufgrund der oft schemalosen Natur von NoSQL-Datenbanken.
- Datenzugriffsmuster (auch Query-first Approach):
- Ein zentraler Punkt bei der NoSQL Datenmodellierung ist das Verständnis der Datenzugriffsmuster. Anstatt sich nur auf die Datenstruktur zu konzentrieren, wird die Datenstruktur oft um die Art und Weise herum entworfen, wie die Anwendung auf die Daten zugreift.
- In Konsequenz wird das Datenmodell häufig so gestaltet, dass es entweder für schnelle Lesezugriffe (read-optimized) oder schnelle Schreibzugriffe (write-optimized) optimiert ist, je nach den Anforderungen der Anwendung.
- Hierzu können die erwarteten Anfragen der Anwendung analysiert werden. Zu jeder Anfrage erfassen wir:
- Schreibender- oder lesender Zugriff
- die benötigten Daten (bspw.
customer.first_name
)- erwartete Häufigkeit der Anfrage
- Wichtigkeit der Performance für die Anwendung
- Denormalisierung:
- Während relationale Datenbanken Normalisierung nutzen, um Redundanz zu minimieren, fördern NoSQL-Datenbanken häufig die Denormalisierung, um Lesezugriffe zu beschleunigen. So werden oft beispielsweise Daten in mehreren Dokumenten dupliziert.
- Referencing
- Ähnlich wie bei relationalen Datenbanken können in NoSQL Datenbanken Fremdschlüssel (oder auch Arrays von Fremdschlüsseln) genutzt werden, um Verbindungen zwischen Objekten auszudrücken.
- Ein Customer kann bspw. ein Array von Bestellungs-IDs vorhalten.
- Embedding (auch aggregat-orientierte Modellierung nach Fowler)
- Beim Embedding werden alle relevanten Daten in einem einzigen Objekt abgespeichert.
- Ein Customer kann bspw. ein Array von Bestellungen enthalten.
- Kombination aus Referencing und Embedding
- Objekte können auch sowohl eingebettet und referenziert werden, bspw. um gewisse Abfragen zu optimieren
- In diesem Fall können auch partielle Einbettungen umgesetzt werden (bspw. nur den Nachnamen eines Kunden)
Anmerkung
Visualisierung von NoSQL Modellierungen
Online Tools für die Visualisierung finden sich auf: