Untuk kamu yang masih belum lama belajar basis data mungkin bingung, tentang perbedaan antara superkey, candidate key dan primary key. Namun, tidak menutup kemungkinan juga bagi kamu yang sudah lama berkecimpung di dunia teknologi informasi, namun juga belum begitu memahami perbedaan diantara ketiga hal tersebut. Lalu, apa perbedaanya?
Biasanya, kebanyakan dari kita hanya terlalu familiar dengan primary key dan foreign key. Sehingga ketika ada dua kata baru, yaitu super dan candidate, hal ini menjadi sedikit rancu.
Memang, hal ini wajar. Karena untuk kita yang hidup dengan bekerja sebagai programmer full-stack, kita cenderung terpaku dengan bagaimana kebutuhan dasar agar project kita selesai. Sehingga sering menghiraukan hal-hal yang mendasar. Berikut penjelasan singkat mengenai ketiganya:
Super Key
Superkey (key) adalah gugus atribut entitas yang dapat digunakan untuk mengidentifikasikan entitas/obyek secara unik.
Candidate Key
Candidate Key adalah satu atau beberapa atribut pada sebuah yang memiliki nilai unik yang salah satunya nanti dapat dipilih menjadi primary key dari tabel tersebut.
Primary Key
Primary Key adalah candidate key yang dipilih untuk digunakan sebagai kunci identitas tabel secara unik (kunci indeks tabel) dan tidak boleh bernilai NULL.
Berdasarkan penjalasan diatas, sebenarnya kita sudah bisa membayangkan apa yang menjadi pembatas diantara ketiganya. Untuk memperjelas perbedaan antara superkey, primary key dan candidate key, berikut contoh yang bisa dijadikan gambaran.
Contoh Kasus
Diketahui table seperti pada dibawah ini, dan kita akan mencoba untuk menentukan yang mana yang super key, candidate key, dan primary key.
Sebelumnya, kita dapat memetakan/menormalisasi table diatas menjadi seperti dibawah ini:
Maka dapat diperoleh:
a) Tabel Konsumen
Primary key: No_fak
Foreign key: –
b) Tabel Pesan
Primary key: No_pesan
Foreign key: Kode_brg, No_fak
c) Tabel Barang
Primary key: Kode_brg
Primary key: Kode_brg
Foreign key: –
Setelah itu kita menentukan Super Key dan Candidate Key pada tabel di atas:
- No_fak, superkey ; No_fak menentukan Barang.
- (No_fak, Almt_kons), superkey ; No_fak, Almt_kons menentukan Barang.
- (No_fak, Nm_kons, Almt_kons), superkey ; No_fak, Nm_kons, Almt_kons menentukan Barang.
- (No_fak, Nm_kons, Almt_kons, Kota_kons), superkey ; No_fak, Almt_kons, Nm_kons, Kota_kons menentukan Barang.
- Kode_brg, superkey ; Kode_brg menentuka Barang.
- (No_fak, Kode_brg, Nm_kons, Almt_kons, Kota_kons), superkey ; No_fak, Kode_brg, Nm_kons, Almt_kons, Kota_kons menentukan Barang.
Maka (No_fak, Kode_brg, Nm_kons, Almt_kons, Kota_kons) termasuk Super Key. Sebagai Candidate Keynya adalah No_fak dan Kode_barang.
Mungkin sampai disini dulu, semoga artikel ini dapat bermanfaat untuk teman-teman belajar. Kamu juga bisa menulis di website ini dengan mengirimkan tulisan melalui halaman yang sudah disediakan atau klik disini.