nosql, base vs acid e teorema cap
DESCRIPTION
Introdução aos conceitos de NoSQL, BASE vs ACID e o Teorema CAPTRANSCRIPT
![Page 1: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/1.jpg)
NoSQLBASE vs ACIDTeorema CAP
Nome: Aricelio de Souza Fernandes
Curso: TADS
Turma: 3º Periodo
![Page 2: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/2.jpg)
NoSQL
O que é ? Quando surgiu? Qual seu objetivo?
![Page 3: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/11.jpg)
Nem sempre Consistente
Os bancos de dados NoSQL nem sempre conseguem se manter consistentes
![Page 12: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/12.jpg)
Técnicas para Implementação
Map/Reduce. Consistent Hashing. Multiversion Concurrency Control. Vector Clocks.
![Page 13: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/19.jpg)
Exemplo:
![Page 20: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/21.jpg)
Exemplo:
Características:• Permiti Particionamento.• Forte Consistência.• Não garante alta disponibilidade.
![Page 22: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/25.jpg)
![Page 26: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/29.jpg)
Teorema CAP Definição
• Consistência – Consistency.
• Disponibilidade – Availability.
• Tolerância ao Particionamento - Partition tolerance.
![Page 30: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/33.jpg)
Consistência
Tolerância ao Particionamento
Disponibilidade
![Page 34: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/34.jpg)
![Page 35: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/36.jpg)
Consistência
Tolerância ao Particionamento
Disponibilidade
![Page 37: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/38.jpg)
Consistência
Tolerância ao Particionamento
Disponibilidade
![Page 39: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/40.jpg)
Consistência
Tolerância ao Particionamento
Disponibilidade
![Page 41: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/41.jpg)
![Page 42: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/46.jpg)
![Page 47: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/49.jpg)
Dúvidas ?
![Page 50: NoSQL, Base VS ACID e Teorema CAP](https://reader033.vdocuments.net/reader033/viewer/2022061506/557cd2c1d8b42a4b6b8b45cf/html5/thumbnails/50.jpg)
Obrigado!