# ¿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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cpna/introduccion-a-dynamodb/que-es-dynamodb.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
