introdução ao mongodb - josé inoue - tchêlinux uruguaiana
TRANSCRIPT
Roteiro
1. Dados
2. Informação
3. Modelo Relacional
4. NoSQL
5. Modelo Relacional versus NoSQL
6. MongoDB
Informação
Nome: Pedro Sobrenome: IznájarAno: 1984 Peso: 78 kgConta Corrente: 045-2368Endereço: Bento Martins, 1025Escola: Sant’AnnaCarro: GolPlaca: ITA3577Cor: Cinza
O que é?O termo NoSQL foi usado pela primeira vez em
1998.Retornando a ser utilizado em 2009 por Johan
Oskarsson, da Last.fm.Sistemas de armazenamento diferentes dos
tradicionais bancos de dados relacionais.Performance superior.Alta escalabilidade.Agrupamento de registros.Schema-free.
Por que usar?
Acesso rápido por chave-valor ;
Esquema flexível e tipos de dados flexíveis;
Suporte para sistemas distribuídos;
Performance em escrita massiva;
Sincronização de dados online e offline.
Modelo Relacional versus NoSQL
Modelo Relacional
codigo cidade populacao pais
001 Dusseldorf 582200 Alemanha
002 Rio de Janeiro 6325000 Brasil
003 Tel Aviv 392000 Israel
004 Tóquio 12700000 Japão
Modelo Relacional versus NoSQL
NoSQLcodigo: 001 codigo:002cidade: Dusseldorf cidade: Rio de Janeiropopulacao: 582200 populacao: 6325000pais: Alemanha pais: Brasil
codigo: 003 codigo:004cidade: Tel Aviv cidade: Tóquiopopulacao: 392000 populacao: 12700000pais: Israel pais: Japão
Modelo Relacional versus NoSQL
Relacional NoSQL
Escalonamento Possível, mas complexo devido à forma estrutura.
Principal vantagem por sua forma flexível e sem esquema definido.
Consistência Ponto Forte. Estrutura rígida garantem a consistência da informação.
Eventual, mas garante sempre o acesso ao último valor atualizado.
Disponibilidade Pode não suportar uma demanda muito grande de informações ao banco
Fator fundamental. Alto grau de distribuição propicia maior número e solicitações
Desenvolvido pela 10gen; Iniciado em Outubro de 2007;
Primeira versão pública 2009;
Versão 2.0;
Licença GNU Affero GPL;
Diferenças:
Modelo Relacional
MongoDB
Database Database
Table Collection
Row Document
Column Attribute
JSON (Java Script Object Notation):
{ “Cidade" : [ { "nome": “Dusseldorf", “pais":
“Alemanha” }, { "nome": “Rio de Janeiro", “pais":
“Brasil” }, { "nome": “Tel Aviv", “pais": “Israel” }
] }