Consulta algunos datos interesantes sobre las bases de datos basadas en NoSQL.

Uso del ejemplo de base de datos NoSQL

¿Qué es una base de datos NoSQL?

Las bases de datos NoSQL están diseñadas específicamente para modelos de datos específicos y tienen esquemas flexibles que le permiten desarrollar aplicaciones modernas. Las bases de datos NoSQL se utilizan ampliamente para simplificar el desarrollo, la funcionalidad y el rendimiento a cualquier escala y para cualquier servicio en línea: desde una tienda de ropa en línea como ASOS hasta un servicio de redacción de artículos universitarios como EssayShark , donde los estudiantes reciben ayuda calificada de los redactores sobre trabajos universitarios. Utilizan varios modelos de datos, incluidos documentos, gráficos, búsquedas, el uso de pares clave-valor y el almacenamiento de datos en la memoria.

¿Cómo funciona la base de datos NoSQL (base de datos no relacional)?

Como ya se mencionó, en las bases de datos NoSQL , se utilizan varios modelos de datos para acceder y administrar datos, incluidos documentos, gráficos, búsquedas, uso de pares clave-valor y almacenamiento de datos en la memoria. Estos tipos de bases de datos están optimizados para aplicaciones que trabajan con grandes cantidades de datos, necesitan modelos de datos flexibles y de baja latencia. Todo esto se logra mitigando los estrictos requisitos de coherencia de datos para otros tipos de bases de datos.

Consideremos un ejemplo de un esquema típico para una base de datos de libros simple.

- En una base de datos relacional, una entrada de libro a menudo se divide en varias partes (o “normalizada”) y se almacena en tablas separadas, cuyas relaciones están determinadas por las restricciones de las claves primaria y externa. En este ejemplo, en la tabla "Libros" hay columnas "ISBN", "Nombre del libro" y "Número de edición", en la tabla "Autores" - columnas "ID del autor" y "Nombre del autor", y en el "Autor - Tabla "ISBN": columnas "Autor" e "ISBN". El modelo relacional está diseñado para garantizar la integridad de los datos de referencia entre tablas en la base de datos. Los datos se normalizan para reducir la redundancia y, en general, se optimizan para el almacenamiento.

- Un registro de libro en la base de datos NoSQL generalmente se almacena como un documento JSON. Para cada libro o elemento, los valores “ISBN”, “Título del libro”, “Número de publicación”, “Nombre del autor e“ ID del autor ”se almacenan como atributos en un solo documento. En este modelo, los datos están optimizados para un diseño intuitivo y escalabilidad horizontal.

¿Por qué necesitamos bases de datos NoSQL?

Las bases de datos NoSQL son adecuadas para muchas aplicaciones modernas, como aplicaciones móviles, de juegos y de Internet, cuando se requieren bases de datos flexibles y escalables con alto rendimiento y una rica funcionalidad que pueda proporcionar la máxima usabilidad.

Flexibilidad

Como regla general, las bases de datos NoSQL ofrecen esquemas flexibles que le permiten desarrollar más rápido y brindan una oportunidad para la implementación por fases. Gracias al uso de modelos de datos flexibles, las bases de datos NoSQL son adecuadas para datos parcialmente estructurados y no estructurados.

Escalable

Las bases de datos NoSQL están diseñadas para escalar utilizando clústeres distribuidos de hardware, en lugar de agregar costosos servidores confiables. Algunos proveedores de servicios en la nube realizan estas operaciones en segundo plano, proporcionando un servicio totalmente gestionado.

Alto rendimiento

Las bases de datos NoSQL están optimizadas para modelos de datos específicos (por ejemplo, documento, gráfico o usando pares clave-valor) y patrones de acceso, lo que permite lograr un mayor rendimiento en comparación con las bases de datos relacionales.

Amplia funcionalidad

Las bases de datos NoSQL proporcionan API y tipos de datos con una amplia funcionalidad que están diseñados específicamente para modelos de datos relevantes.

Tipos de bases de datos NoSQL

Base de datos basada en pares clave-valor .

Las bases de datos que utilizan pares clave-valor mantienen una alta separabilidad y proporcionan un escalado horizontal sin precedentes, inalcanzable con otros tipos de bases de datos. Buenos ejemplos de uso de bases de datos de valor clave son juegos, programas publicitarios y aplicaciones de IoT. Amazon DynamoDB garantiza un funcionamiento estable de la base de datos con un retraso de no más de unos pocos milisegundos a cualquier escala. Un rendimiento tan estable fue la razón principal para transferir Snapchat Stories al servicio DynamoDB, ya que esta posibilidad de Snapchat está asociada con la mayor carga en el registro en el almacenamiento.

Documento .

En el código de la aplicación, los datos a menudo se representan como un objeto o documento en un formato similar a JSON, ya que para los desarrolladores es un modelo de datos eficiente e intuitivo. Las bases de datos de documentos permiten a los desarrolladores almacenar y recuperar datos en una base de datos utilizando el mismo modelo de documento que utilizan en el código de la aplicación. La naturaleza flexible, semiestructurada y jerárquica de los documentos y las bases de datos de documentos les permite evolucionar de acuerdo con las necesidades de las aplicaciones. El modelo de documento funciona bien en directorios, perfiles de usuario y sistemas de gestión de contenido, donde cada documento es único y cambia con el tiempo. Amazon DocumentDB (compatible con MongoDB) y MongoDB son bases de datos de documentos comunes que proporcionan API funcionales e intuitivas para un desarrollo ágil.

Base de datos gráfica .

Las bases de datos gráficas simplifican el desarrollo y lanzamiento de aplicaciones que funcionan con conjuntos de datos complejos. Los ejemplos típicos del uso de bases de datos de gráficos son las redes sociales, los servicios de recomendación, los sistemas de detección de fraude y los gráficos de conocimiento. Amazon Neptune es un servicio de base de datos de gráficos totalmente administrado. Neptune admite el marco de descripción de recursos y gráficos de propiedades (RDF), que proporciona dos API de gráficos para elegir: TinkerPop y RDF / SPARQL. Las bases de datos de gráficos comunes incluyen Neo4j y Giraph.

DB en memoria.

A menudo, las aplicaciones de publicidad y juegos utilizan tablas de clasificación, almacenamiento de sesiones en tiempo real y análisis. Estas capacidades requieren una respuesta en unos pocos microsegundos, con un fuerte aumento del tráfico posible en cualquier momento. Amazon ElastiCache ofrece Memcached y Redis para procesar cargas de trabajo de alto rendimiento y baja latencia que no se pueden procesar mediante almacenamiento en disco. Estas cargas de trabajo son características, por ejemplo, de la red McDonald's. Otro ejemplo de un almacén de datos especialmente desarrollado es Amazon DynamoDB Accelerator (DAX). DAX permite a DynamoDB leer datos varias veces más rápido.

Búsqueda de bases de datos .

Muchas aplicaciones generan registros para facilitar a los desarrolladores la resolución de problemas y la solución de problemas. Amazon Elasticsearch Service (Amazon ES) es un servicio especialmente desarrollado para visualizar y analizar flujos de datos generados automáticamente en modo casi en tiempo real indexando, agregando y buscando parcialmente revistas y métricas estructuradas. Amazon ES también es un potente motor de búsqueda de texto completo de alto rendimiento. Expedia emplea más de 150 dominios de Amazon ES, 30 TB de datos y 30 mil millones de documentos para una variedad de casos de uso particularmente importantes, desde el monitoreo operativo y la resolución de problemas hasta el seguimiento de una pila de aplicaciones distribuidas y la optimización de costos.

Comparación de SQL (relacional) y NoSQL (no relacional)

Durante décadas, el modelo de datos relacionales, que se ha utilizado en bases de datos relacionales como Oracle, DB2, SQL Server, MySQL y PostgreSQL, ha sido fundamental para el desarrollo de aplicaciones. Pero a mediados y finales de la década de 2000, otros modelos de datos comenzaron a ganar una difusión notable. Para hacer referencia a las clases emergentes de bases de datos y modelos de datos, se introdujo el término “NoSQL”. A menudo, "NoSQL" se utiliza como sinónimo del término "no relacional".

Hay muchos tipos de bases de datos NoSQL con varias características, pero la siguiente tabla muestra las principales diferencias entre las bases de datos NoSQL y SQL.

Bases de datos SQL

Bases de datos NoSQL

Cargas de trabajo adecuadas

Las bases de datos relacionales están diseñadas para aplicaciones de procesamiento de transacciones en tiempo real (OLTP) transaccionales y altamente consistentes y son muy adecuadas para el procesamiento analítico en tiempo real (OLAP).

Las bases de datos NoSQL (basadas en pares clave-valor, documento, gráfico y en memoria) se centran en OLTP para una variedad de patrones de acceso a datos, incluidas aplicaciones de baja latencia. Las bases de datos de búsqueda NoSQL están diseñadas para el análisis de datos parcialmente estructurados.

Modelo de datos

El modelo relacional normaliza los datos y los convierte en tablas que constan de filas y columnas. Un esquema define de forma rígida tablas, filas, columnas, índices, relaciones entre tablas y otros elementos de la base de datos. Esta base de datos asegura la integridad de los datos de referencia en la relación entre las tablas.

Las bases de datos NoSQL utilizan varios modelos de datos, incluidos documentos, gráficos, búsquedas, uso de pares clave-valor y almacenamiento de datos en la memoria.

Propiedades ACID

Las bases de datos relacionales proporcionan un conjunto de propiedades ACID: atomicidad, consistencia, aislamiento, confiabilidad.

- La atomicidad requiere que la transacción se realice por completo o no se ejecute en absoluto.

- La coherencia significa que inmediatamente después de que se completa una transacción, los datos deben seguir el esquema de la base de datos.

- El aislamiento requiere que las transacciones paralelas se realicen por separado unas de otras.

- La confiabilidad se refiere a la capacidad de recuperarse al último estado guardado después de una falla inesperada del sistema o una falla de energía.

Las bases de datos NoSQL a menudo ofrecen un compromiso, suavizando los estrictos requisitos de las propiedades ACID en aras de un modelo de datos más flexible que permita el escalado horizontal. Debido a esto, NoSQL DB es una excelente opción para ejemplos de uso de alto ancho de banda y baja latencia, en los que se requiere escalado horizontal, no limitado a una sola instancia.

Actuación

El rendimiento depende principalmente del subsistema de disco. Para obtener el máximo rendimiento, a menudo se requiere la optimización de la estructura de la consulta, el índice y la tabla.

El rendimiento generalmente depende del tamaño del clúster del hardware subyacente, la latencia de la red y la aplicación que realiza la llamada.

Escalada

Las bases de datos relacionales generalmente se escalan aumentando las capacidades computacionales del hardware o agregando copias separadas para leer las cargas de trabajo.

Las bases de datos NoSQL suelen admitir una alta separabilidad debido a patrones de acceso basados ​​en pares clave-valor con escalabilidad basada en una arquitectura distribuida. Esto aumenta el rendimiento y proporciona un rendimiento constante en una escala casi ilimitada.

API

Las solicitudes para escribir y extraer datos se escriben en SQL. Estas consultas son analizadas y ejecutadas por la base de datos relacional.

Las API orientadas a objetos permiten a los desarrolladores de aplicaciones escribir y recuperar fácilmente estructuras de datos almacenadas en la memoria. Mediante el uso de claves de sección, las aplicaciones pueden buscar por pares clave-valor, conjuntos de columnas o documentos parcialmente estructurados que contienen objetos en serie y atributos de la aplicación.


Conviertete en un programador más sociable

Patrocinadores