Différences entre l’accès à une base de données relationnelle (SQL) et à DynamoDB - Amazon DynamoDB

Différences entre l’accès à une base de données relationnelle (SQL) et à DynamoDB

Avant que votre application puise accéder à une base de données, elle doit être authentifiée pour garantir que l’application est autorisée à utiliser la base de données. Elle doit être autorisée de manière à ce que l’application ne puisse effectuer que les actions pour lesquelles elle possède des autorisations.

Le schéma suivant illustre l’interaction d’un client avec une base de données relationnelle et avec Amazon DynamoDB.

Interaction avec les bases de données relationnelles et NoSQL

Le tableau suivant propose plus d’informations sur les tâches liées à l’interaction client.

Caractéristiques Système de gestion de base de données relationnelle (SGBDR) Amazon DynamoDB
Outils pour accéder à la base de données

La plupart des bases de données relationnelles offrent une interface de ligne de commande (CLI), de telle sorte que vous pouvez saisir des instructions SQL ad hoc et observer les résultats immédiatement.

Dans la plupart des cas, vous écrivez le code de l’application. Vous pouvez également utiliser l’the console, l’AWS Command Line Interface (AWS CLI) ou NoSQL Workbench pour envoyer des demandes ad hoc à DynamoDB et afficher les résultats. PartiQL, un langage de requête compatible SQL, vous permet de sélectionner, d’insérer, de mettre à jour et de supprimer des données dans DynamoDB.
Connexion à la base de données Un programme d’application établit et gère une connexion réseau avec la base de données. Lorsque l’application est terminée, il met fin à la connexion. DynamoDB est un service web, et les interactions avec celui-ci sont sans état. Les applications n’ont pas besoin de maintenir des connexions réseau permanentes. Au lieu de cela, l’interaction avec DynamoDB se produit via des requêtes et réponses HTTP(S).
Authentification Une application ne peut pas se connecter à la base de données tant qu’elle n’est pas authentifiée. Le SGBDR peut effectuer l’authentification lui-même ou déléguer cette tâche au système d’exploitation hôte ou à un service d’annuaire. Chaque demande adressée à DynamoDB doit être accompagnée d’une signature de chiffrement qui authentifie cette demande particulière. Les kits SDK AWS offrent toute la logique nécessaire pour la création de signatures et la signature de demandes. Pour plus d’informations, consultez Signature des demandes d’API AWS dans le Références générales AWS.
Autorisation Les applications ne peuvent exécuter que les actions pour lesquelles elles sont autorisées. Les administrateurs de base de données ou les propriétaires d’applications peuvent utiliser les instructions SQL GRANT et REVOKE pour contrôler l’accès aux objets de base de données (tels que les tables) et aux données (telles que les lignes d’une table), ou la possibilité d’émettre certaines instructions SQL. Dans DynamoDB, l’autorisation est gérée par AWS Identity and Access Management (IAM). Vous pouvez écrire une politique IAM pour accorder des autorisations sur une ressource DynamoDB (telle une table), puis autoriser des utilisateurs et des rôles à utiliser cette politique. IAM offre également un contrôle précis des accès pour les éléments de données individuels dans les tables DynamoDB. Pour en savoir plus, consultez Gestion des identités et des accès pour Amazon DynamoDB.
Envoi d’une demande L’application émet une instruction SQL pour chaque opération de base de données qu’elle souhaite effectuer. À la réception de l’instruction SQL, le SGBDR vérifie sa syntaxe, crée un plan pour effectuer l’opération, puis exécute le plan. L’application envoie des requêtes HTTP(S) à DynamoDB. Une requête contient le nom de l’opération DynamoDB à effectuer, ainsi que les paramètres de celle-ci. DynamoDB exécute la requête immédiatement.
Réception d’une réponse Le SGBDR retourne les résultats de l’instruction SQL. S’il y a une erreur, le SGBDR retourne un statut d’erreur et un message. DynamoDB renvoie une réponse HTTP(S) contenant les résultats de l’opération. En cas d’erreur, DynamoDB renvoie un état et des messages d’erreur HTTP.