BASE DE DATOS NOsql
BASE DE DATOS NO SQL
NoSQL, que abarca una amplia gama de
tecnologías y arquitecturas, busca resolver los problemas de escalabilidad y
rendimiento de big data que las bases de datos relacionales no fueron
diseñadas para abordar. NoSQL es especialmente útil cuando una
empresa necesita acceder y analizar grandes cantidades de datos no
estructurados o datos que se almacenan de forma remota en varios servidores
virtuales en la nube.
Contrariamente
a las ideas falsas causadas por su nombre, NoSQL no prohíbe el lenguaje estructurado de
consultas (SQL). Si bien es cierto que algunos sistemas NoSQL son
totalmente no-relacionales, otros simplemente evitan funcionalidades
relacionales seleccionadas como esquemas de tablas fijas y operaciones
conjuntas. Por ejemplo, en lugar de utilizar tablas, una base de datos NoSQL
podría organizar los datos en objetos, pares clave/valor o tuplas.
Podría
decirse que la base de datos más popular NoSQL es Apache Cassandra. Cassandra,
que una vez fue la base de datos propietaria de Facebook, fue liberada como
código abierto en 2008. Otras implementaciones NoSQL incluyen SimpleDB, Google
BigTable, Apache Hadoop, MapReduce, MemcacheDB y Voldemort. Las empresas
que utilizan NoSQL incluyen NetFlix, LinkedIn y Twitter.
NoSQL
se menciona a menudo en combinación con otras herramientas de big data, como el
procesamiento paralelo masivo, las bases de datos a base de columnas y las
bases de datos como servicio (DaaS).
La evolución de NoSQL
El
problema de la escalabilidad de SQL fue reconocido por empresas Web 2.0, con
grandes necesidades de datos e infraestructura, como Google, Amazon y Facebook.
Ellos solos tuvieron que buscar soluciones propias a este problema, con
tecnologías como BigTable, DynamoDB,
y Cassandra.
Este interés
creciente dio lugar a una serie de sistemas de gestión de base de datos NoSQL
(DBMS), con un enfoque en el rendimiento, la fiabilidad y la coherencia. Se
reutilizaron y mejoraron varias estructuras de indexación existentes con el
propósito de mejorar la búsqueda y el rendimiento de lectura.
En primer lugar,
había tipos de bases de datos NoSQL (de origen cerrado), desarrolladas por
grandes empresas para satisfacer sus necesidades específicas, como BigTable de
Google, que se cree es el primer sistema NoSQL y DynamoDB de Amazon.
El éxito de estos
sistemas patentados inició el desarrollo de varios sistemas de bases de datos
de código abierto y de propietarios similiares siendo los más populares
Hypertable, Cassandra, MongoDB, DynamoDB, HBase y Redis.
¿QUE HACE DIFERENTE A NOsql?
Una diferencia
clave entre las bases de datos de NoSQL y las bases de datos relacionales
tradicionales, es el hecho de que NoSQL es una forma de almacenamiento no
estructurado.
Esto significa que
NoSQL no tiene una estructura de tabla fija como las que se encuentran en las
bases de datos relacionales.
VENTAJAS Y DESVENTAJAS DE BASE DE
DATOS NOsql
Ventajas
Las bases de datos de NoSQL presentan muchas
ventajas en comparación con las bases de datos tradicionales.
·
A diferencia de las bases de datos relacionales, las bases de datos
NoSQL 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.
·
Algunos tipos de almacén de bases de datos NoSQL incluyen almacenes de
columnas, de documentos, de valores de claves, de gráficos, de objetos, de XML
y otros modos de almacén de datos.
·
Podría decirse que las bases de datos NoSQL de código abierto tienen una
implementación rentable. Ya que no requieren las tarifas de licencia y pueden
ejecutarse en hardware de precio bajo.
·
Cuando trabajamos con bases de datos NoSQL, ya sean de código abierto o
tengan un propietario, la expansión es más fácil y más barata que cuando se
trabaja con bases de datos relacionales. Esto se debe a que se realiza un
escalado horizontal y se distribuye la carga por todos los nodos. En lugar de
realizarse una escala vertical, más típica en los sistemas de bases de datos
relacionales.
Desventajas
Por supuesto, las
bases de datos NoSQL no son perfectas, y no siempre van a ser la elección
ideal.
·
La mayoría de las bases de datos NoSQL
no admiten funciones de fiabilidad, que son soportadas por sistemas de bases de
datos relacionales. Estas características de fiabilidad pueden resumirse en:
“atomicidad, consistencia, aislamiento y durabilidad.” Esto también significa
que las bases de datos NoSQL, que no soportan esas características, ofrecen
consistencia para el rendimiento y la escalabilidad.
·
Con el fin de apoyar las características
de fiabilidad y coherencia, los desarrolladores deben implementar su propio
código, lo que agrega más complejidad al sistema.
·
Esto podría limitar el número de
aplicaciones en las que podemos confiar para realizar transacciones seguras y
confiables, como por ejemplo los sistemas bancarios.
·
Otras formas de complejidad encontradas
en la mayoría de las bases de datos NoSQL, incluyen la incompatibilidad con
consultas SQL. Esto significa que se necesita un lenguaje de consulta manual,
haciendo los procesos mucho más lentos y complejos.
NOsql vs bases de
datos relacionales
Esta tabla ofrece una breve comparación entre las
funcionalidades de NoSQL y las bases de datos relacionales:
Cabe señalar que
esta tabla muestra una comparación a nivel de la base de datos, no sobre los
diversos sistemas de gestión de bases de datos que implementan ambos modelos.
Estos sistemas proporcionan sus propias técnicas patentadas para
superar los problemas y deficiencias encontradas en el sistema, además de
intentar mejorar significativamente el rendimiento y la fiabilidad.
TIPOS DE ALMACENAMIENTOS DE DATOS NoSQL
key Value Store
En el tipo de
almacén Key Value, se utiliza una tabla hash en la que una clave única apunta a
un elemento.
Las claves pueden
ser organizadas por grupos clave lógicos, requiriendo solamente estas claves
para ser únicas dentro de su propio grupo. Esto permite tener claves idénticas
en diferentes grupos lógicos. La siguiente tabla muestra un ejemplo de un
almacén de valores clave, en el que la clave es el nombre de la ciudad y el
valor es la dirección de Ulster University en esa ciudad.
almacenamiento en columnas
Los datos se
almacenan en columnas, en lugar de almacenarse en filas, (como se hace en la
mayoría de los sistemas de gestión de bases de datos relacionales).
Un almacén de
columnas está compuesto por una o más familias de columnas que se agrupan de
forma lógica en determinadas columnas en la base de datos. Una clave se utiliza
para identificar y señalar a un número de columnas en la base de datos. Cada
columna contiene filas de nombres o tuplas, y valores, ordenados y separados
por comas.
base gráfica
En una gráfica de
una base de datos NoSQL, se utiliza una “estructura de gráfica dirigida” para
representar los datos. El gráfico está compuesto por bordes y nodos.
Formalmente,
un gráfico, es una representación de un conjunto de objetos, donde algunos
pares de objetos están conectados por enlaces. Los objetos interconectados
están representados por abstracciones matemáticas, llamadas vértices, y los
enlaces que conectan algunos pares de vértices se llaman bordes. Un
gráfico sería un tipo de representación de datos compuesto por un conjunto de
vértices y de bordes que conectan entre sí, mostrando visualmente su relación
matemática.
SISTEMAS DE GESTION DE BASES DE DATOS NoSQL
Por una breve
comparación de las bases de datos, la tabla siguiente, proporciona una breve
comparación entre los diferentes sistemas de gestión de bases de datos NoSQL.
MongoDB tiene un
sistema flexible de almacenamiento de esquemas. Lo que significa que los
objetos almacenados no tienen que tener la misma estructura o los mismos
campos. MongoDB también tiene algunas características de optimización, que
distribuye las colecciones de datos, mejorando el rendimiento y consiguiendo un
sistema más equilibrado.
Una
de las bases de datos NoSQL más utilizadas es Cassandra, desarrollada por Facebook. Se trata de una base
de datos de almacenes de columnas que incluye muchas características dirigidas
a la fiabilidad y tolerancia de fallos.
Cassandra
Cassandra es un
sistema de gestión de bases de datos desarrollado por Facebook, cuyo objetivo
era crear un DBMS sin fallos y que proporcione la máxima disponibilidad.
Cassandra es
principalmente una base de datos de almacenes de columnas. Algunos estudios se
refieren a Cassandra como un sistema híbrido, inspirado en BigTable de Google,
(base de datos de almacén de columnas), y en DynamoDB de Amazon, (base de datos
de valor clave).
Esto se consigue
proporcionando un sistema de valor clave. Pero las claves de Cassandra apuntan
a un conjunto de familias de columnas, dependiendo del sistema de archivos
distribuido “BigTable” de Google y de las características de disponibilidad de
Dynamo (tabla hash distribuida).
Cassandra está
diseñado para almacenar enormes cantidades de datos distribuidos a través de
diferentes nodos. Cassandra es un DBMS diseñado para manejar cantidades masivas
de datos, repartidos entre muchos servidores, mientras que proporciona un
servicio altamente disponible sin un solo punto de fallo, lo cual es esencial
para un gran servicio como Facebook.
Ejemplos
Amazon DynamoDB es un servicio de base de
datos NoSQL rápido y flexible para todas las aplicaciones que
requieren latencias constantes y de meros milisegundos a cualquier escala. Se
trata de una base de datos totalmente administrada en la nube, compatible con
modelos de almacenamiento de datos de valor de clave y de documentos. Su modelo
de datos flexible, desempeño fiable y escalado automático de la capacidad de
desempeño lo hacen ideal para móviles, web, juegos, tecnología publicitaria,
IoT y mucho más. Comience hoy mismo descargando la versión local de DynamoDB y
luego lea nuestra guía de introducción.
Amazon DynamoDB Accelerator (DAX) es una memoria caché totalmente
administrada y de gran disponibilidad que puede reducir los tiempos de
respuesta de Amazon DynamoDB de milisegundos a microsegundos, incluso con
millones de solicitudes por segundo. Más
información »
Descubra por qué DynamoDB ha demostrado ser una solución de bases de
datos NoSQLrentable para tres organizaciones entrevistadas
por IDC.
Bibliografía
Comentarios
Publicar un comentario