Apa Itu Primary Key dan Foreign Key dalam suatu Database? Berikut Fungsi, Contoh dan Ciri-Cirinya

Mendengar istilah primary key dan foreign key mungkin bagi kamu yang sering bermain dengan database, istilah tersebut tidak terlalu asing lagi didengar. Namun mungkin saja bagi sebagian kalangan istilah tersebut mungkin terdengar sangat asing. Bagi kamu yang saat ini sedang belajar mengenai dunia pemrograman, kamu mesti mengetahui kedua istilah tersebut. Karena primary key dan foreign key akan sangat berpengaruh terhadap struktur database yang sedang kamu buat.

Keberadaan primary key dan foreign key menjadi salah satu hal yang cukup penting dalam suatu database. Selain keberadaanya bisa memudahkan dalam pengolahan data, juga bisa berperan dalam proses pencarian data dan merelasikan suatu tabel yang ada di database dengan tabel yang lain. Dengan kata lain primary key dan foreign key merupakan istilah dari aturan yang ada pada database yang berguna untuk membedakan setiap data pada tabel secara bersifat unik.

Hal yang perlu kamu perhatikan saat menetapkan atribut sebagai primary key atau foreign key. Pertama adalah jika kamu memiliki banyak tabel, maka tabel tersebut tentunya bisa dikaitkan dengan menggunakan primary key pada tabel pertama, sedangkan di tabel yang kedua data tersebut bukan lagi primary key melainkan foreign key.

Mengenal Primary Key dan Foreign Key

Primary key dan foreign key di database

Perlu kamu ketahui bahwa tabel-tabel yang ada pada database bisa saling berkaitan antara tabel yang satu dengan tabel yang lain. Oleh karena itu untuk mengaitkan atau merelasikan sebuah tabel maka diperlukan sebuah kunci. Kunci utama ini harus bersifat unik atau nilainya tidak dapat sama dengan yang lain, karena akan dipergunakan untuk mengidentifikasi apa yang membedakan record yang satu dengan record yang lainnya.

Terdapat beberapa kunci pada suatu database, tergantung dari fungsi dan operasi apa yang diinginkan. Kunci yang akan kita bahas pada artikel ini adalah primary key dan foreign key. Lalu, apa maksud dari primary key dan foreign key ini?

Primary Key

contoh primary key

Primary key merupakan kunci yang digunakan pada sebuah atribut yang ada pada tabel untuk dapat mengidentifikasi suatu baris atau record yang ada di dalam tabel, sehingga setiap record bisa dibedakan. Nilai yang ada pada atribut primary key harus memiliki nilai yang unik atau tidak boleh ada yang sama dengan data yang lain.

Foreign Key

contoh foreign key

Foreign key merupakan kunci dari suatu atribut yang ada pada tabel untuk melengkapi satu relasi yang mengacu pada tabel yang lain. Tidak seperti primary key, foreign key bisa terdapat lebih dari satu pada suatu tabel.  Nilai yang ada pada atribut foreign key nilainya diambil dari nilai yang ada pada tabel lain yang direlasikan pada tabel tersebut.

Fungsi Primary Key dan Foreign Key

Saat kamu menggunakan database,terkadang kamu perlu menampilkan record tertentu yang tersimpan pada tabel. Tabel yang ada pada database juga bisa kamu relasikan sehingga informasi yang diambil bisa terdapat dari beberapa tabel. Seperti yang diungkapkan sebelumnya untuk merelasikan suatu tabel kamu membutuhkan primary key dan foreign key. Lantas fungsi dari primary key dan foreign key itu apa? Mari kita bahas bersama, kamu dapat mencoba skrip SQL nantinya, agar lebih memantapkan pemahaman kamu.

Fungsi Primary Key

Misalnya kamu memiliki sebuah database dengan nama kampus di dalam database tersebut memiliki sebuah tabel dengan nama tabel matkul. Struktur tabelnya bisa kamu lihat pada tabel di bawah ini. 

kode_matkul

nama_matkul

sks

TI0001

Struktur Data

2

AB004

Manajemen Bisnis

2

Kamu juga bisa sekalian mencobanya pada database, silahkan kamu buat database dengan nama kampus. Kemudian jalankan skrip SQL di bawah ini.

CREATE TABLE `matkul` (
  `kode_matkul` varchar(10) NOT NULL,
  `nama_matkul` varchar(30) NOT NULL,
  `sks` int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
INSERT INTO `matkul` (`kode_matkul`, `nama_matkul`, `sks`) VALUES
('AB0004', 'Manajemen Bisnis', 2),
('TI0001', 'Struktur Data', 2);
 
ALTER TABLE `matkul`
  ADD PRIMARY KEY (`kode_matkul`);

Dari tabel tersebut ketika kamu ingin menampilkan sebuah record atau baris data tertentu, maka kamu memerlukan sebuah kunci. Pada tabel matkul di atas atribut yang cocok untuk dijadikan primary key adalah kode_matkul. Kenapa kode_matkul? Karena kode_matkul memiliki sifat unik atau tidak mungkin record yang lain memiliki kode_matkul yang sama. Sedangkan atribut yang lain bisa saja memiliki nilai yang sama, maka dari itu kode_matkul lah yang cocok untuk dijadikan primary key.

Primary key ini berfungsi untuk membedakan atau mengidentifikasi setiap record dengan record yang lain. Misal ketika kamu ingin menampilkan suatu record pada aplikasi, ketika kamu melakukan query berdasarkan nama matkul atau sks, maka bisa saja terdapat beberapa record dengan nilai yang sama. Oleh sebab itu fungsi dari primary key disini sangat diperlukan. Perhatikan query di bawah yang berfungsi untuk menampilkan data dari tabel matkul berdasarkan kode_matkul.

SELECT * FROM `matkul` WHERE `kode_matkul`="TI0001"

Maka setelah dijalankan query di atas, data yang akan ditampilkan terlihat pada tabel di bawah.

kode_matkul

nama_matkul

sks

TI0001

Struktur Data

2


Fungsi Foreign Key

Misalnya pada database kampus tersebut selain ada tabel matkul seperti diatas ada juga tabel mahasiswa. Tabel mahasiswa ini nantinya akan direlasikan dengan tabel matkul dengan menggunakan atribut matkul yang dijadikan sebagai foreign key. Perhatikan struktur dari tabel matkul berikut ini.

nim

nama_mhs

jenisKelamin

tgl_lahir

matkul

1630511088

Robby

Pria

03-12-1997

TI0001

1730511089

Habli

Pria

01-09-1999

AB0004

1630611032

Safariyah

Perempuan

23-03-1998

AB0004

Kamu juga bisa sekalian mencobanya pada database, pastikan tabel matkul sebelumnya sudah ada pada database. Karena salah satu atribut di tabel mahasiswa ini merupakan foreign key, sehingga tabel mahasiswa merupakan child dari tabel matkul. Silahkan jalankan skrip SQL di bawah ini.

CREATE TABLE `mahasiswa` (
  `nim` int(11) NOT NULL,
  `nama_mhs` varchar(50) NOT NULL,
  `jenisKelamin` varchar(10) NOT NULL,
  `tgl_lahir` date NOT NULL,
  `matkul` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
INSERT INTO `mahasiswa` (`nim`, `nama_mhs`, `jenisKelamin`, `tgl_lahir`, `matkul`) VALUES
(1630511088, 'Robby Takkdirillah', 'Pria', '1997-12-03', 'TI0001'),
(1730511089, 'Rendi Juliarto', 'Pria', '1999-09-01', 'AB0004'),
(1630611032, 'Dini Agustian', 'Perempuan', '1998-03-23', 'AB0004');
 
ALTER TABLE `mahasiswa`
  ADD PRIMARY KEY (`nim`),
  ADD KEY `matkul` (`matkul`);
 
ALTER TABLE `mahasiswa`
  ADD CONSTRAINT `mahasiswa_ibfk_1` FOREIGN KEY (`matkul`) REFERENCES `matkul` (`kode_matkul`);

Dari tabel tersebut atribut yang bertindak sebagai foreign key adalah matkul. Atribut matkul dipilih sebagai foreign key bukan tanpa alasan, karena salah satu syarat untuk menjadikan sebuah atribut sebagai foreign key adalah nilai pada atribut tersebut berasal dari tabel yang akan direlasikan. Selain memiliki foreign key, tabel mahasiswa juga memiliki primary key yang terletak pada atribut nim.

Foreign key ini berfungsi untuk memberi tanda atau mengidentifikasi hubungan tabel yang satu dengan tabel yang lain. Misal ketika kamu ingin menampilkan suatu record pada aplikasi dengan merelasikan dua tabel sehingga saat record mahasiswa ditampilkan ada informasi berupa nim, nama mahasiswa, nama matkul dan jumlah sksnya. Untuk menampilkan informasi tersebut maka kamu memerlukan sebuah query seperti berikut.

SELECT mahasiswa.nim,nama_mhs, matkul.nama_matkul,sks FROM mahasiswa, matkul WHERE matkul.kode_matkul=mahasiswa.matkul

Setelah query tersebut dijalankan, maka dua tabel yang direlasikan tadi akan menampilkan informasi seperti pada tabel di bawah.

nim

nama_mhs

nama_matkul

sks

1630511088

Robby

Struktur Data

2

1630611032

Yessy

Manajemen bisnis

2

1730511089

Habli

Manajemen Bisnis

2

Ciri-ciri Primary Key dan Foreign Key

Ciri-ciri foreign key dan primary key pada database

Dari pembahasan sebelumnya, mungkin kamu sudah dapat menyimpulkan ciri-ciri dari primary key dan foreign key. Seperti penerapan primary key harus pada atribut yang memiliki nilai yang unik, sedangkan foreign key nilainya diambil dari tabel lain. Selain ciri-ciri tersebut masih terdapat beberapa ciri-ciri lagi. Mari kita simak bersama ciri-ciri yang dimiliki oleh primary key dan foreign key berikut ini.

Ciri-ciri Primary Key

  1. Nilai pada primary key selain tidak boleh sama atau harus bersifat unik, nilainya juga tidak boleh null atau kosong.
  2. Kamu tidak dapat menghapus nilai dari primary key apabila nilainya digunakan oleh foreign key, sehingga kamu harus menghapus terlebih dahulu pada tabel child.
  3. Pada satu tabel kamu hanya bisa membuat satu primary key.
  4. Nilai pada primary key bisa kamu tambah atau ubah walaupun pada foreign key nilai tersebut belum digunakan.

Ciri-ciri Foreign Key

  1. Nilai pada foreign key bisa sama dan juga nilainya bisa berupa null atau kosong.
  2. Kamu bisa menghapus nilai dari foreign key yang direlasikan dengan tabel yang lain.
  3. Pada suatu tabel bisa saja kamu membuat atribut foreign key lebih dari satu.
  4. Nilai pada foreign key tidak dapat kamu tambah atau ubah, apabila primary key yang dijadikan rujukan tidak memiliki nilai tersebut

Demikian pembahasan yang bisa disampaikan mengenai primary key dan foreign key. Teruslah belajar dan jangan lupa untuk tetap berlatih mengoperasikan database pada sebuah aplikasi yang sedang kamu bangun. Dengan membuat struktur database yang terencana dan bagus akan membuat kamu mudah untuk mengelola data dan merelasikan tabel di dalamnya.


Post a Comment

0 Comments