Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
AGENDA
• NoSQL
• MongoDB
• Mongo shell
• Data Modeling
• CRUD Operations
• Logical Operations
• Links Úteis
• Prática
NOSQL
• Termo utilizado pela primeira vez em 1998 (noREL)
• São diferentes sistemas de armazenamento que vieram para
supri...
NOSQL
• Com a crescente
popularização da internet,
diversos novos dados foram
surgindo e tratá-los foi se
tornando gradual...
NOSQL
• Motivadores
Alta performance
Escalabilidade (Horizontal vs Vertical)
Tolerância a falha
Schemaless
Em sua maioria ...
NOSQL
• Tipos de bases de dados NoSQL
• Column
Inspirados pelo BigTable, da Google, suportam varias linhas e colunas, além...
NOSQL
• Tipos de bases de dados NoSQL
• Key-value
Tipo de banco de dados mais simples, conceito de uma chave e um valor pa...
MONGODB
• Humongous Database
• Alta performance
• Alta disponibilidade
• Schemaless
• Distribuído
• Baseada em documentos ...
PARA QUE USAR O
MONGODB
• Conjunto de dados diversificado, misturado
• Concorrência massiva
• Alta incerteza no dimensiona...
O QUE NÃO É O MONGODB
• Uma suíte de Análise
• Uma ferramenta de BI
• Uma ferramenta de busca
QUEM UTILIZA
• Foursquare
• GitHub
• EasyTaxi
• Globo.com
• IG.com
• bit.ly
• Locaweb
• Oi
NO QUE O MONGODB NÃO
É MUITO BOM
• Gerenciamento de recursos de hardware
• Não é uma feature do mongoDB configurar quantid...
DATA MODELING
• Armazena Documentos no formato
BSON
• Agrupa documentos em Collections
• Esquema flexível
DATA MODELING
• Estrutura do documento
• Embedded
• Modelo de dados “desnormalizado”
• Armazena dados relacionados em
um m...
DATA MODELING
• Estrutura do documento
• Referencies
• Modelo de dados normalizado
• Mais flexível que embedded
• Mais que...
DATA MODELING
• Atomicidade
• Garantir que qualquer transação seja “tudo ou nada”
• mongoDB somente garante atomicidade no...
DATA MODELING
• GridFS
• Especificação para armazenar e recuperar arquivos que excedem o tamanho de um
documento (16MB)
• ...
CRUD OPERATIONS
• Operações de Create, Read, Update e Delete
• Cada operação afeta somente uma collection por vez
CRUD OPERATIONS
• Insert
db.collection.insert(
<document or array of
documents>,
{
writeConcern:
<document>,
ordered: <boo...
CRUD OPERATIONS
• Update
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <do...
CRUD OPERATIONS
• Delete
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern:
<document>
}
)
CRUD OPERATIONS
• Retrieve
db.collection.find(<crite
ria>, <projection>)
OPERADORES LÓGICOS
MONGO
$lt (menor que)
$lte (menor ou igual que)
$gt (maior que)
$gte (maior ou igual que)
$all (corresp...
OPERADORES LÓGICOS
MONGO
$in (corresponder a um ou mais valores em um array)
$nin (corresponder a valores zero em um array...
COMANDOS MONGO
• db.collection.count()
retorna a quantidade de registros de uma coleção
• db.collection.distinct({key})
re...
COMANDOS MONGO
• db
exibe o nome da base de dados a qual está conectado
• show collections
exibe todas as coleções
• db.co...
JSON (JAVASCRIPT
OBJECT NOTATION)
JSON (JAVASCRIPT
OBJECT NOTATION)
INICIALIZANDO
• Processo mongod
• Pasta data
• Arquivo de configuração
MONGOSHELL
• Processo mongo
• Shell interativo JavaScript
• Autocompletion
ROBOMONGO
• Autocompletion
• Space ignore
• GUI Manipulation
VAMOS PRATICAR!
LINKS ÚTEIS
• https://www.mongodb.org
• https://docs.mongodb.org/manual/
• http://nosql-database.org
• https://bitbucket.o...
Mongo db
Nächste SlideShare
Wird geladen in …5
×

Mongo db

335 Aufrufe

Veröffentlicht am

Apresentação do minicurso sobre noSQL utilizando o SGBD Mongo DB.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Mongo db

  1. 1. AGENDA • NoSQL • MongoDB • Mongo shell • Data Modeling • CRUD Operations • Logical Operations • Links Úteis • Prática
  2. 2. NOSQL • Termo utilizado pela primeira vez em 1998 (noREL) • São diferentes sistemas de armazenamento que vieram para suprir a necessidade em demandas onde os bancos relacionais são ineficazes.
  3. 3. NOSQL • Com a crescente popularização da internet, diversos novos dados foram surgindo e tratá-los foi se tornando gradualmente mais complexo e sua manutenção mais cara
  4. 4. NOSQL • Motivadores Alta performance Escalabilidade (Horizontal vs Vertical) Tolerância a falha Schemaless Em sua maioria open-source
  5. 5. NOSQL • Tipos de bases de dados NoSQL • Column Inspirados pelo BigTable, da Google, suportam varias linhas e colunas, além de permitir subcolunas. Ex: Accumulo, Cassandra, BigTable, HBase, Cassandra • Document Baseados em documentos XML ou JSON, podem ser localizados pelo seu id único ou por qualquer registro que o documento possua. Ex: Lotus Notes, CouchDB, Couchbase, MongoDB, OrientDB
  6. 6. NOSQL • Tipos de bases de dados NoSQL • Key-value Tipo de banco de dados mais simples, conceito de uma chave e um valor para essa chave. Mas é o que mais suporta carga de dados e possuem também maior escalabilidade. Ex: Dynamo, MemcacheDB, Redis, Riak • Graph Com complexidade maior, esses bancos de dados guardam objetos, e não registros como os outros tipos de NoSQL. A busca desses itens é feita pela navegação desses objetos. Ex: Allegro, Neo4J, InfiniteGraph • Multi-model • OrientDB, FoundationDB, ArangoDB, Alchemy Database, CortexDB
  7. 7. MONGODB • Humongous Database • Alta performance • Alta disponibilidade • Schemaless • Distribuído • Baseada em documentos JSON • Open-Source
  8. 8. PARA QUE USAR O MONGODB • Conjunto de dados diversificado, misturado • Concorrência massiva • Alta incerteza no dimensionamento • Sem tolerância a downtime • Necessidade rápido de escalonamento • Respostas rápidas • Grande volume de dados • Indecisão quanto ao schema • Necessidade de slicing • Falta de previsão quanto ao tamanho da base
  9. 9. O QUE NÃO É O MONGODB • Uma suíte de Análise • Uma ferramenta de BI • Uma ferramenta de busca
  10. 10. QUEM UTILIZA • Foursquare • GitHub • EasyTaxi • Globo.com • IG.com • bit.ly • Locaweb • Oi
  11. 11. NO QUE O MONGODB NÃO É MUITO BOM • Gerenciamento de recursos de hardware • Não é uma feature do mongoDB configurar quantidade de RAM, nº de CPUs, ou operações de I/O para um usuário. • Joins entre collections e transações entre documentos • Controlado no nível da aplicação. Um bom design do schema reduz sua necessidade. • SQL • O mongoDB não fala essa língua
  12. 12. DATA MODELING • Armazena Documentos no formato BSON • Agrupa documentos em Collections • Esquema flexível
  13. 13. DATA MODELING • Estrutura do documento • Embedded • Modelo de dados “desnormalizado” • Armazena dados relacionados em um mesmo registro • Somente uma consulta para toda informação • Recomendado para: • Quando existe uma relação de “contém” entre entidades • Quando existe uma relação de one-to-many e o lado many sempre é visualizado em conjunto com seus documentos pais
  14. 14. DATA MODELING • Estrutura do documento • Referencies • Modelo de dados normalizado • Mais flexível que embedded • Mais queries para buscar relações • Recomendado para: • Quando embedding duplicaria dados mas não proveria vantagens no desempenho de read que justificasse seu uso • Para representar relações de many-to-many mais complexas • Para modelar grandes conjuntos de dados hierárquicos
  15. 15. DATA MODELING • Atomicidade • Garantir que qualquer transação seja “tudo ou nada” • mongoDB somente garante atomicidade no nível de um documento • mongoDB não implementa transação entre documentos ou collections
  16. 16. DATA MODELING • GridFS • Especificação para armazenar e recuperar arquivos que excedem o tamanho de um documento (16MB) • Divide o arquivo em pedaços (chunks) e as armazenam em documentos separados, mantendo uma collection com meta dados dos arquivos • Recomendações de uso • Arquivo for maior que o tamanho de um documento • Necessidade de acessar parte de arquivos ao invés do arquivo todo
  17. 17. CRUD OPERATIONS • Operações de Create, Read, Update e Delete • Cada operação afeta somente uma collection por vez
  18. 18. CRUD OPERATIONS • Insert db.collection.insert( <document or array of documents>, { writeConcern: <document>, ordered: <boolean> } )
  19. 19. CRUD OPERATIONS • Update db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
  20. 20. CRUD OPERATIONS • Delete db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )
  21. 21. CRUD OPERATIONS • Retrieve db.collection.find(<crite ria>, <projection>)
  22. 22. OPERADORES LÓGICOS MONGO $lt (menor que) $lte (menor ou igual que) $gt (maior que) $gte (maior ou igual que) $all (corresponder a todos os valores em um array) $exists (verificar se um campo existe ou não) $mod (módulo) $ne (não igual)
  23. 23. OPERADORES LÓGICOS MONGO $in (corresponder a um ou mais valores em um array) $nin (corresponder a valores zero em um array) $or (corresponder uma consulta a outra) $and (corresponder a todas as consultas) $nor (não corresponder uma consulta nem outra) $size (corresponder qualquer array com número definido de elementos) $type (corresponder valores com tipo de dados BSON especificado) $not (não igual a)
  24. 24. COMANDOS MONGO • db.collection.count() retorna a quantidade de registros de uma coleção • db.collection.distinct({key}) retorna uma consulta distinta contendo todos os valores da chave informada • db.getCollectionNames() retorna todos os nomes das coleções • show dbs lista todas as bases de dados • use <data_base> conecta a uma base de dados
  25. 25. COMANDOS MONGO • db exibe o nome da base de dados a qual está conectado • show collections exibe todas as coleções • db.collection.drop() deleta uma collection • db.dropDatabase() deleta uma base de dados • db.collection.selectOne()
  26. 26. JSON (JAVASCRIPT OBJECT NOTATION)
  27. 27. JSON (JAVASCRIPT OBJECT NOTATION)
  28. 28. INICIALIZANDO • Processo mongod • Pasta data • Arquivo de configuração
  29. 29. MONGOSHELL • Processo mongo • Shell interativo JavaScript • Autocompletion
  30. 30. ROBOMONGO • Autocompletion • Space ignore • GUI Manipulation
  31. 31. VAMOS PRATICAR!
  32. 32. LINKS ÚTEIS • https://www.mongodb.org • https://docs.mongodb.org/manual/ • http://nosql-database.org • https://bitbucket.org/edmilsonneto/minicurso- mongodb • http://www.json.org

×