50
NoSQL BASE vs ACID Teorema CAP Nome: Aricelio de Souza Fernandes Curso: TADS Turma: 3º Periodo

NoSQL, Base VS ACID e Teorema CAP

Embed Size (px)

DESCRIPTION

Introdução aos conceitos de NoSQL, BASE vs ACID e o Teorema CAP

Citation preview

Page 1: NoSQL, Base VS ACID e Teorema CAP

NoSQLBASE vs ACIDTeorema CAP

Nome: Aricelio de Souza Fernandes

Curso: TADS

Turma: 3º Periodo

Page 2: NoSQL, Base VS ACID e Teorema CAP

NoSQL

O que é ? Quando surgiu? Qual seu objetivo?

Page 3: NoSQL, Base VS ACID e Teorema CAP

O que é ?

É uma denominação para bancos de dados não-relacionais.

Isso não quer dizer que seus modelos não possuem relacionamentos.

E sim, que não são orientados a tabelas. Not Only SQL. (Não Apenas SQL)

Page 4: NoSQL, Base VS ACID e Teorema CAP

Quando surgiu ?

O termo foi usado pela primeira vez em 1998 para um banco de dados relacional que omitiu o uso de SQL.

O termo foi usado novamente em 2009 e usado para conferências de defensores de bancos de dados não-relacionais

Page 5: NoSQL, Base VS ACID e Teorema CAP

Qual seu Objetivo?

Atender as necessidades das aplicações, que necessitam de alta disponibilidade dos seus dados e rápido desempenho do processamento dos mesmos.

Exemplo: A google consegue processar até 20 petabytes de dados por dia armazenadas em BigTable.

Page 6: NoSQL, Base VS ACID e Teorema CAP

Principais Características

Escalabilidade Horizontal. Ausência de Esquema ou Esquema Flexível. Suporte a Replicação. API Simples. Nem Sempre é Consistente.

Page 7: NoSQL, Base VS ACID e Teorema CAP

Escalabilidade Horizontal

A escalabilidade Horizontal consiste em aumentar o número de máquinas disponíveis.

A escalabilidade Horizontal em modelos relacionais seria inviável devido a concorrência.

Como nos modelos NoSQL não existe bloqueios, esse tipo de escalabilidade é a mais viável.

Page 8: NoSQL, Base VS ACID e Teorema CAP

Ausência de Esquema ou Esquema Flexível

Apresentam ausência de Esquema ou esquema flexível, isso permite uma fácil aplicação da escalabilidade e também um aumento na disponibilidade dos dados.

Mas também devido a essa ausência, não há garantia da integridade dos dados.

Page 9: NoSQL, Base VS ACID e Teorema CAP

Suporte a Replicação

Permitem a replicação de uma forma nativa o que provém uma escalabilidade maior e também uma diminuição do tempo gasto para a recuperação de informações.

Page 10: NoSQL, Base VS ACID e Teorema CAP

API Simples

Para que o acesso ás informações seja feito da forma mais rápida possível, APIs são desenvolvidos para que qualquer aplicação possa ter acesso aos dados do banco de dados.

Page 11: NoSQL, Base VS ACID e Teorema CAP

Nem sempre Consistente

Os bancos de dados NoSQL nem sempre conseguem se manter consistentes

Page 12: NoSQL, Base VS ACID e Teorema CAP

Técnicas para Implementação

Map/Reduce. Consistent Hashing. Multiversion Concurrency Control. Vector Clocks.

Page 13: NoSQL, Base VS ACID e Teorema CAP

Map Reduce

Map: O nó principal recebe os dados, divide em partes menores e as envia aos outros nós para serem processados. Ao final do processamento estes nós devolvem o resultado ao nó principal.

Reduce: O nó principal combina as respostas obtidas pelos outros nós gerando o resultado final do processamento.

Page 14: NoSQL, Base VS ACID e Teorema CAP

Consistent Hashing

Essa funcionalidade tem a função de suportar o mecanismos de armazenamento e recuperação em bancos de dados distribuídos.

Page 15: NoSQL, Base VS ACID e Teorema CAP

Multiversion Concurrency Control

O MVCC dá suporte a transações paralelas em um banco de dados. Por não utilizar bloqueios ele permite que operações de leitura e escrita sejam efetuadas simultaneamente, diferente do esquema clássico de gerenciamento de transações.

Page 16: NoSQL, Base VS ACID e Teorema CAP

Vector Clocks

Determina qual versão de um dado distribuído é a mais atual. Devido há muitas operações que possam ocorrer com esse dado.

Page 17: NoSQL, Base VS ACID e Teorema CAP

Principais Modelos de NoSQL

Banco de dados chave-valor (key-value). Banco de dados Orientado a Colunas. Banco de dados Orientado a Documentos. Banco de dados Orientado a Grafos.

Page 18: NoSQL, Base VS ACID e Teorema CAP

Banco de dados chave-valor (key-value) Modelo mais simples. Permite a visualização do banco

como uma grande tabela. Todo o banco é composto por um

conjunto de chaves que estão associadas a um único valor.

Page 19: NoSQL, Base VS ACID e Teorema CAP

Exemplo:

Page 20: NoSQL, Base VS ACID e Teorema CAP

Banco de dados Orientado a Colunas. Um pouco mais complexos. Os dados são indexados por uma tripla (linha,

coluna e timestramp). As linhas e as colunas são identificadas por

chaves e o timestramp é o que permite identificar as diferentes versões de um mesmo dado.

Page 21: NoSQL, Base VS ACID e Teorema CAP

Exemplo:

Características:• Permiti Particionamento.• Forte Consistência.• Não garante alta disponibilidade.

Page 22: NoSQL, Base VS ACID e Teorema CAP

Banco de dados Orientado a Documentos

Armazena uma coleção de documentos. Um documento no geral, é um objeto com um

código único e um conjunto de campos, que podem ser strings, listas ou documentos aninhados.

Sua estrutura se assemelha com de chave-valor.

Page 23: NoSQL, Base VS ACID e Teorema CAP

Não depende de um esquema rígido, ou seja, não há exigência de uma estrutura fixa.

Dentre os bancos de dados que utilizam esse modelo podemos citar o CouchDB e o MongoDB.

Page 24: NoSQL, Base VS ACID e Teorema CAP

Banco de dados Orientado a Grafos

Neste modelo, o banco pode ser comparado com um multigrafo rotulado e direcionado, onde cada nó pode ser conectado por mais de uma aresta.

Possui três componentes básicos: os nós (são os vértices do grafo), os relacionamentos (são as arestas) e as propriedades (ou atributos) dos nós e relacionamentos.

Page 25: NoSQL, Base VS ACID e Teorema CAP
Page 26: NoSQL, Base VS ACID e Teorema CAP

BASE vs ACID

Propriedades ACID: Atomicidade: A transação será executada

totalmente ou não será executada. Consistência: Garante que o banco de dados

passará de uma forma consistente para outra forma consistente.

Isolamento: Garante que a transação não será interferida por nenhuma outra transação concorrente.

Durabilidade: Garante que o que foi salvo, não será mais perdido.

Page 27: NoSQL, Base VS ACID e Teorema CAP

BASE vs ACID

Propriedades BASE: Basically Available – Basicamente Disponível. Soft-State – Estado Leve Eventually Consistent – Eventualmente Consistente.

Uma aplicação funciona basicamente todo o tempo (Basicamente Disponível), não tem de ser consistente todo o tempo (Estado Leve) e o sistema torna-se consistente no momento devido (Eventualmente Consistente).

Page 28: NoSQL, Base VS ACID e Teorema CAP

Tabela de ComparaçãoACID BASE

Consistência forte Fraca consistência

Isolamento Foco em Disponibilidade

Concentra-se em "commit" Melhor esforço

Transações aninhadas Respostas aproximadas

Disponibilidade Mais simples e mais rápido

Conservador (pessimista) Agressivo (otimista)

Evolução difícil (por exemplo, esquema) Evolução mais fácil

Page 29: NoSQL, Base VS ACID e Teorema CAP

Teorema CAP Definição

• Consistência – Consistency.

• Disponibilidade – Availability.

• Tolerância ao Particionamento - Partition tolerance.

Page 30: NoSQL, Base VS ACID e Teorema CAP

Consistency - Consistência

Significa se um sistema esta consistente, após a execução de uma operação. Por exemplo um sistema é considerado consistente se depois da atualização de um dado, todos os usuários que tem acesso a esse dado, possam acessá-lo em tempo real.

Page 31: NoSQL, Base VS ACID e Teorema CAP

Availability - Disponibilidade

Refere-se á concepção e implementação de um sistema de modo que seja assegurado que esse permanece ativo durante um determinado período de tempo.

Page 32: NoSQL, Base VS ACID e Teorema CAP

Partition tolerance – Tolerância ao Particionamento

Refere-se a capacidade de um sistema continuar operando mesmo depois uma falha na rede.

Page 33: NoSQL, Base VS ACID e Teorema CAP

Consistência

Tolerância ao Particionamento

Disponibilidade

Page 34: NoSQL, Base VS ACID e Teorema CAP
Page 35: NoSQL, Base VS ACID e Teorema CAP

Sistemas CA

• Os sistemas com consistência forte e alta disponibilidade não sabem lidar com a possível falha de uma partição.

• Caso ocorra, sistema inteiro pode ficar indisponível até o membro do cluster voltar.

Page 36: NoSQL, Base VS ACID e Teorema CAP

Consistência

Tolerância ao Particionamento

Disponibilidade

Page 37: NoSQL, Base VS ACID e Teorema CAP

Sistemas CP

• Para sistemas que precisam da consistência forte e tolerância a particionamento é necessário abrir a mão da disponibilidade (um pouco).

• Exemplos são BigTable, HBase ou MongoDB entre vários outros.

Page 38: NoSQL, Base VS ACID e Teorema CAP

Consistência

Tolerância ao Particionamento

Disponibilidade

Page 39: NoSQL, Base VS ACID e Teorema CAP

Sistemas APHá sistemas que jamais podem ficar offline, portanto não desejam sacrificar a disponibilidade. Para ter alta disponibilidade mesmo com um tolerância a particionamento é preciso prejudicar a consistência. Exemplos de Bancos são: Cassandra, MongoB, Voldemort.

Page 40: NoSQL, Base VS ACID e Teorema CAP

Consistência

Tolerância ao Particionamento

Disponibilidade

Page 41: NoSQL, Base VS ACID e Teorema CAP
Page 42: NoSQL, Base VS ACID e Teorema CAP

Para que é indicado o NoSQL ?

Indicado para aplicações que irão trabalhar com enormes quantidades de dados, que tem exigências de velocidade em suas consultas e escritas em grande volumes de dados.

Page 43: NoSQL, Base VS ACID e Teorema CAP

Principais sistemas no mercado

MongoDB CouchDB Cassandra Project Valdemort (by Linkedin) Redis (by Google) HBase (by Apache) Dynamo (by Amazon) dentre muitos outros…

Page 44: NoSQL, Base VS ACID e Teorema CAP

Principais utilizadores do NoSQL

Google - Bigtable. Amazon - Dynamo. Yahoo - Hadoop. Facebook - Cassandra. Digg - Cassandra. Twitter - Cassandra. IBM - Cassandra. Netflix - Cassandra. LinkedIn - Voldemort. Engine Yard - MongoDB.

Page 45: NoSQL, Base VS ACID e Teorema CAP

MySQL ndb Cluster MySQL Cluster é um gravador-escalável, em

tempo real, projetado para oferecer 99,999% de disponibilidade. Com uma arquitetura multi-master distribuída e nenhum ponto de falha, o MySQL Cluster escala horizontalmente em hardware com auto-particionamento para servir a ler e escrever cargas de trabalho intensivas, acessado via SQL e interface NoSQL.

Prove alta disponibilidade e alto desempenho, com escalabilidade horizontal.

Page 46: NoSQL, Base VS ACID e Teorema CAP
Page 47: NoSQL, Base VS ACID e Teorema CAP

Passos para a Instalação 1. Download

link: http://dev.mysql.com/downloads/cluster/

2. Instalação.

Localizar o arquivo, extrai-lo e criar um link para o mesmo.

3. Configuração.

Criar a pasta que irá armazenar os arquivos de configuração.

My.cnf e Config.ini

4. Execução.

Iniciar o processo do nó de gerenciamento, nó de dados e por último o mysql.

5. Teste.

Criar uma tabela no nó de gerenciamento e inserir dados no mesmo.

Page 48: NoSQL, Base VS ACID e Teorema CAP

Conclusão

Principais focos do NoSQL:

Desempenho das aplicações mediante a uma enorme quantidade de dados.

Escalabilidade horizontal.

Fácil implantação e uso dos bancos de dados NoSQL.

O NoSQL não veio para substituir o modelo relacional, mas sim tentar suprir as novas necessidades das aplicações tem hoje.

Fazendo então assim que possa gerenciar os seus dados de uma forma mais eficiente.

Page 49: NoSQL, Base VS ACID e Teorema CAP

Dúvidas ?

Page 50: NoSQL, Base VS ACID e Teorema CAP

Obrigado!