> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpna/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpna/introduccion-a-dynamodb/que-es-dynamodb.md).

# ¿Que es DynamoDB?

Amazon DynamoDB es un servicio de bases de datos no relacionales (NoSQL) altamente flexible y escalable ofrecido por AWS, diseñado para soportar aplicaciones de cualquier escala. Este servicio gestionado elimina la complejidad y la carga operativa asociadas con la administración de bases de datos distribuidas tradicionales, permitiendo a los usuarios centrarse en el desarrollo de sus aplicaciones sin preocuparse por el aprovisionamiento de hardware, la configuración de software, la replicación de datos, la gestión de parches o el escalado de infraestructura.

## <mark style="color:orange;">Lectura y Escritura de Datos en DynamoDB</mark>

DynamoDB ofrece un conjunto de operaciones API intuitivas y eficientes para realizar operaciones de lectura y escritura en la base de datos, optimizando el rendimiento y la gestión de costos:

* <mark style="color:orange;">**PutItem**</mark><mark style="color:orange;">:</mark> Esta operación crea un nuevo ítem en la tabla o reemplaza un ítem existente. Es útil para la inserción de datos individuales o la actualización completa de un ítem.
* <mark style="color:orange;">**BatchPutItem**</mark><mark style="color:orange;">:</mark> Funciona de manera similar a `PutItem`, pero permite ejecutar varias operaciones de `PutItem` en un solo lote. Esto reduce la latencia y el número de solicitudes de red necesarias, lo que es especialmente beneficioso para la carga masiva de datos.
* <mark style="color:orange;">**UpdateItem**</mark><mark style="color:orange;">:</mark> Permite modificar atributos específicos de un ítem existente sin necesidad de reemplazarlo por completo. Esta operación es crucial para actualizar dinámicamente partes de un ítem, como incrementar un contador o añadir elementos a una lista.
* <mark style="color:orange;">**DeleteItem**</mark><mark style="color:orange;">:</mark> Elimina un ítem específico de la tabla, identificado por su clave primaria. Esta operación es directa y eficiente para mantener la relevancia y la limpieza de los datos.

Para las operaciones de lectura:

* <mark style="color:orange;">**GetItem**</mark><mark style="color:orange;">:</mark> Recupera un ítem específico de la tabla utilizando su clave primaria. Esta operación es altamente eficiente para acceder a datos específicos rápidamente.
* <mark style="color:orange;">**BatchGetItem**</mark><mark style="color:orange;">:</mark> Permite combinar múltiples operaciones de `GetItem` en un solo lote, optimizando el proceso de recuperación de varios ítems a través de menos solicitudes de red.
* <mark style="color:orange;">**Query**</mark><mark style="color:orange;">:</mark> Recupera ítems basados en el valor de su clave de partición y, opcionalmente, filtros adicionales sobre la clave de ordenamiento. Esta operación es poderosa para acceder a conjuntos de ítems que comparten una clave de partición común.
* <mark style="color:orange;">**Scan**</mark><mark style="color:orange;">:</mark> Realiza un escaneo completo de la tabla o de un índice secundario. Aunque es la operación menos eficiente en términos de rendimiento, `Scan` es útil para casos de uso que requieren una búsqueda exhaustiva de ítems sin conocer sus claves.

## <mark style="color:orange;">Consideraciones de Seguridad y Rendimiento</mark>

* <mark style="color:orange;">**Control de Acceso**</mark><mark style="color:orange;">:</mark> DynamoDB se integra con AWS Identity and Access Management (IAM) para ofrecer controles detallados de acceso a las operaciones sobre las tablas y los datos.
* <mark style="color:orange;">**Optimización del Rendimiento**</mark><mark style="color:orange;">:</mark> El diseño adecuado de la clave primaria y el uso eficiente de índices secundarios globales y locales son fundamentales para optimizar el rendimiento de las consultas y las operaciones de lectura/escritura.
* <mark style="color:orange;">**Gestión de Costos**</mark><mark style="color:orange;">:</mark> La comprensión y optimización del uso de unidades de capacidad de lectura y escritura (RCU y WCU) pueden ayudar a gestionar los costos asociados con DynamoDB, especialmente en aplicaciones a gran escala.
