BASE DE DATOS NOsql

                          BASE DE DATOS NO SQL


Resultado de imagen para IMAGENES DE 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).
Resultado de imagen para IMAGENES DE BASE DE DATOS NO SQL
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

Entradas populares de este blog

ESTILOS ARQUITECTÓNICOS

UX