Modelos De Dados Para Sistemas NoSQL - Edisciplinas.usp.br

Transcription

Instituto de Matemática e EstatísticaUniversidade de São PauloModelos de Dados paraSistemas NoSQLParte 3Bancos de Dados de GrafosKelly Rosa Braghettokellyrb@ime.usp.brDepartamento de Ciência da Computação

Sistemas NoSQL –Modelos de DadosBaseado no livroNoSQL Distilled – A Brief Guide to theEmerging World of Polyglot Persistencede Pramod Sadalage e Martin Fowler2

Sistemas NoSQL –Modelos de Dados Diferentes tipos de modelos de dados são usados nossistemas NoSQL– Grande heterogeneidadeEsses modelos costumam ser divididos nas Famílias de colunas–Grafosorientados aagregados3

Sistemas NoSQL –Modelos de Dados Diferentes tipos de modelos de dados são usados nossistemas NoSQL– Grande heterogeneidadeEsses modelos costumam ser divididos nas Famílias de colunas–Grafosorientados aagregados4

Agregados eRelacionamentos Agregados são úteis para manter num mesmo lugardados que são frequentemente acessados juntos– Problema quando os mesmos dados sãoacessados de diferentes formas pelas aplicaçõesEx.: BD do sistema de comércio eletrônico1) Aplicativo para os clientes histórico de pedidos por cliente2) Aplicativo para os lojistas processamento individual dos pedidos5

Agregados eRelacionamentosModelagem deagregado Customerque favorece arecuperação dohistórico depedidos por cliente6Imagem extraída de Sadalage, P. J., & Fowler, M. (2013)

Agregados eRelacionamentosModelagem deagregados Customere Order quefavorece oprocessamentoindividual dospedidos7Imagem extraída de Sadalage, P. J., & Fowler, M. (2013)

Agregados eRelacionamentos No caso de agregados separados para pedidos eclientes, é possível criar um link (relacionamento)entre pedido e cliente–Ex.: incluir o ID do cliente no agregado do pedido–Para se obter detalhes do cliente que fez um dadopedido:Recuperação em duas etapas1) A aplicação submete ao BD uma consulta para recuperar oagregado do pedido2) Depois de receber a resposta, a aplicação submete uma novaconsulta para recuperar o agregado do cliente dono do pedido8

Agregados eRelacionamentosLink (relacionamento)entre os agregadosCustomer e Order9Imagem extraída de Sadalage, P. J., & Fowler, M. (2013)

Agregados eRelacionamentos Problema 1: nem todo sistema NoSQL temfuncionalidades para tratar links entre agregados–Quando o NoSQL é “ciente” de links, ele pode criaríndices e oferecer funcionalidades para facilitar asconsultas–Junções e outras operações envolvendo agregados decoleções diferentes podem ser feitas por meio deMapReduce (e serem materializadas se conveniente)MapReduce: modelo de programação para o processamentode grandes volumes de dados de forma paralela e distribuída,em aglomerados de máquinas.10

Agregados eRelacionamentos Problema 2: tratamento das alterações–Atomicidade só é garantida em alterações deconteúdo de um único agregado–Em alterações envolvendo múltiplos agregados, otratamento de falhas precisa ser feito pelaaplicação11

Agregados eRelacionamentosLink (relacionamento)entre os agregadosCustomer e Order12Imagem extraída de Sadalage, P. J., & Fowler, M. (2013)

Agregados eRelacionamentos Em SGBDs relacionais, essas operações são maisnaturais:–É possível modificar múltiplos registros em umaúnica transação com garantias ACID–Relacionamentos simples são expressosformalmente, por meio de chaves estrangeiras–Cruzamento de registros relacionados (junções)são expressos por meio da SQL Problema: dificuldade em lidar com consultasenvolvendo muitas junções13

Banco de Dados deGrafos Bancos de dados orientados a agregados grandesregistros com conexões simples entre si– Motivados pela necessidade de se usar aglomeradosde máquinas para o gerenciamento dos dadosBancos de dados de grafos registrospequenos com interconexões complexas–Motivados pela ineficiência dos SGBDs relacionaispara representar relacionamentos complexos e“percorrê-los” em consulta14

Bancos de Dados deGrafos Estrutura de dados de nós interconectados por arcosModelo de dados geral: nós identificados (entidades) e arcosrotulados (relacionamentos)Em alguns sistemas, nós e arcos também podem ter propriedades(valores simples ou objetos), geralmente sem esquema fixoExemplo degrafo rotuladode propriedades15

BD de Grafo - ExemploImagem extraída deSadalage, P. J., & Fowler, M. (2013)16

BD de Grafo – Exemplo 2Nós com propriedadesImagem extraída deSadalage, P. J., & Fowler, M. (2013)17

Consultas em BDs deGrafos Percorrer relacionamentos é uma operação bastanterápidaOperações de consulta ( percurso) especialmenteprojetadas para grafos:–condições sobre propriedades e rótulos–um único passo, expressões de caminho ou recursõescompletas–Exemplos: “Encontre os livros da categoria 'Bancos de Dados' que foram escritospor alguém de quem um amigo meu gosta.”“Encontre todos os amigos (diretos e indiretos) da 'Carol'”18

Consultas em BDs deGrafos Num BD de grafos, o maior custocomputacional associado às operações deconsulta fica na operação de inserção no BD–Esse custo vem da indexação dos nós–Estratégia é vantajosa quando bom desempenhonas consultas é o principal requisito19

Consultas em Bancos deDados de Grafos A construção das respostas para as consultas seinicia em um ou mais nós, a partir dos quais osrelacionamentos começam a ser percorridos– A indexação dos nós é muito importante!Exemplo: "Obtenha todas as coisas de que tantoa Ana quanto a Bárbara gostam"–Passo 1: lookup (busca) por ID (Ana ou Bárbara)–Passo 2: percorrer os relacionamentos diretos dos doisnós iniciais20

Bancos de Dados deGrafos Sistemas de BDs de grafos costumamimplementar transações ACIDSão considerados NoSQL por:–Não usarem modelo relacional–Terem surgido na mesma época que osdemais tipos de sistemas NoSQL21

Sistemas de BDs deGrafos mais Populareshttps://db-engines.com/en/ranking/graph dbms22

Linguagens de Consultapara BDs de Grafos Não há linguagens de consulta padronizadas para BDs degrafos– Cada sistema oferece a sua linguagem e/ou API para manipulaçãodos dadosAlgumas propostas já são implementadas em mais de 2013/REC-sparql11-query-20130321/23

Referências bibliográficas Sadalage, P. J., & Fowler, M. (2013). NoSQL distilled:a brief guide to the emerging world of polyglotpersistence. Pearson Education.24

8 Agregados e Relacionamentos No caso de agregados separados para pedidos e clientes, é possível criar um link (relacionamento) entre pedido e cliente - Ex.: incluir o ID do cliente no agregado do pedido - Para se obter detalhes do cliente que fez um dado pedido: Recuperação em duas etapas 1) A aplicação submete ao BD uma consulta para recuperar o