Unterstützt DynamoDB Fremdschlüssel?

Nein. DynamoDB hat keine Fremdschlüssel, keine Constraints zur referenziellen Integrität und keine kaskadierenden Löschungen — als NoSQL-Datenbank erzwingt es nie Beziehungen zwischen Items oder Tabellen. Stattdessen modellierst du Beziehungen selbst: denormalisiere verwandte Daten in ein Item oder platziere verwandte Items unter einem gemeinsamen Partition Key mit Single-Table-Design.

Warum es keine Fremdschlüssel gibt

Ein Fremdschlüssel existiert, um Joins zu unterstützen und Integrität über normalisierte Tabellen hinweg zu erzwingen. DynamoDB lässt den JOIN-Operator bewusst weg (AWS empfiehlt stattdessen die Denormalisierung), sodass ein Fremdschlüssel-Constraint eine Beziehung überwachen würde, die das Abfragemodell nie nutzt. Nichts hindert dich daran, den Schlüssel eines anderen Items als Attribut zu speichern — DynamoDB validiert oder kaskadiert ihn nur nicht. Wenn erzwungene referenzielle Integrität nicht verhandelbar ist, zieht DynamoDB vs. PostgreSQL die Grenze zwischen den beiden Modellen.

Wie Beziehungen stattdessen modelliert werden

  • Einbetten — kleine, begrenzte Kinddaten leben im übergeordneten Item als Liste oder Map.
  • Co-Location — Eltern und Kinder teilen sich einen Partition Key mit unterschiedlichen Sort Keys, sodass ein Query die gesamte Beziehung zurückgibt; das ist das Herzstück des Single-Table-Designs.
  • Duplizieren — kopiere die Felder, die jedes Zugriffsmuster benötigt, auf die Items, die sie benötigen, und akzeptiere den Aufwand zur Schreibzeit für Reads mit einer einzigen Anfrage.

Die Leitfäden zu Eins-zu-viele und Viele-zu-viele behandeln jede Form ausführlich.

Integrität erzwingen, wenn es darauf ankommt

Für die Fälle, in denen du dich auf ein Constraint gestützt hättest, gibt dir DynamoDB Bausteine: Condition Expressions schützen einen Write basierend auf dem Zustand des Items, das geschrieben wird, und der ConditionCheck einer Transaktion kann verifizieren, dass ein anderes Item (etwa das übergeordnete) in derselben Alles-oder-Nichts-Operation existiert. Kaskadierende Löschungen werden zu expliziter Anwendungslogik oder einer Streams-gesteuerten Bereinigung.

Tiefer einsteigen

Beginne mit dem Single-Table-Design, baue die schützenden Bedingungen im Expression Builder, und lade DynoTable herunter, um deine Item-Collections — Eltern und Kinder nebeneinander — in einer Ansicht zu sehen.

Referenzen

Zuletzt verifiziert am 2026-07-13 gegen die oben verlinkte offizielle AWS-Dokumentation.

Mit DynamoDB ohne die Console arbeiten

DynoTable ist ein schneller Desktop-Client für DynamoDB — durchsuche Tabellen, führe SQL-artige Queries aus und bearbeite Items lokal.