Cos'è un database a grafo?
Definizione di database a grafo
I database a grafo sono progettati appositamente per l’archiviazione e la navigazione di relazioni. Le relazioni rivestono un ruolo chiave nei database a grafo e buona parte del valore di questi database deriva proprio dalla loro presenza. I database a grafo usano i nodi per archiviare le entità di dati e gli archi per archiviare le relazioni tra le entità. Un arco è definito da un nodo iniziale e da uno finale, dalla tipologia e dalla direzione e può descrivere una relazione genitore/figlio, azioni, la proprietà e il gradimento. Le relazioni che un nodo può avere sono illimitate.
Un grafo in un database a grafo può essere attraversato su tipi di archi specifici o sull'intero grafo. In un database a grafo, attraversare i collegamenti o le relazioni è veloce perché le relazioni tra i nodi non vengono elaborate al momento della query, ma sono già presenti nel database. I database a grafo presentano vantaggi rispetto ai database relazionali per i casi d'uso come social network, motori di raccomandazione e rilevamento di frodi, dove è necessario creare relazioni tra dati ed eseguire rapidamente query su di esse.
Il grafo che segue mostra un esempio di un grafo di un social network. Osservando le persone (nodi) e le loro relazioni (archi), è possibile scoprire chi sono “gli amici degli amici” di una specifica persona. Per esempio, gli amici degli amici di Howard.

Casi d'uso
Rilevamento di attività fraudolente
I database a grafo dispongono di sistemi sofisticati per prevenire le frodi. Grazie ai database a grafo, si possono utilizzare le relazioni per elaborare transazioni finanziarie e di acquisto praticamente in tempo reale. Eseguendo query rapide sul grafo, è possibile rilevare che, per esempio, un potenziale acquirente sta usando lo stesso indirizzo e-mail e la stessa carta di credito di un noto caso di frode. I database a grafo sono anche utili per il rilevamento di modelli di relazione, come la presenza di più persone associate a un unico indirizzo e-mail o più persone che condividono lo stesso indirizzo IP ma i cui indirizzi fisici sono diversi.
Motori di raccomandazione
I database a grafo rappresentano un’ottima scelta per i motori di raccomandazione. Grazie ai database a grafo, è possibile archiviare le relazioni tra le categorie di informazioni come gli interessi dei clienti, degli amici e la cronologia degli acquisti. Utilizzare database a grafo ad alta disponibilità permette di consigliare prodotti a un utente basandosi su quali prodotti sono stati acquistati da altri clienti che seguono lo stesso sport e che hanno una cronologia degli acquisti simile. Oppure si possono identificare le persone che hanno un amico in comune ma non si conoscono ancora e consigliare di stringere amicizia.
Database a grafo su AWS
Amazon Neptune
Amazon Neptune è un motore di database a grafo dedicato ad alte prestazioni, ottimizzato per archiviare miliardi di relazioni ed eseguire query al grafo con una latenza di millisecondi. Neptune supporta i diffusi modelli di grafi Property Graph e Resource Description Framework (RDF) di W3C, con i relativi linguaggi di query Apache TinkerPop Gremlin e SPARQL, permettendo di creare in modo semplice query efficaci su insiemi di dati altamente connessi.
Neptune è ad alta disponibilità, con repliche di lettura, ripristino point-in-time, backup continuo su Amazon S3 e replica nelle zone di disponibilità. Neptune è un sistema sicuro che supporta la crittografia dei dati inattivi. Neptune è una soluzione completamente gestita, pertanto non sarà necessario preoccuparsi di attività di gestione del database come provisioning dell'hardware, applicazioni di patch del software, impostazioni, configurazioni o backup.