Hace tiempo que llevo oyendo el término NoSQL, y a mí por lo menos me llamaba bastante la atención. El otro día tuve la oportunidad de conocer el término con mas detalle ya que un profesor nos introdujo este concepto (la asignatura se llama Modelos Avanzados de Base de Datos) mostrándonos uno de los sistemas en crecimiento empleados en nuevos desarrollos. Una frase importante que se me quedó grabada es que estos sistemas no son “balas de plata”, son alternativas a las bases de datos relacionales que se emplean en entornos muy concretos. Vamos a conocer MongoDB y  conocer las 5 razones primordiales para emplearlo en nuestros proyectos.

mongodb

¿Qué NO es MongoDB?

MongoDB no es una base de datos relacional, no es un esquema, no son tablas ni entidades. MongoDB y todas las herramientas NoSQL (que proviene de Not Only Sql, no una negación de SQL como muchos creían) son nuevas formas de ver y tratar las base de datos. Conceptos totalmente distintos a los que conocemos con las bases de datos tradicionales que nos aportaban unas características ACID necesarias en ciertos sistemas, sobre todo grandes aplicaciones bancarias donde la consistencia de los datos es lo mas importante, el “target” principal.

Pero yo me pregunto: ¿Es necesario estos sistemas tan pesados para aplicaciones estilo Facebook?  ¿Es necesario que nuestra última actualización de perfil este disponible para una persona que no pertenezca a los grados más cercanos de amigos? La solución a estas preguntas pasa por pensar en otros sistemas de base de datos distintos a los relacionales que se hacen pesados y poco ágiles para este tipo de desarrollos.

Como ya sabemos lo que no es MongoDB, ahora definimos este sistema. Se trata de una base de datos NoSQL orientada a documentos open-source. El término orientado a documentos no quiere decir que se almacenen documentos pdf ni docx. En vez de almacenar datos en tablas como hasta ahora conocíamos, MongoDB almacena estructuras de datos en documentos tipo JSON (o BSON) con un esquema dinámico, aportando que la integración de los datos en las aplicaciones que requieran de estos sea mucho más fácil y rápida.

5 Razones por las que empezar a aprender MongoDB

Veamos las razones por las que debemos aprender a conocer MongoDB:

  1. Rendimiento. MongoDB ofrece un  gran rendimiento a la hora de insertar datos mucho mayor que otros sistemas de base de datos tradicionales. Sin embargo esta ventaja implica sacrificar características de los sistemas  de bases de datos relacionales como el tratamiento de las transacciones. Los documentos se refrescan automáticamente, pero no se conoce un concepto de transacción tal cual lo conocemos sensible a caidas, que abarque actualizaciones en varios documentos .  Se puede decir que busca alcanzar un balance entre rendimiento y funcionalidad, aportando ciertas características de las bases de datos relacionales, pero sin sacrificar en rendimiento.
  2. Replicación. MongoDB soporta el tipo de replicación master-slave. Este sistema de replicación es sencillo de comprender: el maestro recibe tanto consultas de lectura como de escritura mientras que  los esclavos reciben los datos del maestro y sólo se emplean para consultas de lectura o copias de seguridad, pero no permite escrituras.
  3. Balanceo de carga. Además de la replicación permite que los sistemas puedan escalar, algo dificilmente posible en los sistemas de bases de datos relacionales. Este sistema permite escalar de forma horizontal empleando el concepto de “shard”, esto permite que los datos sean distribuidos en distintos servidores, balanceando la carga entre ellos , así equilbrándolos y no sobrecargando ninguno de ellos. Pueden ser incorporadas nuevas máquinas a MongoDB con el sistema de base de datos corriendo proporcionándonos una gran flexibilidad.
  4. Almacenamiento. MongoDB puede ser utilizado con un sistema de archivos, tomando la ventaja de la capacidad que tiene MongoDB para el balanceo de carga y la replicación de datos utilizando múltiples servidores para el almacenamiento de archivos.En un sistema multi-servidor, los archivos pueden ser distribuidos y replicados entre los mismos varias veces, proporcionando un sistema eficiente ante fallos y balanceos de carga.
  5. Uso Adecuado: Se han garantizado casos de éxito para distinto tipos de aplicaciones. Por ejemplo MongoDB es utilizado en aplicaciones de empresas tan conocidas como Foursquare, Sourceforge, Google, Facebook o New York Times. Se recomiendo su empleo en los siguientes tipos de aplicaciones que requieren entornos de alto rendimiento o alta concurrencia de acceso,  es decir que requieran un acceso rápido y con alta carga de consultas.

Artículos relacionados...

Sobre El Autor

Coordinador en AnalyticaWeb.com Me encanta el SEO y la Analítica Web. Emprendedor y autodidacta que con pasión intenta alcanzar los máximos de su proyección. Disfruto convirtiendo datos en negocio.

Artículos Relacionados

3 Respuestas

  1. Doctrine2: La era de los ODM

    […] mezclar distintos temas de los que he escrito anteriormente: los Mapeos Objeto Relacionales y las Bases de Datos orientadas a Documentos. Si en otros artículos he hablado de Hibernate para Java. Hoy quiero hablar de Doctrine2 para […]

    Responder

Hacer Comentario

Su dirección de correo electrónico no será publicada.