Kunci asing memungkinkan nilai kunci yang semuanya NULL, bahkan jika tidak ada kunci PRIMARY atau UNIK yang cocok
Tidak Ada Kendala pada Kunci Asing
Ketika tidak ada batasan lain yang didefinisikan pada kunci asing, sejumlah baris dalam tabel anak dapat referensi nilai kunci induk yang sama. Model ini memungkinkan nulls di kunci asing. ...
BUKAN NULL Kendala pada Kunci Asing
Ketika nol tidak diizinkan di kunci asing, setiap baris dalam tabel anak harus secara eksplisit merujuk nilai pada kunci induk karena nol tidak diizinkan di kunci asing.
Sejumlah baris dalam tabel anak dapat merujuk nilai kunci induk yang sama, sehingga model ini membangun hubungan satu-ke-banyak antara induk dan kunci asing. Namun, setiap baris dalam tabel anak harus memiliki referensi ke nilai kunci induk; tidak adanya nilai (nol) di kunci asing tidak diperbolehkan. Contoh yang sama pada bagian sebelumnya dapat digunakan untuk menggambarkan hubungan seperti itu. Namun, dalam hal ini, karyawan harus memiliki referensi ke departemen tertentu.
Batasan UNIK tentang Kunci Asing
Ketika batasan UNIK didefinisikan pada kunci asing, hanya satu baris dalam tabel anak dapat referensi nilai kunci induk yang diberikan. Model ini memungkinkan nulls di kunci asing.
Model ini membangun hubungan satu-ke-satu antara induk dan kunci asing yang memungkinkan nilai yang tidak ditentukan (nol) di kunci asing. Misalnya, asumsikan bahwa tabel karyawan memiliki kolom bernama MEMBERNO, merujuk pada nomor keanggotaan karyawan dalam rencana asuransi perusahaan. Juga, sebuah tabel bernama ASURANSI memiliki kunci utama bernama MEMBERNO, dan kolom lain dari tabel tersebut menyimpan informasi masing-masing yang berkaitan dengan polis asuransi karyawan. MEMBERNO dalam tabel karyawan harus berupa kunci asing dan kunci unik:
Untuk memberlakukan aturan integritas referensial antara tabel EMP_TAB dan ASURANSI (batasan FOREIGN KEY)
Untuk menjamin bahwa setiap karyawan memiliki nomor keanggotaan yang unik (batasan utama UNIQUE)
Batasan UNIK dan BUKAN NULL pada Kunci Asing
Ketika batasan UNIQUE dan NOT NULL didefinisikan pada kunci asing, hanya satu baris dalam tabel anak yang dapat mereferensikan nilai kunci induk yang diberikan, dan karena nilai-nilai NULL tidak diperbolehkan dalam kunci asing, setiap baris dalam tabel anak harus secara eksplisit merujuk nilai pada kunci induk.