Kunci (key) merupakan suatu atribut yang unik yang dapat digunakan untuk membedakan suatu entitas dengan entitas lainnya dalam suatu himpunan entitas. Secara konseptual, sebuah entitas individual memiliki batas yang jelas. Dari sudut pandang basis data, perbedaan diantara mereka harus dicerminkan lewat perbedaan dalam nilai atributnya. Misalnya, untuk entitas mahasiswa, atribut kuncinya adalah NIM-nya sebab tidak diperkenankan lebih dari satu mahasiswa memiliki nilai atribut NIM yang sama, walaupun mungkin mahasiswa-mahasiswa itu memiliki, katakanlah, nilai atribut nama yang sama (mungkin ada beberapa mahasiswi dengan nama yang sama). Lebih jauh, nilai-nilai atribut kunci dapat secara unik mengidentifikasi suatu entitas dengan entitas lainnya. Dengan kata lain, tidak ada lebih dari satu entitas yang diizinkan memiliki nilai-nilai yang sama untuk semua atribut.
Superkey adalah satu atau lebih atribut yang dimiliki suatu entitas, yang dapat digunakan untuk membedakannya dengan entitas lainnya. Sebagai contoh, NIM merupakan atribut kunci untuk entitas Mahasiswa. Demikian juga, gabungan atribut NIM dan nama dapat digunakan untuk membedakan seorang mahasiswa dengan mahasiswa lainnya. Dengan kata lain, tidak akan pernah ada seorang mahasiswa pun yang memiliki sekaligus nilai atribut NIM dan nama yang sama. Namun, tidak demikian dengan atribut nama, seorang mahasiswa mungkin memiliki nama yang tepat sama dengan nama mahasiswa lainnya sehingga nama secara mandiri bukanlah superkey untuk entitas mahasiswa. Dalam hal ini, dapat dikatakan bahwa NIM atau gabungan NIM dan nama adalah superkey untuk entitas mahasiswa.
Dalam basis data, konsep superkey terkadang tidak memadai sebab mungkin saja superkey merupakan himpunan atribut yang sangat banyak, sedangkan, untuk alasan efisiensi, harus menggunakan sedikit mungkin atribut untuk membedakan satu entitas dengan entitas lainnyadalam suatu himpunan entitas tertentu.
Atribut-atribut yang mungkin dapat digunakan sebagai kunci dengan batasan diatas dinamakan kunci calon (candidate key). Beberapa atribut mungkin saja menjadi kunci calon bersamaan. Misalnya, gabungan atribut nama, alamat, serta nomor telepon juga dapat digunakan untuk membedakan anggota-anggota dari himpunan entitas Mahasiswa. Oleh karena itu, dapat dilihat bahwa atribut NIM, kemudian gabungan atribut-atribut NIM dan nama, dan gabungan atribut-atribut nama, alamat, nomor telepon, merupakan kunci calon. Untuk alasan tertentu, terutama untuk alasan efisiensi yang disebutkan sebelumnya, analis dan perancang basis data pada umumnya memilih sejumlah atribut minimal yang dapat digunakan untuk basis pembedaan suatu entitas dengan entitas lainnya.
Kunci primer (primary key) dapat didefinisikan sebagai kunci calon yang dipilih oleh perancang basis data dalam pengimplementasian konsep pemodelan data konseptual di basis data. Tidak ada ketentuan tentang pemilihan kunci calon ini, tetapi, jika mempertimbangkan jumlah atribut minimal demi alasan efisiensi, untuk kasus entitas mahasiswa, pada umumnya setiap perancang basis data akan memilih NIM sebagai kunci primer. NIM memadai untuk digunakan sebagai kunci primer karena unik dan cukup ringkas untuk digunakan sebagai pembeda satu entitas dengan entitas lainnya dalam himpunan entitas mahasiswa.
sumber: Buku Perancangan dan Implementasi Sistem Basis Data oleh Adi Nugroho