Kunci utama vs. Kunci unik
Kolom atau seperangkat kolom, yang dapat digunakan untuk mengidentifikasi atau mengakses baris atau serangkaian baris dalam database disebut kunci. Kunci unik adalah kunci yang secara unik dapat mengidentifikasi baris dalam tabel dalam konteks basis data relasional. Kunci unik terdiri dari satu kolom atau satu set kolom. Kunci utama juga merupakan kombinasi kolom dalam tabel yang secara unik mengidentifikasi baris. Tetapi itu dianggap sebagai kasus khusus dari kunci unik.
Apa itu Kunci Unik?
Seperti disebutkan sebelumnya, kunci unik adalah satu kolom atau kumpulan kolom yang dapat secara unik mengidentifikasi baris dalam tabel. Jadi, kunci unik dibatasi sehingga tidak ada dua nilai yang sama. Salah satu properti penting adalah bahwa kunci unik tidak menegakkan batasan NOT NULL. Karena NULL mewakili kurangnya nilai, jika dua baris memiliki NULL dalam kolom maka itu tidak berarti nilainya sama. Kolom yang didefinisikan sebagai kunci unik hanya memungkinkan satu nilai NULL dalam kolom itu. Maka itu dapat digunakan untuk mengidentifikasi baris tertentu secara unik. Misalnya, dalam tabel yang berisi informasi siswa, ID siswa dapat didefinisikan sebagai kunci unik. Karena tidak ada dua siswa yang dapat memiliki ID yang sama, maka secara unik mengidentifikasi satu siswa. Jadi kolom ID siswa memenuhi semua properti kunci unik. Bergantung pada desain database, tabel mungkin memiliki lebih dari satu kunci unik.
Apa itu Kunci Utama?
Kunci primer juga merupakan kolom atau kombinasi kolom yang secara unik mendefinisikan baris dalam tabel database relasional. Sebuah tabel dapat memiliki paling banyak satu kunci utama. Kunci primer memberlakukan batasan NOT NULL implisit. Jadi, kolom yang didefinisikan sebagai kunci utama tidak dapat memiliki nilai NULL di dalamnya. Kunci primer bisa menjadi atribut normal dalam tabel yang dijamin unik seperti nomor jaminan sosial atau bisa juga nilai unik yang dihasilkan oleh sistem manajemen basis data seperti Pengidentifikasi Unik Global (GUID) di Microsoft SQL Server. Kunci primer didefinisikan melalui batasan PRIMARY KEY dalam ANSI SQL Standard. Kunci primer juga dapat didefinisikan saat membuat tabel. SQL memungkinkan kunci primer terdiri dari satu atau lebih kolom dan setiap kolom yang termasuk dalam kunci utama secara implisit didefinisikan sebagai NOT NULL. Tetapi beberapa sistem manajemen basis data mengharuskan membuat kolom kunci utama secara eksplisit BUKAN NULL.
Perbedaan Antara Kunci Utama dan Kunci Unik
Meskipun kunci primer dan kunci unik adalah satu atau beberapa kolom yang dapat secara unik mengidentifikasi baris dalam tabel, mereka memiliki beberapa perbedaan penting. Yang paling penting, sebuah tabel hanya dapat memiliki satu kunci utama sementara itu dapat memiliki lebih dari satu kunci unik. Kunci primer dapat dianggap sebagai kasus khusus dari kunci unik. Perbedaan lainnya adalah bahwa kunci primer memiliki kendala NOT NULL implisit sedangkan kunci unik tidak memiliki kendala itu. Oleh karena itu, kolom kunci unik mungkin atau mungkin tidak mengandung nilai NULL tetapi kolom kunci primer tidak dapat berisi nilai NULL.