Kunci asing menghubungkan data dalam satu tabel dengan data di tabel lain. Tabel pesanan memiliki kolom customer_id. Kolom tersebut merupakan kunci asing yang menunjuk ke kunci utama tabel pelanggan. Tautan ini memastikan bahwa setiap pesanan milik pelanggan yang sebenarnya. Tanpa itu, pesanan dapat merujuk ke pelanggan yang tidak ada. Basis data menegakkan hubungan tersebut.
Kunci asing melakukan lebih dari sekadar mendokumentasikan relasi. Mereka menegakkan integritas referensial. Jika Anda mencoba memasukkan pesanan dengan customer_id yang tidak ada di tabel pelanggan, basis data akan menolaknya. Jika Anda mencoba menghapus pelanggan yang memiliki pesanan, basis data akan memblokir penghapusan atau meneruskannya tergantung pada aturannya. Penegakan tersebut mencegah catatan yatim piatu dan data yang tidak konsisten. Kunci asing juga membantu kinerja kueri. Basis data dapat menggunakan relasi tersebut untuk mengoptimalkan penggabungan (join). Tidak semua basis data menerapkan kunci asing. Beberapa basis data NoSQL menyerahkan integritas referensial kepada aplikasi. Hal itu memberi pengembang lebih banyak fleksibilitas tetapi juga lebih banyak tanggung jawab. Aplikasi harus memastikan bahwa referensi tersebut valid. Jika gagal, data menjadi tidak konsisten. Kunci asing adalah batasan. Batasan tidak nyaman sampai mencegah bencana.
Aturan kunci asing
- Batasi — blokir penghapusan jika referensi ada
- Cascade — menghapus atau memperbarui catatan referensi secara otomatis.
- Set null — mengatur kunci asing menjadi null saat penghapusan
- Tidak perlu tindakan apa pun — izinkan operasi dan periksa nanti.
Kunci asing adalah penghubung dan jaminan. Penghubung menghubungkan tabel. Jaminan menjaga konsistensi tabel.
Comments
No comments yet. Be the first to share a thought.
Leave a comment