ArangoDB - Datenmodelle und Modellierung
In diesem Kapitel konzentrieren wir uns auf die folgenden Themen:
- Datenbankinteraktion
- Datenmodell
- Datenabruf
ArangoDB unterstützt sowohl dokumentbasierte Datenmodelle als auch graphbasierte Datenmodelle. Beschreiben wir zunächst das dokumentbasierte Datenmodell.
Die Dokumente von ArangoDB ähneln stark dem JSON-Format. In einem Dokument sind null oder mehr Attribute enthalten, und jedem Attribut ist ein Wert zugeordnet. Ein Wert ist entweder ein atomarer Typ, z. B. eine Zahl, ein Boolescher Wert oder ein Nullwert, eine Literalzeichenfolge, oder ein zusammengesetzter Datentyp, z. B. ein eingebettetes Dokument / Objekt oder ein Array. Arrays oder Unterobjekte können aus diesen Datentypen bestehen, was bedeutet, dass ein einzelnes Dokument nicht triviale Datenstrukturen darstellen kann.
Weiter in der Hierarchie sind Dokumente in Sammlungen angeordnet, die (theoretisch) keine Dokumente oder mehr als ein Dokument enthalten dürfen. Man kann Dokumente mit Zeilen und Sammlungen mit Tabellen vergleichen (hier beziehen sich Tabellen und Zeilen auf die von relationalen Datenbankverwaltungssystemen - RDBMS).
In RDBMS ist das Definieren von Spalten jedoch eine Voraussetzung, um Datensätze in einer Tabelle zu speichern und diese Definitionsschemata aufzurufen. Als neuartige Funktion ist ArangoDB jedoch schemalos - es gibt keinen a priori Grund, anzugeben, welche Attribute das Dokument haben wird.
Und im Gegensatz zu RDBMS kann jedes Dokument ganz anders strukturiert sein als ein anderes Dokument. Diese Dokumente können zusammen in einer einzigen Sammlung gespeichert werden. In der Praxis können unter den Dokumenten in der Sammlung gemeinsame Merkmale vorhanden sein, das Datenbanksystem, dh ArangoDB selbst, bindet Sie jedoch nicht an eine bestimmte Datenstruktur.
Jetzt werden wir versuchen, ArangoDBs [graph data model], für die zwei Arten von Sammlungen erforderlich sind: Die erste sind die Dokumentensammlungen (in gruppentheoretischer Sprache als Vertices-Sammlungen bezeichnet), die zweite die Randsammlungen. Es gibt einen subtilen Unterschied zwischen diesen beiden Typen. Edge-Sammlungen speichern auch Dokumente, zeichnen sich jedoch durch zwei eindeutige Attribute aus:_from und _tozum Erstellen von Beziehungen zwischen Dokumenten. In der Praxis verknüpft ein Dokument (Lesekante) zwei Dokumente (Lesescheitelpunkte), die beide in ihren jeweiligen Sammlungen gespeichert sind. Diese Architektur leitet sich aus dem graphentheoretischen Konzept eines beschrifteten, gerichteten Graphen ab, mit Ausnahme von Kanten, die nicht nur Beschriftungen haben können, sondern an sich ein vollständiges JSON-ähnliches Dokument sein können.
Um neue Daten zu berechnen, Dokumente zu löschen oder zu bearbeiten, werden Abfragen verwendet, die Dokumente gemäß den angegebenen Kriterien auswählen oder filtern. Abfragen sind entweder einfach als "Beispielabfrage" oder so komplex wie "Verknüpfungen" und werden in AQL - ArangoDB Query Language codiert.