Involvierte Definitionen
:Veranstaltung
: DEDSReferenz
:- @stoerl2024 (p. 15 ff.)
⠀
Proposition: Prinzipien der Datenmodellierung für Wide Column Datenbanken
Die Prinzipien der Spaltenorientierten-Datenmodellierung unterscheiden sich deutlich von anderen Modellierungsprinzipien.
Auch wenn sie effiziente Lese- und Schreibzugriffe für verschiedene Anfragen ermöglichen, schränken sie die Flexibilität bezüglich neuer Abfragen stark ein und führen zu redundanter Datenhaltung.
Bei der Auswahl des Datenbankschemas sollte das berücksichtigt werden.
- Eine Tabelle pro Abfrage:
- Da spaltenorientierten Datenbanken keine Joins unterstützen, müssen alle für die Abfrage benötigten Daten bereits in der Tabelle vorhanden sein.
- Das führt dazu, dass es für jede Art der Abfrage oft eine eigene, dedizierte Tabelle gibt.
- Einzelne Informationen müssen daher auch an vielen Stellen redundant vorgehalten werden.
- Wahl des Partitionsschlüssels:
- Der Partitionsschlüssel bestimmt (unter Anwendung einer Hashfunktion), auf in welcher Partition und auf welchem Node die Daten abgespeichert werden (wobei ein Node mehrere Partitionen enthalten kann).
- Im Sinne der Performanz ist es daher wichtig, dass gemeinsam abgerufene Daten denselben Partitionsschlüssel verwenden. (Bspw. den Vor- und Nachnamen eines Kunden - oder einfach seine
customerId
)- Abfragen ohne Partitionsschlüssel führen zu ineffizienten Scans des gesamten Clusters.
- Die Kombination aus Partitions- und (optionalen) Clusteringschlüsseln bildet den Primärschlüssel und identifiziert die Datenpunkte eindeutig.
- Wahl des Clusteringschlüssels:
- Clusteringschlüssel können optional angegeben werden
- Sie können einerseits die eindeutige Identifikation der Datenpunkte sicherstellen
- Die Daten innerhalb einer Partition werden nach dem Clusteringschlüssel sortiert abgespeichert (bspw. das Erstelldatum eines Datenpunktes)
- Nutzung von Static Columns:
- Attribute (ausgenommen Partitions- und Clusteringschlüssel), die innerhalb einer Partition konstant sind, können als
static column
deklariert werden- So kann Speicherplatz gespart werden
Anmerkung
UML-Modellierung
Das folgende UML-Diagramm zeigt drei Tabellen für die Abfragen
Posts eines Kunden
,Kontakte eines Kunden
,Kunden