Primeros pasos con MongoDB

Índice

Introducción

La definición que todo el mundo da sobre MongoDB, es la de una base de datos NoSQL de alto alto rendimiento, escalabilidad y disponibilidad en donde se almacenan documentos (formato B/JSON) sin limitación de esquemas, es decir sin cumplir con una estructura concreta como en los modelos de BD relacionales.

Una de las asignaturas pendientes que tenía es conocer de primera mano y profundizar en el tema de las bases de datos NoSQL.
En esta inversión de conocimiento, que seguramente sea de varios cientos de horas de lecturas y videotutoriales tengo la intención de responderme a mi mismo las preguntas tengo en relación a este tema.

  • Qué implicaciones conlleva migrar un modelo relacional a uno NoSQL: dificultades, limitaciones, ventajas e inconvenientes.
  • ¿En qué tipos o partes de un proyectos encaja?
  • Comparativa NoSQL vs Relacional en cuanto a rendimiento usando distintos volumenes de datos.
  • Estudio de escalabilidad, herramientas de administración, análisis y monitorización del sistema.

Instalación de MongoDB

A continuación os dejo distintos tutoriales sobre como instalar mongodb en cada una de las plataformas disponibles:

Manos a la obra, realizando algunas pruebas

En este primer tutorial introductorio vamos a usar como cliente el shell de MongoDB para enviarle sentencias al servidor.

En la siguiente captura de pantalla, podemos ver a la izquierda el servidor (mongodb) y a la izquierda el cliente (shell de mongodb)

Ambos procesos se encuentran en el directorio bin de la estructura de directorios que se crea en la instalación.

Una vez instalado, podemos iniciar el servidor y el cliente (shell) con los siguientes comandos respectivamente:

  • <mongo-install-dir>bin/mongod --dbpath ~/dev/mongodb/data/. (El parémetro dbpath indica dónde se guardarán los datos)
  • <mongo-install-dir>bin/mongo

Probemos!!, ejecutemos las siguientes instrucciones en el shell de mongodb:

Haz clic aquí y aquí para algunas sentencias SQL junto a su correspondencia en MongoDB.

Conclusiones:

De estas primeras lecturas y pruebas realizadas, debo decir que me ha gustado bastante y me ha animado a continuar con la inversión de conocimiento en este tema.

Me parece bastante sencillo y elegante su diseño de cara al desarrollador, siendo su aprendizaje bastante más sencillo de lo que esperaba, además posee una muy extensa documentación.

Aunque de momento en este tutorial, apenas hemos usado el Shell y no los drivers especificos de cada lenguaje de programación, quiero resaltar la siguiente observación:

Todos sabemos que los datos es una parte vital de cualquier negocio, es decir, deben ser consistentes y validos. Pues bien, en el modelo relacional de BD, al estar todo muy tipado y con restricciones de integridad (Foreing Keys, Constraints) una base de datos bien diseñada evitaba que se perdiera la integridad de la información cosa que no veo en MongoDB, es decir esta validación de información parece que debe ser validada en otra capa de la aplicación y ser persistida ya validada.... es decir, se pierde un nivel de seguridad antes posibles fallos del código de validación.

Referencias:

Bueno, espero que os sea de utilidad, recuerda que puedes profundizar más, esto es sólo una introducción.
Un saludo. Carlos García

Categorías del artículo

Comentarios de los lectores