Apakah DynamoDB mendukung foreign key?

Tidak. DynamoDB tidak memiliki foreign key, batasan integritas referensial, atau cascading delete — sebagai basis data NoSQL, ia tidak pernah memberlakukan relasi antar Item atau tabel. Sebagai gantinya, Anda memodelkan relasi sendiri: denormalisasi data terkait ke dalam satu Item, atau letakkan Item terkait bersama di bawah partition key bersama dengan single-table design.

Mengapa tidak ada foreign key

Sebuah foreign key ada untuk mendukung join dan memberlakukan integritas antar tabel yang dinormalisasi. DynamoDB sengaja menghilangkan operator JOIN (AWS merekomendasikan denormalisasi sebagai gantinya), jadi batasan foreign key akan mengawasi relasi yang tidak pernah dimanfaatkan model kueri. Tidak ada yang menghentikan Anda menyimpan key Item lain sebagai atribut — DynamoDB hanya tidak akan memvalidasi atau meng-cascade-nya. Jika integritas referensial yang diberlakukan tidak bisa ditawar, DynamoDB vs PostgreSQL menarik garis antara kedua model.

Bagaimana relasi dimodelkan sebagai gantinya

  • Embed — data anak yang kecil dan terbatas berada di dalam Item induk sebagai list atau map.
  • Co-locate — induk dan anak berbagi partition key dengan sort key yang berbeda, sehingga satu Query mengembalikan seluruh relasi; inilah inti dari single-table design.
  • Duplicate — salin field yang dibutuhkan setiap pola akses ke Item yang membutuhkannya, dengan menerima pemeliharaan saat-tulis demi baca satu permintaan.

Panduan one-to-many dan many-to-many membahas setiap bentuk secara mendalam.

Memberlakukan integritas ketika penting

Untuk kasus di mana Anda akan bersandar pada sebuah batasan, DynamoDB memberi Anda building block: condition expression menjaga sebuah tulisan berdasarkan status Item yang sedang ditulis, dan ConditionCheck sebuah transaksi dapat memverifikasi bahwa Item lain (misalnya, induk) ada dalam operasi all-or-nothing yang sama. Cascading delete menjadi logika aplikasi eksplisit atau pembersihan yang digerakkan Streams.

Pelajari lebih lanjut

Mulai dengan single-table design, bangun kondisi penjaga di expression builder, dan unduh DynoTable untuk melihat koleksi Item Anda — induk dan anak berdampingan — dalam satu tampilan.

Referensi

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Bekerja dengan DynamoDB tanpa Console

DynoTable adalah klien desktop yang cepat untuk DynamoDB — jelajahi tabel, jalankan query gaya SQL, dan edit Item secara lokal.