SQL Server offre da sempre gli strumenti per gestire i dati gerarchici e le relazioni tra le entità. A volte, però, le relazioni tra le entità possono diventare complesse. Pensiamo ad una relazione molti-a-molti, i database relazionali non dispongono di soluzioni native per questo tipo di legame, che viene comunemente implementato con una tabella di associazione.
SQL Server 2017, grazie all’introduzione di Graph Database, permette di esprimere certi tipi di query più facilmente rispetto ad un database relazionale puro.
Alcuni giorni fa, Perry Skountrianos (@pskountrianos) ha confermato il “pull request” che ho fatto sul repository Microsoft/sql-server-samples di GitHub. Questo repository contiene esempi di codice che spiegano come utilizzare alcune funzionalità di SQL Server, SQL Azure e Azure Data Warehouse. Ogni esempio include il relativo file README.md che spiega come eseguire ed utilizzare il codice.
Nella directory relativa a SQL Graph (sql-server-samples/samples/demos/sql-graph/recommendation-system) troverete tre demo.
La prima spiega come creare e popolare i nuovi oggetti “Graph” ovvero due nuovi tipi di tabelle “Node” e “Edge”. La seconda demo ha l’obiettivo di introdurre la nuova clausola MATCH (T-SQL) usata per eseguire query su Graph DB attraversando i nodi e le relazioni creati nella prima demo. Nell’ultima demo verrà mostrato come costruire un sistema di raccomandazione per le offerte di vendita (basato sul database WideWorldImporters), in grado di determinare i prodotti consigliati sulla base del prodotto che il cliente sta acquistando oppure ha appena acquistato sul nostro ipotetico e-commerce, uno scenario tipico di utilizzo di SQL Graph.
Hai sentito parlare di SQL Graph e vuoi saperne di più? Questi esempi, disponibili su GitHub, sono un ottimo punto di partenza!
Buon divertimento!