SlideShare una empresa de Scribd logo
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

13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
Uriel Herrera
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
ralbarracin
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
Luis Jherry
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
Francisco Godoy
 
Basesde datos
Basesde datosBasesde datos
Basesde datos
yakiraq
 

La actualidad más candente (20)

HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
13 tipos de diagramas uml, la metodología de desarrollo ágil de software y la...
 
Historia de la tecnologia de base de datos
Historia de la tecnologia de base de datosHistoria de la tecnologia de base de datos
Historia de la tecnologia de base de datos
 
Postgres vs Mongo / Олег Бартунов (Postgres Professional)
Postgres vs Mongo / Олег Бартунов (Postgres Professional)Postgres vs Mongo / Олег Бартунов (Postgres Professional)
Postgres vs Mongo / Олег Бартунов (Postgres Professional)
 
Modelo E-R.pdf
Modelo E-R.pdfModelo E-R.pdf
Modelo E-R.pdf
 
Modelos Lógicos Basados en Objetos
Modelos Lógicos Basados en ObjetosModelos Lógicos Basados en Objetos
Modelos Lógicos Basados en Objetos
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
Arquitectura Monolítica
Arquitectura MonolíticaArquitectura Monolítica
Arquitectura Monolítica
 
Bases de datos orientadas a grafos
Bases de datos orientadas a grafosBases de datos orientadas a grafos
Bases de datos orientadas a grafos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
 
CLASE 3_ArquiteturaBD_UsuariosBD_IndependiciaLogFis_ModelosBD.pdf
CLASE 3_ArquiteturaBD_UsuariosBD_IndependiciaLogFis_ModelosBD.pdfCLASE 3_ArquiteturaBD_UsuariosBD_IndependiciaLogFis_ModelosBD.pdf
CLASE 3_ArquiteturaBD_UsuariosBD_IndependiciaLogFis_ModelosBD.pdf
 
Basesde datos
Basesde datosBasesde datos
Basesde datos
 
2. Modelo ER
2. Modelo ER2. Modelo ER
2. Modelo ER
 
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...
 
Ejemplos de entidad relacion
Ejemplos de entidad relacionEjemplos de entidad relacion
Ejemplos de entidad relacion
 
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 bEjercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
Ejercicios entidad relacion extendido (Lab 2) - Iván Deza - 2018 b
 
modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
Uml presentacion
Uml   presentacionUml   presentacion
Uml presentacion
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 

Similar a Sql 2017 bases datos orientadas a grafos

Melany base de datos
Melany base de datosMelany base de datos
Melany base de datos
nanisdiaz
 
Historia y desarrollo de sfbd
Historia y desarrollo de sfbdHistoria y desarrollo de sfbd
Historia y desarrollo de sfbd
jalejandrobp
 
Presentacion modelo relacional2_final
Presentacion modelo relacional2_finalPresentacion modelo relacional2_final
Presentacion modelo relacional2_final
Alitas221
 

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

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
 
Tipos dba chmj_22082018
Tipos dba chmj_22082018Tipos dba chmj_22082018
Tipos dba chmj_22082018
 

Más de Eduardo 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

PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
encinasm992
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 

Último (20)

Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdfHIGADO  Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
HIGADO Y TRAUMA HEPATICO UDABOL 2024 (3).pdf
 
Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.Estudio de la geometría analitica. Pptx.
Estudio de la geometría analitica. Pptx.
 
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docxPRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
PRÁCTICAS DEL MÓDULO I Y II DE EDUCACIÓN Y SOCIEDAD.docx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
Diagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdfDiagrama de flujo basada en la reparacion de automoviles.pdf
Diagrama de flujo basada en la reparacion de automoviles.pdf
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 
Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
3°ð_¦_â_¾ï¸_S34 PLAN DARUKEL DIDÃ_CTICA 23-24.docx
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.Herramientas informáticas. Sara Torres R.
Herramientas informáticas. Sara Torres R.
 

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