Apa itu Kunci Asing?

Database terdiri dari tabel di mana data, atau informasi, disimpan. Kunci asing adalah mekanisme dalam database relasional yang memungkinkan asosiasi tabel tersebut, atau tabel memiliki hubungan satu sama lain. Ada karakteristik unik yang harus dimiliki kunci asing. Itu harus berupa kolom atau grup kolom dalam tabel yang nilainya membentuk hubungan dengan nilai di tabel lain dalam database yang sama.

Kunci asing menjamin bahwa baris dalam satu tabel sesuai dengan baris di beberapa tabel lain, sehingga membangun hubungan database-lebar, atau referensi. Tabel yang berisi kunci asing adalah “anak”, dan tabel lainnya adalah “orang tua”. Ada kemungkinan nilai kunci asing menjadi nol atau kosong dan untuk itu benar-benar merujuk atau berhubungan dengan apa yang dikenal sebagai kunci utama dari tabel di mana ia ditemukan. Ini dikenal sebagai referensi diri.

Seseorang harus memiliki pemahaman yang baik tentang apa itu kunci utama sebelum mencoba memahami sepenuhnya konsep di balik kunci asing. Misalnya, jika ada dua tabel dalam database yang menyimpan informasi tentang buku yang diterbitkan untuk situs web yang menjual buku, satu tabel mungkin merupakan tabel penerbit dan tabel lainnya adalah tabel buku. Tabel penerbit dapat terdiri dari dua kolom, kunci utama yang selalu unik untuk setiap catatan dan kolom nama penerbit. Minimal tiga kolom akan membuat tabel buku, memegang kunci utama atau pengenal unik untuk setiap buku, judul buku dan kolom melalui mana hubungan akan dibuat dengan tabel penerbit. Kolom itu akan menjadi kunci asing.

Kunci utama untuk tabel penerbit dapat berupa sesuatu seperti “pub_id” dengan nilai: P01, P02, P03, dll. Hubungan akan dibuat dengan tabel buku jika berisi kolom pub_id dengan nilai yang sama. Ini akan menjadi kunci asing yang akan menghubungkan tabel anak ini kembali ke induknya — tabel penerbit.

Namun, kunci asing dapat memiliki nama kolom yang berbeda dari kunci induk yang dirujuknya. Pemahaman yang baik tentang cara kerja kunci primer dan kunci asing sangat penting dalam menjaga integritas referensial. Database yang sangat besar yang terdiri dari banyak tabel atau yang melibatkan tabel persimpangan menyajikan lebih dari satu jenis hubungan, yang dapat memperumit tugas bekerja dengan kunci asing.