RDBMS x NoSQL x NewSQL

Preview:

Citation preview

RDMS, NOSQL E NEWSQLVisão geral entre os principais modelos de bancos de dados atuais

OBJETIVOS Dar uma visão geral sobre as caracteristicas e diferenças

entre os bancos relacionais e bancos NoSQL; Compartilhar conhecimento;

O QUE SÃO BANCOS DE DADOS?• Um banco de dados é um sistema para armazenamento de

qualquer tipo de dados eletrônicos;• E um SGBD (Sistema Gerenciador de banco de dados)?

É um sistema que facilita o acesso e o gerenciamento do banco de dados, além de fornecer diversos outros recursos;

BANCOS RELACIONAIS (RDBMS)• Estruturado;• SQL;• ACID (Atomicidade, Consistência,

Disponibilidade, Durabilidade);

•TABELASnúmero_conta nome_agência saldo

A-101 Downtown 500A-102 Perryridge 400A-201 Brighton 900A-215 Mianus 700A-217 Brighton 750A-222 Redwood 700A-305 Round Hill 350

PRÓS E CONTRASPrós Padronizado; Linguagem de consulta robusta

e eficiente (SQL); Seguro (ACID); Modelo fácil de entender; Triggers; Joins; Chaves compostas; Estruturado; ...

Contras Escalamento vertical; Difícil e caro de particionar e

escalar horizontalmente, quando possível;

Modelagem não atende a todos os casos; Não gerencia com muita eficiência dados não estruturados/mídias;

Estruturado; ...

BANCOS NOSQL Não estruturados;

Consistência eventual, Teorema CAP (Consistency, Availability, Partitions tolerance);

Bancos distribuídos e de alto desempenho;

Rodam em memoria principal;

Dados armanezados em forma de Grafos, Search-Engines, Chave-Valor, Documentos, Wide Colunms....

MAS COMO ASSIM??

Wide Column

Documentos Search-Engine

Grafos

Chave-Valor

PRÓS E CONTRASPrós Alto desempenho; Facilmente escaláveis

horizontalmente; Diversidades de modelos; APIs Simplificadas; Commodities Hardware; Schema flexível; Alta disponibilidade; Gerenciam bem dados não

estruturados/mídias e em grande quantidade;

...

Contras

Schema flexível; Não é tão seguro; Consistência eventual; Ferramentas precárias; Não há uma linguagem

de consulta padronizada; ...

E BANCOS NEWSQL? NewSQL é um conceito de banco de dados relacional distribuído;

Utilizam pontos fortes dos modelos relacional e NoSQL;• Mais TABELAS, mas pelo menos

é distribuído..número_conta nome_agência saldo

A-101 Downtown 500A-102 Perryridge 400A-201 Brighton 900A-215 Mianus 700A-217 Brighton 750A-222 Redwood 700A-305 Round Hill 350

PRÓS E CONTRASPrós Padronizado; Linguagem de consulta robusta e eficiente (SQL); Seguro (ACID); Modelo fácil de entender; Triggers; Joins; Chaves compostas; Estruturado;

Alto desempenho; Facilmente escaláveis horizontalmente; Commodities Hardware; Alta disponibilidade;

Contras Modelagem não atende a todos os

casos; Não gerencia com muita eficiência dados não estruturados/mídias;

Estruturado;

Ferramentas precárias; Conceito bastante novo (2011); Imaturos e instáveis; Não possuem ainda tantos recursos

como os modelos relacionais e NoSQL;

...

RESUMINDO....Bancos relacionais Padrões SQL Durabilidade Triggers Chaves estrangeiras Chaves compostas Transações Relacional Segurança

NoSQL Flexibilidade Grafos Armazenamento em chave-

valor Documentos Escalabilidade Commodity hardware RAM Distribuído Desempenho

NEWSQL Padrões SQL Durabilidade Triggers Chaves estrangeiras Chaves compostas Transações Relacional Segurança

Escalabilidade Commodity hardware RAM Distribuído Desempenho

BANCOS RELACIONAIS

Bancos NoSQL

Bancos NewSQL

ENTÃO... QUAL BANCO DEVO UTILIZAR? Como sempre a resposta é depende do pra que vai ser

utilizado; Bancos relacionais costumam ser mais seguros; Bancos NoSQL costumam ser mais rápidos;

Ninguém falou que não pode ser utilizado mais de um modelo em um mesmo sistema

NA MINHA OPINIÃO...

RDMS RDMS

Garantir a persistência e segurança dos

dados

Search-Engine CV ou WC Grafo Documentos

Pesquisar nos dados do sistema

Log, inserções e leituras em massa

Usuários, social, rotas...

Anexos, mídias, ...

Aplicação

OBRIGADO!

Recommended