MongoDB

Estas son las principales bases de datos NoSQL

¿Sabías que con la aparición de la web 2.0 y la creación de plataformas como Facebook, Twitter y YouTube, las bases de datos debieron cambiar para ofrecer un mejor tratamiento de la información, mayor rendimiento y más rapidez de acceso? En este blog te explicaremos todo lo que debes saber sobre bases de datos No SQL, cuáles son las principales y sus características más importantes.

En una entrega anterior les contamos sobre las bases de datos SQL (siglas en inglés de Structured Query Language) que son el modelo de las Database Management System (DBMS) que más se utiliza y están basados en un concepto matemático llamado relación.

Esta relación es una matriz compuesta de filas y columnas que se entrelazan, estableciendo vínculos entre los datos e imaginando una tabla aparte por cada relación existente con sus propios registros y atributos. Este modelo agrega, elimina o actualiza filas de datos, administra cada detalle de la base de datos, además de recobrar subconjuntos de datos para analizarlos y procesar transacciones.

Cabe recordar que las bases de datos a las que hacemos referencia son estructuras especializadas que permiten a sistemas computarizados guardar de manera ordenada, manejar y recuperar datos con gran rapidez, accediendo a ellos desde cualquier lugar del mundo. La importancia de conocerlas y manejarlas es que prácticamente todos los sistemas modernos se apoyan en las bases de datos.

La mayoría de las aplicaciones que usamos a diario necesitan de alguna base de datos para brindarnos sus servicios. Sin duda que las SQL como MySQL, Oracle o Microsoft SQL Server son las que tienen mayor aceptación y popularidad, pero con la evolución de internet y la forma en que las personas empezaron a relacionarse con él, sobre todo en la creación de las aplicaciones modernas, fue necesario adaptar las bases de datos a las necesidades de los usuarios.

¿Qué son las bases de datos NoSQL?

El nombre NoSQL ha tenido una evolución. Su significado inicialmente era Not SQL como una clara referencia al modelo de lenguaje de dominio específico que mencionamos anteriormente, además de una diferenciación en el tipo de modelo. Sin embargo, estas bases de datos han mejorado y también pueden interactuar con lenguaje SQL, por eso es que su nombre ahora significa “Not Only SQL” (No solo SQL).

Inicialmente se crearon bases de datos NoSQL cerradas que fueron desarrolladas por empresas que buscaban cubrir sus necesidades específicas, como es el caso de BigTable de Google (considerado el primer sistema NoSQL) y DynamoDB de Amazon.

Estas empresas entendieron que su rendimiento y la información en tiempo real eran más importantes que la coherencia, teniendo en cuenta que las bases de datos relacionales tradicionales dedicaban una gran cantidad de tiempo de proceso.

Para el youtuber Víctor Robles, entre las características de las bases de dato NoSQL destaca que no son relacionales; están orientadas a documentos como json y bson; no tienen un lenguaje SQL, sino que se utiliza JavaScript; es sencillo trabajar con estas bases y son rápidas.

Sobre sus características, el experto Luis Joyanes Aguilar explica en su libro ‘Big Data, Análisis de Grandes Volúmenes de Datos en Organizaciones que “las bases de datos NoSQL difieren del modelo clásicos de sistemas de gestión de bases de datos relacionales (SGBDR) en aspectos importantes (…)  como que los datos almacenados no requieren estructuras fijas como tablas, normalmente no soportan operaciones Jan ni garantizan las características diferenciadoras ACID (Atomicidad, Coherencia, Aislamiento y Durabilidad)”.

Joyanes señala que en las bases de datos NoSQL no hay tablas como en los modelos relacionales, sino que la información se almacena de modo distinto, ya sea  por documentos,  clave – valor, grafos, en memoria, búsqueda, entre otras formas.

“Las características fundamentales son la carencia de un esquema predeterminado, la altal escalabilidad horizontal sin pérdidas de rendimiento y posibilidad de manipulación de grandes volúmenes de datos de gran velocidad. Además funcionan muy bien con hardware estándar de bajo coste”, indica el experto.

Es por eso que se considera que las bases de datos NoSQL son idóneas para aplicaciones que requieran de lectura/escritura de grandes volúmenes de datos, y necesiten brindar un servicio a miles de millones de usuarios.

En su libro, Joyanes establece que, por las razones anteriormente mencionadas, redes sociales como Facebook, Twitter o Linkedin, o buscadores como Google o Yahoo utilizan NoSQL como soporte fundamental de almacenamiento de datos.

Ventajas y desventajas de las NoSQL.

Dentro de las ventajas que tienen estas bases de datos están:

  • Están basadas en key-value pairs.

  • Algunos tipos de almacén de bases de datos NoSQL incluyen diferentes tipos de almacenes como por ejemplo el almacén de columnas, de documentos, de key value store, de gráficos, de objetos, de XML y otros modos de almacén de datos.

  • Las bases de datos NoSQL de código abierto tienen una implementación rentable, ya que no requieren tarifas de licencia y pueden ejecutarse en hardware de bajo precio.

  • Son de fácil expansión y más barata que las bases de datos relacionales, debido a que tienen un escalado horizontal en vez de vertical y a que se distribuye la carga por todos los nodos.

Como todo, las NoSQL están lejos de ser perfectas y por eso te contamos algunas de sus desventajas:

  • Como te contamos anteriormente, no admiten funciones de fiabilidad que se resumen en atomicidad, consistencia, aislamiento y durabilidad.

  • Para apoyar las características de fiabilidad y coherencia, los desarrolladores deben implementar su propio, lo que vuelve más complejo el sistema.

  • Esto limita las aplicaciones en las que podemos confiar para realizar transacciones seguras y confiables, como las que hacemos con sistemas bancarios.

  • Puede ser incompatibles con consultas SQL, por lo que es necesario un lenguaje de consulta manual que complejiza los procesos y los hace lentos.

Principales bases de datos NoSQL.

Ya conocimos las características de las bases de datos NoSQL, que son y en qué se diferencian de las SQL, ahora te contaremos sobre las principales bases de datos de este tipo.

  • Cassandra: Esta base de datos está basada en un modelo de almacenamiento clave – valor, de código abierto que está escrita en Java. Permite grandes volúmenes de datos en forma distribuida. Esta base la usan Twitter, Apple, Facebook, Netflix y Soundcloud, entre otros. La arquitectura de Cassandra está basada en una serie de nodos iguales que se comunican con un protocolo P2P. Está desarrollada por Apache Software Foundation.

  • MongoDB: Guarda estructuras de datos BSON con un esquema dinámico, haciendo la que la integración de los datos en ciertas aplicaciones sea más fácil y rápida. Es utilizada EA, Verizon, Ebay, Sega, Google y Adobe, entre otros.

  • CouchDB: Esta base se enfoca en la facilidad de su uso. Emplea JSON para almacenar datos, JavaScript como lenguaje de consulta por medio de MapReduce y HTTP como API. Una de sus características más peculiares es la facilidad con la que permite hacer replicaciones.

  • SimpleDB: Los desarrolladores pueden guardar y consultar elementos de datos a través de solicitudes simples de servicios web. Tiene alta disponibilidad y flexibilidad, debido a que administra automáticamente múltiples copias de los datos. Es desarrollada por Amazon. Esta empresa tiene otro NoSQL llamada DynamoDB, que es de clave-valor y documentos, que ofrece un rendimiento en milisegundo de un solo dígito a cualquier escala.

  • BigTable: Almacena información en tablas multidimensionales cuyas celdas están, en su mayoría, sin utilizar. Además, estas celdas disponen de versiones temporales de sus valores, con lo que se puede hacer un seguimiento de los valores que se han tomado históricamente. Fue creado por Google con las características de ser distribuido, de alta eficiencia y propietario.

 

¿Cuál de estas bases de datos se adaptan más a tus necesidades? ¿Quieres aprender más sobre este tema y ser un experto en sistemas de gestión de bases de datos? En Next U te podemos enseñar todo lo que necesitas saber en programación webbases de datos y Big Data.

Aprovecha la oportunidad, certifica tus conocimientos y conviértete en un experto.
¡Avanza con Next U!