Bancos de Dados Orientados a Grafos. Mateus Lana e Thiago Santana

Documentos relacionados
AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

SGBDs NoSQL Modelos e Sistemas de Colunas e Grafos. Aluno: Jorge Dias Disciplina: IN940

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

Modelagem de BDG. Modelagem de BDG

Grafos: conceitos básicos e métricas

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Conteúdo. Integração de Dados, Web e Warehousing. Introdução. Introdução. BD Heterogêneos. Introdução. Introdução

BCD29008 Banco de dados

Grafos Orientados (digrafos)

informação enviada (ex. Facebook) ou que a rede social utilize essa informação para sugerir locais de interesse próximos ao usuário (ex. Foursquare).

BCD29008 Banco de dados

Análise de Redes Sociais Introdução ao Gephi

DATA MINING & MACHINE LEARNING (I) Thiago Marzagão

Árvores: Conceitos Básicos e Árvore Geradora

Teoria dos Grafos Aula 2

Teoria dos Grafos Aula 2

Departamento de Engenharia de Produção UFPR 57

GRAFOS Conceitos Básicos (Parte 1)

Facebook. Um grafo é uma rede. Estrutura de dados fundamental em Informática, tal como listas e árvores.

GRAFOS Aula 03 Representações de Grafos Max Pereira

Sistemas de Banco de Dados

Prof. Marco Antonio M. Carvalho

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45

Redes Complexas Aula 2

Introdução de XML. Dados da Web. Gerência de Dados da Web. A Web representa, nos dias de hoje, um repositório universal de dados, onde:

Teoria dos Grafos. Motivação

BIG DATA: UMA INTRODUÇÃO. Prof. Ronaldo R. Goldschmidt

Módulo 2 OTIMIZAÇÃO DE REDES

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

SISTEMAS DE INFORMAÇÕES GEOGRÁFICAS Aula 2. SIG- Eng. Cartográfica Prof. Luciene Delazari

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

INF 1010 Estruturas de Dados Avançadas

Busca em Profundidade e em Largura

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

Redes Complexas Aula 2

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Grafos COM11087-Tópicos Especiais em Programação II

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

6 Conclusão. 6.1 Contribuições

Teoria dos Grafos Aula 1 - Introdução

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Teoria dos Grafos. Profa. Alessandra Martins Coelho

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

Introdução à Teoria dos Grafos

Descritores de Imagem (introdução)

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

SGBD NoSQL. Débora Souza in940

Banco de Dados. Disciplina: Teoria e Fundamentos de Sistemas de Informação. Professor: Thiago Silva Prates

Estruturas de Dados Grafos

Banco de Dados. Banco de Dados

Conteúdo. Histórico. Notas. Teoria dos Grafos BCC204. Notas. Notas. 1736: Euler e as Pontes de Königsberg

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

GRAFOS ORIENTADOS. PSfrag replacements. Figura 1: Exemplo de um grafo orientado.

Designing Data Intensive Applications

Matemática Discreta 10

Conceitos e arquitetura do banco de dados. Andre Noel

Teoria dos Grafos AULA 1

INF 1010 Estruturas de Dados Avançadas

Banco de Dados. Aula 2 - Prof. Bruno Moreno 19/08/2011

Algoritimos e Estruturas de Dados III CIC210

Modelos Conceituais de Dados

Busca em Profundidade. Componentes Conexos. Grafos. Maria Adriana Vidigal de Lima. Fevereiro

BUSINESS INTELLIGENCE BI FERNANDO ESCOBAR, PMP, MSC.

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

Professor: Anselmo Montenegro Conteúdo (aula 7): - Noções de estruturas de dados topológicas. Instituto de Computação - UFF

Definição e Conceitos Básicos

Fluxo em Redes -01. Prof. Gustavo Peixoto Silva 2 modelos

Introdução a Sistemas de Informação

Redes Complexas. Renato Vicente. Complex Systems EACH USP

MAPEAMENTO DE SÉRIES FINANCEIRAS EM REDES COMPLEXAS

GRAFOS E ALGORITMOS ALGORITMOS E APLICAÇÕES

Teoria dos Grafos Aula 5

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1

Fluxo em Redes -01. Prof. Gustavo Peixoto Silva 2 modelos

Banco de Dados 08/08/2010

Caminhos de Amizades pelo Facebook:

5 Conclusão e trabalhos futuros

x y Grafo Euleriano Figura 1

SBC - Sistemas Baseados em Conhecimento

Bancos de Dados NoSQL

Teoria dos Grafos. Edson Prestes

Este capítulo aborda os fundamentos principais aplicados neste trabalho.

Introdução a Grafos Letícia Rodrigues Bueno

Caminhos de Amizades pelo Facebook: Dualidade Computacional entre Curto e Longo

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

INE BDNC. Bancos de Dados XML

BCC204 - Teoria dos Grafos

Requisitos de sistemas

3 Sistema de recomendação proposto

Sistema de Banco de Dados. UNIDADE 1 Introdução aos Sistemas de Bancos de Dados Professor: Armando Hage

AULA 3 Classificação dos Sistemas de Informação

Mineração de Grafos e Predição de Links. Antonio Pecli Ronaldo Goldschmidt

Modelagem Geométrica: Boundary Representation

Conceitos Básicos. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Algoritmos e Estruturas de Dados II: Projeto

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Transcrição:

Bancos de Dados Orientados a Grafos Mateus Lana e Thiago Santana

Conteúdo Grafos Definição; Representação; Conceitos. Bancos de dados orientados a grafos Introdução; Representação; Modelagem; Conceitos; Aplicações.

1. Grafos

Definição Um grafo é uma estrutura de abstração muito útil na representação e solução de problemas computacionais, por representarem relações de interdependência entre elementos de um conjunto.

Representação Grafo G = (V,A) Conjunto V com n vértices; Conjunto A com m arestas ou arcos.

Facebook Graph Search

Conceitos A ordem de um grafo é determinada pela quantidade de vértices que ele possui V e o tamanho equivale ao número de arestas do grafo A ; O grau de um vértice é determinado pela quantidade de arestas conectadas ao mesmo e o caminho consiste de uma sequência de vértices conectados por arestas.

Conceitos - Grafo Não Direcionado Ligações expressas em Arestas; Se o vértice v1 está ligado a v2, a recíproca é verdadeira; Cada aresta é representada por um conjunto {v1,v2}, indicando os dois vértices envolvidos.

Conceitos - Grafo Direcionado Ligações expressas em Arcos Cada arco é representada por um par ordenado (v1,v2), indicando os dois vértices envolvidos.

2. GraphDB

Introdução Bancos de dados orientados a grafos são uma de muitas categorias de bancos de dados NoSQL propostas; A grande diferença para o modelo clássico está na representação explícita de relacionamentos entre os dados.

Introdução Os bancos de dados orientados as grafos começaram a ganhar espaço na década de 80 como uma alternativa aos bancos de dados relacionais, para dar suporte aos sistemas que possuem muita interconectividade, porém em decorrência da ascensão dos bancos de dados semi-estruturados (como XML - extensible Markup Language) acabou perdendo espaço.

Introdução Com o surgimento da web semântica e o crescimento e disseminação da utilização das redes sociais também houve o ressurgimento dos bancos de dados orientados a grafos.

Introdução Um exemplo de rede social é o Twitter, na qual sua base de dados é baseada em grafos, onde os usuários são vértices e as ligações entre eles são as arestas.

Representação Nesse tipo de estrutura, os dados são representados por nós, arestas e propriedades. Os nós representam as entidades, as arestas expressam as relações entre os nós e as propriedades apresentam características das entidades e relacionamentos.

Classificações Existem duas classificações para os bancos de dados orientados a grafos definidas conforme o mapeamento lógico-físico: Nativos: Os modelos nativos utilizam a estrutura de grafos no armazenamento físico dos dados e no processamento de consultas; Não-nativos: modelam a parte lógica dos dados como grafos e armazenam os dados através de outros modelos.

Modelagem Há diferentes formas de se modelar um banco de dados, sendo que a mais simples é o modelo simples-relacional, onde todos vértices são do mesmo tipo e as arestas são definidas com o mesmo tipo de relacionamento.

Grafo Simples

Modelagem A modelagem mais utilizada entre os SGBDGs atuais é o grafo de propriedades, na qual vértices e arestas contêm atributos para descrever suas propriedades; Este modelo é definido como um grafo multi-relacional com atributos e arestas direcionadas.

Grafo de propriedades

Manipulação de Dados A manipulação de dados é expressa através de operações orientadas a grafos; Identificar os nós mais próximos em um grafo é a peça-chave em um conjunto diversificado de aplicações. Exemplos: busca e sugestão de amigos em uma rede social, marketing viral na web, busca e análise inteligente de palavras-chave em uma base de dados, dentre outros.

Manipulação de Dados (Contexto) Redes sociais, como o Facebook, apresentam sugestões aos usuários de possíveis amigos até um determinado grau de profundidade, baseando-se nas relações entre os indivíduos da rede; A busca desse tipo de dados em Big Data não se trata de algo simples, pois, para encontrar os amigos de amigos de um usuário, é necessário consultar um grande número de informações no grafo social.

Consultas Há vários tipos de algoritmos que podem ser usados para consulta no banco de dados, alguns deles são: Consultas adjacentes; Consultas de acessibilidade; Consultas de combinação de padrões; Consultas de sumarização.

Consultas adjacentes (Travessia) É a forma mais utilizada, esta é baseada no princípio vértice-aresta, onde vértices adjacentes são ligados por uma aresta, e arestas são adjacentes se compartilham o mesmo vértice; Recuperar a informação a partir de um grafo requer algo que é conhecido como travessia, que envolve o conceito de caminhar ao longo dos vértices do grafo.

Conceitos Importantes Uma diferença importante entre uma travessia e uma consulta SQL é que travessia é uma operação localizada, na qual não há índice de adjacência global; Cada vértice e aresta no grafo armazenam um índice dos objetos conectados a ele, e, dessa maneira, o tamanho do grafo não ocasiona a perda de desempenho em uma travessia.

Manipulação de Dados No modelo de dados orientado a grafos, os usuários do grafo social são os nós e as relações de amizade estabelecidas na rede social são os relacionamentos entre os nós; Ao realizar a travessia, o banco de dados acessa um conjunto destes deslocando-se entre os nós através das arestas formadas pelos seus relacionamentos; Dessa maneira, a travessia só considera os dados necessários para a consulta, sem a necessidade de envolver o repositório inteiro de dados.

Migração Relacional - Modelo de Grafos

Modelo de Grafos (Representação Final)

Vantagens As bases de dados orientadas a grafos processam com eficiência densos conjuntos de dados e o seu design permite a construção de modelos preditivos e análise de correlações e padrões de dados; Este modelo de dados, onde todos os nós estão ligados por relações, permite travessias rápidas entre os vértices ao longo das arestas.

Vantagens Modelo de grafos garante facilidade de se alterar o esquema de dados incluindo novas entidades e relacionamentos sem a necessidade de reestruturar o esquema de dados.

Quando Usar? Dados conectados (redes sociais); Roteamento e Serviços baseados em localização; Mecanismos de recomendação.

Dados Conectados (Redes Sociais) Rede sociais são as que mais podem ser beneficiadas com o uso de banco de dados orientado a grafos; Não se trata apenas de identificar quem é amigo de quem em uma rede social. Um banco orientado a grafos também pode representar outras relações, conhecimentos, etc.

Roteamento e Localização Relações entre entidades podem possuir como propriedade as métricas de distância e localização, podendo ser utilizadas para questões de roteamento e entrega de informação de forma mais efetiva; Por exemplo, pode-se fazer a recomendação de um determinado restaurante ou um ponto de interesse baseado na localização do usuário dentro do grafo.

Mecanismos de Recomendação Como os nós possuem relações entre eles dentro de um sistema, os bancos orientados a grafos são muito úteis para fazer recomendações baseadas nos relacionamentos existentes; Um fato interessante é que a medida que os nós e as relações aumentam de tamanho, o sistema de recomendação se torna ainda mais poderoso. Além disso, pode-se usar essas relações para a detecção de padrões de comportamento dentro do sistema.

Aplicações Diversos outros tipos de sistemas podem ser adequados ao modelo de banco de dados orientado a grafos, como sistemas de compras em lojas virtuais, sistemas que detectam padrões em dados químicos e biológicos, e sistemas que analisam a importância dos sites analisando a quantidade de arestas incidentes em cada um.

GDBs Existentes

Breve Exemplo (Neo4J) A criação de vários nós é feita separando-os com uma vírgula

Breve Exemplo (Neo4J) Ao criar um novo nó com rótulos, você pode adicionar propriedades ao mesmo tempo.

Breve Exemplo (Neo4J) Para criar um relacionamento entre dois nós, primeiro obtemos os dois nós. Quando os nós são carregados, simplesmente criamos um relacionamento entre eles.

Breve Exemplo (Neo4J) A definição de propriedades em relacionamentos é feita de maneira semelhante a como é feito ao criar nós. Observe que os valores podem ser qualquer expressão.

Observação O Neo4j é mais rápido do que o PostgreSQL para consultas envolvendo os relacionamentos entre os dados e serve muito bem para evitar problemas de performance provenientes de muitos JOINs.

Obrigado! Perguntas?