Está en la página 1de 85

Escuela de Ingeniería

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

“Una base de datos orientada a


grafos es una plataforma
especializada y de un solo
propósito para crear y manipular
grafos. Los grafos contienen
nodos, bordes y propiedades que
se utilizan para representar y
almacenar datos de una forma que
no permiten las bases de datos
relacionales. .” Fuente Oracle Enlace

Fuente Oracle Enlace

3
Tipos de bases de datos orientadas a grafos
Hay dos modelos comunes de bases de datos orientadas a grafos:

• Los grafos de propiedades: Que se centran en el análisis y las consultas.


• Los RDF que se centran en la integración de datos.

Ambos tipos de grafos consisten en un conjunto de puntos (vértices) y de las


conexiones entre estos puntos (bordes). Aunque tienen algunas diferencias.

Fuente Oracle Enlace

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

Fuente Oracle Enlace

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.

Fuente Oracle Enlace

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).

Fuente Oracle Enlace

8
Ventajas Bases de datos Orientadas a Grafos.
El siguiente ejemplo muestra la misma consulta en PGQL y SQL.

Fuente Oracle Enlace

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

En particular, las bases de datos orientadas a grafos destacan por:


• Encontrar la ruta más corta entre dos nodos
• Determinar los nodos que crean la mayor actividad/influencia
• Analizar la conectividad para identificar los puntos más débiles de una red
• Analizar el estado de la red o comunidad según la distancia/densidad de conexión en
un grupo

Fuente Oracle Enlace

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 existe un lenguaje de consulta estándar y consistente.

• No están diseñadas para trabajar con datos que no se puedan mapear mediante
relaciones y la naturaleza de estas relaciones.

Fuente Oracle Enlace

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/

Fuente Oracle Enlace

12
¿PREGUNTAS?

Fuente Oracle Enlace

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.

Fuente Digital Guide Enlace

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.

• Gran velocidad de búsqueda.

• 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

• No se contempla otro método de consulta aparte de la clave.

• No se puede almacenar ningún tipo de relación entre los valores.

• No poseen estándares de manejo de datos, lo cual puede resultar en


estructuras muy heterogéneas y difíciles de administrar.

• Los lenguajes de consulta son muy básicos y no permiten consultas


complejas.
Fuente Digital Guide Enlace

17
Campos de aplicación bases de datos Clave-Valor

• Se utilizan siempre que se requiere un alta velocidad en un gran


volumen de datos.

• Cestas de compras en tiendas online.

• Manejar datos de secciones.

Fuente Digital Guide Enlace

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.

Fuente graph everywhere Enlace

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.

Fuente graph everywhere Enlace

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?

Fuente Oracle Enlace

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?

Fuente Oracle Enlace

28
¿Por qué usar bases de datos orientadas a grafos?

Probablemente en los productos que usamos en internet todos los días


hagamos uso de bases de datos orientadas a grafos. Empresas como
LinkedIn, Facebook, Twitter entre otros usan normalmente ese tipo de
bases de datos en sus arquitecturas. De echo las recomendaciones de
compra de muchas tiendas en línea como Amazon provienen de consultas
de análisis de grafos.

29
TigerGraph

Vamos a trabajar entonces con la base de datos orientada a grafos


TigerGraph, esta es una base de datos orientada a grafos que posee
amplia variedad de características entre las cuales podemos trabajar
con un plan free para efectos del curso, esta base de datos y toda la
organización fue fundada bajo el nombre de GraphSQL en el 2012.

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

Velocidad: La base de datos soporta Escalabilidad: La base de datos puede ser


procesamiento masivo y paralelo lo cual le permite escalable para adaptarse a las necesidades de la
responder en un segundo a consultas sobre organización.
decenas de millones de entidades y relaciones.

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.

Migraciones desde bases de datos relacionales: La


plataforma permite migrar bases de datos
relacionales al modelo de grafos, aunque esta
característica aún esta en desarrollo.

Fuente: https://docs.tigergraph.com/tigergraph-platform-overview/continuous-availability-overview

36
TigerGraph
Algunos casos de uso para TigerGraph

Marketing de Registro y Motor de Detección de


Productos y manejo de recomendaciones Fraude
Servicios. clientes.

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?

Fuente Oracle Enlace

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.

Más información: https://docs.tigergraph.com/ui/graphstudio/overview

51
¿PREGUNTAS?

Fuente Oracle Enlace

52
TigerGraph

Vamos a crear nuestra


primera base de datos
orientada a grafos, para esto
vamos a la esquina superior
izquierda y hacemos clic en
crear grafo.

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

En la herramienta web tenemos un working panel y un toolbar.

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

Para este tipo de vértice


creamos el nombre, el
identificador podemos elegir
un estilo para representarlo
y los atributos que
representan estos tipos de
vértices.

58
TigerGraph

Cuando se crea el tipo de


vértice aparece su
representación en el working
panel.

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

Una vez hagamos esto se


habilita el panel para
configurar nuestra relación,
vamos a crear la relación de
amistad de usuarios con
usuarios por el momento sin
atributos.

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

Ya tenemos listo nuestro esquema


ahora tenemos que cargar datos a
nuestro grafo, para esto vamos a
construir un documento de Excel,
que posteriormente vamos a
exportar como un documento de
texto plano separado por comas
conocido como csv.

65
TigerGraph

Al exportar como texto plano es


importante abrir el csv generado
con el blog de notas para verificar
el separador de columnas de los
datos.

66
TigerGraph

Una vez tenemos el csv


vamos al segundo ítem de la
barra de opciones llamado
Map Data To Graph
seleccionamos la opción
add data file en la barra de
herramientas.

67
TigerGraph

Alli presionamos en el + y
buscamos el archivo en csv
en nuestro equipo.

68
TigerGraph

Una vez cargue hacemos clic en el archivo y configurarnos el formato y el delimitador,


marcamos la casilla has header en caso de tener encabezados de los datos en el archivo,
luego la opción add.

69
TigerGraph

Cuando carga el archivo podemos verlo de forma gráfica de la siguiente forma:

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

Seleccionamos el archivo csv y hacemos clic en la primera opción de la barra de herramientas


llamada start/resume loading, esto permitirá que empiece la migración de los datos hacia el
grafo, cómo no son muchos datos se cargarán rápidamente.

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

Realizamos clic en el botón de + para añadir un query.

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.

Para profundizar: https://docs.tigergraph.com/dev/gsql-ref/querying/select-statement#sql-like-select-statement

82
TigerGraph
El resultado visualmente es algo así:

Para profundizar: https://docs.tigergraph.com/dev/gsql-ref/querying/select-statement#sql-like-select-statement

83
TigerGraph
El resultado a nivel de estructura de datos es:

Para profundizar: https://docs.tigergraph.com/dev/gsql-ref/querying/select-statement#sql-like-select-statement

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

También podría gustarte