SlideShare uma empresa Scribd logo
1 de 50
NoSQL
BASE vs ACID
Teorema CAP
Nome: Aricelio de Souza Fernandes
Curso: TADS
Turma: 3º Periodo
O que é ?
Quando surgiu?
Qual seu objetivo?
É 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)
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
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.
Escalabilidade Horizontal.
Ausência de Esquema ou Esquema Flexível.
Suporte a Replicação.
API Simples.
Nem Sempre é Consistente.
 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.
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.
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.
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.
Os bancos de dados NoSQL nem sempre
conseguem se manter consistentes
Map/Reduce.
Consistent Hashing.
Multiversion Concurrency Control.
Vector Clocks.
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.
Essa funcionalidade tem a função de suportar o
mecanismos de armazenamento e
recuperação em bancos de dados distribuídos.
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.
Determina qual versão de um dado distribuído
é a mais atual. Devido há muitas operações
que possam ocorrer com esse dado.
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.
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.
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.
Características:
• Permiti Particionamento.
• Forte Consistência.
• Não garante alta disponibilidade.
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.
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.
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.
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.
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).
ACID 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
Definição
• Consistência – Consistency.
• Disponibilidade – Availability.
• Tolerância ao Particionamento - Partition tolerance.
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.
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.
Refere-se a capacidade de um sistema
continuar operando mesmo depois uma falha
na rede.
Consistência
Tolerância ao
Particionamento
Disponibilidade
• 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.
Consistência
Tolerância ao
Particionamento
Disponibilidade
• 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.
Consistência
Tolerância ao
Particionamento
Disponibilidade
Há 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.
Consistência
Tolerância ao
Particionamento
Disponibilidade
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.
MongoDB
CouchDB
Cassandra
Project Valdemort (by Linkedin)
Redis (by Google)
HBase (by Apache)
Dynamo (by Amazon)
dentre muitos outros…
 Google - Bigtable.
 Amazon - Dynamo.
 Yahoo - Hadoop.
 Facebook - Cassandra.
 Digg - Cassandra.
 Twitter - Cassandra.
 IBM - Cassandra.
 Netflix - Cassandra.
 LinkedIn - Voldemort.
 Engine Yard - MongoDB.
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.
 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.
 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.
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP

Mais conteúdo relacionado

Mais procurados

Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Segurança em banco de dados
Segurança em banco de dadosSegurança em banco de dados
Segurança em banco de dadosArthur Azevedo
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraNatanael Simões
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0César Augusto Pessôa
 
Introdução à Neo4j
Introdução à Neo4j Introdução à Neo4j
Introdução à Neo4j Neo4j
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaDaniel Arndt Alves
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Leinylson Fontinele
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Gustavo Zimmermann
 
Árvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoÁrvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoEverson Wolf
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 

Mais procurados (20)

Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Segurança em banco de dados
Segurança em banco de dadosSegurança em banco de dados
Segurança em banco de dados
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeiraBanco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
Banco de Dados - Modelo Lógico, Chave primária e Chave estrangeira
 
Algoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e MatrizesAlgoritmo 06 - Array e Matrizes
Algoritmo 06 - Array e Matrizes
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Introdução à Neo4j
Introdução à Neo4j Introdução à Neo4j
Introdução à Neo4j
 
Conceitos iniciais de Active Directory
Conceitos iniciais de Active DirectoryConceitos iniciais de Active Directory
Conceitos iniciais de Active Directory
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Estrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da DisciplinaEstrutura de Dados II - Apresentação da Disciplina
Estrutura de Dados II - Apresentação da Disciplina
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
Banco de Dados I - Aula 05 - Banco de Dados Relacional (Modelo Conceitual)
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)
 
Árvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoÁrvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programação
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 

Destaque

Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 
NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?Nico Steppat
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
Databases, CAP, ACID, BASE, NoSQL... oh my!
Databases, CAP, ACID, BASE, NoSQL... oh my!Databases, CAP, ACID, BASE, NoSQL... oh my!
Databases, CAP, ACID, BASE, NoSQL... oh my!DATAVERSITY
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisCarlo Pires
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
Agenda pentru Romania Digitala
Agenda pentru Romania DigitalaAgenda pentru Romania Digitala
Agenda pentru Romania DigitalaTotalSoft
 
Criação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e Python
Criação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e PythonCriação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e Python
Criação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e PythonLeandro Mendes Ferreira
 
NoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DBNoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DBsadegh salehi
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - ApresentaçãoTerra / Neo
 
MongoDB: introdução à sua próxima base de dados
MongoDB:  introdução à sua próxima base de dadosMongoDB:  introdução à sua próxima base de dados
MongoDB: introdução à sua próxima base de dadosJordan Kobellarz
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 

Destaque (20)

Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
Databases, CAP, ACID, BASE, NoSQL... oh my!
Databases, CAP, ACID, BASE, NoSQL... oh my!Databases, CAP, ACID, BASE, NoSQL... oh my!
Databases, CAP, ACID, BASE, NoSQL... oh my!
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Agenda pentru Romania Digitala
Agenda pentru Romania DigitalaAgenda pentru Romania Digitala
Agenda pentru Romania Digitala
 
Criação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e Python
Criação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e PythonCriação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e Python
Criação de Data Warehouse em Banco de Dados NoSQL com Cassandra, Spark e Python
 
DynamoDB - Uma Introdução
DynamoDB - Uma IntroduçãoDynamoDB - Uma Introdução
DynamoDB - Uma Introdução
 
Cassandra
CassandraCassandra
Cassandra
 
NoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DBNoSQL Database- cassandra column Base DB
NoSQL Database- cassandra column Base DB
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 
MongoDB: introdução à sua próxima base de dados
MongoDB:  introdução à sua próxima base de dadosMongoDB:  introdução à sua próxima base de dados
MongoDB: introdução à sua próxima base de dados
 
Workshop MongoDB
Workshop MongoDBWorkshop MongoDB
Workshop MongoDB
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 

Semelhante a NoSQL, Base VS ACID e Teorema CAP

Semelhante a NoSQL, Base VS ACID e Teorema CAP (20)

No sql std
No sql stdNo sql std
No sql std
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
xxx no sequel
xxx no sequelxxx no sequel
xxx no sequel
 
Nosql
NosqlNosql
Nosql
 
Banco de Dados NoSql - JornalJava
Banco de Dados NoSql - JornalJavaBanco de Dados NoSql - JornalJava
Banco de Dados NoSql - JornalJava
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Apresentação new sql
Apresentação new sqlApresentação new sql
Apresentação new sql
 
Introdução ao Nosql
Introdução ao NosqlIntrodução ao Nosql
Introdução ao Nosql
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
NoSQL: Perdas e Ganhos
NoSQL: Perdas e GanhosNoSQL: Perdas e Ganhos
NoSQL: Perdas e Ganhos
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
 
MAC5855 - NoSQL
MAC5855 - NoSQLMAC5855 - NoSQL
MAC5855 - NoSQL
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativas
 

Mais de Aricelio Souza

Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoAricelio Souza
 
Metodologia Ágil Scrum
Metodologia Ágil ScrumMetodologia Ágil Scrum
Metodologia Ágil ScrumAricelio Souza
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMAricelio Souza
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAAricelio Souza
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Aricelio Souza
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Ataques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAtaques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAricelio Souza
 
Documentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingDocumentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingAricelio Souza
 

Mais de Aricelio Souza (9)

Testes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de CódigoTestes de Caixa Branca e Métricas de Código
Testes de Caixa Branca e Métricas de Código
 
Metodologia Ágil Scrum
Metodologia Ágil ScrumMetodologia Ágil Scrum
Metodologia Ágil Scrum
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Tipos de Servidores
Tipos de ServidoresTipos de Servidores
Tipos de Servidores
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAA
 
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
Comparativo tecnico entre tecnologias de banco de dados: Relacional, NoSQL, N...
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Ataques DOS, DDOS e Scamming
Ataques DOS, DDOS e ScammingAtaques DOS, DDOS e Scamming
Ataques DOS, DDOS e Scamming
 
Documentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e ScammingDocumentação Ataques DOS, DDOS e Scamming
Documentação Ataques DOS, DDOS e Scamming
 

Último

Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...ArianeLima50
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 

Último (20)

Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 

NoSQL, Base VS ACID e Teorema CAP

  • 1. NoSQL BASE vs ACID Teorema CAP Nome: Aricelio de Souza Fernandes Curso: TADS Turma: 3º Periodo
  • 2. O que é ? Quando surgiu? Qual seu objetivo?
  • 3. É 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)
  • 4. 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
  • 5. 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.
  • 6. Escalabilidade Horizontal. Ausência de Esquema ou Esquema Flexível. Suporte a Replicação. API Simples. Nem Sempre é Consistente.
  • 7.  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.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. Os bancos de dados NoSQL nem sempre conseguem se manter consistentes
  • 13. 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.
  • 14. Essa funcionalidade tem a função de suportar o mecanismos de armazenamento e recuperação em bancos de dados distribuídos.
  • 15. 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.
  • 16. Determina qual versão de um dado distribuído é a mais atual. Devido há muitas operações que possam ocorrer com esse dado.
  • 17. 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.
  • 18. 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.
  • 19.
  • 20. 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.
  • 21. Características: • Permiti Particionamento. • Forte Consistência. • Não garante alta disponibilidade.
  • 22. 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.
  • 23. 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.
  • 24. 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.
  • 25.
  • 26. 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.
  • 27. 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).
  • 28. ACID 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
  • 29. Definição • Consistência – Consistency. • Disponibilidade – Availability. • Tolerância ao Particionamento - Partition tolerance.
  • 30. 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.
  • 31. 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.
  • 32. Refere-se a capacidade de um sistema continuar operando mesmo depois uma falha na rede.
  • 34.
  • 35. • 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.
  • 37. • 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.
  • 39. Há 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.
  • 41.
  • 42. 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.
  • 43. MongoDB CouchDB Cassandra Project Valdemort (by Linkedin) Redis (by Google) HBase (by Apache) Dynamo (by Amazon) dentre muitos outros…
  • 44.  Google - Bigtable.  Amazon - Dynamo.  Yahoo - Hadoop.  Facebook - Cassandra.  Digg - Cassandra.  Twitter - Cassandra.  IBM - Cassandra.  Netflix - Cassandra.  LinkedIn - Voldemort.  Engine Yard - MongoDB.
  • 45. 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.
  • 46.
  • 47.  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.
  • 48.  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.