Perbedaan penting antara kunci primer dan kunci unik adalah bahwa kunci utama tidak menerima nilai NULL sedangkan nilai NULL diizinkan dalam batasan kunci unik.
Grafik perbandingan
Dasar untuk perbandingan | Kunci utama | Kunci unik |
---|---|---|
Dasar | Ini digunakan untuk berfungsi sebagai pengidentifikasi unik untuk setiap baris dalam sebuah tabel. | Ini juga secara unik menentukan baris, yang tidak didefinisikan sebagai kunci utama. |
Penerimaan nilai NULL | Kunci utama tidak akan menerima nilai NULL. | Unik akan menerima nilai NULL. |
Jumlah kunci yang dapat didefinisikan dalam tabel | Hanya satu kunci utama | Lebih dari satu |
Indeks | Membuat indeks berkerumun | Membuat indeks yang tidak berkerumun |
Definisi kunci Utama
Kolom dapat disebut sebagai kunci utama dari tabelnya jika secara unik mengidentifikasi setiap tuple (baris) dalam tabel itu. Ini memberlakukan batasan integritas ke tabel. Hanya satu kunci utama yang diizinkan dalam tabel. Kunci utama tidak menerima nilai duplikat dan NULL. Kunci utama dipilih dengan hati-hati di mana perubahan jarang terjadi, artinya kunci primer dalam tabel sangat jarang berubah.
Mari kita memahami pengertian kunci primer dengan bantuan tabel. Di sini kita membuat tabel bernama tabel Student, yang memiliki atribut seperti Roll_number, Name, Batch, Phone_number, Citizen_ID.
Kunci utama dapat dirujuk oleh kunci asing. Itu membuat indeks berkerumun unik di atas meja. Dalam indeks berkerumun, baris data diurutkan dan disimpan dalam tabel atau tampilan berdasarkan nilai-nilai kunci. Hanya ada satu indeks berkerumun dalam tabel, alasan di balik ini adalah bahwa baris data dalam tabel dapat diurutkan hanya dalam satu urutan.
Definisi kunci unik
Mirip dengan kunci primer, batasan kunci unik juga mengidentifikasi tupel individu secara unik dalam suatu relasi. Tapi, ada perbedaan tertentu di antara mereka. Sebuah tabel dapat memiliki lebih dari satu kunci unik. Batasan kunci unik hanya dapat menerima satu nilai NULL untuk kolom.
Mari kita pahami ini dengan contoh serupa, di mana kami memiliki tabel Student dengan atribut Roll_number, Name, Batch, Phone_number dan Citizen_ID. Atribut nomor roll ditugaskan dengan kunci utama.
Batasan unik juga dirujuk oleh kunci asing. Ini dapat digunakan ketika seseorang ingin menegakkan batasan pada kolom dan sekelompok kolom yang bukan kunci utama. Tidak seperti kunci primer, ini menghasilkan indeks non-cluster . Indeks non-clustered memiliki struktur yang berbeda dari baris data. Setiap entri nilai kunci di dalamnya menunjuk ke baris data yang berisi nilai kunci karenanya menggunakan pointer.
Perbedaan Kunci Antara Kunci Utama dan Kunci Unik
- Ketika suatu atribut dinyatakan sebagai kunci utama, itu tidak akan menerima nilai NULL. Di sisi lain, ketika atribut dinyatakan sebagai Unik, ia dapat menerima satu nilai NULL.
- Sebuah tabel hanya dapat memiliki kunci utama sedangkan ada beberapa batasan unik pada sebuah tabel.
- Indeks Clustered secara otomatis dibuat ketika kunci utama didefinisikan. Sebaliknya, kunci unik menghasilkan indeks non-cluster.
Kesimpulan
Kunci primer dan kunci unik melayani tujuan pengidentifikasi unik untuk baris tabel dengan nilai unik dalam kolom atau grup kolom. Batasan-batasan kunci ini secara signifikan dibedakan di mana setiap tabel dapat memiliki paling banyak satu kunci primer sementara sebuah tabel dapat memiliki beberapa kunci unik yang bukan primer.