Graph database (database a grafo)
I big data sono da tempo il simbolo della progressiva digitalizzazione della nostra società. Ma la notevole disponibilità di grandi quantità di dati comporta anche considerevoli problematiche: set di dati in rapida crescita, dinamici e debolmente strutturati richiedono anche soluzioni IT ad alte prestazioni, per poter essere effettivamente analizzati e utilizzati.
Un modello di database in grado di gestire informazioni altamente interconnesse è il graph database o database a grafo. Quest’ultimo fornisce la risposta ai problemi del classico database relazionale, il quale raggiunge rapidamente i suoi limiti nel caso di banche dati molto grandi e complesse, e si colloca così fra i database alternativi moderni, lontani dal tradizionale approccio relazionale e designati con il termine di NoSQL (“Not only SQL”). Ma come funziona esattamente un database a grafo e quali vantaggi offre la sua struttura?
Un modello di database in grado di gestire informazioni altamente interconnesse è il graph database o database a grafo. Quest’ultimo fornisce la risposta ai problemi del classico database relazionale, il quale raggiunge rapidamente i suoi limiti nel caso di banche dati molto grandi e complesse, e si colloca così fra i database alternativi moderni, lontani dal tradizionale approccio relazionale e designati con il termine di NoSQL (“Not only SQL”). Ma come funziona esattamente un database a grafo e quali vantaggi offre la sua struttura?
Cos’è un database a grafo?
Un database a grafo (in inglese graph database), come già il nome stesso rivela, è mappato su grafici. Con essi, le complesse informazioni di rete e le relative relazioni sono visualizzate chiaramente e memorizzate come un insieme di dati ampio e coerente. I grafici sono composti da nodi, entità, oggetti di dati identificati e identificabili in modo univoco, e dai bordi, denominati anche edges. Questi ultimi rappresentano le relazioni di questi oggetti tra loro. Entrambi i componenti sono rappresentati visivamente come punti e linee. I bordi presentano rispettivamente un punto di partenza e uno di arrivo, mentre ogni nodo mostra sempre un certo numero di relazioni, in entrata, in uscita o non orientate, con altri nodi.
Modelli correnti per la creazione di questi database a grafo sono il labeled-property graph e il Resource Description Framework (RDF): con il primo vengono attribuite determinate proprietà (in inglese properties) ai nodi e ai bordi. Nel Resource Description Framework (RDF) invece la modellazione del grafico è regolamentata da triple e quadruple: le triple sono costituite da tre elementi secondo lo schema nodo-bordo-nodo. Le quadruple completano le triple con ulteriori informazioni contestuali, rendendo facile raggruppare queste ultime in gruppi.
Come funzionano le query in un database a grafo?
Nell’applicazione di un database grafico vengono utilizzate query completamente diverse. Ciò è dovuto soprattutto al fatto che non esiste un linguaggio uniforme di interrogazione. A differenza dei modelli tradizionali, i database grafici si basano inoltre su speciali algoritmi per svolgere la loro funzione essenziale: semplificare e snellire complesse query di dati.
Tra i più importanti algoritmi figurano la ricerca in profondità e la ricerca in ampiezza: nella ricerca in profondità si ispeziona di volta in volta il nodo del livello inferiore, mentre la ricerca in ampiezza procede livello per livello. Gli algoritmi consentono di trovare modelli (graph patterns) e nodi limitrofi diretti e indiretti. Altri algoritmi permettono di calcolare il percorso più breve tra due nodi e di identificare cricche (sottoinsieme di nodi) e hotspot (informazioni altamente interconnesse). Uno dei punti di forza del database a grafo consiste nel fatto che le relazioni sono memorizzate nel database stesso e non devono pertanto essere calcolate prima con la query. Ne risulta una velocità di elevata performance anche in query complesse.
Tra i più importanti algoritmi figurano la ricerca in profondità e la ricerca in ampiezza: nella ricerca in profondità si ispeziona di volta in volta il nodo del livello inferiore, mentre la ricerca in ampiezza procede livello per livello. Gli algoritmi consentono di trovare modelli (graph patterns) e nodi limitrofi diretti e indiretti. Altri algoritmi permettono di calcolare il percorso più breve tra due nodi e di identificare cricche (sottoinsieme di nodi) e hotspot (informazioni altamente interconnesse). Uno dei punti di forza del database a grafo consiste nel fatto che le relazioni sono memorizzate nel database stesso e non devono pertanto essere calcolate prima con la query. Ne risulta una velocità di elevata performance anche in query complesse.
Differenziazione nei confronti di database relazionali e altri database NoSQL
I database relazionali si sono affermati come standard per i database sin dalla loro origine nel 1970. A differenza dei database grafici, essi lavorano sulla base di tabelle che gestiscono in singole righe le relazioni di set di dati nominati tuple. Nelle colonne invece è possibile raffigurare proprietà con diversi valori di attributo. Oltre alla struttura e all’architettura anche il loro funzionamento differisce sostanzialmente dalla rappresentazione tramite grafico. Per essere in grado di visualizzare e salvare le relazioni nel caso di informazioni altamente collegate in rete, diverse tabelle devono essere interconnesse in modo complesso e contabilizzate. Questo può spesso richiedere molto tempo e denaro per grandi quantità di dati.
Mentre i database che si basano su tabelle utilizzano esclusivamente il linguaggio di interrogazione SQL (“Structured Query Language“), i database NoSQL più moderni si stanno allontanando sempre di più da questo linguaggio di interrogazione e dal concetto relazionale associato, approccio seguito anche dai database grafici come membri del gruppo NoSQL. Oltre ai database a grafo, in questo gruppo figurano però molti altri modelli come ad esempio i database chiave-valore i database orientati a colonne e i database orientati ai documenti che elaborano e memorizzano soprattutto set di dati più strutturati e meno collegati in rete.
Mentre i database che si basano su tabelle utilizzano esclusivamente il linguaggio di interrogazione SQL (“Structured Query Language“), i database NoSQL più moderni si stanno allontanando sempre di più da questo linguaggio di interrogazione e dal concetto relazionale associato, approccio seguito anche dai database grafici come membri del gruppo NoSQL. Oltre ai database a grafo, in questo gruppo figurano però molti altri modelli come ad esempio i database chiave-valore i database orientati a colonne e i database orientati ai documenti che elaborano e memorizzano soprattutto set di dati più strutturati e meno collegati in rete.
A cosa servono i database a grafo?
I database a grafo possono essere applicati a diversi settori e scopi. Essi consentono di analizzare informazioni collegate in rete e di comprendere, valutare e sfruttare processi e connessioni.
Un esempio significativo dell’impiego di database a grafo è l’analisi delle relazioni degli utenti nei social network o del comportamento d’acquisto degli utenti negli shop online. Sulla base di dati e relazioni diversi, possono quindi essere fornite in un secondo momento raccomandazioni abbastanza mirate su prodotti o amicizie ed essere create reti di prodotti o persone. Le aziende traggono vantaggio dalla possibilità di creare profili clienti completi sulla base di informazioni provenienti da query di ricerca, cronologia dei clic e altri fattori. Nella gestione della catena di distribuzione vengono utilizzati i database grafici al fine di seguire lo sviluppo di tutti i processi dal design alla vendita. Infine i database sono impiegati per le analisi del rischio, l’accertamento delle frodi e la ricerca degli errori.
Un esempio significativo dell’impiego di database a grafo è l’analisi delle relazioni degli utenti nei social network o del comportamento d’acquisto degli utenti negli shop online. Sulla base di dati e relazioni diversi, possono quindi essere fornite in un secondo momento raccomandazioni abbastanza mirate su prodotti o amicizie ed essere create reti di prodotti o persone. Le aziende traggono vantaggio dalla possibilità di creare profili clienti completi sulla base di informazioni provenienti da query di ricerca, cronologia dei clic e altri fattori. Nella gestione della catena di distribuzione vengono utilizzati i database grafici al fine di seguire lo sviluppo di tutti i processi dal design alla vendita. Infine i database sono impiegati per le analisi del rischio, l’accertamento delle frodi e la ricerca degli errori.
Vantaggi e svantaggi del database a grafo
La potenza di un database può essere misurata principalmente sulla base di quattro fattori: integrità, performance, efficienza e scalabilità. La query di dati dovrebbe essere più veloce e più semplice: così può essere sintetizzato approssimativamente lo scopo principale dei database grafici. Laddove, ad esempio, i database relazionali raggiungono i loro limiti di prestazioni, il modello basato sui grafici funziona in modo molto agile. Infatti complessità e quantità dei dati non influiscono negativamente sul processo di query in questo modello.
Inoltre con il modello del database a grafo è possibile memorizzare fatti reali in modo naturale. La struttura utilizzata è molto simile al pensiero umano e pertanto rende i collegamenti particolarmente vividi. Tuttavia, anche i database grafici non sono soluzioni olistiche. Raggiungono per esempio i loro limiti col tema scalabilità. Essendo progettati soprattutto per un’architettura a server singolo la crescita rappresenta una sfida (matematica). Inoltre non esiste ancora un linguaggio di query uniforme.
Vantaggi e svantaggi dei database grafici in sintesi:
Inoltre con il modello del database a grafo è possibile memorizzare fatti reali in modo naturale. La struttura utilizzata è molto simile al pensiero umano e pertanto rende i collegamenti particolarmente vividi. Tuttavia, anche i database grafici non sono soluzioni olistiche. Raggiungono per esempio i loro limiti col tema scalabilità. Essendo progettati soprattutto per un’architettura a server singolo la crescita rappresenta una sfida (matematica). Inoltre non esiste ancora un linguaggio di query uniforme.
Vantaggi e svantaggi dei database grafici in sintesi:
Vantaggi | Svantaggi |
---|---|
La velocità della query dipende solo dal numero di relazioni concrete e non dalla quantità di dati | Scarsa scalabilità, in quanto progettati per un’architettura a server singolo |
Risultati in tempo reale | Linguaggio di query non uniforme |
Presentazione chiara e comprensibile delle relazioni | |
Strutture flessibili e agili |
Fondamentalmente i database grafici non dovrebbero essere considerati un sostituto assoluto e migliore dei database tradizionali. Quindi le strutture relazionali continuano a essere utili modelli standard, che garantiscono un’elevata integrità e stabilità dei dati e consentono una scalabilità flessibile.
Panoramica dei database grafici più popolari
- Neo4j: Neo4j è il database grafico più popolare ed è progettato come modello open source.
- Amazon Neptun: questo database grafico è disponibile attraverso il cloud pubblico di Amazon Web Services ed è stato pubblicato nel 2018 come database ad alte prestazioni.
- SAP Hana Graph: con SAP Hana lo sviluppatore SAP ha creato una piattaforma, che si basa su un sistema di gestione di database relazionali ed è completata dal modello SAP Hana Graph integrato e orientato ai grafici.
- OrientDB: questo database grafico è considerato uno dei modelli più veloci attualmente disponibili.