Mongodb

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1252 palavras )
  • Download(s) : 0
  • Publicado : 11 de fevereiro de 2013
Ler documento completo
Amostra do texto
1. Introdução
Nos últimos anos, vimos um interesse crescente em sistemas de gerenciamento de bancos dados que diferem do modelo relacional tradicional. No centro disso está o conceito de NoSQL, um termo usado coletivamente para denotar software de banco de dados que não usa SQL (Structured Query Language) para interagir com o banco de dados. Um dos projetos NoSQL mais notáveis até o momento é oMongoDB, uma banco de dados orientado a documentos e de software livre que armazena dados em coleções de documentos semelhantes a JSON. O que distingue o MongoDB de outros bancos de dados NoSQL é a sua poderosa linguagem de consulta baseada em documento, que torna a transição de um banco de dados relacional para o MongoDB fácil, porque as consultas são convertidas com bastante facilidade.2. O que é o MongoDB
O MongoDB é escrito em C++. Ele armazena dados dentro de documentos semelhantes a JSON (usando BSON — uma versão binária de JSON), que retém os dados usando pares de chave/valor. Um recurso que diferencia o MongoDB de outro bancos de dados de documentos é que é muito simples converter instruções SQL em chamadas de função de consulta do MongoDB. Isso facilita a migração deorganizações que atualmente usam bancos de dados relacionais fazerem a migração. Ele também é muito simples de instalar e usar, com binários e drivers disponíveis para os principais sistemas operacionais e linguagens de programação.
O MongoDB é um projeto de software livre, com o banco de dados em si licenciado sob a GNU AGPL (Affero General Public License) versão 3.0. Essa licença é uma versãomodificada da GNU GPL que fecha uma brecha na qual as restrições de copyleft não se aplicam ao uso do software, mas apenas à sua distribuição. Isso, naturalmente, é importante em software armazenada na nuvem e geralmente não instalado em dispositivos cliente. Usar a GPL regular poderia resultar em alguém perceber que nenhuma distribuição de fato acontece e, portanto, potencialmente contornar os termosda licença.
A AGPL aplica-se apenas ao próprio aplicativo de banco de dados, e não a outros elementos do MongoDB. Os drivers oficiais que permitem que os desenvolvedores conectem o MongoDB a várias linguagens de programação são distribuídos sob a Licença Apache, Versão 2.0. A documentação do MongoDB está disponível sob a licença Creative Commons.

3. Bancos de dados orientados adocumentos
Os bancos de dados orientados a documentos são bastante diferentes dos tradicionais bancos de dados relacionais. Em vez de armazenar dados em estruturas rígidas, como tabelas, eles os armazenam em documentos vagamente definidos. No caso de tabelas de sistemas de gerenciamento de bancos de dados relacionais (RDBMS), se for preciso acrescentar uma nova coluna, será necessário mudar a definiçãoda própria tabela, que acrescentará aquela coluna a todos os registros existentes (embora potencialmente com valor nulo). Isso se deve ao estrito design baseado em esquema do RDBMS. No entanto, em documentos, é possível acrescentar novos atributos aos documentos individuais sem que outros sejam alterados. Isso porque o design de bancos de dados orientados a documentos costuma ser sem esquema.Outra diferença fundamental é que bancos de dados orientados a documentos não fornecem relacionamentos estritos entre documentos, o que ajuda a manter seu design sem esquema. Isso difere muito de bancos de dados relacionais, que dependem fortemente de relacionamentos para normalizar o armazenamento de dados. Em vez de armazenar dados "relacionados" em uma área de armazenamento separada, em bancos dedados de documentos eles são integrados ao próprio documento. Isso é muito mais rápido do que armazenar uma referência a outro documento onde os dados relacionados são armazenados, visto que cada referência exigiria uma consulta adicional.
Isso funciona muito bem para muitos aplicativos nos quais faz sentido os dados ficarem autocontidos dentro de um documento pai. Um bom exemplo (encontrado...
tracking img