MongoDB: Bienvenido al NoSQL

logo_gpsHoy queremos hablaros de MongoDB.

MongoDB es una base de datos NoSQL que cada vez cuenta con más usuarios y respaldo por parte de los desarrolladores. Os pasamos a resumir algunas de sus características así como algunas impresiones de nuestra experiencia con MongoDB.

1. Es NoSQL

Una base de datos NoSQL es una BBDD que no utiliza sentencias SQL, ni tiene la estructura típica de las bases de datos relacionales como SQL Server o Oracle. En el caso de MongoDB, está orientado a documentos, que sería el equivalente a una fila de una tabla (colección en MongoDB) en una base de datos relacional.

2. No es relacional

Tampoco utiliza relaciones,lo que implica algunas ventajas e inconvenientes. Veamos un ejemplo:

Si se tiene una página web, de la cual únicamente se lee el contenido de las páginas y no se tienen relaciones, MongoDB sería posiblemente una opción muy recomendable. En cambio, para una aplicación más compleja en la que se tenga que asegurar la integridad referencial, deberías optar por una base de datos relacional.

Otra ventaja que tiene esta estructura es que nos permite ahorrar mucho espacio y campos a null: si tenemos una tabla en una base de datos relacional y se añade un nuevo campo a esa tabla, a todos los registros que ya estaban creados, se les añade un campo a null a cada uno. Con una estructura de documentos como MongoDB, esto no pasa, ya que añade únicamente ese campo a los documentos que lo tienen. Nosotros en una colección (tabla) podríamos tener los siguientes documentos:

[{"_id":1,"nombre":"Juan","direccion": { "calle": "San José", "número": 12 } }, 
{"_id":2,"nombre":"Alberto","apellidos":"López","telefono":"123456789"} ]

Al no tener una estructura fija, nos permite ahorrarnos mucho espacio en la base de datos, y tener campos inútiles. También nos permite ahorrarnos muchas relaciones, ya que en una sola tabla tendríamos los detalles de la dirección por ejemplo. Si tuviéramos una tienda de accesorios para móviles, podríamos tener en la misma tabla los modelos con los que son compatibles un artículo, evitándonos así una compleja consulta join, la colección tendría una estructura similar a:

{"_id":5,"artículo":"funda","fabricante":"Samsung","modelos":[ "S5", "S6","S7" ]}

A pesar de no ser una base de datos relacional, no deja de ser una base de datos, por lo que podremos crear índices, hacer consultas tipo select, inserciones, etc.

3. ¿Por qué probarlo?

En primer lugar, tiene drivers para diversos lenguajes de programación, Java, PHP, NodeJS…en la página oficial tendréis más detalles. Esto nos da mucho juego a la hora de implementarlo, ya que podríamos usarlo en cualquier tipo de aplicación y en el lenguaje que estés más cómodo.

Si estás acostumbrado a manejarte con BBDD relacionales no deberías tener problemas con MongoDB. Por ejemplo, para encontrar el documento con id 27 de la colección alumnos sería:

db.alumnos.find({id: 27})

Y para terminar, el último motivo sería el gran respaldo que tiene, hay mucha documentación, cursos gratis online proporcionados por el propio fabricante y su ya comprobada garantía en términos de escalabilidad y alta disponibilidad.

Espero que este post os haya servido, nos vemos en próximas entradas de MongoDB.

Un saludo,

Equipo de base de datos

 

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

GPS Open Source, S.L, le informa que este sitio web utiliza Cookies tanto propias como de terceros para facilitar la navegación y para recopilar información estadística sobre su navegación. Si pulsa aceptar o continúa navegando entenderemos que acepta la instalación de las mismas. Más Info, política de cookies

ACEPTAR
Show Buttons
Hide Buttons