Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.
En este artículo, comparamos las bases de datos de grafos y las bases de datos relacionales, resaltando las diferencias clave, los casos de uso y las ventajas en el análisis. Puede evaluar si se debe usar Graph para Microsoft Fabric o una base de datos relacional en función de sus necesidades específicas.
Una base de datos de grafos almacena y consulta datos como una red de nodos (entidades) y bordes (relaciones), lo que lo convierte fundamentalmente en diferente del formato de tablas y filas de las bases de datos relacionales. Las bases de datos de grafos se destacan en el modelado y el análisis de 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. Las relaciones se deducen en tiempo de consulta mediante operaciones JOIN, que pueden ser complejas y lentas para datos altamente conectados.
Consultas de relaciones: combinaciones frente a recorridos
Consultas de base de datos relacionales: Los datos de diferentes tablas se vinculan a través de claves externas. Para recuperar datos relacionados, las bases de datos relacionales usan operaciones JOIN para combinar filas de varias tablas. Esto 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: Las relaciones se almacenan como bordes, lo que permite el recorrido directo 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 estandarizado por ISO para las bases de datos de grafos, diseñadas para realizar consultas y manipular de forma eficaz los 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 el escalado
- Bases de datos relacionales: Normalmente, se escala verticalmente (máquinas más grandes) y se puede escalar horizontalmente a través de particionamiento y replicación. El particionamiento de esquemas altamente conectados es complejo y puede incurrir en 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 uno
Use una base de datos de Graph 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: 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.