El aumento de las necesidades de análisis basado en relaciones hace que el uso de grafos esté aumentando. La existencia de bases de datos orientadas a grafos no es nueva ya que en los años 90 existían alternativas maduras pero que han tenido un uso relativamente marginal hasta ahora. Estas bases de datos se caracterizan por su flexibilidad de esquema en lo que a las relaciones entre entidades se refiere. El concepto de triples compuestos por un sujeto, un predicado o verbo y un objeto es la base de almacenamiento de estas bases de datos. El lenguaje de consulta para este tipo de bases de datos también es propio (SPARQL) y tiene ciertas similitudes con el SQL. Podéis obtener más información https://www.w3.org/RDF/ y en https://www.w3.org/TR/sparql11-query/.

En SQL Server 2017 aparece como novedad el soporte nativo para objetos de tipo nodo y aristas que nos permitirán modelar grafos dentro de nuestra base de datos de forma integrada con el resto de objetos tradicionales. Desde el punto de vista de sintaxis se añade la cláusula MATCH (traída del lenguaje Cypher) para facilitar la expresión de las relaciones de forma más natural. Al tratarse de una primera versión nos encontramos con bastantes limitaciones como por ejemplo la necesidad de convertir los updates en inserts+deletes si queremos modificar una arista que relaciona dos nodos. También tendremos limitaciones a la hora de referenciar tablas derivadas en la cláusula MATCH, lo cual nos condicionará, por ejemplo, en el uso de CTEs recursivas.

Desgraciadamente si comparamos funcionalmente la implementación de grafos en SQL Server 2017 con la de Neo4j, por ejemplo, veremos que a nivel de algoritmia estamos a años luz, teniendo que implementar de forma manual aquellos algoritmos típicos de grafos, como son el cálculo del camino más corto entre nodos, la cláusula transitiva, etc.

Finalmente bajaremos a bajo nivel para entender las «tripas» de los grafos, su estructura interna, cómo se enlazan los nodos con las aristas, etc. Esto es importante para entender desde el punto de vista de rendimiento si sería competitivo respecto a una alternativa tradicional basada en relaciones entre tablas.

A continuación, puedes ver la presentación de la charla ‘Demos la bienvenida a los grafos en SQL Server 2017’ del SolidQ Summit 2018:

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like

Entornos tradicionales de BI desplegados en arquitecturas cloud

Entornos tradicionales de BI desplegados en arquitecturas cloud. El procedimiento con el cual podremos realizar la puesta a punto de una arquitectura híbrida, comentando los requisitos y diferentes configuraciones necesarias para su creación y funcionamiento. Para esta arquitectura, debemos también comentar como antecedentes la arquitectura clásica de un dwh y la arquitectura Dwh moderna.
SQL Server en Kubernetes (Parte 2)
Leer más

Matar al mensajero – SQL Server en Kubernetes (Parte 2)

En la primera parte de este artículo explicamos en qué consiste un SQL Server en contenedores y mostramos una forma sencilla de crear un entorno Kubernetes manejado. En esta segunda parte vamos a enfocarnos en los escenarios más críticos donde el uso de contenedores puede añadirnos latencias y esperas extras que acaben impactando en el rendimiento percibido por nuestros usuarios tras una migración de SQL Server a contenedores.
Leer más

Seguimiento de métricas en tiempo real con PowerBI y PowerShell

En este artículo vamos a ver como enviar un stream de datos a PowerBi mediante un pequeño script de powershell para hacer un seguimiento en tiempo real de unos sensores (por ejemplo), también podríamos usar el script para enviar cualquier tipo de información de monitorización, como datos de un log, estadísticas de uso de una base de datos o cualquier otra métrica que queramos monitorizar en tiempo real.