23
ESTUDO COMPARATIVO ENTRE BANCO DE DADOS RELACIONAIS, NOSQL E NEWSQL Acadêmico: Orlando Vitali Werner Orientador: Gustavo Bisognim

Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Embed Size (px)

Citation preview

Page 1: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

ESTUDO COMPARATIVO ENTRE BANCO DE DADOS RELACIONAIS, NOSQL E NEWSQL

Acadêmico: Orlando Vitali WernerOrientador: Gustavo Bisognim

Page 2: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Estrutura

• Introdução

• Objetivo geral

• Objetivos específicos

• Fundamentação teórica

• Metodologia

• Comparação entre modelos de bancos de dados

• Conclusão

Page 3: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Introdução• Modelos de dados, bancos relacionais e NoSQL;

• NewSQL, conceito de bancos de dados recente ainda com poucos estudos ;

• Comparar NewSQL com as tecnologias relacionais e NoSQL;

• Quais as vantagens e desvantagens de cada um dos modelos de bancos de dados.

Page 4: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Objetivo geral

• Gerar uma base de conhecimento sobre cada um dos modelos de bancos de dados na teoria e na pratica, avaliando suas características notando os pós e contras de cada modelo a fim de facilitar a identificação de qual o modelo de dados ideal para cada situação.

Page 5: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Objetivos específicos• Analisar a fundamentação teórica por trás dos bancos de dados e seus

modelos;

• Comparar diretamente características de cada banco de dados, permitindo visualizar as principais diferenças entre cada modelo;

• Verificar na pratica o comportamento de cada modelo de bancos de dados, avaliando suas usabilidades, facilidades de uso e desempenhos;

• Conhecer métodos de avaliação de bancos de dados e em que casos devem-se basear nesses métodos ao escolher um SGBD;

• Ampliar os conhecimentos técnicos e teóricos sobre o modelo NewSQL, por ser um modelo recente e que une características de dois modelos distintos de bancos de dados, criando uma base de conhecimento para pesquisas futuras.

Page 6: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Fundamentação teórica • O que são bancos de dados

– Sistemas de gerenciamentos de bancos de dados e Modelos de dados

• Modelos de rede e hierárquico• Modelo relacional, E/R e orientados a objetos

Modelo de dados de rede

Modelo de dados hierárquico

Page 7: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Fundamentação teórica - RDBMS

– Estruturado, SQL, ACID (Atomicidade, Consistência, Disponibilidade, Durabilidade).

número_conta nome_agência saldoA-101 Downtown 500A-102 Perryridge 400A-201 Brighton 900A-215 Mianus 700A-217 Brighton 750A-222 Redwood 700A-305 Round Hill 350

Page 8: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Fundamentação teórica - NoSQL

• Chave-valor, orientado a colunas, orientado a documentos;

• Consistência eventual, Teorema CAP (Consistency,

Availability, Partitions tolerance);

• Bancos distribuídos e de alto desempenho.

Chave-valor Orientado a documentos

Page 9: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Fundamentação teórica - NewSQL

• Bancos de dados relacionais com suporte a SQL, ACID;

• Bancos distribuídos e de alto desempenho;

• Características de bancos relacionais e de bancos NoSQL.

Page 10: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

MetodologiaComparação de características

• Levantar características gerais de SGBDs atuais independentes do modelo;

• Determinar bancos de dados de cada modelo a ser avaliado;

• Montar matriz de comparação Características/Modelo de banco.

Avaliação pratica RDBMS x NewSQL e NoSQL x NewSQL• Determinar o tipo de avaliação

pratica;

• Instalar bancos de dados e montar os cenários de testes;

• Executar testes;

• Gerar gráficos de com os resultados obtidos nos testes.

Page 11: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Comparação de características  RDBMS NewSQL NoSQL  MySQL PostgreSQL NuoDB MySQL Cluster MongoDB Cassandra

Conceitos de transações (ACID) ACID ACID ACID ACIDAtomicidade em

operações em apenas um documento

Atomicidade e Isolamento são suportados em algumas operações

Linguagem de consulta, definição e manipulação SQL SQL SQL SQL Própria CQL

Método de partição Não possui Não possuiDados dinamicamente alocados nos nós de

leitura e escrita

Particionamento horizontal (Sharding)

Particionamento horizontal (Sharding)

Particionamento horizontal (Sharding)

Método de replicação Mestre-escravo Mestre-escravoGerenciado de forma

transparente pelo SGBD

Mestre-escravo Mestre-escravo De acordo com a

estratégia configurada e do fator de replicação

Índices Possui Possui Possui Possui Possui RestritoSchema Possui Possui Possui Possui Livre LivreStore Procedures/Triggers Possui Possui Possui Possui Não possui PossuiChaves Possui Possui Possui Possui Não possui Não possui

Método de armazenamento Relacional Relacional Relacional Relacional Documento Orientado a colunas

Disponibilidade Baixa Baixa Alta Alta Alta AltaTolerância a Partição Fraca Fraca Forte Forte Forte Forte

Atomicidade Possui Possui Possui Possui Operações em apenas um documento Em operações singulares

Consistência Possui Possui Possui Possui Consistência eventual ou imediata

Consistência eventual ou imediata

Isolamento Possui Possui Possui Possui Manual Em operações singulares

CAP CA CA CAP CAP AP APDurabilidade Possui Possui Opcional Possui Opcional PossuiTipagem Forte Forte Forte Forte Fraca FracaControle de concorrência Possui Possui Possui Possui Possui Possui

Page 12: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica

• Originalmente foi proposto desenvolver os testes em uma aplicação web;

• Foram selecionados 2 benchmarks já consolidados, TPC-C e YCSB para aferir mais segurança e veracidade aos testes;

Page 13: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – TPC-C• O TPC-C é um teste de carga que simula um sistema de vendas

com controle de estoque e faturamento;

• O desempenho do banco é medido de acordo com a quantidade de novos pedidos feitos dentro de um período de tempo;

• Tipo de transações executas: Pedido, Pagamento, Entrega, Verificação de estoque, Verificação de situação do pedido.

Page 14: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – YCSB• Yahoo! Cloud Serving Benchmark. Uma coletanea de micro-benchmarks para

bancos distribuidos;

• Possui 6 testes básicos:– Leitura e escrita;

– Maioria leitura;

– Somente leitura;

– Leitura dos ultimos;

– Intervalos;

– Leitura, alteração e escrita.

• Nos testes realizados, utilizamos o teste de Maioria leitura, por se tratar de um teste que representa, de maneira genérica, a usabilidade dos bancos distribuídos atualmente.

Page 15: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – TPC-C

Resultados dos testes com um nó• Rendimento mínimo: 2,689

req/sec com 1 conexão com o NuoDB;

• Rendimento máximo: 362,181 req/sec com 100 conexões com o MySQL Cluster;

• Latência Mínima: 99,818 µs com 1 conexão com o MySQL Cluster;

• Latencia Máxima: 12194,666 com 100 conexões com o MySQL.

Page 16: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – TPC-CResultados dos testes com 2 nós para bancos NewSQL• Com 2 nós o desempenho do

MySQL Cluster caiu consideravelmente;

• O NuoDB manteve basicamente o mesmo desempenho;

Page 17: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – YCSB - NuoDB

Rendimento Latência• Mínimo : 8,664 ops/sec com 2 nós e 1

conexão;

• Máximo : 146,806 ops/sec com 1 nó e 10 conexões.

• Mínima : 19345,647 µs com 1 nó e 1 conexão;

• Máxima : 2035480,460 µs com 2 nó e 100 conexões;

Page 18: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – YCSB – MySQL Cluster

Rendimento Latência• Mínimo : 28,958 ops/sec com 2 nós e

1 conexão;

• Máximo : 1346,463 ops/sec com 1 nó e 100 conexões.

• Mínima : 8461,893 µs com 1 nó e 10 conexões;

• Máxima : 1498996,231 µs com 2 nó e 100 conexões;

Page 19: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – YCSB - Cassandra

Rendimento Latência• Mínimo : 67,476 ops/sec com 1 nós e

1 conexão;

• Máximo : 15703,050 ops/sec com 2 nó e 100 conexões.

• Mínima : 581,583 µs com 2 nós e 10 conexões;

• Máxima : 19345,647 µs com 2 nó e 1 conexão;

Page 20: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Avaliação pratica – YCSB - MongoDB

Rendimento Latência• Mínimo : 1823,227 ops/sec com 1 nós

e 1 conexão;

• Máximo : 23959,048 ops/sec com 2 nó e 10 conexões.

• Mínima : 93,397 µs com 2 nós e 1 conexão;

• Máxima : 4678,874 µs com 2 nó e 100 conexões;

Page 21: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Limitações

• Tempo de execução dos testes limitados a apenas 1 minuto por teste;

• Hardware utilizado é de uso pessoal e com discrepância de desempenho;

• Quantidade de nós utilizados nós cluster consideravelmente baixo.

Page 22: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Conclusão• Modelos de bancos distintos e com propósitos diferentes;

• Assim como os bancos NoSQL, os bancos relacionais continuam evoluindo;

• Existe uma maior dependência do mercado por bancos distribuídos, porém o mercado não está pronto pra abrir mão dos bancos relacionais;

• Bancos NewSQL ainda são novos e imaturos, carecem de recursos e APIs ainda;

• Existe uma tendência de crescimento do modelo NewSQL e transformações de bancos RDBMS comuns em bancos NewSQL.

Page 23: Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL

Obrigado!