A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Base de dados NoSQL - Nuno Peralta - João Proença.

Apresentações semelhantes


Apresentação em tema: "Base de dados NoSQL - Nuno Peralta - João Proença."— Transcrição da apresentação:

1 Base de dados NoSQL - Nuno Peralta - João Proença

2 Sistema de Base de Dados; Não usa SQL, orientada a documentos; Usa o formato Binary JSON; Schema-Less; Escrito em C; Suporta índices; Auto-Sharding; Insert / Update -> Dados armazenados em memória em segundo plano, depois gravados em disco.

3 Cloud Computing; Estrutura de DBs actual não suporta a escalabilidade exigida pela nuvem; Muitos dados na WEB para serem armazenados, necessidades de grandes armazenamentos; Respostas mais rápidas pelas aplicações; Diminuição do custo em DBA (DataBase Administrators) e DBM (DataBase Managements).

4 Ser diferente do modelo relacional, por isso NoREL? NoSQL é mais comercial =P Base de dados horizontais: Baixo custo; Poder de processamento; Facilidade de manutenção.

5 Bases de Dados Bases de Dados Colecções Colecções Documentos Documentos BSON BSON

6 Ficheiro (.ns) com todos os namespaces (nome das colecções); Faz a junção física das colecções.

7 Equivalente a tabelas numa base de dados relacional; Faz a junção lógica dos documentos.

8 Equivalente a linhas numa base de dados relacional; Onde os dados em si são armazenados; Todos eles têm um ID único.

9 JSON em binário; Formato de armazenamento de dados no MongoDB; Guarda todos outros tipos de dados (string, int, etc).

10 Tem limites nas colecções. Aumentar limite -> Correr mais processos mongod e particionar a DB entre processos. Muitas empresas a usar MongoDB, mas grande parte não o usa como DB principal. Erros de memória e espaço, como aconteceu no nosso trabalho.

11

12 Queries MongoDB bastante verbosas; Chave-valor; Aplicação deve verificar consistência/integridade.

13 Tabela de suporte:

14

15

16

17 { }

18

19 Inserção: Selecção: MongoDB MySQL segundos segundos MongoDB MySQL segundos segundos

20 Fazer a ligação: $connection = new Mongo(); Seleccionar uma base de dados: $database = $connection->selectDB(nomedabase); Seleccionar uma colecção: $collection = $database->selectCollection(nomedacoleccao);

21 Criar documento: $doc = array(nome => Nuno, => Guardar documento na coleção:$collection->save($doc); SELECTS: $gt, $lt, $gte, $lte, $eq, $neq, $size, $exists, $in, $nin, group(), limit(), skip(), sort(). UPDATES: $set, $unset, $push, $pull, $inc $collection->update(,,, );

22 Criar/garantir índice: $collection->ensureIndex(array(campo" => 1)); Indice único: $collection->ensureIndex(array(campo" => 1), array("unique" => 1)); Remover um índice:$collection->deleteIndex(campo);

23 MongoDB é mais rápido; Nem sempre é a melhor escolha; Usar quando queremos boa performance, os dados não necessitem de consistência, e não seja preciso relacionar tabelas; Para aplicações que necessitam de realtime e históricos; Caso contrário, MySQL.


Carregar ppt "Base de dados NoSQL - Nuno Peralta - João Proença."

Apresentações semelhantes


Anúncios Google