Diferenças no acesso a um banco de dados relacional (SQL) e ao DynamoDB - Amazon DynamoDB

Diferenças no acesso a um banco de dados relacional (SQL) e ao DynamoDB

Para que seu aplicativo possa acessar um banco de dados, ele deve ser autenticado para garantir que o aplicativo tenha permissão para usar o banco de dados. Ele deve ser autorizado para que o aplicativo possa realizar somente as ações para as quais tem permissões.

O diagrama a seguir mostra a interação do cliente com um banco de dados relacional e com o Amazon DynamoDB.

Interação com bancos de dados relacionais e NoSQL.

A tabela a seguir tem mais detalhes sobre tarefas de interação com o cliente.

Característica Sistema de gerenciamento de banco de dados relacional (RDBMS) Amazon DynamoDB
Ferramentas para acessar o banco de dados

A maioria dos bancos de dados relacionais fornecem uma interface de linha de comando (CLI), para que você possa inserir instruções SQL ad hoc e visualizar os resultados imediatamente.

Na maioria dos casos, você grava o código da aplicação. Você também pode usar o AWS Management Console, a AWS Command Line Interface (AWS CLI) ou o NoSQL Workbench para enviar solicitações ad hoc ao DynamoDB e visualizar os resultados. A linguagem PartiQL, uma linguagem de consultas compatível com SQL, permite selecionar, inserir, atualizar e excluir dados no DynamoDB.
Conexão ao banco de dados Um programa de aplicação estabelece e mantém uma conexão de rede com o banco de dados. Quando o aplicativo terminar, ele encerra a conexão. O DynamoDB é um serviço da Web, e as interações com ele são sem estado. Os aplicativos não precisam manter conexões de rede persistentes. Em vez disso, a interação com o DynamoDB ocorre via solicitações e respostas HTTP(S).
Autenticação Uma aplicação não pode se conectar ao banco de dados até ser autenticado. O RDBMS pode realizar a autenticação em si, ou pode passar essa tarefa para o sistema operacional host ou um serviço de diretório. Cada solicitação para o DynamoDB deve ser acompanhada por uma assinatura de criptografia, que autentica essa determinada solicitação. Os AWS SDKs fornecem toda a lógica necessária para a criação de assinaturas e a assinatura de solicitações. Para obter mais informações, consulte Assinar solicitações de API da AWS no Referência geral da AWS.
Autorização Os aplicativos podem executar somente as ações para as quais tenham sido autorizados. Os administradores de banco de dados ou os proprietários de aplicativos podem usar as instruções SQL GRANT e REVOKE para controlar o acesso aos objetos de banco de dados (tais como tabelas), dados (como linhas em uma tabela), ou a habilidade de emitir determinadas instruções SQL. No DynamoDB, a autorização é controlada pelo AWS Identity and Access Management (IAM). Você pode escrever uma política do IAM para conceder permissões em um recurso do DynamoDB (como uma tabela), depois permitir que os usuários e os perfis usem essa política. O IAM também oferece controle de acesso minucioso para itens de dados individuais em tabelas do DynamoDB. Para ter mais informações, consulte Gerenciamento de identidade e acesso no Amazon DynamoDB.
Envio de uma solicitação O aplicativo emite uma instrução SQL para cada operação de banco de dados que ele deseja executar. Após o recebimento da instrução SQL, o RDBMS verifica a sintaxe, cria um plano para realizar a operação e, em seguida, executa o plano. A aplicação envia solicitações HTTP(S) para o DynamoDB. As solicitações contêm o nome da operação do DynamoDB a ser executada, juntamente com parâmetros. O DynamoDB executa a solicitação imediatamente.
Recebimento de uma resposta O RDBMS retorna os resultados da instrução SQL. Se houver um erro, o RDBMS retorna um status e uma mensagem de erro. O DynamoDB retorna uma resposta HTTP(S) contendo os resultados da operação. Se houver um erro, o DynamoDB retornará um status e mensagens de erro HTTP.