Perbedaan superkey, candidate key dan primary key beserta contoh

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.

Perbedaan superkey, candidate key dan primary key beserta contoh 1

Sebelumnya, kita dapat memetakan/menormalisasi table diatas menjadi seperti dibawah ini:

Perbedaan superkey, candidate key dan primary key beserta contoh 2

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:

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.