Queremos información rápida

Imagen MongoDB¿Esperarías dos minutos una consulta de Google? ¿Cuánto permanecerías en LinkedIn hasta obtener los resultados de los profesionales de una empresa?

En cuestión de información está claro que queremos muchos datos y los queremos ya.

Los que nos dedicamos al desarrollo de aplicaciones sabemos cuánto puede tardar a veces una consulta SQL. Los grandes volúmenes de datos en las tablas así como las relaciones entre ellas, y en menor medida también las condiciones de búsqueda suponen una lacra en la ejecución de los procedimientos, y por ende en la eficiencia de las aplicaciones. Además la información que se guarda puede cambiar, lo que supone frecuentes cambios en los esquemas de datos.

¿Te imaginas guardar los datos de tus aplicaciones sin diseñar el esquema de las tablas por adelantado? ¿Sueñas con consultas instantáneas sin importar las relaciones entre los datos?

Las bases de datos no relacionales se están convirtiendo en una interesante elección. No tenemos tablas, no tenemos registros y lo que es más importante, no tenemos SQL. Suena innovador almacenar ahí la información, lo sé, pero quédate conmigo.

MongoDB es un sistema de bases de datos NoSQL orientado a documentos. Este tipo de sistemas guardan la información en formato JSON con un esquema dinámico, haciendo que la integración de los datos en las aplicaciones sea más fácil y rápida. Los documentos de una misma colección – concepto similar a una tabla de una base de datos relacional -, no tienen por qué ser iguales.

Cuando la recuperación de información es muy lenta en una aplicación se puede utilizar un sistema con dos bases de datos, una relacional, por ejemplo Oracle,  y otra documental, por ejemplo Mongo. En este caso se mantiene la base de datos relacional, con todas las ventajas que supone almacenar los datos en tablas, y cuando se accede por primera vez a una estructura compleja, se almacena esta información en el sistema documental. Las próximas consultas de esta información ya siempre se realizarán a Mongo, lo que supone unos accesos casi instantáneos a lo que antes podía demorar decenas de segundos. En este caso MongoDB actuaría como una caché de la base de datos relacional.

En un sistema con base de datos caché con Mongo los almacenamientos y actualizaciones de información se podrían realizar en Oracle, y por supuesto debe existir algún procedimiento para sincronizar ambos sistemas. El no actualizar directamente Mongo evitaría encontrarse con una de las principales desventajas de este tipo de bases de datos, la no existencia de transacciones. En efecto Mongo solo garantiza operaciones atómicas a nivel de documento, aunque la tendencia es mejorar esto en nuevas versiones.

La lista de organizaciones que utiliza MongoDB es muy extensa, y cada vez mayor. Desde LinkedIn y Foursquare hasta Orange y Teléfonica. Empresas también como Cisco, Bosch, eBayExpediaForbes, IBM, Windows AzureMcAfee o periódicos como The Guardian, Le Figaro, The NewYork Times, etc.

Incluso el CERN (Organización Europea para la Investigación Nuclear) utiliza MongoDB para los grandes volúmenes de datos que genera el acelerador de partículas.

Tanto el usar únicamente Mongo para la gestión de los datos, como utilizarlo como complemento a una base de datos relacional puede constituir una opción que mejore el desempeño de ciertas aplicaciones. No es la panacea, desgraciadamente ninguna herramienta de software lo es, pero es una clara alternativa para manejar grandes volúmenes de información.

Referencias:

https://www.mongodb.org/

http://www.stratebi.es/todobi/Oct13/MongoDB_UpRunning.pdf

http://mappinggis.com/2014/07/mongodb-y-gis/

http://www.genbetadev.com/bases-de-datos/mongodb-que-es-como-funciona-y-cuando-podemos-usarlo-o-no

http://www.genbetadev.com/bases-de-datos/el-concepto-nosql-o-como-almacenar-tus-datos-en-una-base-de-datos-no-relacional

http://nosql-database.org/

Tamara Mata SogetiTamara Mata

.NET Senior Developer | Soluciones Microsoft | SOGETI ESPAÑA

 

Autor: ITblogsogeti

Sogeti es una compañía tecnológica perteneciente al Grupo Capgemini y especialista en: Testing y Calidad de Software; Soluciones Microsoft y High Tech Consulting. En Sogeti entendemos la importancia de obtener el máximo valor empresarial de sus sistemas de IT, por ello somos líderes mundiales en Testing & QA.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s