O DynamoDB suporta chaves estrangeiras?

Não. O DynamoDB não tem chaves estrangeiras, restrições de integridade referencial ou exclusões em cascata — como um banco NoSQL, ele nunca impõe relacionamentos entre itens ou tabelas. Em vez disso, você modela os relacionamentos por conta própria: desnormalize os dados relacionados em um item, ou coloque itens relacionados sob uma partition key compartilhada com single-table design.

Por que não há chaves estrangeiras

Uma chave estrangeira existe para dar suporte a joins e impor integridade entre tabelas normalizadas. O DynamoDB deliberadamente omite o operador JOIN (a AWS recomenda desnormalizar), então uma restrição de chave estrangeira policiaria um relacionamento que o modelo de consulta nunca explora. Nada te impede de armazenar a chave de outro item como um atributo — o DynamoDB simplesmente não a valida nem a propaga em cascata. Se a integridade referencial imposta é inegociável, DynamoDB vs PostgreSQL traça a linha entre os dois modelos.

Como os relacionamentos são modelados

  • Incorporar — dados-filho pequenos e limitados vivem dentro do item pai como uma list ou map.
  • Co-localizar — pai e filhos compartilham uma partition key com sort keys distintas, de modo que uma Query retorne o relacionamento inteiro; este é o coração do single-table design.
  • Duplicar — copie os campos de que cada padrão de acesso precisa para os itens que precisam deles, aceitando a manutenção em tempo de escrita em troca de leituras de requisição única.

Os guias de um-para-muitos e muitos-para-muitos cobrem cada formato em profundidade.

Impondo integridade quando importa

Para os casos em que você teria se apoiado em uma restrição, o DynamoDB te dá blocos de construção: condition expressions protegem uma escrita com base no estado do item que está sendo escrito, e o ConditionCheck de uma transação pode verificar que um item diferente (digamos, o pai) existe na mesma operação de tudo-ou-nada. Exclusões em cascata se tornam lógica de aplicação explícita ou uma limpeza orientada por Streams.

Saiba mais

Comece com single-table design, construa as condições de proteção no expression builder, e baixe o DynoTable para ver suas coleções de itens — pais e filhos lado a lado — em uma única visão.

Referências

Última verificação em 2026-07-13 contra a documentação oficial da AWS vinculada acima.

Trabalhe com o DynamoDB sem o Console

O DynoTable é um cliente desktop rápido para o DynamoDB — navegue pelas tabelas, execute consultas no estilo SQL e edite itens localmente.