Foreign Key Adalah: Pengertian, Fungsi, dan Contohnya

Dalam pembahasan database relasional, Foreign Key (kunci tamu) adalah kolom atau sekumpulan kolom dalam suatu tabel yang digunakan untuk membangun dan memastikan hubungan (link) antara data pada dua tabel yang berbeda. Berdasarkan dokumentasi dan literatur basis data, Foreign Key pada tabel anak (child table) berfungsi mereferensikan kolom kunci utama (Primary Key) pada tabel induk (parent table).

Sebagai contoh konkret dalam struktur database relasional hierarkis atau perusahaan, kolom seperti "Laporan Ke" bertindak sebagai Foreign Key yang mereferensikan kolom "Nomor Pegawai" pada tabel data pegawai. Penerapan ini memastikan bahwa nilai yang dimasukkan ke dalam kolom anak harus konsisten dan merujuk pada entitas yang benar-benar ada di tabel referensi utamanya.

Matriks Konsep Dasar Relasi Database

Komponen Peran Utama Lokasi Penyimpanan
Primary Key Mengidentifikasi setiap baris data secara unik Tabel Induk (Parent Table)
Foreign Key Menghubungkan tabel anak ke tabel induk Tabel Anak (Child Table)

Fungsi dan Signifikansi Foreign Key

Keberadaan Foreign Key sangat krusial dalam sistem manajemen basis data relasional (RDBMS) untuk menegakkan integritas referensial (referential integrity). Tanpa batasan ini, sebuah sistem database rentan mengalami inkonsistensi data, seperti adanya data transaksi yang merujuk pada pelanggan atau produk yang sudah dihapus dari sistem.

Ketika tipe data atau struktur relasi antara tabel induk dan tabel anak diterapkan dengan benar, sistem akan secara otomatis menolak operasi penyisipan (insert) atau pembaruan (update) apabila nilai pada kolom foreign key tidak ditemukan pada primary key tabel referensinya.

Mitos vs Fakta Implementasi

Mitos Umum Fakta Lapangan
Foreign Key memperlambat performa secara drastis dalam semua kondisi. Meskipun menambah proses validasi saat write, Foreign Key justru mengoptimalkan struktur relasi dan mencegah korupsi data.
Foreign Key harus memiliki nama kolom yang persis sama dengan Primary Key yang direferensikan. Secara teknis nama kolom boleh berbeda, asalkan tipe data dan domain nilainya kompatibel.