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
Querymengembalikan 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
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Amazon DynamoDB Transactions: How it works — Amazon DynamoDB Developer Guide
- Best practices for NoSQL design — Amazon DynamoDB Developer Guide
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.