Introdução ao mongodb - José Inoue - TchêLinux Uruguaiana

29
Introdução ao Mongodb José Inoue

Transcript of Introdução ao mongodb - José Inoue - TchêLinux Uruguaiana

Introdução ao Mongodb

José Inoue

About Me

Roteiro

1. Dados

2. Informação

3. Modelo Relacional

4. NoSQL

5. Modelo Relacional versus NoSQL

6. MongoDB

Dados

Pedro 1984 Sant’Anna

045-2368 Cinza Bento Martins

ITA3577 Iznájar 78 Gol

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.

Tipos:

Key/Values ;

Wide Columns Store;

Document Store;

Graph Store;

Column Oriented Store;

Key/Value:

Wide Columns Store:

Document Store:

Graph Store:

Column Oriented Store:

Quem usa?

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.

Escalabili...

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;

Orientado a documentos;

Atualizações in – place;

Map/Reduce;

Auto-sharding;

Schema free;

Suporte.

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” }

] }

Inserindo:

db.myColl.insert({name: “Joe", age: 20});

db.myColl.insert({name: “Kristen", age: 22});

Consultando:

db.myColl.find();

Alterando:

myColl.update( { _id: X }, { _id: X, name: "Joe", age: 20 }

Excluindo:

db.myColl.remove({name:“Joe”});

Questions???

Contato

@joseinoue

[email protected]