ArangoDB - Modelli di dati e modellazione
In questo capitolo, ci concentreremo sui seguenti argomenti:
- Interazione con il database
- Modello di dati
- Recupero dei dati
ArangoDB supporta il modello di dati basato su documenti e il modello di dati basato su grafici. Descriviamo prima il modello di dati basato su documenti.
I documenti di ArangoDB assomigliano molto al formato JSON. Zero o più attributi sono contenuti in un documento e un valore associato a ciascun attributo. Un valore è di tipo atomico, come un numero, booleano o null, stringa letterale o di un tipo di dati composto, come un documento / oggetto incorporato o un array. Gli array o gli oggetti secondari possono essere costituiti da questi tipi di dati, il che implica che un singolo documento può rappresentare strutture di dati non banali.
Più avanti nella gerarchia, i documenti sono organizzati in raccolte, che possono non contenere documenti (in teoria) o più di un documento. Si possono confrontare documenti con righe e raccolte con tabelle (qui tabelle e righe si riferiscono a quelle dei sistemi di gestione di database relazionali - RDBMS).
Tuttavia, in RDBMS, la definizione delle colonne è un prerequisito per memorizzare i record in una tabella, chiamando questi schemi di definizioni. Tuttavia, come nuova funzionalità, ArangoDB è senza schema: non c'è motivo a priori per specificare quali attributi avrà il documento.
E a differenza di RDBMS, ogni documento può essere strutturato in un modo completamente diverso da un altro documento. Questi documenti possono essere salvati insieme in un'unica raccolta. In pratica, possono esistere caratteristiche comuni tra i documenti nella raccolta, tuttavia il sistema di database, ovvero lo stesso ArangoDB, non ti lega a una particolare struttura di dati.
Ora proveremo a capire le [graph data model], che richiede due tipi di raccolte: la prima sono le raccolte di documenti (note come raccolte di vertici nel linguaggio teorico dei gruppi), la seconda sono le raccolte di margini. C'è una sottile differenza tra questi due tipi. Anche le raccolte Edge memorizzano i documenti, ma sono caratterizzate dall'inclusione di due attributi univoci,_from e _toper creare relazioni tra documenti. In pratica, un documento (read edge) collega due documenti (read vertices), entrambi archiviati nelle rispettive raccolte. Questa architettura è derivata dal concetto di teoria dei grafi di un grafo diretto etichettato, escludendo i bordi che possono avere non solo etichette, ma possono essere un documento completo simile a JSON in sé.
Per calcolare nuovi dati, eliminare documenti o manipolarli, vengono utilizzate query che selezionano o filtrano i documenti secondo i criteri dati. Sia che siano semplici come una "query di esempio" o complesse come "join", le query sono codificate in AQL - ArangoDB Query Language.