Diferencias al acceder a una base de datos relacional (SQL) y DynamoDB
Antes de que su aplicación pueda acceder a una base de datos, debe autenticarse para garantizar que la aplicación pueda usar la base de datos. Debe autorizarse para que la aplicación pueda realizar solo las acciones para las que tiene permisos.
En el siguiente diagrama se muestra la interacción de un cliente con una base de datos relacional y con Amazon DynamoDB.
En la tabla siguiente se muestra más información acerca de las tareas de interacción del cliente.
Característica | Sistema de base de datos relacional (RDBMS) | Amazon DynamoDB |
---|---|---|
Herramientas para obtener acceso a la base de datos |
La mayoría de las bases de datos relacionales ofrecen una interfaz de línea de comandos (CLI), que permite especificar instrucciones SQL ad-hoc y ver los resultados de forma inmediata. |
En la mayoría de los casos, el desarrollador debe escribir el código de aplicación. También puede usar AWS Management Console, AWS Command Line Interface (AWS CLI) o NoSQL WorkBench para enviar solicitudes ad-hoc a DynamoDB y ver los resultados. PartiQL, un lenguaje de consulta compatible con SQL, le permite seleccionar, insertar, actualizar y eliminar datos en DynamoDB. |
Conexión a la base de datos | Un programa de aplicación establece y mantiene una conexión de red con la base de datos. Cuando la aplicación finaliza, termina la conexión. | DynamoDB es un servicio web y las interacciones con él son sin estado. Las aplicaciones no tienen que mantener conexiones de red persistentes. En lugar de ello, la interacción con DynamoDB se produce mediante solicitudes y respuestas HTTP(S). |
Autenticación | Una aplicación no puede conectarse a la base de datos hasta que se ha autenticado. El RDBMS puede llevar a cabo la autenticación por sí mismo, o bien delegar esta tarea en el sistema operativo host o en un servicio de directorio. | Cada solicitud a DynamoDB debe ir acompañada de una firma criptográfica, que autentica esa solicitud concreta. Los SDK de AWS proporcionan toda la lógica necesaria para crear firmas y firmar solicitudes. Para obtener más información, consulte Firma de solicitudes de la API de AWS en la Referencia general de AWS. |
Autorización | Las aplicaciones solo pueden llevar a cabo aquellas acciones para las cuales tienen permiso. Los administradores de bases de datos o los propietarios de las aplicaciones pueden utilizar las instrucciones GRANT y REVOKE de SQL para controlar el acceso a los objetos de base de datos (tales como las tablas), los datos (como las filas de una tabla) o la capacidad de emitir determinadas instrucciones de SQL. |
En DynamoDB, la autorización se administra mediante AWS Identity and Access Management (IAM). Puede escribir una política de IAM que conceda permisos para un recurso de DynamoDB (por ejemplo, una tabla) y, a continuación, permitir a los usuarios y los roles que utilicen esa política. IAM también presenta control de acceso preciso a los elementos de datos individuales contenidos en las tablas de DynamoDB. Para obtener más información, consulte Identity and Access Management en Amazon DynamoDB. |
Envío de una solicitud | La aplicación emite una instrucción de SQL para todas las operaciones de base de datos que quiere realizar. Al recibir la instrucción de SQL, el RDBMS comprueba su sintaxis, crea un plan para realizar la operación y, a continuación, ejecuta el plan. | La aplicación envía solicitudes HTTP(S) a DynamoDB. Las solicitudes contienen el nombre de la operación de DynamoDB que hay que realizar, junto con los parámetros. DynamoDB ejecuta la solicitud de forma inmediata. |
Recepción de una respuesta | El RDBMS devuelve los resultados de la instrucción de SQL. Si se produce un error, el RDBMS devuelve un estado de error y un mensaje. | DynamoDB devuelve una respuesta HTTP(S) que contiene los resultados de la operación. Si se produce un error, DynamoDB devuelve un estado de error de HTTP y uno o varios mensajes. |