I database tradizionali sono database relazionali, che archiviano i dati in righe e colonne e sottolineano la capacità di denormalizzare i dati e collegarli con chiavi primarie ed esterne. Questo è adatto per casi d'uso tradizionali come un database di clienti e ordini per archiviare e tenere traccia dei clienti, dell'inventario, dei prodotti e degli articoli che il cliente ha acquistato.
I database grafici risolvono un problema diverso, enfatizzano le relazioni tra i dati in grandi reti connesse e consentono l'archiviazione, la modellazione e l'interrogazione di questi nuovi set di dati e casi d'uso. Descriveremo il contesto e alcuni casi d'uso di esempio in cui un database a grafi è più adatto di un database relazionale.
Che cos'è un database grafico
I database grafici forniscono un approccio basato sulla relazione per l'archiviazione e l'interrogazione dei dati. Memorizzano i dati in un modo logico che rappresenta la rete del mondo reale e dà priorità alle rappresentazioni, alla rilevabilità e alla manutenibilità delle relazioni tra i dati.
I database a grafo utilizzano strutture a grafo per query semantiche con nodi, chiamati vertici, archi e proprietà per rappresentare e memorizzare i dati.
- Vertice - rappresenta un oggetto del mondo reale come un film o una persona.
- Bordo - rappresenta una relazione tra due vertici.
- Proprietà - simile ai campi di un tablet ma più flessibile. Può essere applicato a un bordo o a un vertice.
I database grafici possono essere interrogati utilizzando linguaggi orientati ai grafici come sparkql, che sono adatti per esprimere problemi in domini grafici di grandi dimensioni.
Database grafici più popolari
Esistono dozzine di database grafici open source e commerciali, ma il database grafico più popolare attualmente disponibile è decisamente Neo4j, che è un database grafico open source descritto dai suoi sviluppatori come un database transazionale compatibile con ACID con archiviazione ed elaborazione di grafi nativi.
Altri database grafici popolari includono OrientDB (un sistema di gestione di database NoSQL open source scritto in Java), ArangoDB (un sistema di database multi-modello nativo sviluppato da triAGENS GmbH), MarkLogic (un database multi-modello progettato per velocità e scalabilità NoSQL) e AllegroGraph (un triplestore closed source progettato per memorizzare triple RDF), solo per citarne alcuni.
Casi d'uso del database grafico
I database grafici sono applicabili ovunque in cui le relazioni tra i dati sono preziose in tempo reale:
- Social networks - Forse il caso d'uso più tipico per un database a grafo sono i social network, con le loro complesse relazioni e attività dell'utente.
- Intercettazione di una frode - Per scoprire le frodi in tempo reale, è essenziale un'analisi rapida delle relazioni tra i dati e i database a grafo forniscono le prestazioni necessarie.
- Grafici della conoscenza - Utilizzati sia dai motori di ricerca che dalle aziende, i grafici della conoscenza raccolgono informazioni da un'ampia varietà di fonti, consentendo una migliore gestione delle risorse digitali e un più facile recupero delle informazioni.
- Analisi della rete informatica - La gestione delle reti e delle infrastrutture IT ruota attorno a complesse interdipendenze e i database a grafo sono intrinsecamente più adatti a questo caso d'uso rispetto ai database relazionali.
- Raccomandazioni - Le aziende possono utilizzare database grafici per alimentare sofisticati motori di raccomandazione per personalizzare prodotti, contenuti e servizi.
- Gestione dell'identità - I database grafici consentono un monitoraggio efficiente delle attività degli utenti e autorizzazioni rapide e gestione delle risorse.
Conclusione
I database grafici risolvono le sfide dei dati odierne concentrandosi non solo sui dati, ma anche sulle connessioni tra le singole voci del database. Hanno numerosi casi d'uso e sono disponibili sia come prodotti software guidati dalla comunità sia come software commerciale con supporto di livello aziendale.