SlideShare uma empresa Scribd logo
NoSQL e NewSQL
Altierres Washington
Marcelo Henrique
Sumário
● NoSQL
○ O que é NoSQL?
○ Sobre NoSQL
○ Características
○ Modelos de banco de dados NoSQL
○ Chave-valor (key-value)
○ Orientado a documentos
○ Orientado a colunas
○ Orientado a grafos
○ SQL vs NoSQL
Sumário
● MongoDB
○ O que é MongoDB?
○ Instalação MongoBD no Ubuntu
○ Comando básicos
Sumário
● NewSQL
○ O que é NewSql?
○ Sobre o NewSQL
○ Características
○ NewSQL x NoSQL
○ Vantagens e Desvantagens
Sumário
● Redis
○ O que é Redis?
○ Sobre o Redis
○ Funcionabilidade
○ Exemplo de código
O que é NoSQL?
O termo NoSQL foi primeiramente utilizado em 1998 como o nome de um
banco de dados não relacional de código aberto.
Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente
distinto do modelo relacional e portanto deveria ser mais apropriadamente
chamado "NoREL" ou algo que produzisse o mesmo efeito".
Sobre NoSQL
Em 2006, o artigo: BigTable: A Distributed Storage System for Structured
Data, publicado pelo Google em 2006, traz novamente à tona o conceito NoSQL.
A partir de então, os bancos de dados não relacionais passaram a ser
conhecidos como NoSQL, e com crescente popularização das redes sociais, a
geração de conteúdo por dispositivos móveis bem como o número cada vez maior
de pessoas e dispositivos conectados, faz com que o trabalho de armazenamento
de dados com o objetivo de utilizá-los em ferramentas analíticas, comece a
esbarrar nas questões de escalabilidade e custos de manutenção desses dados.
Características
● Escalabilidade Horizontal
● Ausência de esquema (Schema-free) ou esquema flexível
● Suporte nativo a replicação
● API simples para acessar o banco de dados
● Consistência eventual
● Map/reduce
● Consistent hashing
● MVCC (Multiversion concurrency control)
● Vector clocks
Modelos de banco de dados NoSQL
● Existem vários modelos
● Abordaremos brevemente 4 deles
○ Chave-Valor
○ Orientado a documentos
○ Orientado a colunas
○ Orientado a grafos
Chave-valor (key-value)
Este modelo é considerado simples e permite a sua visualização através de
uma tabela de hash, no qual há uma chave única e um indicador de determinado
dado, podendo ser uma String ou um binário.
Orientado a documentos
Como o próprio nome sugere, este modelo armazena coleções e documentos.
Explicando melhor, um documento, no geral, é um objeto identificador único e um conjunto
de campos que podem ser strings, listas ou documentos aninhados.
Orientado a colunas
Este tipo de banco de dados foi criado para armazenar e processar uma grande
quantidade de dados distribuídos em diversas máquinas.
As chaves ainda existem, mas neste caso, elas apontam para atributos ou colunas
múltiplas.
Neste caso, os dados são indexados por uma tripla (coluna, linha e timestamp), a
coluna e linha são identificadas por chaves e o timestamp permite diferenciar múltiplas
versões de um mesmo dado
Orientado a colunas
Orientado a grafos
O modelo de grafos possui três componentes básicos: nós (vértices dos
grafos), os relacionamentos (arestas) e as propriedades (conhecidos também
como atributos).
Este modelo é visto como multigrafo rotulado e direcionado, onde cada par de
nós pode ser conectado por mais de uma aresta.
A utilização deste modelo é muito útil quando é necessário fazer consultas
demasiadamente complexas. O modelo orientado a grafos possui uma alta
performance, permitindo um bom desempenho nas aplicações.
Orientação a grafos
SQL vs NoSQL
MongoDB
O que é?
MongoDB é um banco de dados de código aberto, gratuito, de alta
performance, sem esquemas e orientado à documentos, lançado em fevereiro de
2009 pela empresa 10gen.
Foi escrito na linguagem de programação C++ (o que o torna portável para
diferentes sistemas operacionais) e seu desenvolvimento durou quase 2 anos,
tendo iniciado em 2007.
O MongoDB trabalha com o NoSQL na estrutura de orientado à documentos.
Instalação MongoBD no Ubuntu
● Importar chave pública
○ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv
2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
● Adicionar dependências
○ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu
trusty/mongodb-org/3.6 multiverse" | sudo tee
/etc/apt/sources.list.d/mongodb-org-3.6.list
● Atualizar pacote de dados
○ sudo apt-get update
● Instale o Mongo
○ sudo apt-get install -y mongodb-org
Comando básicos
● db.version()
● db.help()
● db.stats()
● show databases
● use banco
● show collections == show tables
● db.conta.find()
● db.conta.insert({conta:”120.120.09-08”,agencia:”100-00”})
● db.conta.find().pretty();
● db.conta.find({agencia:”100-00”});
Comando básicos
db.conta.update({conta:”123.456.789-00”},{conta:”120001-990”,agencia:”1290-09”}
)
db.conta.insert({conta:”123.122-121”,agencia:”120-00”,saldo:1000})
Redis
O que é?
É um banco de dados não relacional, também conhecido por NOSQL (Not Only
SQL), que foi criado por Salvatore Sanfiippo e liberado de forma open-source em
2009.
Redis significa REmote DIctionary Server, e já pelo seu significado, já podemos ter
uma ideia de como ele trabalha e armazena os dados. Os dados são armazenados
na forma de chave-valor, lembrando a estrutura do Dictionary do .net e do Map do
Java. Um ponto importante que vale chamar a atenção aqui, é que o valor utilizado
como chave no Redis pode possuir diferentes formatos, podendo ser strings,
hashes, lists, sets e sets ordenados.
Sobre o REDIS
O Redis é basicamente um dicionário chave-valor. Ou seja, cada chave (ou
endereço, ou CPF, ou qualquer outro termo que te faça sentido) está associada a
um valor. O Redis armazena em memória RAM os dados, e de tempos em tempos
transfere o conteúdo da memória para o disco se ocorreu uma determina
quantidade mudanças nos dados.
Outra característica importante do Redis, é que todos os comandos executados
são atômicos, isso graças à forma com que o Redis é executado, sendo ele uma
aplicação single-threaded, que executa um comando por vez.
Funcionabilidade
O Redis é um servidor TCP, e seu funcionamento baseado em um
modelo cliente-servidor é bastante simples, dessa forma, quando uma
requisição é feita para o Redis, um comando é enviado ao servidor
(Redis) pelo cliente, e este fica aguardando uma resposta do servidor
através de uma conexão estabelecida via socket. Quando o servidor
processa o comando, ele envia a resposta de volta ao cliente.
Baseado nessas características, podemos já imaginar uma série de aplicações
para o Redis, porém, precisamos ter um pouco de cuidado, e saber aonde ele
pode ser utilizado, e em quais situações ele não pode ser utilizado. Para isso é
importante relembrar alguns pontos sobre o Redis:
● Ele não é e não substitui um banco de dados relacional como o MySQL,
Oracle, SQL Server, FireBird, PostgreSQL;
● Não é um banco de dados orientado a documentos como o MongoDB;
● Não é um banco de dados que você deveria usar para armazenar todos os
seus dados;
● Não possui suporte oficial ao Windows;
● Não utiliza o protocolo HTTP(segurança).
Dado que o campo “cod” é uma referência única para este produto neste catálogo,
poderíamos transformá-lo em chave e salvar um hash com todas as propriedades
do produto, como mostra o código abaixo:
catalogo_xml.each do |product_xml|
# Uma vez que transformamos o xml do produto em um hash...
product = parser_to_hash(product_xml)
# Para cada identificador cod salvamos todas as
# informações deste produto
redis[:product].set(product[:cod], Marshal::dump(product))
end
end
Exemplo de código
Comandos Básicos
NewSQL
O que é NewSQL?
O NewSQL é uma classe de modernos sistemas de gerenciamento
de banco de dados relacionais que procuram fornecer o mesmo
desempenho escalável dos sistemas NoSQL para cargas de trabalho de
leitura e gravação de processamento de transações on-line (OLTP)
enquanto ainda mantêm as garantias ACID de um sistema de banco de
dados tradicional.
Sobre o NewSQL
O analista Matthew Aslett do 451 criou o termo quando
desenvolviam um trabalho de pesquisa no ano de 2011, que aborda o
surgimento de novos sistemas de banco de dados como desafiadores
para fornecedores estabelecidos. Muitos sistemas empresariais que
manipulam dados de alto perfil (por exemplo, sistemas de processamento
de pedidos e financeiros) também precisam ser dimensionados, mas não
podem usar as soluções NoSQL porque não podem renunciar aos
requisitos de transação e consistência fortes.
Características
● Linguagem SQL como meio de interação entre o SGBD e a
aplicação.
● Suporte para transações ACID.
● Controle de concorrência não bloqueante, para que as leituras e
escritas não causem conflitos entre si.
● Arquitetura que fornece um maior desempenho por nó de
processamento;
● Arquitetura escalável, com memória distribuída e com capacidade de
funcionar em um aglomerado com um grande número de
nós(computadoresservidores).
NoSQL x NewSQL
Característica NoSQL NewSQL
Cumprimento ACID (dados, integridade de transações) Não Sim
OLAP / OLTP Não Sim
A análise dos dados (agregados, transformar, etc.) Não Sim
Rigidez do esquema (mapeamento rigoroso da modelo) Não Talvez
Flexibilidade formato de dados Sim Talvez
A computação distribuída Sim Sim
Escala para cima (vertical) / Dimensionar (horizontal) Sim Sim
Desempenho com crescimento de dados Rápido Muito Rápido
Sobrecarga de desempenho Moderado Mínimo
Popularidade / Suporte comunidade Crescente Crescendo lentamente
Vantagens e Desvantagens
AS VANTAGENS DO NEWSQL:
● Minimizar a complexidade do aplicativo com maior consistência e, muitas vezes,
suporte transacional completo.
● SQL familiar e ferramentas padrão.
● Análise mais rica que alavanca SQL e extensões.
● Muitos sistemas oferecem agrupamento de estilo NoSQL com modelos de dados e
consultas mais tradicionais.
AS DESVANTAGENS DO NEWSQL:
● Nenhum sistema NewSQL é tão geral quanto os sistemas tradicionais de SQL
estabelecidos.
● Arquiteturas em memória podem ser inadequadas para volumes que excedem
alguns terabytes.
● Oferece apenas acesso parcial à ferramenta rica de sistemas SQL tradicionais.
Conclusão
Antes de qualquer coisa, considere avaliar as ofertas do NoSQL se
você favorecer a disponibilidade ou possuir necessidades especiais do
modelo de dados. Considere o NewSQL se você quiser a velocidade em
escala do NoSQL, mas com consistência mais forte e linguagem de
consulta SQL.
Referências
● https://www.mongodb.com/
● https://imasters.com.br/banco-de-dados/mongodb-para-iniciantes-em-nosql/?trace=151
9021197&source=single
● https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
● https://www.devmedia.com.br/introducao-aos-bancos-de-dados-nosql/26044
● https://www.devmedia.com.br/conheca-a-geracao-de-banco-de-dados-nosql-e-newsql/
33202
● https://www.infoq.com/br/news/2011/06/newsql
● http://dataconomy.com/2015/08/sql-vs-nosql-vs-newsql-finding-the-right-solution/
● http://desenvolvedor.ninja/redis-o-que-e-e-para-que-serve/
● https://imasters.com.br/artigo/18288/banco-de-dados/usando-o-banco-de-dados-nosql-
redis-para-otimizar-sistemas-de-alta-escalabilidade?trace=1519021197&source=single
● http://www.fabiolabs.com.br/2011/04/redis-um-banco-de-dados-nao-relacional/

Mais conteúdo relacionado

Mais procurados

Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
Fabrício Lopes Sanchez
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
Fabio Moura Pereira
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
Natanael Simões
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
Wagner Zaparoli
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
Leinylson Fontinele
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
Vinícius de Paula
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
Thiago Freitas
 
Modelo Conceitual MER
Modelo Conceitual MERModelo Conceitual MER
Modelo Conceitual MER
Joel Santos
 
Sistema acadêmico
Sistema acadêmicoSistema acadêmico
Sistema acadêmico
Leinylson Fontinele
 
Fundamentals of database system - Relational data model and relational datab...
Fundamentals of database system  - Relational data model and relational datab...Fundamentals of database system  - Relational data model and relational datab...
Fundamentals of database system - Relational data model and relational datab...
Mustafa Kamel Mohammadi
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
CursoSENAC
 
Modelagem de dados
Modelagem de dados Modelagem de dados
Modelagem de dados
Fábio Ferreira
 
Aula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequenciaAula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequencia
Leinylson Fontinele
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
Rafael Albani
 
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Marcos Alves Vieira
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
Daniel Brandão
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
Marcia Abrahim
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
Mariana Camargo
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
Modelo E-R
Modelo E-RModelo E-R

Mais procurados (20)

Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Banco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e EspecializaçãoBanco de Dados I Aula 06 - Generalização e Especialização
Banco de Dados I Aula 06 - Generalização e Especialização
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Modelo Conceitual MER
Modelo Conceitual MERModelo Conceitual MER
Modelo Conceitual MER
 
Sistema acadêmico
Sistema acadêmicoSistema acadêmico
Sistema acadêmico
 
Fundamentals of database system - Relational data model and relational datab...
Fundamentals of database system  - Relational data model and relational datab...Fundamentals of database system  - Relational data model and relational datab...
Fundamentals of database system - Relational data model and relational datab...
 
Análise Orientada a Objetos - Objetos E Classes
Análise Orientada a Objetos  -   Objetos E ClassesAnálise Orientada a Objetos  -   Objetos E Classes
Análise Orientada a Objetos - Objetos E Classes
 
Modelagem de dados
Modelagem de dados Modelagem de dados
Modelagem de dados
 
Aula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequenciaAula 07 - Diagrama de sequencia
Aula 07 - Diagrama de sequencia
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
Engenharia Dirigida por Modelos no Desenvolvimento de Aplicações Ubíquas: Tec...
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 

Semelhante a NoSql e NewSql

#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
Gabriel Alves Scavassa
 
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
Christiano Anderson
 
No sql std
No sql stdNo sql std
No sql std
Arthur Azevedo
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
João Helis Bernardo
 
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
Mozart Dornelles Claret
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
Renato Groff
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
Aricelio Souza
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
pichiliani
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
Flávio Lisboa
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
Lorran Pegoretti
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
Rodrigo De Souza Valerio
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
iMasters
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
Marco Pinheiro
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
Gleicon Moraes
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
Eizo Edson
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
Meritt - Cada Aluno é Único
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
Renato Molina Toth
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Ambiente Livre
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
LelyBarros
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
Rodrigo Aurélio
 

Semelhante a NoSql e NewSql (20)

#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
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
 
No sql std
No sql stdNo sql std
No sql std
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
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
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Alinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQLAlinguagem SQL no mundo NOSQL
Alinguagem SQL no mundo NOSQL
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
PHPMyadmin - Introdução
PHPMyadmin - IntroduçãoPHPMyadmin - Introdução
PHPMyadmin - Introdução
 
L'esprit de l'escalier
L'esprit de l'escalierL'esprit de l'escalier
L'esprit de l'escalier
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
NOSQL - Uma real alternativa
NOSQL - Uma real alternativaNOSQL - Uma real alternativa
NOSQL - Uma real alternativa
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 

Mais de Suzana Viana Mota

Exercicios - Redes Móveis
Exercicios - Redes MóveisExercicios - Redes Móveis
Exercicios - Redes Móveis
Suzana Viana Mota
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadores
Suzana Viana Mota
 
Organizacao e estrutura de Computadores
Organizacao e estrutura de ComputadoresOrganizacao e estrutura de Computadores
Organizacao e estrutura de Computadores
Suzana Viana Mota
 
Visão Computacional - Meetup AIGirls
Visão Computacional - Meetup AIGirlsVisão Computacional - Meetup AIGirls
Visão Computacional - Meetup AIGirls
Suzana Viana Mota
 
Atividades de Sistemas Binários
Atividades de Sistemas BináriosAtividades de Sistemas Binários
Atividades de Sistemas Binários
Suzana Viana Mota
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Suzana Viana Mota
 
Interface humano-computador baseada em Visão Computacional: uma solução para ...
Interface humano-computador baseada em Visão Computacional: uma solução para ...Interface humano-computador baseada em Visão Computacional: uma solução para ...
Interface humano-computador baseada em Visão Computacional: uma solução para ...
Suzana Viana Mota
 
Mundo 4.0 - O que esperar do futuro
Mundo 4.0 - O que esperar do futuroMundo 4.0 - O que esperar do futuro
Mundo 4.0 - O que esperar do futuro
Suzana Viana Mota
 
Como estudar melhor
Como estudar melhor Como estudar melhor
Como estudar melhor
Suzana Viana Mota
 
Atalhos e dicas - Como se tornar um expert em Computadores
Atalhos e dicas - Como se tornar um expert em ComputadoresAtalhos e dicas - Como se tornar um expert em Computadores
Atalhos e dicas - Como se tornar um expert em Computadores
Suzana Viana Mota
 
Aula Inaugural - Curso Técnico em Informática para Internet
Aula Inaugural - Curso Técnico em Informática para InternetAula Inaugural - Curso Técnico em Informática para Internet
Aula Inaugural - Curso Técnico em Informática para Internet
Suzana Viana Mota
 
Criptografia e Privacidade
Criptografia e PrivacidadeCriptografia e Privacidade
Criptografia e Privacidade
Suzana Viana Mota
 
Exercicio - Introdução a Hardware Revisão
Exercicio - Introdução a Hardware RevisãoExercicio - Introdução a Hardware Revisão
Exercicio - Introdução a Hardware Revisão
Suzana Viana Mota
 
Desenvolvimento de software dedicado a pessoa com deficiência
Desenvolvimento de software dedicado a pessoa com deficiênciaDesenvolvimento de software dedicado a pessoa com deficiência
Desenvolvimento de software dedicado a pessoa com deficiência
Suzana Viana Mota
 
Comparison of Human Machine Interfaces to control a Robotized Wheelchair
Comparison of Human Machine Interfaces to control a Robotized WheelchairComparison of Human Machine Interfaces to control a Robotized Wheelchair
Comparison of Human Machine Interfaces to control a Robotized Wheelchair
Suzana Viana Mota
 
Formatei o computador e agora?
Formatei o computador e agora?Formatei o computador e agora?
Formatei o computador e agora?
Suzana Viana Mota
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
Suzana Viana Mota
 
Aula 09 - Gerenciamento de Recursos Humanos
Aula 09 - Gerenciamento de Recursos HumanosAula 09 - Gerenciamento de Recursos Humanos
Aula 09 - Gerenciamento de Recursos Humanos
Suzana Viana Mota
 
Aula 08 - Gerenciamento da Qualidade
Aula 08 - Gerenciamento da QualidadeAula 08 - Gerenciamento da Qualidade
Aula 08 - Gerenciamento da Qualidade
Suzana Viana Mota
 
Como tornar seu site atraente
Como tornar seu site atraenteComo tornar seu site atraente
Como tornar seu site atraente
Suzana Viana Mota
 

Mais de Suzana Viana Mota (20)

Exercicios - Redes Móveis
Exercicios - Redes MóveisExercicios - Redes Móveis
Exercicios - Redes Móveis
 
exercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadoresexercicio-Organização e estrutura de Computadores
exercicio-Organização e estrutura de Computadores
 
Organizacao e estrutura de Computadores
Organizacao e estrutura de ComputadoresOrganizacao e estrutura de Computadores
Organizacao e estrutura de Computadores
 
Visão Computacional - Meetup AIGirls
Visão Computacional - Meetup AIGirlsVisão Computacional - Meetup AIGirls
Visão Computacional - Meetup AIGirls
 
Atividades de Sistemas Binários
Atividades de Sistemas BináriosAtividades de Sistemas Binários
Atividades de Sistemas Binários
 
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus JanuáriaLista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
Lista de Exerícios - Manutenção e Redes de Computadores IFNMG - Campus Januária
 
Interface humano-computador baseada em Visão Computacional: uma solução para ...
Interface humano-computador baseada em Visão Computacional: uma solução para ...Interface humano-computador baseada em Visão Computacional: uma solução para ...
Interface humano-computador baseada em Visão Computacional: uma solução para ...
 
Mundo 4.0 - O que esperar do futuro
Mundo 4.0 - O que esperar do futuroMundo 4.0 - O que esperar do futuro
Mundo 4.0 - O que esperar do futuro
 
Como estudar melhor
Como estudar melhor Como estudar melhor
Como estudar melhor
 
Atalhos e dicas - Como se tornar um expert em Computadores
Atalhos e dicas - Como se tornar um expert em ComputadoresAtalhos e dicas - Como se tornar um expert em Computadores
Atalhos e dicas - Como se tornar um expert em Computadores
 
Aula Inaugural - Curso Técnico em Informática para Internet
Aula Inaugural - Curso Técnico em Informática para InternetAula Inaugural - Curso Técnico em Informática para Internet
Aula Inaugural - Curso Técnico em Informática para Internet
 
Criptografia e Privacidade
Criptografia e PrivacidadeCriptografia e Privacidade
Criptografia e Privacidade
 
Exercicio - Introdução a Hardware Revisão
Exercicio - Introdução a Hardware RevisãoExercicio - Introdução a Hardware Revisão
Exercicio - Introdução a Hardware Revisão
 
Desenvolvimento de software dedicado a pessoa com deficiência
Desenvolvimento de software dedicado a pessoa com deficiênciaDesenvolvimento de software dedicado a pessoa com deficiência
Desenvolvimento de software dedicado a pessoa com deficiência
 
Comparison of Human Machine Interfaces to control a Robotized Wheelchair
Comparison of Human Machine Interfaces to control a Robotized WheelchairComparison of Human Machine Interfaces to control a Robotized Wheelchair
Comparison of Human Machine Interfaces to control a Robotized Wheelchair
 
Formatei o computador e agora?
Formatei o computador e agora?Formatei o computador e agora?
Formatei o computador e agora?
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Aula 09 - Gerenciamento de Recursos Humanos
Aula 09 - Gerenciamento de Recursos HumanosAula 09 - Gerenciamento de Recursos Humanos
Aula 09 - Gerenciamento de Recursos Humanos
 
Aula 08 - Gerenciamento da Qualidade
Aula 08 - Gerenciamento da QualidadeAula 08 - Gerenciamento da Qualidade
Aula 08 - Gerenciamento da Qualidade
 
Como tornar seu site atraente
Como tornar seu site atraenteComo tornar seu site atraente
Como tornar seu site atraente
 

Último

Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
carlos silva Rotersan
 
Manual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60AManual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60A
Tronicline Automatismos
 
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptxMAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
Vilson Stollmeier
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
Consultoria Acadêmica
 
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptxWorkshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
marcosmpereira
 
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
Consultoria Acadêmica
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
Consultoria Acadêmica
 

Último (7)

Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
Grau TÉCNICO EM SEGURANÇA DO TRABALHO I - LEGISLAÇÃO APLICADA À SAÚDE E SEGUR...
 
Manual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60AManual de Instalação para Placa Proteco Q60A
Manual de Instalação para Placa Proteco Q60A
 
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptxMAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
MAQUINAS-EQUIPAMENTOS-E-FERRAMENTAS.pptx
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL ENGENHARIA DA SUSTENTABILIDADE UNIC...
 
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptxWorkshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
Workshop Gerdau 2023 - Soluções em Aço - Resumo.pptx
 
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
AE02 - FORMAÇÃO SOCIOCULTURAL E ÉTICA II UNICESUMAR 52/2024
 
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL  INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
AE03 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL INDÚSTRIA E TRANSFORMAÇÃO DIGITAL ...
 

NoSql e NewSql

  • 1. NoSQL e NewSQL Altierres Washington Marcelo Henrique
  • 2. Sumário ● NoSQL ○ O que é NoSQL? ○ Sobre NoSQL ○ Características ○ Modelos de banco de dados NoSQL ○ Chave-valor (key-value) ○ Orientado a documentos ○ Orientado a colunas ○ Orientado a grafos ○ SQL vs NoSQL
  • 3. Sumário ● MongoDB ○ O que é MongoDB? ○ Instalação MongoBD no Ubuntu ○ Comando básicos
  • 4. Sumário ● NewSQL ○ O que é NewSql? ○ Sobre o NewSQL ○ Características ○ NewSQL x NoSQL ○ Vantagens e Desvantagens
  • 5. Sumário ● Redis ○ O que é Redis? ○ Sobre o Redis ○ Funcionabilidade ○ Exemplo de código
  • 6. O que é NoSQL? O termo NoSQL foi primeiramente utilizado em 1998 como o nome de um banco de dados não relacional de código aberto. Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito".
  • 7. Sobre NoSQL Em 2006, o artigo: BigTable: A Distributed Storage System for Structured Data, publicado pelo Google em 2006, traz novamente à tona o conceito NoSQL. A partir de então, os bancos de dados não relacionais passaram a ser conhecidos como NoSQL, e com crescente popularização das redes sociais, a geração de conteúdo por dispositivos móveis bem como o número cada vez maior de pessoas e dispositivos conectados, faz com que o trabalho de armazenamento de dados com o objetivo de utilizá-los em ferramentas analíticas, comece a esbarrar nas questões de escalabilidade e custos de manutenção desses dados.
  • 8. Características ● Escalabilidade Horizontal ● Ausência de esquema (Schema-free) ou esquema flexível ● Suporte nativo a replicação ● API simples para acessar o banco de dados ● Consistência eventual ● Map/reduce ● Consistent hashing ● MVCC (Multiversion concurrency control) ● Vector clocks
  • 9. Modelos de banco de dados NoSQL ● Existem vários modelos ● Abordaremos brevemente 4 deles ○ Chave-Valor ○ Orientado a documentos ○ Orientado a colunas ○ Orientado a grafos
  • 10. Chave-valor (key-value) Este modelo é considerado simples e permite a sua visualização através de uma tabela de hash, no qual há uma chave única e um indicador de determinado dado, podendo ser uma String ou um binário.
  • 11. Orientado a documentos Como o próprio nome sugere, este modelo armazena coleções e documentos. Explicando melhor, um documento, no geral, é um objeto identificador único e um conjunto de campos que podem ser strings, listas ou documentos aninhados.
  • 12.
  • 13. Orientado a colunas Este tipo de banco de dados foi criado para armazenar e processar uma grande quantidade de dados distribuídos em diversas máquinas. As chaves ainda existem, mas neste caso, elas apontam para atributos ou colunas múltiplas. Neste caso, os dados são indexados por uma tripla (coluna, linha e timestamp), a coluna e linha são identificadas por chaves e o timestamp permite diferenciar múltiplas versões de um mesmo dado
  • 14.
  • 16. Orientado a grafos O modelo de grafos possui três componentes básicos: nós (vértices dos grafos), os relacionamentos (arestas) e as propriedades (conhecidos também como atributos). Este modelo é visto como multigrafo rotulado e direcionado, onde cada par de nós pode ser conectado por mais de uma aresta. A utilização deste modelo é muito útil quando é necessário fazer consultas demasiadamente complexas. O modelo orientado a grafos possui uma alta performance, permitindo um bom desempenho nas aplicações.
  • 20. O que é? MongoDB é um banco de dados de código aberto, gratuito, de alta performance, sem esquemas e orientado à documentos, lançado em fevereiro de 2009 pela empresa 10gen. Foi escrito na linguagem de programação C++ (o que o torna portável para diferentes sistemas operacionais) e seu desenvolvimento durou quase 2 anos, tendo iniciado em 2007. O MongoDB trabalha com o NoSQL na estrutura de orientado à documentos.
  • 21.
  • 22. Instalação MongoBD no Ubuntu ● Importar chave pública ○ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 ● Adicionar dependências ○ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list ● Atualizar pacote de dados ○ sudo apt-get update ● Instale o Mongo ○ sudo apt-get install -y mongodb-org
  • 23. Comando básicos ● db.version() ● db.help() ● db.stats() ● show databases ● use banco ● show collections == show tables ● db.conta.find() ● db.conta.insert({conta:”120.120.09-08”,agencia:”100-00”}) ● db.conta.find().pretty(); ● db.conta.find({agencia:”100-00”});
  • 25. Redis
  • 26. O que é? É um banco de dados não relacional, também conhecido por NOSQL (Not Only SQL), que foi criado por Salvatore Sanfiippo e liberado de forma open-source em 2009. Redis significa REmote DIctionary Server, e já pelo seu significado, já podemos ter uma ideia de como ele trabalha e armazena os dados. Os dados são armazenados na forma de chave-valor, lembrando a estrutura do Dictionary do .net e do Map do Java. Um ponto importante que vale chamar a atenção aqui, é que o valor utilizado como chave no Redis pode possuir diferentes formatos, podendo ser strings, hashes, lists, sets e sets ordenados.
  • 27. Sobre o REDIS O Redis é basicamente um dicionário chave-valor. Ou seja, cada chave (ou endereço, ou CPF, ou qualquer outro termo que te faça sentido) está associada a um valor. O Redis armazena em memória RAM os dados, e de tempos em tempos transfere o conteúdo da memória para o disco se ocorreu uma determina quantidade mudanças nos dados. Outra característica importante do Redis, é que todos os comandos executados são atômicos, isso graças à forma com que o Redis é executado, sendo ele uma aplicação single-threaded, que executa um comando por vez.
  • 28. Funcionabilidade O Redis é um servidor TCP, e seu funcionamento baseado em um modelo cliente-servidor é bastante simples, dessa forma, quando uma requisição é feita para o Redis, um comando é enviado ao servidor (Redis) pelo cliente, e este fica aguardando uma resposta do servidor através de uma conexão estabelecida via socket. Quando o servidor processa o comando, ele envia a resposta de volta ao cliente.
  • 29. Baseado nessas características, podemos já imaginar uma série de aplicações para o Redis, porém, precisamos ter um pouco de cuidado, e saber aonde ele pode ser utilizado, e em quais situações ele não pode ser utilizado. Para isso é importante relembrar alguns pontos sobre o Redis: ● Ele não é e não substitui um banco de dados relacional como o MySQL, Oracle, SQL Server, FireBird, PostgreSQL; ● Não é um banco de dados orientado a documentos como o MongoDB; ● Não é um banco de dados que você deveria usar para armazenar todos os seus dados; ● Não possui suporte oficial ao Windows; ● Não utiliza o protocolo HTTP(segurança).
  • 30. Dado que o campo “cod” é uma referência única para este produto neste catálogo, poderíamos transformá-lo em chave e salvar um hash com todas as propriedades do produto, como mostra o código abaixo: catalogo_xml.each do |product_xml| # Uma vez que transformamos o xml do produto em um hash... product = parser_to_hash(product_xml) # Para cada identificador cod salvamos todas as # informações deste produto redis[:product].set(product[:cod], Marshal::dump(product)) end end Exemplo de código
  • 33. O que é NewSQL? O NewSQL é uma classe de modernos sistemas de gerenciamento de banco de dados relacionais que procuram fornecer o mesmo desempenho escalável dos sistemas NoSQL para cargas de trabalho de leitura e gravação de processamento de transações on-line (OLTP) enquanto ainda mantêm as garantias ACID de um sistema de banco de dados tradicional.
  • 34. Sobre o NewSQL O analista Matthew Aslett do 451 criou o termo quando desenvolviam um trabalho de pesquisa no ano de 2011, que aborda o surgimento de novos sistemas de banco de dados como desafiadores para fornecedores estabelecidos. Muitos sistemas empresariais que manipulam dados de alto perfil (por exemplo, sistemas de processamento de pedidos e financeiros) também precisam ser dimensionados, mas não podem usar as soluções NoSQL porque não podem renunciar aos requisitos de transação e consistência fortes.
  • 35. Características ● Linguagem SQL como meio de interação entre o SGBD e a aplicação. ● Suporte para transações ACID. ● Controle de concorrência não bloqueante, para que as leituras e escritas não causem conflitos entre si. ● Arquitetura que fornece um maior desempenho por nó de processamento; ● Arquitetura escalável, com memória distribuída e com capacidade de funcionar em um aglomerado com um grande número de nós(computadoresservidores).
  • 36. NoSQL x NewSQL Característica NoSQL NewSQL Cumprimento ACID (dados, integridade de transações) Não Sim OLAP / OLTP Não Sim A análise dos dados (agregados, transformar, etc.) Não Sim Rigidez do esquema (mapeamento rigoroso da modelo) Não Talvez Flexibilidade formato de dados Sim Talvez A computação distribuída Sim Sim Escala para cima (vertical) / Dimensionar (horizontal) Sim Sim Desempenho com crescimento de dados Rápido Muito Rápido Sobrecarga de desempenho Moderado Mínimo Popularidade / Suporte comunidade Crescente Crescendo lentamente
  • 37. Vantagens e Desvantagens AS VANTAGENS DO NEWSQL: ● Minimizar a complexidade do aplicativo com maior consistência e, muitas vezes, suporte transacional completo. ● SQL familiar e ferramentas padrão. ● Análise mais rica que alavanca SQL e extensões. ● Muitos sistemas oferecem agrupamento de estilo NoSQL com modelos de dados e consultas mais tradicionais. AS DESVANTAGENS DO NEWSQL: ● Nenhum sistema NewSQL é tão geral quanto os sistemas tradicionais de SQL estabelecidos. ● Arquiteturas em memória podem ser inadequadas para volumes que excedem alguns terabytes. ● Oferece apenas acesso parcial à ferramenta rica de sistemas SQL tradicionais.
  • 38. Conclusão Antes de qualquer coisa, considere avaliar as ofertas do NoSQL se você favorecer a disponibilidade ou possuir necessidades especiais do modelo de dados. Considere o NewSQL se você quiser a velocidade em escala do NoSQL, mas com consistência mais forte e linguagem de consulta SQL.
  • 39. Referências ● https://www.mongodb.com/ ● https://imasters.com.br/banco-de-dados/mongodb-para-iniciantes-em-nosql/?trace=151 9021197&source=single ● https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ ● https://www.devmedia.com.br/introducao-aos-bancos-de-dados-nosql/26044 ● https://www.devmedia.com.br/conheca-a-geracao-de-banco-de-dados-nosql-e-newsql/ 33202 ● https://www.infoq.com/br/news/2011/06/newsql ● http://dataconomy.com/2015/08/sql-vs-nosql-vs-newsql-finding-the-right-solution/ ● http://desenvolvedor.ninja/redis-o-que-e-e-para-que-serve/ ● https://imasters.com.br/artigo/18288/banco-de-dados/usando-o-banco-de-dados-nosql- redis-para-otimizar-sistemas-de-alta-escalabilidade?trace=1519021197&source=single ● http://www.fabiolabs.com.br/2011/04/redis-um-banco-de-dados-nao-relacional/