5 de dezembro de 2014

Banco de dados MongoDB


(Fonte: http://www.mongodb.com/)


      Neste post iremos conhecer um pouco sobre o banco de dados NoSQL orientado a documentos mais popular no mercado, o MongoDB.

      O MongoDB foi projetado inicialmente pela empresa 10gen com o intuito ser um banco de dados orientado a documentos de sua plataforma de nuvem.  Após perceber o potencial do software, a 10gen decidiu cancelar sua plataforma de nuvem e se concentrar em manter o MongoDB. Em 2009, a 10gen converteu o MongoDB para um projeto de código aberto.

      Fazendo uma analogia com os banco de dados relacionais, a estrutura do MongoDB pode ser entendida da seguinte forma:

Comparação SQL e NoSQL
(Fonte: http://krishnasblog.com/2012/06/02/understanding-document-based-mongodb-nosql/)


      No MongoDB cada registro é realmente um documento. Os documentos são armazenados em um formato BSON (Binary Serializable JSON objects). E o MongoDB suporta consultas em JavaScript para recuperar os objetos BSON.  Os documentos BSON são objetos que contém uma lista ordenada de elementos salvos. E cada elemento é constituído por o nome do campo e um tipo específico de valor.

Exemplo de objeto no MongoDB
(Fonte: http://docs.mongodb.org/manual/core/data-model-design/)

      Algumas características positivas no MongoDB, são:

  • Consultas elabordas: Além de poder acessar os dados por meio de chaves, é possível fazer uma consulta em relação a campos especificados e variações dinamicamente na consulta, e também é possível consultar com expressões regulares.
  • Índice Secundário: Assim como pode-se fazer consultas em relação a campos especificados, pode também definir estes campos como índices secundários, para aumentar a performance de acesso ao dado.
  • Replicação Mestre-Escravo: Controla as operações de leitura e escrita para separar servidores, executando um servidor escravo como um servidor mestre quando o servidor mestre estiver inacessível.
  • Sharding: Possibilita o processo de armazenamento de registros de dados em vários servidores para atender as demandas de crescimento de dados.
  • MapReduce: Processa grandes volumes de dados em paralelo, dividindo o trabalho em um conjunto de tarefas independentes.
  • Suporte de drivers para várias linguagens de programação.

Referências:

Understanding document based MongoDB NoSQL
Disponível em <http://krishnasblog.com/2012/06/02/understanding-document-based-mongodb-nosql/>. Acessado em 04/12/2014.

NoSQL Concept and MongoDB
Disponível em <https://www.ma-no.org/en/content/index_nosql-concept-and-mongodb_1736.php>. Acessado em 04/12/2014.

What is MongoDB
Disponível em <http://www.mongodb.com/what-is-mongodb>. Acessado em 04/12/2014.

Nenhum comentário:

Postar um comentário