Compartir vía


Comparación de bases de datos relacionales y de grafos

Nota:

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un contrato de nivel de servicio y no es aconsejable usarla para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para obtener más información, vea Supplemental Terms of Use for Microsoft Azure Previews.

En este artículo se comparan las bases de datos de grafos y las bases de datos relacionales. Resalta las diferencias clave, los casos de uso y las ventajas en el análisis. Use esta información para decidir si usar Fabric Graph o una base de datos relacional para sus necesidades específicas.

Una base de datos de grafos almacena y consulta datos como una red de nodos (entidades) y bordes (relaciones). Este enfoque hace que sea fundamentalmente diferente del formato de tablas y filas de las bases de datos relacionales. Las bases de datos de grafos funcionan bien para modelar y analizar datos altamente conectados, como redes sociales, gráficos de conocimiento, sistemas de recomendaciones y detección de fraudes.

Diferencias principales

  • Bases de datos de grafos: Organice los datos como nodos y bordes, almacenando las relaciones explícitamente. Recorrer conexiones es eficiente y, a menudo, independiente del tamaño total del conjunto de datos.
  • Bases de datos relacionales: Organice los datos en tablas con filas y columnas. Use operaciones JOIN para deducir relaciones en el momento de la consulta. Para los datos altamente conectados, estas operaciones pueden ser complejas y lentas.

Consultas de relaciones: combinaciones frente a recorridos

Consultas de base de datos relacionales: Las claves externas vinculan datos en tablas diferentes. Para recuperar datos relacionados, las bases de datos relacionales usan operaciones JOIN para combinar filas de varias tablas. Este método funciona bien para relaciones simples, pero puede resultar costoso y complejo para conexiones profundas o de longitud variable.

Consultas de base de datos de grafos: Almacene las relaciones como bordes, por lo que puede atravesar directamente de un nodo a otro. Las consultas de grafos pueden atravesar eficazmente varios saltos y patrones complejos. Los lenguajes de consulta de grafos como GQL facilitan la expresión de recorridos y coincidencias de patrones.

Example:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (equivalente):

SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';

Nota:

GQL es un lenguaje de consulta estándar ISO para bases de datos de grafos. Está diseñado para una consulta y manipulación eficientes de datos estructurados por grafos. El mismo grupo de trabajo internacional que supervisa SQL lo está desarrollando.

Implicaciones de rendimiento

Las bases de datos de grafos pueden superar los sistemas relacionales para las consultas que implican muchos bordes o profundidades desconocidas, especialmente para análisis de vínculos profundos o consultas recursivas. Las bases de datos relacionales se destacan en las operaciones y agregaciones orientadas a conjuntos debido a décadas de optimización.

Consideraciones sobre escalado

  • Bases de datos relacionales: Normalmente, se escala verticalmente (máquinas más grandes) y se puede escalar horizontalmente mediante particionamiento y replicación. El particionamiento de esquemas altamente conectados es complejo y puede provocar sobrecarga entre redes.
  • Bases de datos de grafos: Escale vertical y horizontalmente. Las bases de datos de grafos distribuidas particionan gráficos entre máquinas, con el objetivo de mantener los nodos relacionados juntos para realizar recorridos eficaces.

Cuándo usar cada característica

Use una base de datos de grafos si:

  • Los datos están altamente conectados y con muchas interrelaciones (redes sociales, grafos de conocimiento, recomendaciones).
  • Debe atravesar un número desconocido o variable de saltos.
  • El esquema está evolucionando o semiestructurado.
  • Desea un modelado intuitivo para dominios en los que las relaciones son centrales.

Use una base de datos relacional si:

  • Los datos son principalmente tabulares o se ajustan a una estructura bien definida.
  • Las consultas implican agregaciones intensivas o operaciones de conjuntos grandes.
  • Tiene herramientas o conocimientos existentes alineados con SQL.

Enfoques híbridos

Muchos proyectos usan ambos tipos de bases de datos: una base de datos relacional para los datos transaccionales principales y una base de datos de grafos para análisis especializados o características de análisis de red.