Key dalam Database Relasional

Key (kunci) merupakan sejumlah kolom dalam sebuah tabel basisdata relasional yang dapat mengidentifikasi record secara unik. Key dalam database mempunyai peran penting untuk menentukan hubungan antartabel. Key juga memberi batasan pada atribut (field), contohnya nilai atribut tidak boleh duplikat atau tidak boleh dikosongkan. Berikut jenis key yang umum dijumpai

Candidate Key

Candidate Key merupakan key yang tidak boleh mengandung nilai duplikat (duplicate value). Ini berarti tidak ada record yang memiliki nilai yang sama dalam key ini. Analogi yang paling sederhana adalah NIK. NIK pasti berbeda untuk semua orang, bukan? Tidak mungkin ada dua orang yang memiliki NIK yang sama. 


Pada contoh di atas, yang merupakan candidate key adalah field npm dan email. Tidak mungkin ada dua mahasiswa yang memiliki NPM (nomor pokok mahasiswa) yang sama dalam sebuah instansi. Demikian pula, tidak mungkin ada dua orang yang menggunakan alamat e-mail yang sama.

Primary Key

Primary key merupakan kunci utama pada suatu tabel. Kunci ini dipilih salah satu atau lebih dari candidate key yang dapat dijadikan sebagai induk. Primary key ini memiliki sifat NOT NULL dan UNIQUE. Not null mengindikasikan bahwa atribut tersebut tidak boleh dikosongkan. Sedangkan unique berarti data tidak boleh duplikat. Perhatikan lagi contoh di bawah.


Pada contoh di atas, hanya kolom npm yang dijadikan sebagai primary key. Karenanya, kolom npm tidak boleh bernilai kosong dan tidak boleh mengandung nila duplikat. Kolom email tidak dijadikan primary key karena masih dapat bernilai null walaupun tidak dapat mengandung data duplikat.

Primary key bisa terdiri dari beberapa atribut, jadi tidak wajib harus satu. Anda dapat saja menjadikan atribut (npm, email) sebagai primary key. Tetapi, mungkin ada mahasiswa yang tidak memiliki e-mail sehingga kolom email ini bisa saja berisi nilai null. Yang perlu diingat adalah satu tabel HANYA boleh berisi satu primary key saja. Tetapi, satu primary key bisa terdiri dari beberapa atribut.

Foreign Key

Sesuai namanya, foreign key mengandung kata foreign yang berarti tamu. Kunci tamu ini sama seperti kunci primer, tetapi berasal dari tabel lain. Kunci tamu inilah yang menjalin hubungan dua tabel atau lebih. 
Pada contoh di atas, id_dosenwali merupakan kunci yang menghubungkan tabel dosen dengan tabel mahasiswa. Tabel dosen yang memiliki kunci primer disebut parent table, sedangkan tabel mahasiswa yang memiliki kunci tamu disebut child table. 

Untuk mengisi kunci tamu di child table, datanya harus ada di parent table. Dalam hal ini, kolom id_dosenwali yang ada di tabel mahasiswa harus berisi data yang ada di kolom id_dosenwali tabel dosen. Jika Anda mengisi data id_dosenwali pada tabel mahasiswa dengan kode DSN0003, maka akan muncul peringatan error: parent key not found


Kesimpulan

  • Key merupakan sejumlah kolom yang dapat mengidentifikasi data (record) secara unik.
  • Candidate Key merupakan sejumlah kolom pada sebuah tabel yang memiliki sifat UNIQUE (tidak boleh berduplikat).
  • Primary Key merupakan kunci primer sebuah tabel yang menjadi induk untuk mengidentifikasi data.
  • Primary key bersifat UNIQUE dan NOT NULL.
  • Satu tabel hanya boleh berisi satu primary key, tetapi satu primary key bisa terdiri dari lebih dari satu atribut
  • Foreign key merupakan kunci tamu yang berasal dari kunci primer tabel lain.
  • Fungsi foreign key adalah untuk menghubungkan dua atau lebih tabel.

Komentar