Gráfico de procesamiento con SQL Server y Azure SQL Database

Se aplica a: síSQL Server 2017 (14.x) y versiones posteriores SíAzure SQL Database SíInstancia administrada de Azure SQL

SQL Server ofrece capacidades de base de datos de gráficos para modelar relaciones varios a varios. Las relaciones de gráficos se integran en Transact-SQL y reciben las ventajas de usar SQL Server como sistema de administración de bases de datos base.

¿Qué es una base de datos de grafos?

Una base de datos de gráficos es una colección de nodos (o vértices) y bordes (o relaciones). Un nodo representa una entidad (por ejemplo, una persona o una organización) y un borde representa una relación entre los dos nodos que conecta (por ejemplo, "Me gusta" o amigos). Tanto los nodos como los bordes pueden tener propiedades asociadas. Estas son algunas características que hacen que una base de datos de grafos sea única:

  • Los bordes o las relaciones son entidades de primera clase en una base de datos de grafos y pueden tener atributos o propiedades asociados a ellas.
  • Un solo borde puede conectar flexiblemente varios nodos en una base de datos de grafos.
  • Puede expresar fácilmente coincidencias de patrones y consultas de navegación en saltos múltiples.
  • Puede expresar fácilmente consultas polimórficas y cierres transitivos.

Cuándo usar una base de datos de grafos

Una base de datos relacional puede lograr todo lo que puede hacer una base de datos de gráficos. Sin embargo, una base de datos de gráficos facilita la rápida expresión de determinados tipos de consultas. Además, con optimizaciones específicas, algunas consultas pueden funcionar mejor. La decisión de elegir una base de datos relacional o de grafos se basa en los siguientes factores:

  • La aplicación tiene datos jerárquicos. El tipo de texto HierarchyID se puede usar para implementar jerarquías, pero tiene algunas limitaciones. Por ejemplo, no permite almacenar varios elementos primarios para un nodo.
  • La aplicación tiene relaciones de varios a varios complejas; a medida que la aplicación evoluciona, se agregan nuevas relaciones.
  • Necesita analizar las relaciones y los datos interconectados.

Características de gráficos introducidas en SQL Server 2017 (14.x)

Vamos a empezar a agregar extensiones de grafos a SQL Server para facilitar el almacenamiento y la consulta de datos de gráfico. Las siguientes características se incluyen en la primera versión.

Crear objetos de gráfico

Transact-SQL las extensiones permitirán a los usuarios crear tablas de nodos o perimetrales. Tanto los nodos como los bordes pueden tener propiedades asociadas. Dado que los nodos y los bordes se almacenan como tablas, todas las operaciones que se admiten en las tablas relacionales se admiten en el nodo o la tabla perimetral. Este es un ejemplo:

CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name VARCHAR(100), Age INT) AS NODE;
CREATE TABLE friends (StartDate date) AS EDGE;

Diagrama que muestra los nodos y los bordes se almacenan como tablas.
Los nodos y los bordes se almacenan como tablas

Extensiones de lenguaje de consulta

MATCHLa nueva cláusula se incluye para admitir la búsqueda de coincidencias de patrones y la navegación de varios saltos a través del gráfico. La MATCH función utiliza la sintaxis de estilo ASCII-Art para la coincidencia de patrones. Por ejemplo:

-- Find friends of John
SELECT Person2.Name 
FROM Person Person1, Friends, Person Person2
WHERE MATCH(Person1-(Friends)->Person2)
AND Person1.Name = 'John';

Totalmente integrado en el SQL Server motor

Las extensiones de grafos están totalmente integradas en el SQL Server motor. Use el mismo motor de almacenamiento, metadatos, procesador de consultas, etc. para almacenar y consultar los datos del gráfico. Realizar consultas en los datos de gráfico y relacionales en una sola consulta. Combinación de funcionalidades de gráficos con otras SQL Server tecnologías, como almacén de columnas, ha, R Services, etc. La base de datos de SQL Graph también es compatible con todas las características de seguridad y cumplimiento disponibles con SQL Server .

Herramientas y ecosistema

Benefíciese de las herramientas y el ecosistema existentes que SQL Server ofrece. Herramientas como la copia de seguridad y la restauración, la importación y la exportación, BCP funciona fuera de la caja. Otras herramientas o servicios como SSIS, SSRS o Power BI funcionarán con las tablas de gráficos, de la misma forma en que trabajan con tablas relacionales.

Restricciones perimetrales

Se define una restricción perimetral en una tabla irregular del gráfico y es un par de tablas de nodos a las que puede conectarse un tipo de borde determinado. Esto proporciona a los usuarios un mejor control sobre el esquema del grafo. Con la ayuda de las restricciones perimetrales, los usuarios pueden restringir el tipo de nodos a los que se puede conectar un borde determinado.

Para obtener más información sobre cómo crear y usar restricciones perimetrales, consulte restricciones perimetrales .

Combinar DML

La instrucción Merge realiza operaciones de inserción, actualización o eliminación en una tabla de destino en función de los resultados de una combinación con una tabla de origen. Por ejemplo, puede sincronizar dos tablas insertando, actualizando o eliminando filas en una tabla de destino en función de las diferencias entre la tabla de destino y la tabla de origen. Ahora se admite el uso de predicados MATCH en una instrucción MERGE en Azure SQL Database y SQL Server vNext. Es decir, ahora es posible fusionar mediante combinación los datos actuales del grafo (tablas de nodo o perimetrales) con nuevos datos mediante los predicados de coincidencia para especificar las relaciones de los gráficos en una sola instrucción, en lugar de las instrucciones INSERT/UPDATE/DELETE independientes.

Para obtener más información sobre cómo se puede usar la coincidencia en Merge DML, consulte instrucción Merge .

Ruta más corta

La función SHORTEST_PATH encuentra la ruta más corta entre los dos nodos de un gráfico o el inicio de un nodo determinado a todos los demás nodos del gráfico. La ruta de acceso más corta también se puede usar para buscar un cierre transitivo o para recorridos de longitud arbitrarios en el gráfico.

Pasos siguientes

Leer la arquitectura de base de datos de SQL Graph