SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
17-Aug-17
1
SQL Server 2017
Bases de datos
Orientadas a Grafos
Bienvenida
• Ing. Eduardo Castro, PhD
• MVP de Microsoft SQL Server
• PASS Regional de Mentor
• PASS Board of Directors
• http://www.youtube.com/eduardocastrom
17-Aug-17
2
Material de Referencia
Introduction to Graph Databases
Chicago Graph Database Meet-Up
Max De Marzi
Data Modeling with Graph Databases
Ross McNeely
Los datos están más conectados
• Texto (contenido)
• Hipertexto (punteros agregados)
• RSS (se unió a esos punteros)
• Blogs (añadido Pingbacks)
• Etiquetado (datos relacionados agrupados)
• RDF (datos conectados descritos)
• GGG (contenido + punteros + relaciones + descripciones)
17-Aug-17
3
Los datos están más semi estructurados
• Si intentaste recopilar todos los datos de cada película que se
haya hecho, ¿cómo la modela?
• Actores, personajes, ciudades, fechas, costos, ratings,
espectaculos, venta de tickets, etc.
SQL
17-Aug-17
4
Proveedores de NOSQL
Key Value Stores
• Highly Available Key-Value Store
• Modelo de datos:
• Asignación global de valores clave
• Tolerante a fallas altamente (típicamente)
• Ejemplos:
• Redis, Riak, Voldemort
17-Aug-17
5
Key Value Stores : pros y contras
• Pros:
• Modelo de datos simple
• Escalable
• Contras
• Crea tus propias " foreign keys"
• Pobres para datos complejos
Column Family
• Basado en BigTable: Sistema de almacenamiento distribuido de
Google para datos estructurados
• Modelo de datos:
• Una tabla grande, con familias de columnas
• Map Reduce para consultas/procesamiento
• Ejemplos:
• HBase, HyperTable, Cassandra
17-Aug-17
6
Column Family : pros y contras
• Pros:
• Soporta Simi-Structured Data
• Indexado naturalmente (columnas)
• Escalable
• Contras
• Pobres para datos interconectados
Bases de datos de documentos
• Modelo de datos:
• Una colección de documentos
• Un documento es una colección de valores clave
• Centrado en el índice, un montón de map-reduce
• Ejemplos:
• CouchDB, MongoDB
17-Aug-17
7
Document Databases : pros y contras
• Pros:
• Modelo de datos simple y potente
• Escalable
• Contras
• Pobres para datos interconectados
• Modelo de consulta limitado a claves e índices
• Mapa reducir para consultas más grandes
17-Aug-17
8
Graph Databases
• Modelo de datos:
• Nodos y relaciones
• Ejemplos:
• Neo4j, OrientDB, InfiniteGraph, AllegroGraph
Graph Databases: pros y contras
• Pros:
• Potente modelo de datos, tan general como RDBMS
• Datos conectados localmente indexados
• Fácil de consultar
• Contras
• Sharding (mucha gente trabajando en este tema)
• Escala razonablemente bien
• Requiere realambrar su cerebro
17-Aug-17
9
RDBMS
Vivir en un mundo NoSQL
Complejidad
BigTable
Clones
Tamaño
Key Value
Store
Bases Datos
Documentos
Grafo
Bases
90% de
Casos de uso
Relacional
Bases
¿Qué es un grafo?
• Una representación abstracta de un conjunto de objetos donde
algunos pares están conectados por enlaces.
Object (vértice, nodo)
Enlace (arista, arco, relación)
17-Aug-17
10
Introducción al modelo de grafos
Definición de grafo:
1"formalmente, un grafo es sólo una colección de vértices y aristas-o,
en un lenguaje menos intimidante, un conjunto de nodos y las
relaciones que los conectan."
Menos formal:
-un grafo es un conjunto de nodos, relaciones y propiedades.
-una red de objetos conectados.
Diversas clases de grafos
• Grafo no dirigido
• Grafo dirigido
• Pseudo grafo
• Grafo múltiple
• Hyper Graph
17-Aug-17
11
Más clases de grafos
• Grafo ponderado
• Grafo etiquetado
• Grafo de propiedades
¿Qué es una base de datos basada en grafos?
• Una base de datos con una estructura de grafos explícita
• Cada nodo conoce sus nodos adyacentes
• A medida que aumenta el número de nodos, el costo de un paso
local (o hop) sigue siendo el mismo
• Más un índice para búsquedas
17-Aug-17
12
En comparación con bases de datos relacionales
Optimizado para la agregación Optimizado para conexiones
Introducción al modelo de grafos
•Nodos (“vertices”)
•Relaciones (“edges”)
•Propiedades
Property
Graph
RM1
RM2
RM3
Slide 24
RM1 Los nodos contienen propiedades. Piense en los nodos como
documentos que almacenan propiedades en forma de pares de
valor de clave arbitrarios. Las claves son cadenas y los valores son
tipos de datos arbitrarios
Ross McNeely, 19-Jan-14
RM2 Relaciones conectan y estructuran nodos. Una relación siempre
tiene una dirección, una etiqueta y un nodo de inicio y un nodo
final, no hay relaciones que cuelguen. Juntos, una dirección y una
etiqueta de relaciones agregan sematic claridad a la estructuración
de nodos.
Ross McNeely, 19-Jan-14
RM3 Como nodos, las relaciones también pueden tener propiedades. La
capacidad de agregar propiedades a las relaciones es
particularmente útil para proporcionar metadatos adicionales para
algoritmos de gráficos, añadiendo semántica adicional a las
relaciones (incluida la calidad y el peso) y para las consultas de
restricción en tiempo de ejecución
Ross McNeely, 19-Jan-14
17-Aug-17
13
Introducción al modelo de grafos
• Nodos representan entidadesNodos
Los nodos contienen propiedades. Piense en los nodos como
documentos que almacenan propiedades en forma de pares de
valor de clave arbitrarios.
nombre : juan
Introducción al modelo de grafos
• Se presentan como líneas entre los
nodosRelaciones
Relaciones conectan y estructuran nodos.
Direccion_Postal
17-Aug-17
14
Introducción al modelo de grafos
• Las propiedades son valores acerca
del nodo o de la relaciónPropiedades
Las propiedades se pueden agregar a nodos y relaciones.
Permite crear semánticas adicionales a las relaciones.
Introducción al modelo de grafos
• Grafo básico
17-Aug-17
15
¿Qué es una base de datos basada en grafos?
29
• Una base de datos basada en 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 una arista representa una relación entre los dos
nodos que conecta (por ejemplo, los gustos o los amigos).
• Los nodos y aristas pueden tener propiedades asociadas a ellos.
¿Qué es una base de datos basada en grafos?
30
• He aquí algunas características que hacen que una base de datos
basada en grafos sea única:
• Las aristas o las relaciones son entidades de primera clase en una base de
datos de grafos y pueden tener atributos o propiedades asociados con
ellos.
• Una única arista puede conectar de forma flexible varios nodos en una
base de datos basada en grafos.
• Puede expresar fácilmente las consultas de coincidencia de patrones y de
navegación de múltiples saltos.
• Puede expresar fácilmente el cierre transitivo y las consultas polimórficas.
17-Aug-17
16
En comparación con los almacenes de valor clave
Optimizado para simples look-UPS Optimizado para moverse a través de
datos conectados
En comparación con los almacenes de valor clave
Optimizado para "árboles" de datos Optimizado para ver el bosque y los
árboles, y las ramas, y los troncos
17-Aug-17
17
Cuándo utilizar una base de datos basada en grafos?
33
• No hay nada que una base de datos de grafos pueda lograr, que
no se puede lograr utilizando una base de datos relacional.
• Sin embargo, una base de datos basada en grafos puede facilitar
la expresión de ciertos tipos de consultas.
• Además, con optimizaciones específicas, ciertas consultas pueden
realizarse mejor.
Cuándo utilizar una base de datos basada en grafos?
34
• Su decisión de elegir uno sobre el otro puede basarse en los
siguientes factores:
• Su aplicación tiene datos jerárquicos. El tipo Hierarchyid puede utilizarse
para implementar jerarquías, pero tiene algunas limitaciones. Por ejemplo,
no permite almacenar varios padres para un nodo.
• Su aplicación tiene relaciones complejas de muchos a muchos; a medida
que la aplicación evoluciona, se agregan nuevas relaciones.
• Es necesario analizar los datos y las relaciones interconectados.
17-Aug-17
18
Productos que implementan Grafos
ArangoDB
Bitsy
BrightStartDB
Dex/Sparksee
Filamento
GraphBase
Horton
HyperGraphDB
OpenLink
R2DF
Titan
VelocityGraph
VertexDB
Modelaje con grafos
17-Aug-17
19
Introducción al modelo de grafos
Cómo se utiliza una BD
orientada a grafos?
• Moverse a través
de la base de
datos
Consulta
• Seguir las
relaciones de
nodo a nodo
Opciones de
resultados
• Un conjunto
• Una ruta (path)
• Un patrón
Introducción al modelo de grafos
Set Path Pattern
17-Aug-17
20
Modelos relacionales y grafos
• Definir y acordar las entidades del dominio
• Definir las interacciones y las normas rectorasSimilitudes
• Pocos cambios desde modelo conceptual lógico a
físico
• Modelo de almacenamiento de los grafos
coincide con el modelo lógico
• Después de la definición inicial del dominio
realzamos el grafo en lugar de definir las tablas.
Diferencias
Modelos relacionales y grafos
• Relacional
• Grafo
17-Aug-17
21
Características gráficas introducidas en SQL Server 2017
41
• Crear objetos de grafos
• Las extensiones de Transact-SQL permitirán a los usuarios crear
tablas de nodos o aristas. Ambos nodos y aristas pueden tener
propiedades asociadas a ellas. Dado que los nodos y aristas se
almacenan como tablas, se admiten todas las operaciones que se
admiten en tablas relacionales en la tabla nodo o arista.
CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name
VARCHAR(100), Age INT) AS NODE;
CREATE TABLE friends (StartDate date) AS EDGE;
Los nodos y aristas se almacenan como tablas
42
17-Aug-17
22
ASCII-Art
43
ASCII-Art
44
• Cypher utiliza ASCII-Art para representar patrones.
• Se rodean los nodos con paréntesis que parecen círculos, por
ejemplo (nodo).
• Si más adelante queremos hacer referencia al nodo, se daremos
una variable como (p) para la persona o (t) para la cosa.
• En las consultas reales, probablemente usaremos nombres de
variables más expresivos como (persona) o (cosa).
• Si el nodo no es relevante a su pregunta, también puede utilizar
paréntesis vacíos ().
17-Aug-17
23
ASCII-Art
45
MATCH (node:Label) RETURN node.property
MATCH (node1:Label1)-->(node2:Label2)
WHERE node1.propertyA = {value}
RETURN node2.propertyA, node2.propertyB
ASCII-Art Patrones
46
friend-of-a-friend (user)-[:KNOWS]-(friend)-[:KNOWS]-(foaf)
shortest path: path = shortestPath( (user)-[:KNOWS*..5]-(other) )
collaborative filtering (user)-[:PURCHASED]->(product)<-
[:PURCHASED]-()-[:PURCHASED]->(otherProduct)
tree navigation (root)<-[:PARENT*]-(leaf:Category)-[:ITEM]-
>(data:Product)
17-Aug-17
24
Neo4j
47
Encontrar a alguien que pueda ayudar a aprender Neo4j
48
MATCH (you {name:"You"})
MATCH (expert)-[:WORKED_WITH]->(db:Database {name:"Neo4j"})
MATCH path = shortestPath( (you)-[:FRIEND*..5]-(expert) )
RETURN db,expert,path
17-Aug-17
25
Extensiones de lenguaje de consultas
49
• La nueva cláusula Match se introduce para admitir la coincidencia
de patrones y la navegación de múltiples saltos a través del Grafo.
La función Match utiliza la sintaxis de estilo ASCII-Art para la
coincidencia de patrones.
• Por ejemplo:
-- Buscar los amigos de John
SELECT Person2.Name
FROM Person Person1, Friends, Person Person2
WHERE MATCH(Person1-(Friends)->Person2)
AND Person1.Name = 'John';
Totalmente integrado en el motor de SQL Server
50
• Las extensiones gráficas están completamente integradas en el
motor de SQL Server.
• Utilizamos el mismo motor de almacenamiento, metadatos,
procesador de consultas, etc. para almacenar y consultar datos de
grafos.
• Esto permite a los usuarios consultar a través de sus datos grafos
y relacionales en una sola consulta.
• Los usuarios también pueden beneficiarse de la combinación de
capacidades gráficas con otras tecnologías de SQL Server como
Columnstore, Ha, R Services, etc.
• La base de datos de SQL Graph también admite todas las
funciones de seguridad y cumplimiento de normas disponibles
con SQL Server.
17-Aug-17
26
Ecosistema
51
• Los usuarios se benefician de las herramientas y los ecosistemas
existentes que ofrece SQL Server.
• Herramientas como backup y restore, importación y exportación,
BCP acaba de trabajar fuera de la caja.
• Otras herramientas o servicios como SSIS, SSRS o PowerBI
trabajarán con tablas basadas en grafos, tal y como funcionan
con tablas relacionales.
Arquitectura de SQL Graph
52
• Los usuarios pueden crear un Grafo por base de datos.
• Un Grafo es una colección de tablas de nodos y aristas.
• Las tablas de nodos o aristas se pueden crear bajo cualquier
esquema de la base de datos, pero todas pertenecen a un Grafo
lógico.
• Una tabla de nodos es una colección de tipos similares de nodos.
17-Aug-17
27
Arquitectura de grafos SQL
53
• Por ejemplo, una tabla nodos “Persona” contiene todos los nodos
de la “personas” que pertenecen a un Grafo.
• Semejantemente, una tabla arista (edge) es una colección de
aristas similares.
• Por ejemplo, “a edge table” de amigos contiene todos “edges”
que conectan a una persona con otra persona.
• Dado que los nodos y aristas se almacenan en tablas, la mayoría
de las operaciones admitidas en tablas regulares se admiten en
tablas de nodos o aristas.
Arquitectura de base de datos de SQL Graph
54
17-Aug-17
28
Nodo Mesa
55
• Una tabla de nodos representa una entidad en un esquema de
grafos.
• Cada vez que se crea una tabla de nodos, junto con las columnas
definidas por el usuario, un valor implícito de $node_id se crea la
columna, que identifica de forma exclusiva un nodo dado en la
base de datos.
• Los valores en $node_id se generan automáticamente y son una
combinación de object_id de esa tabla de nodos y una
generación interna BIGINT valor.
• Sin embargo, cuando los $node_id se selecciona la columna, se
muestra un valor calculado en la forma de una cadena JSON.
Nodo Mesa
56
• Además, $node_id es una pseudo columna, que se asigna a un
nombre interno con una cadena hexadecimal.
• Al seleccionar $node_id de la tabla, el nombre de la columna
aparecerá como $node_id_<hex_string>.
• El uso de nombres de pseudo columnas en consultas es la forma
recomendada de consultar los $ internosnode_id debe evitarse la
columna y el uso del nombre interno con la cadena hexagonal.
• Se recomienda que los usuarios creen una restricción o índice
único en los $node_id columna en el momento de la creación de
la tabla de nodos, pero si no se crea uno, se crea
automáticamente un índice único y no agrupado por defecto.
17-Aug-17
29
Tabla de arista
57
• Una tabla de aristas representa una relación en un Grafo.
• Los aristas siempre se dirigen y conectan dos nodos.
• Una tabla de aristas permite a los usuarios modelar las relaciones
de muchos a muchos en el Grafo.
• Una tabla de aristas puede o no tener ningún atributo definido
por el usuario en él.
• Cada vez que se crea una tabla Edge, junto con los atributos
definidos por el usuario, se crean tres columnas implícitas en la
tabla edge.
Edge Table
58
• $edge_id Identifica de forma única una arista dada en la
base de datos. Es una columna generada y el valor es una
combinación de object_id de la tabla Edge y una generación
interna BIGINT valor.
• $from_id Almacena los $node_id del nodo, desde donde se
origina el arista.
• $to_id Almacena los $node_id del nodo, en el cual el arista
termina.
17-Aug-17
30
Representación de tablas de nodos y aristas
59
Metadatos
60
• En sys.tables is_node se establece en 1, que indica que la tabla es
una tabla de nodos y si is_edge se establece en 1, que indica que
la tabla es una tabla de aristas.
• La vista sys.columns contiene columnas adicionales graph_type y
graph_type_desc, que indican el tipo de la columna en las tablas
de nodos y aristas.
17-Aug-17
31
Esquema de ejemplo
61
• Este ejemplo crea un esquema Grafo, como se muestra en la
figura 1, para una red social hipotética que tiene personas,
restaurantes. Estos nodos están conectados entre sí usando
edges de Friends, Likes, LivesIn and LocatedIn
Demostración
73
17-Aug-17
32
SQL Server 2017
Bases de datos
Orientadas a Grafos

Más contenido relacionado

La actualidad más candente

Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Relationship Types of degree higher than 2
Relationship Types of degree higher than 2Relationship Types of degree higher than 2
Relationship Types of degree higher than 2Aadesh Shrestha
 
Diseño Base Datos
Diseño Base DatosDiseño Base Datos
Diseño Base Datosjhonnyjpo
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBLee Theobald
 
Componentes de un sistema de base de datos
Componentes de un sistema de base de datosComponentes de un sistema de base de datos
Componentes de un sistema de base de datosIsabel
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql DatabasePrashant Gupta
 
PROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOSPROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOSjaimeizq
 
ESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdfESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdfKEVINDAVIDTOPONSALAZ
 
Analisis de la independencia logica fisica de datos en un sistema de bases de...
Analisis de la independencia logica fisica de datos en un sistema de bases de...Analisis de la independencia logica fisica de datos en un sistema de bases de...
Analisis de la independencia logica fisica de datos en un sistema de bases de...Maria Garcia
 
Diferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalDiferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalUPCI
 
estructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensambladorestructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensambladorGloria Azúa
 
1 - Modelo Entidad Relacion
1 - Modelo Entidad Relacion1 - Modelo Entidad Relacion
1 - Modelo Entidad RelacionJuGGaLoFX
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosSergio Sanchez
 
Diseño de base de datos Relacionales
Diseño de base de datos RelacionalesDiseño de base de datos Relacionales
Diseño de base de datos RelacionalesJuan Soubervielle
 

La actualidad más candente (20)

Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Tarea base de datos
Tarea base de datosTarea base de datos
Tarea base de datos
 
Relationship Types of degree higher than 2
Relationship Types of degree higher than 2Relationship Types of degree higher than 2
Relationship Types of degree higher than 2
 
Diseño Base Datos
Diseño Base DatosDiseño Base Datos
Diseño Base Datos
 
An Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
 
Dbms and sqlpptx
Dbms and sqlpptxDbms and sqlpptx
Dbms and sqlpptx
 
Componentes de un sistema de base de datos
Componentes de un sistema de base de datosComponentes de un sistema de base de datos
Componentes de un sistema de base de datos
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
 
PROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOSPROYECTO DE BASE DE DATOS
PROYECTO DE BASE DE DATOS
 
ESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdfESTRUCTURA DE DATOS Pilas y colas.pdf
ESTRUCTURA DE DATOS Pilas y colas.pdf
 
Analisis de la independencia logica fisica de datos en un sistema de bases de...
Analisis de la independencia logica fisica de datos en un sistema de bases de...Analisis de la independencia logica fisica de datos en un sistema de bases de...
Analisis de la independencia logica fisica de datos en un sistema de bases de...
 
Diferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacionalDiferencias entre base de datos relacional y no relacional
Diferencias entre base de datos relacional y no relacional
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Mongo DB
Mongo DB Mongo DB
Mongo DB
 
estructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensambladorestructura_de_un_programa_en_lenguaje_ensamblador
estructura_de_un_programa_en_lenguaje_ensamblador
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
1 - Modelo Entidad Relacion
1 - Modelo Entidad Relacion1 - Modelo Entidad Relacion
1 - Modelo Entidad Relacion
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Diseño de base de datos Relacionales
Diseño de base de datos RelacionalesDiseño de base de datos Relacionales
Diseño de base de datos Relacionales
 

Similar a Sql 2017 bases datos orientadas a grafos

Bases de datos orientadas a grafos
Bases de datos orientadas a grafosBases de datos orientadas a grafos
Bases de datos orientadas a grafosAbraham Paez
 
Melany base de datos
Melany base de datosMelany base de datos
Melany base de datosnanisdiaz
 
Historia y desarrollo de sfbd
Historia y desarrollo de sfbdHistoria y desarrollo de sfbd
Historia y desarrollo de sfbdjalejandrobp
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)CloudAppi
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIsBig Data Spain
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4jInnova4j
 
00-Bases+de+dato+noSQL (3).pdf
00-Bases+de+dato+noSQL (3).pdf00-Bases+de+dato+noSQL (3).pdf
00-Bases+de+dato+noSQL (3).pdfVictor Zapata
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache CassandraLuis Ojeda
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No RelacionalesBEEVA_es
 
Modelos de datos relacionales y no relacionales
Modelos de datos relacionales y no relacionalesModelos de datos relacionales y no relacionales
Modelos de datos relacionales y no relacionalesBEEVA_es
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesAndrés Londoño
 
Presentacion modelo relacional2_final
Presentacion modelo relacional2_finalPresentacion modelo relacional2_final
Presentacion modelo relacional2_finalAlitas221
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...Daniel Gomez Jaramillo
 

Similar a Sql 2017 bases datos orientadas a grafos (20)

Bases de datos orientadas a grafos
Bases de datos orientadas a grafosBases de datos orientadas a grafos
Bases de datos orientadas a grafos
 
Melany base de datos
Melany base de datosMelany base de datos
Melany base de datos
 
005-Proceso-ETL-Carga.pdf
005-Proceso-ETL-Carga.pdf005-Proceso-ETL-Carga.pdf
005-Proceso-ETL-Carga.pdf
 
T2 bd
T2 bdT2 bd
T2 bd
 
Historia y desarrollo de sfbd
Historia y desarrollo de sfbdHistoria y desarrollo de sfbd
Historia y desarrollo de sfbd
 
Tutorial neo4j en español
Tutorial neo4j en españolTutorial neo4j en español
Tutorial neo4j en español
 
Big data y las apis (big data spain)
Big data y las apis (big data spain)Big data y las apis (big data spain)
Big data y las apis (big data spain)
 
El mundo Big Data y las APIs
El mundo Big Data y las APIsEl mundo Big Data y las APIs
El mundo Big Data y las APIs
 
Actividad 4
Actividad 4Actividad 4
Actividad 4
 
NoSql introducción -Innova4j
NoSql introducción -Innova4jNoSql introducción -Innova4j
NoSql introducción -Innova4j
 
00-Bases+de+dato+noSQL (3).pdf
00-Bases+de+dato+noSQL (3).pdf00-Bases+de+dato+noSQL (3).pdf
00-Bases+de+dato+noSQL (3).pdf
 
Modelos de bd
Modelos de bdModelos de bd
Modelos de bd
 
Apache Cassandra
Apache CassandraApache Cassandra
Apache Cassandra
 
Access 2013
Access 2013Access 2013
Access 2013
 
Bases de Datos No Relacionales
Bases de Datos No RelacionalesBases de Datos No Relacionales
Bases de Datos No Relacionales
 
Modelos de datos relacionales y no relacionales
Modelos de datos relacionales y no relacionalesModelos de datos relacionales y no relacionales
Modelos de datos relacionales y no relacionales
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Presentacion modelo relacional2_final
Presentacion modelo relacional2_finalPresentacion modelo relacional2_final
Presentacion modelo relacional2_final
 
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...Servicios de base de datos multimodelo  NoSQL con Azure CosmosDB y aplicación...
Servicios de base de datos multimodelo NoSQL con Azure CosmosDB y aplicación...
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 

Más de Eduardo Castro

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL ServerEduardo Castro
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerEduardo Castro
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL AzureEduardo Castro
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflowEduardo Castro
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022Eduardo Castro
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022Eduardo Castro
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Eduardo Castro
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceEduardo Castro
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022Eduardo Castro
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Eduardo Castro
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricksEduardo Castro
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql serverEduardo Castro
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsEduardo Castro
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Eduardo Castro
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsEduardo Castro
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en AzureEduardo Castro
 
Python dentro de SQL Server
Python dentro de SQL ServerPython dentro de SQL Server
Python dentro de SQL ServerEduardo Castro
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Eduardo Castro
 
Script de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesEduardo Castro
 
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesEduardo Castro
 

Más de Eduardo Castro (20)

Introducción a polybase en SQL Server
Introducción a polybase en SQL ServerIntroducción a polybase en SQL Server
Introducción a polybase en SQL Server
 
Creando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL ServerCreando tu primer ambiente de AI en Azure ML y SQL Server
Creando tu primer ambiente de AI en Azure ML y SQL Server
 
Seguridad en SQL Azure
Seguridad en SQL AzureSeguridad en SQL Azure
Seguridad en SQL Azure
 
Azure Synapse Analytics MLflow
Azure Synapse Analytics MLflowAzure Synapse Analytics MLflow
Azure Synapse Analytics MLflow
 
SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022SQL Server 2019 con Windows Server 2022
SQL Server 2019 con Windows Server 2022
 
Novedades en SQL Server 2022
Novedades en SQL Server 2022Novedades en SQL Server 2022
Novedades en SQL Server 2022
 
Introduccion a SQL Server 2022
Introduccion a SQL Server 2022Introduccion a SQL Server 2022
Introduccion a SQL Server 2022
 
Machine Learning con Azure Managed Instance
Machine Learning con Azure Managed InstanceMachine Learning con Azure Managed Instance
Machine Learning con Azure Managed Instance
 
Novedades en sql server 2022
Novedades en sql server 2022Novedades en sql server 2022
Novedades en sql server 2022
 
Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022Sql server 2019 con windows server 2022
Sql server 2019 con windows server 2022
 
Introduccion a databricks
Introduccion a databricksIntroduccion a databricks
Introduccion a databricks
 
Pronosticos con sql server
Pronosticos con sql serverPronosticos con sql server
Pronosticos con sql server
 
Data warehouse con azure synapse analytics
Data warehouse con azure synapse analyticsData warehouse con azure synapse analytics
Data warehouse con azure synapse analytics
 
Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2Que hay de nuevo en el Azure Data Lake Storage Gen2
Que hay de nuevo en el Azure Data Lake Storage Gen2
 
Introduccion a Azure Synapse Analytics
Introduccion a Azure Synapse AnalyticsIntroduccion a Azure Synapse Analytics
Introduccion a Azure Synapse Analytics
 
Seguridad de SQL Database en Azure
Seguridad de SQL Database en AzureSeguridad de SQL Database en Azure
Seguridad de SQL Database en Azure
 
Python dentro de SQL Server
Python dentro de SQL ServerPython dentro de SQL Server
Python dentro de SQL Server
 
Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft Servicios Cognitivos de de Microsoft
Servicios Cognitivos de de Microsoft
 
Script de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure EnclavesScript de paso a paso de configuración de Secure Enclaves
Script de paso a paso de configuración de Secure Enclaves
 
Introducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure EnclavesIntroducción a conceptos de SQL Server Secure Enclaves
Introducción a conceptos de SQL Server Secure Enclaves
 

Último

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (20)

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Sql 2017 bases datos orientadas a grafos

  • 1. 17-Aug-17 1 SQL Server 2017 Bases de datos Orientadas a Grafos Bienvenida • Ing. Eduardo Castro, PhD • MVP de Microsoft SQL Server • PASS Regional de Mentor • PASS Board of Directors • http://www.youtube.com/eduardocastrom
  • 2. 17-Aug-17 2 Material de Referencia Introduction to Graph Databases Chicago Graph Database Meet-Up Max De Marzi Data Modeling with Graph Databases Ross McNeely Los datos están más conectados • Texto (contenido) • Hipertexto (punteros agregados) • RSS (se unió a esos punteros) • Blogs (añadido Pingbacks) • Etiquetado (datos relacionados agrupados) • RDF (datos conectados descritos) • GGG (contenido + punteros + relaciones + descripciones)
  • 3. 17-Aug-17 3 Los datos están más semi estructurados • Si intentaste recopilar todos los datos de cada película que se haya hecho, ¿cómo la modela? • Actores, personajes, ciudades, fechas, costos, ratings, espectaculos, venta de tickets, etc. SQL
  • 4. 17-Aug-17 4 Proveedores de NOSQL Key Value Stores • Highly Available Key-Value Store • Modelo de datos: • Asignación global de valores clave • Tolerante a fallas altamente (típicamente) • Ejemplos: • Redis, Riak, Voldemort
  • 5. 17-Aug-17 5 Key Value Stores : pros y contras • Pros: • Modelo de datos simple • Escalable • Contras • Crea tus propias " foreign keys" • Pobres para datos complejos Column Family • Basado en BigTable: Sistema de almacenamiento distribuido de Google para datos estructurados • Modelo de datos: • Una tabla grande, con familias de columnas • Map Reduce para consultas/procesamiento • Ejemplos: • HBase, HyperTable, Cassandra
  • 6. 17-Aug-17 6 Column Family : pros y contras • Pros: • Soporta Simi-Structured Data • Indexado naturalmente (columnas) • Escalable • Contras • Pobres para datos interconectados Bases de datos de documentos • Modelo de datos: • Una colección de documentos • Un documento es una colección de valores clave • Centrado en el índice, un montón de map-reduce • Ejemplos: • CouchDB, MongoDB
  • 7. 17-Aug-17 7 Document Databases : pros y contras • Pros: • Modelo de datos simple y potente • Escalable • Contras • Pobres para datos interconectados • Modelo de consulta limitado a claves e índices • Mapa reducir para consultas más grandes
  • 8. 17-Aug-17 8 Graph Databases • Modelo de datos: • Nodos y relaciones • Ejemplos: • Neo4j, OrientDB, InfiniteGraph, AllegroGraph Graph Databases: pros y contras • Pros: • Potente modelo de datos, tan general como RDBMS • Datos conectados localmente indexados • Fácil de consultar • Contras • Sharding (mucha gente trabajando en este tema) • Escala razonablemente bien • Requiere realambrar su cerebro
  • 9. 17-Aug-17 9 RDBMS Vivir en un mundo NoSQL Complejidad BigTable Clones Tamaño Key Value Store Bases Datos Documentos Grafo Bases 90% de Casos de uso Relacional Bases ¿Qué es un grafo? • Una representación abstracta de un conjunto de objetos donde algunos pares están conectados por enlaces. Object (vértice, nodo) Enlace (arista, arco, relación)
  • 10. 17-Aug-17 10 Introducción al modelo de grafos Definición de grafo: 1"formalmente, un grafo es sólo una colección de vértices y aristas-o, en un lenguaje menos intimidante, un conjunto de nodos y las relaciones que los conectan." Menos formal: -un grafo es un conjunto de nodos, relaciones y propiedades. -una red de objetos conectados. Diversas clases de grafos • Grafo no dirigido • Grafo dirigido • Pseudo grafo • Grafo múltiple • Hyper Graph
  • 11. 17-Aug-17 11 Más clases de grafos • Grafo ponderado • Grafo etiquetado • Grafo de propiedades ¿Qué es una base de datos basada en grafos? • Una base de datos con una estructura de grafos explícita • Cada nodo conoce sus nodos adyacentes • A medida que aumenta el número de nodos, el costo de un paso local (o hop) sigue siendo el mismo • Más un índice para búsquedas
  • 12. 17-Aug-17 12 En comparación con bases de datos relacionales Optimizado para la agregación Optimizado para conexiones Introducción al modelo de grafos •Nodos (“vertices”) •Relaciones (“edges”) •Propiedades Property Graph RM1 RM2 RM3
  • 13. Slide 24 RM1 Los nodos contienen propiedades. Piense en los nodos como documentos que almacenan propiedades en forma de pares de valor de clave arbitrarios. Las claves son cadenas y los valores son tipos de datos arbitrarios Ross McNeely, 19-Jan-14 RM2 Relaciones conectan y estructuran nodos. Una relación siempre tiene una dirección, una etiqueta y un nodo de inicio y un nodo final, no hay relaciones que cuelguen. Juntos, una dirección y una etiqueta de relaciones agregan sematic claridad a la estructuración de nodos. Ross McNeely, 19-Jan-14 RM3 Como nodos, las relaciones también pueden tener propiedades. La capacidad de agregar propiedades a las relaciones es particularmente útil para proporcionar metadatos adicionales para algoritmos de gráficos, añadiendo semántica adicional a las relaciones (incluida la calidad y el peso) y para las consultas de restricción en tiempo de ejecución Ross McNeely, 19-Jan-14
  • 14. 17-Aug-17 13 Introducción al modelo de grafos • Nodos representan entidadesNodos Los nodos contienen propiedades. Piense en los nodos como documentos que almacenan propiedades en forma de pares de valor de clave arbitrarios. nombre : juan Introducción al modelo de grafos • Se presentan como líneas entre los nodosRelaciones Relaciones conectan y estructuran nodos. Direccion_Postal
  • 15. 17-Aug-17 14 Introducción al modelo de grafos • Las propiedades son valores acerca del nodo o de la relaciónPropiedades Las propiedades se pueden agregar a nodos y relaciones. Permite crear semánticas adicionales a las relaciones. Introducción al modelo de grafos • Grafo básico
  • 16. 17-Aug-17 15 ¿Qué es una base de datos basada en grafos? 29 • Una base de datos basada en 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 una arista representa una relación entre los dos nodos que conecta (por ejemplo, los gustos o los amigos). • Los nodos y aristas pueden tener propiedades asociadas a ellos. ¿Qué es una base de datos basada en grafos? 30 • He aquí algunas características que hacen que una base de datos basada en grafos sea única: • Las aristas o las relaciones son entidades de primera clase en una base de datos de grafos y pueden tener atributos o propiedades asociados con ellos. • Una única arista puede conectar de forma flexible varios nodos en una base de datos basada en grafos. • Puede expresar fácilmente las consultas de coincidencia de patrones y de navegación de múltiples saltos. • Puede expresar fácilmente el cierre transitivo y las consultas polimórficas.
  • 17. 17-Aug-17 16 En comparación con los almacenes de valor clave Optimizado para simples look-UPS Optimizado para moverse a través de datos conectados En comparación con los almacenes de valor clave Optimizado para "árboles" de datos Optimizado para ver el bosque y los árboles, y las ramas, y los troncos
  • 18. 17-Aug-17 17 Cuándo utilizar una base de datos basada en grafos? 33 • No hay nada que una base de datos de grafos pueda lograr, que no se puede lograr utilizando una base de datos relacional. • Sin embargo, una base de datos basada en grafos puede facilitar la expresión de ciertos tipos de consultas. • Además, con optimizaciones específicas, ciertas consultas pueden realizarse mejor. Cuándo utilizar una base de datos basada en grafos? 34 • Su decisión de elegir uno sobre el otro puede basarse en los siguientes factores: • Su aplicación tiene datos jerárquicos. El tipo Hierarchyid puede utilizarse para implementar jerarquías, pero tiene algunas limitaciones. Por ejemplo, no permite almacenar varios padres para un nodo. • Su aplicación tiene relaciones complejas de muchos a muchos; a medida que la aplicación evoluciona, se agregan nuevas relaciones. • Es necesario analizar los datos y las relaciones interconectados.
  • 19. 17-Aug-17 18 Productos que implementan Grafos ArangoDB Bitsy BrightStartDB Dex/Sparksee Filamento GraphBase Horton HyperGraphDB OpenLink R2DF Titan VelocityGraph VertexDB Modelaje con grafos
  • 20. 17-Aug-17 19 Introducción al modelo de grafos Cómo se utiliza una BD orientada a grafos? • Moverse a través de la base de datos Consulta • Seguir las relaciones de nodo a nodo Opciones de resultados • Un conjunto • Una ruta (path) • Un patrón Introducción al modelo de grafos Set Path Pattern
  • 21. 17-Aug-17 20 Modelos relacionales y grafos • Definir y acordar las entidades del dominio • Definir las interacciones y las normas rectorasSimilitudes • Pocos cambios desde modelo conceptual lógico a físico • Modelo de almacenamiento de los grafos coincide con el modelo lógico • Después de la definición inicial del dominio realzamos el grafo en lugar de definir las tablas. Diferencias Modelos relacionales y grafos • Relacional • Grafo
  • 22. 17-Aug-17 21 Características gráficas introducidas en SQL Server 2017 41 • Crear objetos de grafos • Las extensiones de Transact-SQL permitirán a los usuarios crear tablas de nodos o aristas. Ambos nodos y aristas pueden tener propiedades asociadas a ellas. Dado que los nodos y aristas se almacenan como tablas, se admiten todas las operaciones que se admiten en tablas relacionales en la tabla nodo o arista. CREATE TABLE Person (ID INTEGER PRIMARY KEY, Name VARCHAR(100), Age INT) AS NODE; CREATE TABLE friends (StartDate date) AS EDGE; Los nodos y aristas se almacenan como tablas 42
  • 23. 17-Aug-17 22 ASCII-Art 43 ASCII-Art 44 • Cypher utiliza ASCII-Art para representar patrones. • Se rodean los nodos con paréntesis que parecen círculos, por ejemplo (nodo). • Si más adelante queremos hacer referencia al nodo, se daremos una variable como (p) para la persona o (t) para la cosa. • En las consultas reales, probablemente usaremos nombres de variables más expresivos como (persona) o (cosa). • Si el nodo no es relevante a su pregunta, también puede utilizar paréntesis vacíos ().
  • 24. 17-Aug-17 23 ASCII-Art 45 MATCH (node:Label) RETURN node.property MATCH (node1:Label1)-->(node2:Label2) WHERE node1.propertyA = {value} RETURN node2.propertyA, node2.propertyB ASCII-Art Patrones 46 friend-of-a-friend (user)-[:KNOWS]-(friend)-[:KNOWS]-(foaf) shortest path: path = shortestPath( (user)-[:KNOWS*..5]-(other) ) collaborative filtering (user)-[:PURCHASED]->(product)<- [:PURCHASED]-()-[:PURCHASED]->(otherProduct) tree navigation (root)<-[:PARENT*]-(leaf:Category)-[:ITEM]- >(data:Product)
  • 25. 17-Aug-17 24 Neo4j 47 Encontrar a alguien que pueda ayudar a aprender Neo4j 48 MATCH (you {name:"You"}) MATCH (expert)-[:WORKED_WITH]->(db:Database {name:"Neo4j"}) MATCH path = shortestPath( (you)-[:FRIEND*..5]-(expert) ) RETURN db,expert,path
  • 26. 17-Aug-17 25 Extensiones de lenguaje de consultas 49 • La nueva cláusula Match se introduce para admitir la coincidencia de patrones y la navegación de múltiples saltos a través del Grafo. La función Match utiliza la sintaxis de estilo ASCII-Art para la coincidencia de patrones. • Por ejemplo: -- Buscar los amigos de John SELECT Person2.Name FROM Person Person1, Friends, Person Person2 WHERE MATCH(Person1-(Friends)->Person2) AND Person1.Name = 'John'; Totalmente integrado en el motor de SQL Server 50 • Las extensiones gráficas están completamente integradas en el motor de SQL Server. • Utilizamos el mismo motor de almacenamiento, metadatos, procesador de consultas, etc. para almacenar y consultar datos de grafos. • Esto permite a los usuarios consultar a través de sus datos grafos y relacionales en una sola consulta. • Los usuarios también pueden beneficiarse de la combinación de capacidades gráficas con otras tecnologías de SQL Server como Columnstore, Ha, R Services, etc. • La base de datos de SQL Graph también admite todas las funciones de seguridad y cumplimiento de normas disponibles con SQL Server.
  • 27. 17-Aug-17 26 Ecosistema 51 • Los usuarios se benefician de las herramientas y los ecosistemas existentes que ofrece SQL Server. • Herramientas como backup y restore, importación y exportación, BCP acaba de trabajar fuera de la caja. • Otras herramientas o servicios como SSIS, SSRS o PowerBI trabajarán con tablas basadas en grafos, tal y como funcionan con tablas relacionales. Arquitectura de SQL Graph 52 • Los usuarios pueden crear un Grafo por base de datos. • Un Grafo es una colección de tablas de nodos y aristas. • Las tablas de nodos o aristas se pueden crear bajo cualquier esquema de la base de datos, pero todas pertenecen a un Grafo lógico. • Una tabla de nodos es una colección de tipos similares de nodos.
  • 28. 17-Aug-17 27 Arquitectura de grafos SQL 53 • Por ejemplo, una tabla nodos “Persona” contiene todos los nodos de la “personas” que pertenecen a un Grafo. • Semejantemente, una tabla arista (edge) es una colección de aristas similares. • Por ejemplo, “a edge table” de amigos contiene todos “edges” que conectan a una persona con otra persona. • Dado que los nodos y aristas se almacenan en tablas, la mayoría de las operaciones admitidas en tablas regulares se admiten en tablas de nodos o aristas. Arquitectura de base de datos de SQL Graph 54
  • 29. 17-Aug-17 28 Nodo Mesa 55 • Una tabla de nodos representa una entidad en un esquema de grafos. • Cada vez que se crea una tabla de nodos, junto con las columnas definidas por el usuario, un valor implícito de $node_id se crea la columna, que identifica de forma exclusiva un nodo dado en la base de datos. • Los valores en $node_id se generan automáticamente y son una combinación de object_id de esa tabla de nodos y una generación interna BIGINT valor. • Sin embargo, cuando los $node_id se selecciona la columna, se muestra un valor calculado en la forma de una cadena JSON. Nodo Mesa 56 • Además, $node_id es una pseudo columna, que se asigna a un nombre interno con una cadena hexadecimal. • Al seleccionar $node_id de la tabla, el nombre de la columna aparecerá como $node_id_<hex_string>. • El uso de nombres de pseudo columnas en consultas es la forma recomendada de consultar los $ internosnode_id debe evitarse la columna y el uso del nombre interno con la cadena hexagonal. • Se recomienda que los usuarios creen una restricción o índice único en los $node_id columna en el momento de la creación de la tabla de nodos, pero si no se crea uno, se crea automáticamente un índice único y no agrupado por defecto.
  • 30. 17-Aug-17 29 Tabla de arista 57 • Una tabla de aristas representa una relación en un Grafo. • Los aristas siempre se dirigen y conectan dos nodos. • Una tabla de aristas permite a los usuarios modelar las relaciones de muchos a muchos en el Grafo. • Una tabla de aristas puede o no tener ningún atributo definido por el usuario en él. • Cada vez que se crea una tabla Edge, junto con los atributos definidos por el usuario, se crean tres columnas implícitas en la tabla edge. Edge Table 58 • $edge_id Identifica de forma única una arista dada en la base de datos. Es una columna generada y el valor es una combinación de object_id de la tabla Edge y una generación interna BIGINT valor. • $from_id Almacena los $node_id del nodo, desde donde se origina el arista. • $to_id Almacena los $node_id del nodo, en el cual el arista termina.
  • 31. 17-Aug-17 30 Representación de tablas de nodos y aristas 59 Metadatos 60 • En sys.tables is_node se establece en 1, que indica que la tabla es una tabla de nodos y si is_edge se establece en 1, que indica que la tabla es una tabla de aristas. • La vista sys.columns contiene columnas adicionales graph_type y graph_type_desc, que indican el tipo de la columna en las tablas de nodos y aristas.
  • 32. 17-Aug-17 31 Esquema de ejemplo 61 • Este ejemplo crea un esquema Grafo, como se muestra en la figura 1, para una red social hipotética que tiene personas, restaurantes. Estos nodos están conectados entre sí usando edges de Friends, Likes, LivesIn and LocatedIn Demostración 73
  • 33. 17-Aug-17 32 SQL Server 2017 Bases de datos Orientadas a Grafos