Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Sistemas e
Informática
Bases de Datos
Bases de Orientadas a
Grafos
Datos 2
Jathinson Meneses M.
Jathinson@gmail.com
Henry Andres Jimenez H.
han315730@gmail.com
• Bases de datos Orientadas a Grafos.
Contenido • Bases de datos Clave-Valor
• ArangoDB
• TigerGraph
2
Bases de datos Orientadas a Grafos
3
Tipos de bases de datos orientadas a grafos
Hay dos modelos comunes de bases de datos orientadas a grafos:
4
Grafos de Propiedades
Los grafos de propiedades se utilizan para modelar las relaciones entre los datos y
permiten hacer análisis y consultas sobre los datos en función de estas relaciones.
Un grafo de propiedades tiene vértices que pueden contener información detallada
sobre un tema, así como bordes para resaltar la relación entre esos vértices. Los
vértices y los bordes pueden tener atributos (llamados propiedades) a los que
están asociados
5
Grafos RDF
Los grafos RDF (Resource Description Framework) cumplen con un conjunto de estándares
W3C (Worldwide Web Consortium) diseñados para representar declaraciones; son la mejor
opción a la hora de representar metadatos complejos y datos principales. Se suelen utilizar
para datos vinculados, integración de datos y grafos de conocimiento. Pueden representar
conceptos complejos en un dominio, así como ofrecer una semántica rica e inferencias
sobre datos.
En el modelo RDF, una declaración se representada con tres elementos: dos vértices
conectados por un borde que representa el sujeto, el predicado y el objeto de una oración;
esto se conoce como el triple RDF. Cada vértice y borde se identifica con un URI exclusivo
(identificador único de recurso). El modelo RDF aporta un método para publicar datos en
un formato estándar y con una semántica bien definida, lo que facilita el intercambio de
información. Las entidades estatales de estadísticas, las empresas farmacéuticas y las
organizaciones sanitarias utilizan los grafos RDF de manera generalizada.
Fuente Oracle Enlace
6
¿Cómo funcionan las bases de datos orientadas a grafos?
Vértice
Los grafos y las bases de datos orientadas a grafos
proporcionan modelos de grafos para representar las
relaciones en los datos. Gracias a estos, los usuarios Borde
pueden hacer “consultas transversales” basadas en
conexiones y aplicar algoritmos de grafos a fin de
encontrar patrones, rutas, comunidades, factores
influyentes, puntos únicos de fallo y otras relaciones;
esto permite un análisis más eficiente y a escala con
cantidades masivas de datos. El poder de los grafos Vértice
reside en la analítica, los conocimientos que aportan y su
capacidad para vincular fuentes de datos dispares.
7
Ventajas Bases de datos Orientadas a Grafos.
• Permite representar las relaciones de una forma más flexible, detectar conexiones distantes y analizar
las relaciones en función de la fuerza o calidad de la relación.
• Son muy útiles para representar y explorar conexiones en contextos como redes sociales, Big data,
almacenes de datos y datos de transacciones complejas como en algunos casos del contexto bancario.
• Son más rápidas para ejecutar consultas sobre conexiones ya que estas se almacenan de forma
explicita, esto también simplifica la sintaxis necesaria para realizar una consulta.
• Las bases de datos orientadas a grafos son una herramienta extremadamente flexible y potente.
Gracias al formato del grafo, se pueden determinar relaciones complejas para obtener información
más completa con mucho menos esfuerzo. Las bases de datos de grafos generalmente ejecutan
consultas en lenguajes como Property Graph Query Language (PGQL).
8
Ventajas Bases de datos Orientadas a Grafos.
El siguiente ejemplo muestra la misma consulta en PGQL y SQL.
9
Ventajas Bases de datos Orientadas a Grafos.
Como se ve en el ejemplo anterior, el código PGQL es más simple y mucho más
eficiente. Dado que los grafos enfatizan las relaciones entre los datos, resultan ideales
para varios tipos de análisis diferentes
10
Desventajas Bases de datos Orientadas a Grafos.
• Es difícil escalar las bases de datos orientadas a grafos por estar diseñadas para
arquitecturas de un solo servidor.
• No están diseñadas para trabajar con datos que no se puedan mapear mediante
relaciones y la naturaleza de estas relaciones.
11
Bases de datos Orientadas a Grafos más conocidas.
• Neo4j: Neo4j es la graph database más popular y está concebida como modelo de código
abierto. https://neo4j.com/
• Amazon Neptun: esta base de datos de gráficos puede usarse a través de la nube pública de
Amazon Web Services y se abrió al público en 2018 como base de datos de alto rendimiento.
https://aws.amazon.com/es/neptune/
• SAP Hana Graph: SAP ha creado con SAP Hana una plataforma basada en un sistema de gestión
de bases de datos relacional que se completa con el modelo integrado SAP Hana Graph,
orientado a grafos. https://developers.sap.com/group.hana-aa-graph-overview.html
• OrientDB: esta graph database está considerada como uno de los modelos más rápidos
disponibles actualmente. https://orientdb.org/
12
¿PREGUNTAS?
13
Bases de datos Clave-Valor
“Una base de datos clave-valor es un tipo
de base de datos no relacional que utiliza
un método simple de clave-valor para
almacenar datos. Una base de datos
clave-valor almacena datos como un
conjunto de pares clave-valor en los que
una clave sirve como un identificador
único. Tanto las claves como los valores
pueden ser cualquier cosa, desde objetos
simples hasta objetos compuestos
complejos. Las bases de datos clave-valor
son altamente divisibles y permiten el
escalado horizontal a escalas que otros
tipos de bases de datos no pueden
alcanzar.”
Fuente Amazon Enlace
14
Bases de datos Clave-Valor
Podemos definir las bases de datos Clave-valor, cómo bases de datos con “tablas” de tan solo
dos columnas, en una columna se guarda el valor, y en otra una clave que representa una
característica única.
Un valor puede ser algo sencillo como un valor numérico, una fecha o puede ser un objeto
complejo como un documento, en cuyo caso sería una base de datos documental.
El contenido de una base de datos clave-valor puede llegar a ser muy heterogéneo ya que no
se obliga a guardar la misma estructura o tipo de dato en cada registro.
15
Ventajas Bases de datos Clave-Valor
• Son muy efectivas en consultas y fáciles de escalar debido a la sencilles en la
estructura del modelo.
• Ya que poseen un esquema dinámico que no obliga a tener en todos los registros la
misma estructura, es posible añadir o modificar los campos de la base de datos sobre
la marcha.
• Consultas muy sencillas ya que si desea recuperar un valor solo debe hacerlo por una
clave específica.
Fuente Digital Guide Enlace
16
Desventajas Bases de datos Clave-Valor
17
Campos de aplicación bases de datos Clave-Valor
18
bases de datos Clave-Valor Más Conocidas
Redis
Este es un importante motor de base de datos de tipo calve-valor. Esta BBDD NoSQL
de Código abierto es patrocinada y desarrollada por RedisLabs. Su diseño principal
está basado en el almacenamiento de tablas de hashes aunque no es restrictiva solo
hacia este modelo. También tiene la posibilidad de ser utilizada como una BBDD
persistente.
19
bases de datos Clave-Valor Más Conocidas
CouchDB
Esta una base de datos NoSQL que nace con aspiraciones bastante altas. Su principal
desarrollador aspiraba a que CouchDB se convirtiera en la base de datos más usada
en internet. En 2008 el proyecto pasa a formar parte de Apache Incubator.
20
bases de datos Clave-Valor Más Conocidas
Amazon DynamoDB
Esta es una base de datos de clave valor que ofrece altos de rendimientos a
cualquier escala.
Tiene propiedades multiregion y multimaestro totalmente administrada y con
módulos fuertes de seguridad. También tiene respaldos, copias de seguridad y
restauración para aplicaciones a escala en línea. En la actualidad es la base de datos
con más clientes en el mundo.
Fuente graph everywhere Enlace
21
¿PREGUNTAS?
22
Bases de datos Multimodelo
Las bases de datos Multimodelo son bases de
datos NoSQL que implementan múltiples modelos
de almacenamiento o consulta de información. Un
ejemplo es la base de datos ArangoDB que es
Documental, Orientada a Grafos y Clave Valor.
23
Bases de datos Multimodelo
ArangoDB es una base de datos escrita en C++ cuyo core soporta de
forma nativa el manejo de documentos en formato JSON y soporte para
grafos. También posee su propio lenguaje de consulta llamado
ArangoDB Query Language (AQL)
24
Bases de datos Multimodelo
Fuente: https://www.arangodb.com/solutions/use-cases/
25
Bases de datos Multimodelo
Fuente: https://www.arangodb.com/2018/04/arangosearch-architecture-overview/
26
Bases de datos Multimodelo
Desafortunadamente por la complejidad de esta base de datos y el
tiempo del cual disponemos en el curso no será posible trabajar con ella,
se proporciona los recursos para aquellos interesados en conocerla y
trabajarla a profundidad, en su lugar vamos a trabajar con una base de
datos completamente orientada a grafos.
27
¿PREGUNTAS?
28
¿Por qué usar bases de datos orientadas a grafos?
29
TigerGraph
30
TigerGraph
TigerGraph más
allá de una base
de datos es una
infraestructura
completa para
almacenamiento y
procesamiento de
datos en
estructuras de
grafos.
Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/internal-architecture
31
TigerGraph
TigerGraph es también una base de datos que a pesar de ser orientada a grafos
puede ser distribuida, y tiene tolerancia a fallos.
Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/continuous-availability-overview
32
TigerGraph
TigerGraph es también una base de datos que a pesar de ser orientada a grafos
puede ser distribuida, y tiene tolerancia a fallos.
Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/continuous-availability-overview
33
TigerGraph
TigerGraph es también una base de datos que a pesar de ser orientada a grafos
puede ser distribuida, y tiene tolerancia a fallos.
Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/continuous-availability-overview
34
TigerGraph
Algunas de las características de TigerGraph
Análisis de relaciones profundo: La estructura Graph Query Language: Un lenguaje con una
permite realizar análisis de información sintaxis de alto nivel que facilita las consultas sobre
correlacionada con más de 10 saltos o relaciones. la base de datos.
Fuente: https://www.tigergraph.com/product/
35
TigerGraph
Algunas de las características de TigerGraph
Multigrafos: Se pueden crear relaciones sobre los Visual Interface: La plataforma nos brinda una
grafos de diferentes bases de datos creando una interface de usuario que permite manejar la base
especie de base de datos maestra lo cual permite de datos de una forma más cómoda.
transparencia y mejora el acceso a los datos y
correlaciones.
Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/continuous-availability-overview
36
TigerGraph
Algunos casos de uso para TigerGraph
Antilavado Evaluación y
de Dinero seguimiento
(AML) de Riesgos
Fuente: https://www.tigergraph.com/
37
TigerGraph
Fuente: https://www.tigergraph.com/product/
38
TigerGraph
Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/comparison-of-editions
39
¿PREGUNTAS?
40
TigerGraph
Para crear una cuenta dirigirse a: https://tgcloud.io/
41
TigerGraph
Para crear una cuenta dirigirse a: https://tgcloud.io/
42
TigerGraph
Una vez registrados accederemos al panel web.
43
TigerGraph
Para crear una base de datos seleccionamos en el panel lateral izquierdo la opción Mis soluciones (My Solutions)
Luego en la opción créate solutions que aparece en la esquina superior derecha.
44
TigerGraph
En este primer ejemplo vamos a seleccionar la versión 3.1.5 de TigerGraph y la opción de Blank.
45
TigerGraph
En las opciones de
Instance Settings
vamos a seleccionar el
plan free de ASW.
46
TigerGraph
Posteriormente es
importante asignar
nombre de proyecto
Tag y una contraseña
para acceso del
GrapStudio del
proyecto.
47
TigerGraph
Finalmente nos da el
summary del proyecto
y damos en submit
para enviar crear el
proyecto, pasara a la
lista de tareas
pendientes y
debemos esperar
hasta que esté en el
estado ready.
48
TigerGraph
En “My Solutions” aparecerá la nueva solución y tendremos que esperar hasta que en
estatus esté en marcada como ready.
49
TigerGraph
Para ingresar al panel de control hacemos clic en el botón mis aplicaciones en actions,
luego dejamos el usuario por defecto y ponemos contraseña que asignamos.
50
TigerGraph
Con esto ingresamos al panel de control de nuestra solución.
51
¿PREGUNTAS?
52
TigerGraph
53
TigerGraph
Asignamos un nombre a
nuestro grafo y guardamos
con la opción create. Esta
acción tomará algunos
segundos.
54
TigerGraph
Lo primero es crear un
esquema
55
TigerGraph
Fuente: https://docs.tigergraph.com/ui/graphstudio/design-schema
56
TigerGraph
Para añadir un tipo de vertice ingresamos al toolbar en el icono de + add local vertex
type, esto es importante para definir los tipos de vértices que existen en nuestra base de
datos orientada a grafos.
Fuente: https://docs.tigergraph.com/ui/graphstudio/design-schema
57
TigerGraph
58
TigerGraph
59
TigerGraph
Ahora vamos a crear nuestro primer borde o relación, para indicar que un usuario es
amigo con otro usuario, para eso hacemos clic en el botón de toolbar en forma de
flecha.
60
TigerGraph
Ahora vamos a crear nuestro primer borde o relación, para indicar que un usuario es
amigo con otro usuario, para eso hacemos clic en el botón de toolbar en forma de flecha,
luego tenemos que hacer clic en los tipos de vértices que conecta, cómo los usuarios son
amigos de otros usuarios hacemos clic dos veces en el mismo vértice de usuario.
61
TigerGraph
62
TigerGraph
Cuando terminemos nuestro esquema debería lucir parecido a esto.
63
TigerGraph
El paso final es publicar los cambios en nuestro esquema en la primera
opción de nuestra barra de herramientas.
64
TigerGraph
65
TigerGraph
66
TigerGraph
67
TigerGraph
Alli presionamos en el + y
buscamos el archivo en csv
en nuestro equipo.
68
TigerGraph
69
TigerGraph
70
TigerGraph
Ahora tenemos que mapear los datos al vertice usuarios para esto usamos la tercera opción
de la barra de herramientas “map data to vertex or Edge” luego seleccionamos el archivo y
luego el vértice user. Luego en el panel derecho tenemos que mapear cada atributo haciendo
clic.
71
TigerGraph
Finalmente tenemos que publicar los cambios en la primera opción de nuestra barra de
herramientas.
72
TigerGraph
Luego vamos a cargar los datos desde la fuente hacía el grafo, para esto nos vamos a la
tercera opción de la barra lateral izquierda “load data”.
73
TigerGraph
74
TigerGraph
El proceso de carga inicia y muestra el porcentaje finalmente se muestra que finalizó la carga.
75
TigerGraph
Ahora vamos a la opción explore graph para ver nuestros datos, presionamos en la opción
pick vértices y aparecerán representados cada uno de nuestros usuarios, aunque todavía no
tenemos relaciones.
76
TigerGraph
Podemos añadir relaciones de dos formas, agregando igualmente un archivo cvs con las
relaciones, o podemos hacerlo de forma manual mediante la opción add Edge en la barra de
herramientas, haciendo clic entre los usuarios que se relacionan y luego configurando el tipo
de relación, de momento solo tenemos una.
77
TigerGraph
Con estos pasos hemos creado nuestra primera base de datos orientada a grafos.
78
TigerGraph
Vamos a realizar la primera consulta sobre la base de datos, vamos al apartado Write Queries
al final de la barra lateral izquierda.
79
TigerGraph
Vamos a realizar la primera consulta sobre la base de datos, vamos al apartado Write Queries
al final de la barra lateral izquierda.
80
TigerGraph
81
TigerGraph
Ahora escribimos una consulta simple en GSQL, el Query tiene que guardarse para poder ser
ejecutado, en esta sentencia seleccionamos todos los usuarios.
82
TigerGraph
El resultado visualmente es algo así:
83
TigerGraph
El resultado a nivel de estructura de datos es:
84
Referencias
• Oracle Bases de datos Orientadas a Grafos: Enlace
• Digital Guide Graph Databases: Enlace
• Digital Guide Bases de datos Clave-Valor: https://www.ionos.es/digitalguide/hosting/cuestiones-
tecnicas/bases-de-datos-clave-valor/
• Bases de datos Clave-Valor Graph Everywhere: https://www.grapheverywhere.com/bases-de-
datos-clave-valor/
• ArangoDB Architecture: https://www.arangodb.com/2018/04/arangosearch-architecture-
overview/
• Base de datos Orientada a Grafos Tiger Graph https://www.tigergraph.com/
• Documentación de Tiger Graph https://docs.tigergraph.com/
• Reference Query TigerGraph https://docs.tigergraph.com/dev/gsql-ref/querying/introduction-
query
85