martes, 10 de octubre de 2017

Razones para usar MongoDB como base de datos del Gestor Documental


En este artículo exploraremos las ventajas de usar bases de datos NoSQL como MongoDB para almacenar datos y documentos
MongoDB es, actualmente, una de las base de datos NoSQL más populares. A diferencia de las bases de dato relacionales, los datos no son almacenados en tablas, sino que se utilizan archivos planos en formato JSON (JavaScript Object Notation), que es un estándar muy difundido entre un gran número de aplicaciones en la actualidad. Esto permite que la integración entre MongoDB y estas aplicaciones sea mucho más sencilla.

El término NoSQL hace referencia a "Not only SQL". Esto significa que NoSQL no utiliza un modelo relacional, y esto es útil cuando las estructuras de los datos que utilizamos pueden variar. Es posible hacer cambios de los esquemas sin tener que parar la base de datos. Las bases NoSQL pueden adaptarse a proyectos reales más fácilmente que un modelo entidad-relación.
Además tiene una estructura descentralizada, lo que le permite utilizar esquemas distribuídos. Esta característica lo vuelve fácilmente escalable. La escalabilidad es horizontal: se pueden utilizar más máquinas con menor capacidad de cálculo, en vez de tener que recurrir a una única máquina más poderosa. La elección de una base NoSQL es más razonable si no contamos con un gran presupuesto para equipos.

Otra de las ventajas, es que en una base de datos NoSQL, las consultas para grandes cantidades de datos están optimizadas. Para que os hagáis una idea, Facebook, Twitter, Reddit o Foursquare usan bases de datos NoSQL.

En cuanto a las limitaciones de NoSQL, las bases NoSQL no ofrecen un control tan estricto sobre la atomicidad de las transacciones. Esto es una ventaja significativa en las bases de datos relacionales. La atomicidad, es lo que permite realizar una operación completa que involucra varias tablas, sin que haya modificaciones en el medio, antes de que finalice la transacción de manera completa. Es decir, o se realiza toda la transacción o no se realiza. Por ejemplo, la atomicidad se encarga de que en una transferencia bancaria, la transacción no quede hecha a medias, sino que si el dinero se ingresa en una cuenta, debe salir de la otra. Si bien esta cualidad impacta en el rendimiento de la base de datos, la atomicidad es lo que mantiene la integridad en los datos y, eventualmente, permite realizar un rollback ordenado, si hiciere falta. Las bases de datos NoSQL en cambio soportan una consistencia eventual de los datos.

El modelo relacional ya tiene más de 40 años de uso, así que la evolución de los productos y las herramientas de bases de datos relacionales poseen una gran maduración. Las bases NoSQL aún no están del todo estandarizadas, así que cada una de ellas posee características propias en cuanto a las consultas y no necesariamente mantienen compatibilidad con las instrucciones SQL. Sin embargo, el hecho de que hoy en día se tenga que lidiar con cantidades de datos tan grandes, abren un extenso panorama para estos repositorios de datos. NoSQL es una buena opción para aquellas empresas que detectan problemas de desempeño y escalabilidad o costes debido a grandes volumenes de datos.

Uso en Sistemas de Gestión Documental

En un sistema de gestión documental, con grandes volúmenes de documentos y altos números de transacciones de consulta, escritura o actualización, la utilización de un esquema NoSQL es mucho más eficiente.

Las bases relacionales exigen que se defina un esquema, que no es más que una estructura descrita en algún lenguaje formal interpretado por el motor de la base de datos y que describe el esqueleto de las tablas existentes y su interrelación. Esto introduce una limitación, ya que los metadatos de los documentos almacenados estarán restringidos al tipo de datos definido en este esquema. Esta limitación no existe en una base NoSQL.

Además, dentro de cada tabla se deben definir restricciones en cuanto a las filas y columnas, así como el tipo de dato que se puede almacenar en cada columna. Con NoSQL, basado en el tipo de dato, la definición de esta restricción son automatizadas, disminuyendo los tiempos empleados para el desarrollo.
El alto rendimiento y la alta escalabilidad de MongoDB lo hace ideal para un sistema de este tipo. Además de proveer una estructura de documento JSON, soporta un esquema dinámico llamado BSON. En una base relacional, los archivos pueden ser almacenados como tipos de datos BLOB (binary large objects), que tienen un tamaño máximo aproximado de 4.25 Gbytes, lo que indica un límite al tamaño máximo del documento almacenado. MongoDB, si bien soporta un tamaño máximo de 16Mbytes para un documento, puede superarse esa limitación si se utiliza GridFS, que divide el archivo en pedazos para poder almacenarlo, permitiendo que el tamaño total sea virtualmente ilimitado.

También posee una característica denominada "sharding", que es lo que permite balancear carga entre servidores, al asignar distintos datos a cada uno de ellos,y de esa manera se reparte la tarea de consultas e inserción de datos. No es necesario un mapeo o transformación entre los objetos de la aplicación y los objetos en la base de datos. Utiliza memoria interna para almacenar el conjunto de trabajo, lo que posibilita un acceso más rápido a los datos. MongoDB soporta consultas dinámicas utilizando un poderoso lenguaje de consultas basado en documentos.

Estas características generales convierten a MongoDB en el mecanismo de base de datos más adecuado para utilizarse en un sistema de gestión documental.

Descarga nuestro ebook: Cómo cumplir el nuevo reglamento europeo de protección de datos

No hay comentarios:

Publicar un comentario

AddThis