miércoles, 7 de enero de 2015

Introducción a MongoDB

MongoDB es una de las bases de datos NoSQL más utilizada. Es un producto open-source, multiplataforma y está escrito en C++, pero su uso es similar al del lenguaje Javascript (objetos JSON), como veremos más adelante.

Una base da detos NoSQL como MongoDB funciona de forma muy distinta a una clásica base de datos relacional: No hay tablas sino colecciones, no hay registros sino documentos, no hay atributos sino campos y como característica más importante: no hay relaciones. Al menos no las hay en el sentido de las bases de datos relacionales, aunque se pueden simular. Tampoco hay SQL. Podría decirse que MongoDB es una base de datos orientada a objetos, ya que los "documentos" de MongoBD son muy similares los "objetos" de por ejemplo Javascript. Tan similares que la interacción con MongoDB se realiza a través JSON (JavaScript Object Notation).

Por ejemplo:

db.books.find({ author: 'George R. R. Martin' });

Una de las principales características de MongoDB, al igual que de otras bases de datos NoSQL, es que los documentos no tienen por que ser homogéneos. Esto quiere decir que dos documentos de la misma colección pueden tener campos diferentes.

Por ejemplo:

db.books.insert({ name: 'A Game of Thrones', author: 'George R. R. Martin' });
db.books.insert({ name: 'A Clash of Kings', year: 1988 });

En este ejemplo ambos documentos tienen distintos campos, estando en la misma colección, pero ambos son válidos en MogoDB. Incluso es posible que dos documentos tengan el mismo campo con distinto tipo. Por ejemplo author podrís ser un string en un documento y un array en otro.


Principales ventajas

  • Rapidez en las consultas.
  • Enorme flexibilidad.
  • Indexación por cualquier campo.
  • Soporta replicación y balanceo de carga.
  • Es multiplataforma: linux, Mac OS X, Windows, ...
  • Tiene drivers para la mayoría de lenguajes de programación: C, C++, PHP, Java, .Net, etc.

Principales inconvenientes

  • Carece de relaciones.
  • No soporta transacciones.

Referencias

No hay comentarios:

Publicar un comentario