Compartir a través de


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

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores de Azure SQL Database Azure SQL Instancia administrada SQL Database en Microsoft Fabric

SQL Server ofrece funcionalidades de base de datos de grafos para modelar relaciones de varios a varios. Las relaciones del grafo se integran en Transact-SQL y reciben las ventajas de usar SQL Server como sistema de administración de bases de datos fundamentales.

¿Qué es una base de datos de grafos?

Una base de datos de grafos es una colección de nodos (o vértices) y aristas (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 a ellos. 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 cualquier cosa que una base de datos de grafos pueda. Sin embargo, una base de datos de grafos facilita la 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 datos 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 complejas de varios a varios; a medida que evoluciona la aplicación, se agregan nuevas relaciones.
  • Necesita analizar las relaciones y los datos interconectados.

Características del grafo introducidas en SQL Server 2017 (14.x)

Las siguientes características se introdujeron en SQL Server 2017.

Creación de objetos de grafo

Las extensiones de Transact-SQL permiten a los usuarios crear tablas perimetrales o nodos. Tanto los nodos como los bordes pueden tener propiedades asociadas a ellos. Dado que, los nodos y los bordes se almacenan como tablas, todas las operaciones que se admiten en las tablas relacionales se admiten en la tabla perimetral o en el nodo. 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;

En el diagrama siguiente se muestra cómo se almacenan los nodos y los bordes como tablas.

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

Extensiones de lenguaje de consulta

Se introduce una nueva MATCH cláusula para admitir la coincidencia de patrones y la navegación de varios saltos a través del grafo. La MATCH función usa la sintaxis de estilo ASCII-art para la coincidencia de patrones. Por ejemplo, para buscar amigos de "John":

-- 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 SQL Server Motor de base de datos

Las extensiones de Grafo están totalmente integradas en el motor de SQL Server. Use el mismo motor de almacenamiento, metadatos, procesador de consultas, etc. para almacenar y consultar datos de grafos. Consulta entre gráficos y datos relacionales en una sola consulta. La combinación de funcionalidades de grafos con otras tecnologías de SQL Server, como índices de almacén de columnas, alta disponibilidad, servicios de R, etc. SQL grafo también admite todas las características de seguridad y cumplimiento disponibles con SQL Server.

Herramientas y ecosistema

Beneficiarse de las herramientas y el ecosistema existentes que ofrece SQL Server. Herramientas como copias de seguridad y restauración, importación y exportación, BCP acaba de funcionar de forma predeterminada. Otras herramientas o servicios como SSIS, SSRS o Power BI funcionan con tablas de grafos, solo la manera en que funcionan con tablas relacionales.

Restricciones perimetrales

Una restricción perimetral se define en una tabla perimetral de grafos y es un par de tablas de nodos que un tipo perimetral determinado puede conectarse. Las restricciones perimetrales ayudan a los desarrolladores a restringir el tipo de nodos que un perímetro determinado puede conectar.

Para 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. El uso de predicados MATCH en una instrucción MERGE ahora se admite en Azure SQL Database y SQL Server vNext. Es decir, ahora es posible combinar los datos actuales del grafo (nodo o tablas perimetrales) con nuevos datos mediante los predicados MATCH para especificar relaciones de grafo en una sola instrucción, en lugar de instrucciones INSERT/UPDATE/DELETE independientes.

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

Ruta de acceso más corta

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

Base de datos SQL en Fabric

En Fabric SQL Database, se permite SQL Graph, pero las tablas Node y Edge no se reflejarán en Fabric OneLake.