Perbedaan utama antara kunci asing dan kunci utama adalah bahwa kunci asing adalah kolom atau kumpulan kolom yang merujuk ke kunci utama atau kunci kandidat dari tabel lain sedangkan kunci utama adalah kolom atau kumpulan kolom yang dapat digunakan untuk mengidentifikasi baris dalam tabel secara unik.
Kolom atau sekumpulan kolom yang dapat digunakan untuk mengidentifikasi atau mengakses baris atau sekumpulan baris dalam database disebut kunci. Kunci utama dalam database relasional adalah kombinasi kolom dalam tabel yang secara unik mengidentifikasi baris tabel. Kunci asing dalam database relasional adalah bidang dalam tabel yang cocok dengan kunci utama tabel lain. Kunci asing digunakan untuk tabel referensi silang.
Apa itu kunci Asing?
Foreign key adalah batasan referensial antara dua tabel. Ini mengidentifikasi kolom atau satu set kolom dalam satu tabel, yang disebut tabel referensi yang mengacu pada satu set kolom di tabel lain, yang disebut tabel referensi. Kunci asing atau kolom dalam tabel referensi harus menjadi kunci utama atau kunci kandidat (kunci yang dapat digunakan sebagai kunci utama) dalam tabel yang direferensikan. Selain itu, kunci asing memungkinkan menghubungkan data di beberapa tabel. Oleh karena itu, kunci asing tidak dapat berisi nilai yang tidak muncul dalam tabel yang dirujuk. Kemudian referensi yang diberikan oleh kunci asing membantu untuk menghubungkan informasi dalam beberapa tabel dan ini akan menjadi penting dengan database yang dinormalisasi. Beberapa baris dalam tabel referensi dapat merujuk ke satu baris dalam tabel referensi.
Gambar 01: Pemetaan Kunci Asing
Dalam standar ANSI SQL, batasan FOREIGN KEY mendefinisikan kunci asing. Selain itu, dimungkinkan untuk menentukan kunci asing saat membuat tabel itu sendiri. Sebuah tabel dapat memiliki beberapa kunci asing, dan mereka dapat mereferensikan tabel yang berbeda.
Apa itu Kunci Utama?
Kunci utama adalah kolom atau kombinasi kolom yang secara unik mendefinisikan baris dalam tabel database relasional. Sebuah tabel dapat memiliki paling banyak satu kunci utama. Kunci utama memberlakukan batasan NOT NULL implisit. Oleh karena itu, kolom dengan kunci utama tidak boleh memiliki nilai NULL di dalamnya. Kunci utama dapat berupa atribut normal dalam tabel yang dijamin unik seperti nomor jaminan sosial, atau dapat berupa nilai unik yang dihasilkan oleh sistem manajemen basis data seperti Pengidentifikasi Unik Global (GUID) di Microsoft SQL Server.
Gambar 02: Kunci Utama
Selanjutnya, batasan PRIMARY KEY dalam ANSI SQL Standard mendefinisikan kunci utama. Dimungkinkan juga untuk menentukan kunci utama saat membuat tabel. Selain itu, SQL memungkinkan kunci utama dibuat dari satu atau lebih kolom, dan setiap kolom yang disertakan dalam kunci utama secara implisit didefinisikan sebagai NOT NULL. Tetapi beberapa sistem manajemen basis data memerlukan pembuatan kolom kunci utama secara eksplisit NOT NULL.
Apa Perbedaan Antara Kunci Asing dan Kunci Utama?
Kunci asing vs Kunci utama |
|
Foreign key adalah kolom atau grup kolom dalam tabel database relasional yang menyediakan asosiasi antara data dalam dua tabel. | Primary key adalah kolom tabel database relasional khusus atau kombinasi beberapa kolom yang memungkinkan untuk mengidentifikasi semua record tabel secara unik. |
NULL | |
Kunci asing menerima nilai NULL. | Nilai kunci utama tidak boleh NULL. |
Jumlah Kunci | |
Tabel dapat memiliki beberapa kunci asing. | Tabel hanya dapat memiliki satu kunci utama. |
Duplikasi | |
Tuples dapat memiliki nilai duplikat untuk atribut kunci asing. | Dua tupel dalam suatu relasi tidak dapat memiliki nilai duplikat untuk atribut kunci utama. |
Ringkasan – Kunci asing vs Kunci utama
Perbedaan antara foreign key dan primary key adalah bahwa foreign key adalah kolom atau sekumpulan kolom yang merujuk pada primary key atau candidate key dari tabel lain sedangkan primary key adalah kolom atau kumpulan kolom yang dapat digunakan untuk mengidentifikasi baris dalam tabel secara unik.