La nube de AWS
La nube de AWS
Introducción a Amazon DynamoDB

Las bases de datos NoSQL son bases de datos no relacionales optimizadas para modelos de datos sin esquema y de desempeño escalable. También son ampliamente conocidas por su facilidad de desarrollo, baja latencia y resiliencia. Utilizan una variedad de modelos de datos, como los almacenes de valor clave en memoria, de gráficos, de documentos y en columnas. Esta página incluye recursos que le servirán para comenzar a usar las bases de datos NoSQL.

PurposeBuilt-reInvent
58:35
What’s New for AWS Purpose-Built, Nonrelational Databases

Los sistemas de bases de datos NoSQL usan una variedad de modelos de administración de datos, como los almacenes de valor clave en memoria, los modelos de datos de gráficos y los almacenes de documentos. Estos tipos de bases de datos están optimizados para aplicaciones que requieren grandes volúmenes de datos, baja latencia y modelos de datos flexibles, lo que se logra mediante la flexibilización de algunas de las restricciones de coherencia de datos en las bases de datos relacionales tradicionales.

Las bases de datos NoSQL son ideales para muchas aplicaciones web, de big data y para dispositivos móviles que necesitan un mayor nivel de escala y capacidad de respuesta que las bases de datos relacionales tradicionales. Debido al escalado horizontal y a las estructuras de datos más simples, las bases de datos NoSQL normalmente responden más rápido y son más fáciles de escalar que las bases de datos relacionales.

Los sistemas de administración de bases de datos relacionales (RDBMS) y las bases de datos no relacionales (NoSQL) tienen sus propias ventajas y desventajas. En los RDBMS, los datos se pueden consultar de manera flexible, pero las consultas son relativamente costosas y no se escalan bien cuando hay mucho tráfico. En una base de datos NoSQL, los datos se pueden consultar de manera eficiente en un número limitado de maneras, fuera de los cuales es más costoso y lento hacer consultas.

  Bases de datos relacionales Bases de datos NoSQL
Modelo de datos El modelo relacional normaliza los datos en tablas conformadas por filas y columnas. Un esquema define estrictamente las tablas, las filas, las columnas, los índices, las relaciones entre las tablas y otros elementos de las bases de datos. Las bases de datos NoSQL no suelen contener un esquema. Se suele utilizar una clave de partición para recuperar valores, conjuntos de columnas o documentos JSON o XML semiestructurados, así como otros documentos que contengan atributos de elementos relacionados.
Propiedades ACID Los RDBMS tradicionales admiten las propiedades ACID de una base de datos relacional: atomicidad, coherencia, aislamiento y durabilidad. Atomicidad significa "todo o nada": una transacción se ejecuta completamente o no se ejecuta en absoluto. Coherencia quiere decir que una vez confirmada una transacción, los datos deben acoplarse al esquema de la base de datos. El aislamiento requiere que las transacciones simultáneas se ejecuten por separado. La durabilidad es la capacidad de recuperarse de un error inesperado del sistema o de un corte de energía y volver al último estado conocido. Habitualmente, las bases de datos NoSQL intercambian algunas de las propiedades ACID de los RDBSM tradicionales por un modelo de datos más flexible que se escale de forma horizontal. Estas características convierten las bases de datos NoSQL en una excelente opción para cuando los RDBMS detectan desafíos vinculados con la arquitectura a la hora de resolver limitaciones de desempeño, escalabilidad, complejidad operativa y el aumento de los costos de administración y soporte.
Desempeño Normalmente, el desempeño depende del subsistema de disco. Es necesaria la optimización de consultas, índices y estructura de tabla para lograr el máximo desempeño. El desempeño es, por lo general, depende del tamaño del clúster de hardware subyacente, la latencia de red y la aplicación que efectúa la llamada.
Escalado Lo más sencillo es ampliar la escala con un hardware más rápido. Se requieren inversiones adicionales para que las tablas relacionales abarquen un sistema distribuido. Está diseñada para escalar horizontalmente con clústeres distribuidos de hardware de bajo costo a fin de aumentar el nivel de procesamiento sin incrementar la latencia.
API Solicita almacenar y recuperar datos que están comunicados mediante consultas que se ajustan a un lenguaje de consulta estructurado (SQL). Estas consultas se analizan y ejecutan con RDBMS. Las API basadas en objetos permiten a los desarrolladores almacenar y recuperar fácilmente estructuras de datos en memoria. Las claves de partición permiten que las aplicaciones busquen pares de clave-valor, conjuntos de columnas o documentos semiestructurados que contengan atributos y objetos de aplicación serializados.
Herramientas Las bases de datos SQL normalmente ofrecen un amplio conjunto de herramientas que simplifican el desarrollo de aplicaciones de base de datos. Las bases de datos NoSQL suelen ofrecer herramientas para administrar los clústeres y el escalado. Las aplicaciones representan la interfaz primaria de los datos subyacentes.
15

Hay cuatro tipos de bases de datos NoSQL principales: en columnas, de documentos, de gráficos y de valor clave en memoria. Generalmente, estas bases de datos difieren en la manera en que se almacenan, acceden y estructuran los datos. Además, estás optimizadas para diferentes casos de uso y aplicaciones. 

  1. Las bases de datos en columnas están optimizadas para leer y escribir columnas de datos en lugar de filas. El almacenamiento basado en columnas para las tablas de bases de datos es un factor importante en el desempeño de las consultas analíticas, ya que reduce notablemente los requisitos globales de E/S del disco, así como el volumen de datos que hay que cargar desde este.
  2. Las bases de datos de documentos están diseñadas para almacenar datos semiestructurados como documentos, normalmente en formato JSON o XML. A diferencia de las bases de datos relacionales tradicionales, el esquema de cada documento NoSQL puede variar, lo que ofrece más flexibilidad al organizar y almacenar datos de aplicaciones y al reducir el almacenamiento necesario para los valores opcionales.
  3. Las bases de datos de gráficos almacenan vértices y enlaces dirigidos llamados aristas. Las bases de datos de gráficos se pueden crear en bases de datos NoSQL y NoSQL. Los vértices y las aristas pueden tener propiedades asociadas. 
  4. Los almacenes de clave valor en memoria son bases de datos NoSQL optimizadas para cargas de trabajo de aplicaciones que realizan muchas tareas de lectura (como redes sociales, videojuegos, uso compartido de archivos multimedia y portales de preguntas y respuestas) o para cargas de trabajo con un uso intensivo de computación (como un motor de recomendaciones). El almacenamiento de caché en memoria mejora el desempeño de las aplicaciones mediante el almacenamiento de los datos críticos en memoria para lograr un acceso de baja latencia.
SQL
MongoDB (NoSQL) DynamoDB (NoSQL) Cassandra (NoSQL) Couchbase (NoSQL)
Tabla Conjunto Tabla Tabla Bucket de datos
Fila Documento
Elemento Fila Documento
Columna
Campo Atributo Columna Campo
Clave principal
ObjectId
Clave principal Clave principal ID del documento
Índice Índice Índice secundario Índice
Índice
Ver Ver Índice secundario global Vista materializada Ver
Tabla u objeto anidado
Documento incrustado Mapa Mapa Mapa
Matriz
Matriz Lista Lista Lista

Es muy fácil comenzar a usar Amazon DynamoDB. Consulte nuestra guía de introducción para crear con unos pocos clics su primera tabla de DynamoDB.

También puede descargar el documento técnico Prácticas recomendadas para la migración de RDBMS a Amazon DynamoDB a fin de conocer las prácticas recomendadas para migrar cargas de trabajo de un RDBMS a DynamoDB.

Introducción a Amazon DynamoDB