Pengertian Foreign Key Beserta Fungsi dan Perbedaannya dengan Primary Key

Sebelumnya telah dijelaskan mengenai primary key, kali ini Penulis akan membahas mengenai atribut yang tidak kalah penting dari primary key, yaitu foreign key (kunci asing). Berdasarkan namanya, atribut tersebut bukanlah atribut utama yang harus terdapat dalam sebuah tabel. Namun, foreign key inilah yang memiliki peran untuk menghubungkan antara tabel master dengan tabel turunannya.

Secara sederhana, kunci asing dapat menciptakan hubungan antara record yang terdapat dalam dua tabel yang berbeda dalam suatu database. Kunci asing inilah yang menjadi kolom yang merujuk ke kolom primary key. Rujukan tersebut menjadi sangat penting dalam merancang database, Hal itu guna untuk membangun hubungan antar record yang memainkan peran penting dalam normalisasi relasional database. Dalam normailisasi, kunci asing berperan untuk mengakses tabel lain dan dapat untuk menyortir database.

Namun, tahukah Anda apa sebenarnya pengertian dari foreign key? Fungsinya? Bahkan, apa yang membedakan foreign key dengan primary key. Oleh karena itu, dalam artikel kali ini, Penulis akan membahas secara detail mengenai pengertian dari foreign key¸ fungsi foreign key dan juga perbedaan antara foreign key dengan primary key. Langsung saja ke pembahasan yang pertama, yaitu mengenai pengertian foreign key dibawah ini.

Pengertian Foreign Key

Secara sederhana, foreign key dapat diartikan sebagai kunci asing. Definisi tersebut juga berlaku dalam pengolahan relasional database. Kunci asing (Foreign Key) adalah sebuah atribut atau gabungan atribut yang terdapat dalam suatu tabel yang digunakan untuk menciptakan hubungan (relasi) antara dua tabel.

Dalam relasional database, penggunaan foreign key merujuk pada suatu kunci primer yang terdapat pada tabel pertama atau dikenal juga dengan tabel master. Untuk lebih jelasnya, perhatikanlah gambar dibawah ini.

tabel foreign key

Pada gambar diatas, kolom Department_Id yang berada dalam tabel Karyawan merupakan foreign key. Sebab, kolom Department_Id merujuk pada kolom Department_Id yang berada di tabel Department. Dalam hal itu, kolom Department_Id pada tabel Department disebut dengan kunci primer (primary key). Berikut ini dijelaskan bagaimana cara menentukan kunci asing (foreign key) dalam membuat tabel Karyawan menggunakan MySQL:

CREATE TABLE Karyawan
(Karyawan_Id CHAR(7),
nama CHAR(25),
jenis_kelamin BOOLEAN,
tgl_lahir DATE,
Department_Id CHAR(3),
PRIMARY KEY (Karyawan_Id),
FOREIGN KEY (Department_Id) REFERENCES Department (Department_Id));

Fungsi Foreign Key

fungsi foreign key

Pada dasarnya, foreign key digunakan untuk menandakan hubungan tabel yang satu dengan yang lainnya. Atau dapat dikenal dengan istilah parent dan child. Tabel pertama berperan sebagai parent yang terdapat primary key di dalamnya, tabel kedua disebut sebagai child yang berisi kunci asing (foreign key).

Suatu tabel dapat dikatakan child apabila dalam tabel tersebut terdapat kolom yang merupakan rujukan (reference) terhadap tabel pertama atau parent. Selain itu, terdapat beberapa fungsi yang dimiliki oleh foreign key. Berikut akan dijelaskan mengenai beberapa fungsinya :

  • Dengan menentukan kunci asing, maka otomatis database akan konsisten dalam mempertahankan integritas referensial. Dengan begitu, database dapat memonitor setiap data yang dimasukkan. Misalkan pada contoh gambar diatas, ketika Anda mencoba memasukkan record baru dalam tabel Karyawan (“2010004”, “Andi”, “Pria”, “10/03/1990”, “PEN”). Maka secara otomatis, database akan menolak memasukkan record tersebut dan menampilkan pesan kesalahan. Sebab, dalam kolom Department_Id di tabel Department tidak mengenal “PEN”.
  • Ketika Anda telah menetapkan kunci primer di tabel utama dan kunci asing di tabel kedua, maka itu memudahkan Anda untuk melihat rancangan fisik database dengan komponen yang saling terkait. Dengan begitu, Anda tidak perlu membuat rancangan database secara manual. Pada XAMPP, Anda dapat melihat rancangan fisik database yang telah dirancang dengan klik menu More -> Designer.
  • Dengan membuat kolom yang digunakan sebagai foreign key, maka dapat memudahkan Anda untuk melakukan operasi pengolahan setiap data yang tersimpan dalam database. Sebab, data yang tersimpan sudah saling terkait satu dengan yang lainnya.

Perbedaan Primary Key dan Foreign Key

Perbedaan Primary Key dan Foreign Key

Setelah mengetahui definisi dari primary key dan foreign key, Anda sudah dapat menyimpulkan perbedaan yang dimiliki kedua istilah tersebut. Dalam relasional database, maka setiap tabel hanya dapat memiliki sebuah primary key. Berbeda dengan foreign key, setiap tabel dapat memiliki banyak foreign key.

Masih banyak lagi perbedaan yang dimiliki primary key dan foreign key. Berikut akan dijelaskan mengenai perbedaan keduanya.

a. Primary Key

  1. Kunci utama mendefinisikan nilai tuple dalam sebuah tabel. Kunci utama juga dapat dikatakan sebagai atribut tunggal dalam tabel. Dengan begitu, nilai dari kunci utama tidak boleh berubah. Sebab, perubahan nilai pada primary key malah akan menciptakan kebingungan.
  2. Hal yang menjadi perbedaan utama antara primary key dengan foreign key adalah nilai yang digunakan dalam primary key tidak boleh NULL. Maksudnya adalah record tersebut harus diisi dengan nilai (tidak boleh kosong). Jika nilai atribut primary key mengandung NULL, maka Anda tidak dapat mengidentifikasi record yang terdapat dalam tabel tersebut.
  3. Dalam primary key, Anda dapat membuat clustered index secara otomatis. Maksudnya Anda dapat mengurutkan data yang akan disimpan dalam database.
  4. Kunci utama merupakan kombinasi antara UNIQUE dan NOT NULL. Hal itu menyebabkan tidak adanya nilai duplikat yang boleh dimiliki kolom untuk didefinisikan sebagai kunci utama, terutama dalam mengolah relasional database.
  5. Anda dapat menambahkan nilai baru ke atribut primary key, walaupun kunci asing tidak memiliki nilai baru dalam kolomnya.
  6. Anda tidak dapat menghapus nilai dari primary key dari tabel pertama (parent). Untuk itu, Anda harus menghapus atribut yang disebut dengan foreign key di dalam tabel kedua atau child.

b. Foreign Key

  1. Foreign key merupakan suatu field dalam satu tabel yang digunakan untuk menghubungkan dua tabel. Dengan begitu, foreign key merujuk pada suatu kolom yang unik untuk mengidentifikasi baris dari satu tabel yang sama atau berbeda.
  2. Berbeda dengan primary key yang nilainya tidak boleh NULL. Foreign key dapat menerima nilai NULL. Oleh karena itu, foreign key tidak memiliki fungsi untuk mengidentifikasi record yang terdapat dalam tabel. Selain itu, foreign key juga dapat menerima nilai yang duplikat.
  3. Di dalam foreign key tidak terdapat clustered index. Namun, Anda dapat melakukannya dengan manual.
  4. Anda tidak dapat menambahkan nilai ke dalam foreign key, jika nilai tersebut tidak tersedia di kolom primary key. Sebab, syarat nilai dalam foreign key merupakan nilai rujukan dari kolom primary key.
  5. Anda dapat menghapus suatu nilai yang berasal dari kolom foreign key tanpa mengganggu record yang lain, dan juga tanpa harus mengetahui apakah nilai tersebut merupakan nilai yang dirujuk dari primary key atau tidak.

Itulah penjelasan mengenai pengertian foreign key, fungsinya beserta perbedaan yang dimiliki primary key dengan foreign key. Penulis berharap artikel diatas dapat membantu Anda mengetahui foreign key dengan jelas sehingga Anda dapat menetapkan foreign key yang berasal dari rujukan primary key.

Leave a Reply

Send this to a friend