Prévia do material em texto
Aula 1 Banco de Dados NoSQL Conversa Inicial Prof. Alex Mateus Porn 1 2 1.1 BANCO DE DADOS 2.1 TEOREMA CAP RELACIONAL OU NOSQL? TEMA CARACTERÍSTICAS TEMA FUNDAMENTOS AOS BANCOS DE SISTEMA DE BANCO DE DADOS DISTRIBUÍDOS E DE DADOS NOSQL SISTEMAS DISTRIBUÍDOS Fundamentos de sistemas FUNDAMENTOS DE de banco de dados NoSQL BANCO DE DADOS NOSQL TEMA MODELOS DE TEMA MODELOS TEMA MODELOS DE DADOS LINGUAGENS DE DISTRIBUIÇÃO DADOS AGREGADOS DE CONSULTA E CONSISTÊNCIA 3 4 Modelo versus NoSQL E agora? relacional Banco de Dados Relacional ou NoSQL? Sadalage e Fowler (2019, 37) enfatizam que é preciso primeiro compreender que Documentos Chave-valor dados queremos armazenar e como queremos manipular NoSQL = desempenho de processamento Postagem de comentários no fórum Arquitetura híbrida Família de Grafos Colunas 5 6 1Banco de Dados Relacional Banco de Dados NoSQL Aplicações descentralizadas, por Aplicações centralizadas, por exemplo, Web, Mobile, Big Data, exemplo, ERP, CRM. Iot. Requerem alta disponibilidade, A disponibilidade precisa ser quando necessário. contínua, sem interrupção. Características relacionadas Dados são gerados em Dados gerados em alta aos bancos de dados velocidades moderadas. velocidade, por exemplo, Dados gerados a partir de sensores. poucas fontes. Dados gerados a partir de múltiplas fontes, semi ou não Dados estruturados. estruturados. Transações complexas. Moderado volume de dados. Transações simples. Alto volume de dados. 7 8 Características relacionadas aos bancos de Teorema CAP dados distribuídos e sistemas distribuídos Disponibilidade, para compartilhamento dos dados e Manter consistência após a execução de uma escalabilidade, em virtude do contínuo aumento do volume operação destas bases Disponibilidade do sistema mantê-lo em Escalabilidade horizontal operação sistema distribuído é expandido, adicionando Sistema em funcionamento mesmo que por nodos para armazenamento e processamento falhas ocorra a partição de nodos de dados à medida que volume de dados aumenta 9 10 Consistência Disponibilidade Todos clientes sistema continua a veem dados atuais, CA operar conforme independentemente esperado, mesmo de atualizações ou com falhas nos nós exclusões N/A Modelos de dados e linguagens de consulta CP AP Tolerância partições sistema continua a operar conforme esperado, apesar das falhas na rede ou nas mensagens 11 12 2Modelos de dados Linguagem de consulta Não utilizam esquema Vantagem Dados semiestruturados, aceitando novos dados Não podem realizar consultas com tantas sem realizar alterações condições e restrições na estrutura do banco Desvantagem Mariyani Sugianto, Shutterstock Não há integridade de dados 13 14 Modelo em que banco organiza os seus Modelos de dados agregados dados Categorias chave-valor, documento e família de colunas 15 16 Modelo relacional para um website de comércio eletrônico Agregação de dados para um website de comércio eletrônico /em Clientes Cliente Pedido "id":1, Id Nome Id ClienteId EnderecoEntregaId "nome" "enderecoCobranca" [{"Cidade" "Chicago"}] 1 Martin 99 1 77 } Produto EnderecoCobranca em Pedidos Id Nome Id ClienteId EndecoCobranca "id" :99, 27 NoSQL Distilled 55 1 77 "clienteId" :1, "itemPedido":[ ItemPedido Endereco "produtoId" :27, "preco" Id PedidoId ProdutoId Preco Id Cidade "produtoNome" "NoSQL Distilled" 100 99 27 32.45 77 Chicago "Cidade" "Chicago"}] "pagamentoPedido" { PagamentoPedido "numeroCartao" "1000-1000", "txnId" "abelif879rft" EnderecoCobranc Id PedidoId NumeroCartao txnId "enderecoCobranca" {"Cidade": "Chicago"} aId 33 99 1000-1000 55 abelif879rft Fonte: Sadalage Fowler, 2019, 45 17 18 3Não há uma regra universal para determinar as agregações, depende de como os dados Composto por um conjunto de objetos serão manipulados relacionados que são tratados como uma Uma única agregação do exemplo anterior unidade, facilitando a execução no cluster indica que todos os pedidos do cliente serão Quanto mais agregados estiverem os dados, acessados ao mesmo tempo menor será número de nodos, melhorando A agregação em duas partes possibilita a execução de dados pelo cluster acessar um pedido por vez 19 20 Modelo de distribuição Não use distribuição! Modelos de distribuição Um único servidor é mais facilmente e consistência gerenciado e menos complexo para os desenvolvedores Usar quando: Escalabilidade Melhoria de desempenho 21 22 Fragmentação Quanto mais agregado estiverem os dados, Copia os mesmos dados em múltiplos nodos menor será número de nodos, melhorando Distribuição a execução de dados pelo cluster Replicação Coloca dados diferentes em nodos diferentes 23 24 4Fragmentação Escalabilidade horizontal, direcionando acesso a diferentes partes de dados em Ambas as técnicas podem ser usadas de diferentes servidores forma isolada ou em conjunto Cada servidor desempenha papel de gerenciar um subconjunto de dados, que representa um fragmento, qual lê e grava seu próprio dado 25 26 Fragmentação c modelo de dados deve ser projetado com a agregação mais adequada Cada segmento lê e grava possível, possibilitando os seus próprios dados ao servidor encontrar a maior parte dos dados em um nodo Shutterstock Fonte: Elaborado com base em Sadalage Fowler, 2019, 75 27 28 Replicação Replicação mestre-escravo Mestre Copia os dados para múltiplos servidores, Todas as permitindo acesso aos dados em múltiplos atualizações são feitas no mestre As leituras podem lugares ser feitas no mestre As alterações se ou no escravo propagam para Diminui tempo de recuperação de os escravos informações e propicia escalabilidade Replicação Mestre-escravo e ponto a ponto Escravos Fonte: Elaborado com base em Sadalage Fowler, 2019, 78 29 30 5Replicação ponto a ponto Consistência Teorema CAP Distribuído = tolerância a partição Todos os nodos leem gravam Consistência eventual Os nodos todos dados comunicam suas gravações Criar recursos programáveis para estabelecer a consistência dos dados Conflitos de gravação e de leitura-gravação Controle de concorrência pessimista e otimista Fonte: Elaborado com base em Sadalage e Fowler, 2019, 80 31 32 SADALAGE, P.J.; FOWLER, NoSQL Referências Essencial: Um guia conciso para o Mundo emergente da persistência poliglota. 1. ed. São Paulo: Novatec, 2019. 33 34 6