MongoDB – A base de dados que não é relacional
Aqui não há registos, mas sim documentos!
Os Sistemas de Gestão de Base de Dados (SGBD) mais populares são sem dúvida o MySQL, SQLServer e Oracle. Todos estes SGBD permitem a criação de bases de dados relacionais mas nem sempre as aplicações têm essa necessidade, especialmente quando falamos em grandes quantidades de dados (big data).
Hoje apresentamos o MongoDB que é um SGBD do tipo NoSQL (Not only Structure Query Language).
O MongoBD é um projecto Open Source, do tipo NOSQL e de alta performance, sem esquemas, concebido especialmente para o armazenamento de grandes quantidades de dados. Este projecto foi desenvolvido em C++ e trabalha com documentos com sintaxe JSON (algo equivalente aos registos nas BD SQL).
Por exemplo, vamos criar um documento com 2 atributos (nome e area).
Pplware = { nome:"Pplware no Comments", area: "tecnologia" } |
Para executar o documento Pplware na base de dados Pplwaredb bastava correr o seguinte comando:
db.pplwaredb.save(Pplware) |
Segundo a xpand-it, esta solução foi projectada para ajudar as organizações a alcançarem maiores níveis de agilidade e escalabilidade. Nesse sentido, pode esperar por benefícios como: compatibilidade com novas aplicações, melhor experiência do cliente, time-to-market e redução de custos bastante significativa.
Principais características
- Modelo dinâmico de armazenamento orientado ao documento
- Indexação flexível e suporte de consultas avançadas
- Escalabilidade horizontal com base em particionamento automático
- Replicação e alta disponibilidade
- Procura de documentos
- Segurança avançada
- Framework de agregação e suporte de MapReduce
- Suporte para armazenamento de ficheiros em grande escala com a funcionalidade GridFS
O projecto Mongo DB tem uma comunidade global em expansão, contando com mais de 4 milhões de downloads, 50.000 registos para formação em regime de e-learning, 15000 Membros nos User Groups. A empresa conta com mais de 600 clientes empresariais, incluindo algumas das maiores organizações do mundo, entre as quais: Cisco, eBay, Ericsson, Forbes, SAP ou Telefónica.
Num próximo tutorial vamos aprender a instalar o MongoDB no Linux.
Este artigo tem mais de um ano
Realmente um excelente suporte de informação para os tempos que se aproximam.
Ligar sensores a tudo o que “mexe”, irá trazer a necessidade de bases de dados nosql não só para armazenamento mas principalmente para extração de informação e análise.
Imaginem projetos ligados à saúde ou à agricultura com armazenamento de métricas quase em tempo real para estudos futuros e otimização de processos.
Sem dúvida.
Tens sistemas de BI (agora só me focando em áreas de saúde) que medem métricas em tempo real, tais como, quedas de doentes, estado da consulta, etc. etc.
Mas é de facto interessante!
Talvez falte um artigo sobre Big Data, já que todos falam disso agora..
Sim, Big Data é outro assunto que tenho aqui na lista. Só acabar os tutoriais sobre cloud (IaaS, PaaS e SaaS).
Fantástico!!
Sugiro ainda o REDIS:
http://redis.io/
Trabalha em memória (com dumps para disco) e é muito rápido. Muito engraçado para trabalhar com node.js. Quem for por este caminho, dê uma olhadela no https://joeferner.github.io/redis-commander/ pois facilita muito para ver o que está na BD.
Obrigado pela sugestão. Se dominares o REDIS podes mandar um artigo que nós publicamos. Aceitas o desafio?
Uso como armazenamento de sessões e recomendo. Mais rápido que mongo, apesar do mongo também ser muito bom. E tem suporte pub/sub, e que é uma funcionalidade fantástica.
Porque não usar redis, para leitura e escrita rápida de dados e depois persistir os dado em BD?
Tens boa performance em ler/escrever dados e ficas com os dados guardados 😉
Bom artigo.
Também utilizo o mongoDB como complemento de uma base de dados relacional.
Já agora uma chamada de atenção. O logo do mongoDB não leva o elefante é só a parte debaixo. O elefante é o logo do Hadoop.
Yups, já troquei. Thanks
Porque o simbolo do hadoop por cima? MongoDB =/= hadoop
Usei durante algum tempo mongoDB. Sinceramente a performance pode ser um problema em certas situações. Apesar de gostar imenso do modo de funcionamento e da API do mongoDB, acabei por voltar a PostgreSQL.
Desde a versão 9.4 do PostgreSQL que podemos armazenar dados JSON em formato binário (jsonb) o que nos permite excelente performance nas queries a esses objectos. O único senão é mesmo a forma de pesquisar esses objetos que não é tão simples e intuitiva como no mongo.
“Desde a versão 9.4 do PostgreSQL que podemos armazenar dados JSON em formato binário”, obrigado pela info, não sabia 🙂
Por curiosidade, já testou o CouchDB?
Por acaso não. Talvez experimente em breve num novo projeto qualquer. Parece uma alternativa interessante!
Offtopic mas algo para a Pplware publicar: Ontem saiu a final do PHP7: http://php.net/archive/2015.php#id2015-12-03-1
Obrigado.
Alguem usa Elastic Search?
Por acaso não. Talvez experimente em breve num novo projeto qualquer. Parece uma alternativa interessante!
Então e esse tutorial já tem RTA?
Queres dizer ETA? Não sei, mas no post diz que é para breve