ArangoDB - Un primo database multimodello
ArangoDB è salutato come un database multi-modello nativo dai suoi sviluppatori. Questo è diverso da altri database NoSQL. In questo database, i dati possono essere memorizzati come documenti, coppie chiave / valore o grafici. E con un unico linguaggio di query dichiarativo, è possibile accedere a tutti o a tutti i dati. Inoltre, diversi modelli possono essere combinati in una singola query. E, grazie al suo stile multi-modello, è possibile realizzare applicazioni snelle, che saranno scalabili orizzontalmente con uno o tutti i tre modelli di dati.
Database multimodello stratificati e nativi
In questa sezione, evidenzieremo una differenza cruciale tra database multimodello nativi e stratificati.
Molti fornitori di database chiamano il loro prodotto "multi-modello", ma l'aggiunta di un livello grafico a una chiave / valore o un archivio di documenti non si qualifica come multi-modello nativo.
Con ArangoDB, lo stesso core con lo stesso linguaggio di query, è possibile raggruppare diversi modelli di dati e funzionalità in una singola query, come abbiamo già affermato nella sezione precedente. In ArangoDB, non vi è alcun "passaggio" tra i modelli di dati e non vi è alcun trasferimento di dati da A a B per eseguire le query. Porta ad ArangoDB vantaggi in termini di prestazioni rispetto agli approcci "a strati".
La necessità di un database multimodale
L'interpretazione dell'idea di base [di Fowler] ci porta a realizzare i vantaggi dell'utilizzo di una varietà di modelli di dati appropriati per diverse parti del livello di persistenza, essendo il livello parte dell'architettura software più ampia.
Secondo questo, si potrebbe, ad esempio, utilizzare un database relazionale per persistere dati strutturati e tabulari; un archivio di documenti per dati non strutturati e simili a oggetti; un archivio chiave / valore per una tabella hash; e un database a grafo per dati referenziali altamente collegati.
Tuttavia, l'implementazione tradizionale di questo approccio porterà a utilizzare più database nello stesso progetto. Può portare a qualche attrito operativo (distribuzione più complicata, aggiornamenti più frequenti), nonché problemi di coerenza dei dati e duplicazione.
La sfida successiva, dopo aver unificato i dati per i tre modelli di dati, è ideare e implementare un linguaggio di query comune che possa consentire agli amministratori dei dati di esprimere una varietà di query, come query di documenti, ricerche chiave / valore, query grafiche e combinazioni arbitrarie di questi.
Di graphy queries, intendiamo query che implicano considerazioni di teoria dei grafi. In particolare, queste possono coinvolgere le particolari caratteristiche di connettività provenienti dai bordi. Per esempio,ShortestPath, GraphTraversal, e Neighbors.
I grafici si adattano perfettamente come modello di dati per le relazioni. In molti casi reali come social network, sistemi di raccomandazione, ecc., Un modello di dati molto naturale è un grafico. Cattura le relazioni e può contenere le informazioni sull'etichetta con ogni bordo e con ogni vertice. Inoltre, i documenti JSON sono una scelta naturale per archiviare questo tipo di dati sui vertici e sui bordi.
ArangoDB ─ Caratteristiche
Ci sono varie caratteristiche degne di nota di ArangoDB. Evidenzieremo le caratteristiche principali di seguito:
- Paradigma multi-modello
- Proprietà ACID
- API HTTP
ArangoDB supporta tutti i modelli di database più diffusi. Di seguito sono riportati alcuni modelli supportati da ArangoDB:
- Modello di documento
- Modello chiave / valore
- Modello grafico
Un singolo linguaggio di query è sufficiente per recuperare i dati dal database
Le quattro proprietà Atomicity, Consistency, Isolation, e Durability(ACID) descrive le garanzie delle transazioni del database. ArangoDB supporta transazioni conformi ad ACID.
ArangoDB consente ai client, come i browser, di interagire con il database con l'API HTTP, essendo l'API orientata alle risorse ed estendibile con JavaScript.