MongoDB e Bancos de Dados Orientados a Documentos

426 visualizações

Publicada em

Seminário feito para a disciplina de Sistemas Distribuídos da Universidade Federal de São Paulo, ministrada pelo Prof. Dr. Arlindo Flávio da Conceição.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
426
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
14
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

MongoDB e Bancos de Dados Orientados a Documentos

  1. 1. MongoDB e Bancos de Dados Orientados a Documentos Fernanda Lembo Vedovello - 61583 Mariana Amery – 71097
  2. 2. NoSQL ● Termo criado por Carlo Strozzi e Eric Evans como referência a um tipo de armazenamento de dados; ● Not Only SQL (Não apenas, não somente SQL) ● Termos NoREL e Não Relacional também são bastante utilizado. ● Alternativa ao modelo relacional
  3. 3. Por que usar NoSQL? ● Escalabilidade ● Performance ● Flexibilidade ● Manipulação de quantidade massiva de dados – Dados que crescem exponencialmente; – Agregam muitos valores dinamicamente; – Não precisam de modelagem; ● Facilidade para consultas
  4. 4. Tipos de NoSQL ● Key/Value: DynamoDb, Riak, Azure Table Storage, Berkeley DB, etc. ● Wide column store: Hadoop, Cassanda, Hypertable, Amazon SimpleDB, etc. ● Document store: MongoDb, CouchDB, RavenDb, etc. ● Graph store: Neo4J, Infinite Graph, InforGrid, HyperGraphDB, etc.
  5. 5. Bancos de Dados Orientados a Documentos ● Conceito de dados e documentos autocontidos e auto descritivos. – Isso implica que o documento em si já define como ele deve ser apresentado e qual é o significado dos dados armazenados na sua estrutura.
  6. 6. Bancos de Dados Orientados a Documentos ● Cada entrada no banco de dados corresponde a um documento, normalmente decompostos por um identificador e um valor. – É possível introduzir mais identificadores seguidos de valores neste valor. ● Dados estruturados de forma encadeada, podendo ser coleções, tags, metadatas, hierarquias de informações, etc.
  7. 7. Bancos de Dados Orientados a Documentos ● Exemplo de documento: { “nome” : ”Fernanda”, “faculdade” :”UNIFESP”, “contatos” : [{“twitter” : ”@fefa”}, {“email” : ”fernanda.lembo@unifesp.br”}], “endereço” : { “CEP” : “04302020”, “rua” : “Paracatu”, “numero” : 357, “cidade” : “São Paulo”, “estado” : { “sigla”: 'SP', “nome” : “São Paulo” } } } ● Bom para aplicações de conteúdo, blogs, análise estatísticas, sistemas de gerenciamento de documentos, etc.
  8. 8. Bancos de Dados Orientados a Documentos ● Permite que tenha redundância e inconsistência. ● Contêm todas as informações importantes em um único documento. ● Livre de esquemas. ● Identificadores Únicos Universais(UUID) ● Consultar os documentos através de métodos avançados de agrupamento e filtragem: MapReduce
  9. 9. Bancos de Dados Orientados a Documentos ● Codifica os documentos com XML, JSON, BSON e os formatos binários mais conhecidos como PDF, DOC, XLS, etc. ● Suportam anexos e possuem um controle de versão para, se necessário, restaurar versões mais antigas.
  10. 10. BDOD x BD Relacional BDOD BD Relacional Documentos autocontidos. Tabelas. Sem necessidade de definir um esquema rígido. Colunas e chaves rigidamente definida. Inserção de um novo campo sem afetar outros documentos. Modificações posteriores é uma tarefa rígida e difícil. Os documentos não precisam armazenar valores de dados vazios para campos os quais não possuem um valor. Registros não podem ser adaptados para diferentes circunstâncias. Por exemplo, deixar um campo vazio. Os dados podem estar repetidos em diversos documentos. Única entrada para cada dado sem possibilidade de repetição. Universally Unique Identifier (UUID) Chaves primárias Não suporta junções, mas possibilita criar uma visualização o qual permite gerar uma relação arbitrária entre documentos que não está realmente definida no próprio BD. Suporta junções usando chaves primárias e estrangeiras
  11. 11. BDs orientados a documentos mais utilizados
  12. 12. MongoDB ● Início em 2007, com primeira versão em 2009 ● Código aberto ● Escrito em C++ ● Multiplataforma ● Utiliza JSON com esquema dinâmico, ou seja, não existe schema fixo ● Dados ficam armazenados de forma mais parecida com o mundo real ● Collections são como as tabelas em BD relacional e os documentos são como os registros
  13. 13. MongoDB
  14. 14. MongoDB - Comandos ● Create
  15. 15. MongoDB - Comandos ● Delete
  16. 16. MongoDB - Comandos ● Insert
  17. 17. MongoDB - Comandos ● Update
  18. 18. MongoDB - Comandos ● Select
  19. 19. MongoDB x CouchDB MongoDB CouchDB Escrito em Erlang Escrito em C++ Ponto forte: mantém algumas propriedades amigáveis de SQL (query, index) Ponto forte: consistência e facilidade de uso Licença: AGPL Licença: Apache Replicação: Master-slave Replicação: bidirecional
  20. 20. Referencias ● http://pt.slideshare.net/canderson/mongodb-27304932?rel ated=1 ● http://pt.slideshare.net/alexmartinsbezerra/no-sql-orienta do-a-documento ● http://www.ibm.com/developerworks/br/library/os-couchdb/ ● http://stackoverflow.com/questions/3375494/nosql-mongo db-vs-couchdb

×