Perbedaan Antara Kunci Utama dan Kunci Asing

Perbedaan Utama antara Kunci Utama dan Kunci Asing

  • Batasan kunci utama adalah kolom yang secara unik mengidentifikasi setiap baris dalam tabel sistem manajemen basis data relasional, sedangkan kunci asing adalah kolom yang membuat hubungan antara dua tabel.
  • Kunci utama tidak pernah menerima nilai nol, sedangkan kunci asing dapat menerima beberapa nilai nol.
  • Anda hanya dapat memiliki satu kunci utama dalam sebuah tabel, sementara Anda dapat memiliki beberapa kunci asing dalam sebuah tabel.
  • Nilai kunci utama tidak dapat dihapus dari tabel induk, sedangkan nilai kunci asing dapat dihapus dari tabel anak.
  • Tidak ada dua baris yang dapat memiliki nilai identik untuk kunci utama; di sisi lain, kunci asing dapat berisi nilai duplikat.
  • Tidak ada batasan untuk memasukkan nilai ke dalam kolom tabel sambil memasukkan nilai apa pun ke dalam tabel kunci asing; memastikan bahwa nilainya ada di kolom kunci utama.
Perbedaan Antara Kunci Utama dan Kunci Asing
Perbedaan Antara Kunci Utama dan Kunci Asing

Di sini, saya telah menganalisis perbedaan antara kunci utama dan kunci asing dan akan mengevaluasi kelebihan dan kekurangannya secara komprehensif.

Apa itu Kunci Utama?

Batasan kunci utama adalah kolom atau sekelompok kolom yang secara unik mengidentifikasi setiap baris dalam tabel sistem manajemen basis data relasional. Nilai tersebut tidak boleh duplikat, artinya nilai yang sama tidak boleh muncul lebih dari satu kali dalam tabel.

Sebuah tabel tidak boleh memiliki lebih dari satu kunci utama. Itu kunci utama dapat didefinisikan pada tingkat kolom atau tabel. Jika Anda membuat kunci utama komposit, kunci tersebut harus ditentukan di tingkat tabel.

Contoh Kunci Utama

sintaks:

Di bawah ini adalah sintaks dari Kunci Utama:

CREATE TABLE <Table-Name>
(
Column1 datatype,
Column2 datatype,  PRIMARY KEY (Column-Name)
.
);    

Di sini,

  • Table_Name adalah nama tabel yang harus Anda buat.
  • Column_Name adalah nama kolom yang memiliki kunci utama.

Contoh:

ID Studi Nomor Gulungan Nama Depan Nama Belakang Email
1 11 Tom Harga abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Dalam contoh di atas, kami telah membuat tabel mahasiswa dengan kolom seperti StudID, Roll No., First Name, Last Name, dan Email. StudID dipilih sebagai kunci utama karena dapat mengidentifikasi baris lain dalam tabel secara unik.

Mengapa menggunakan Kunci Utama?

Selama bertahun-tahun saya menangani sistem database, saya telah mencatat kekurangan dan manfaat berikut ketika menggunakan kunci utama:

  • Tujuan utama dari kunci utama adalah untuk mengidentifikasi setiap catatan dalam tabel database.
  • Anda dapat menggunakan kunci utama ketika Anda tidak mengizinkan seseorang memasukkan nilai nol.
  • Jika Anda menghapus atau memperbarui catatan, tindakan yang Anda tentukan akan dilakukan untuk memastikan integritas data.
  • Lakukan operasi pembatasan untuk menolak operasi penghapusan atau pembaruan pada tabel induk.
  • Data diatur dalam urutan indeks berkelompok setiap kali Anda secara fisik mengatur tabel DBMS.

Apa itu Kunci Asing?

Kunci asing adalah kolom yang membuat hubungan antara dua tabel. Tujuan dari Kunci Asing adalah untuk menjaga integritas data dan memungkinkan navigasi antara dua contoh entitas yang berbeda. Ini bertindak sebagai referensi silang antara dua tabel karena mereferensikan kunci utama dari tabel lain. Setiap hubungan dalam database harus didukung oleh kunci asing.

Contoh Kunci Asing

sintaks:

Di bawah ini adalah sintaks dari Kunci Asing:

CREATE TABLE <Table Name>( 
column1    datatype,
column2    datatype,  
constraint (name of constraint) 
FOREIGN KEY [column1, column2...] 
REFERENCES [primary key table name] (List of primary key table column) ...);

Di sini,

  • Parameter Nama Tabel menunjukkan nama tabel yang akan Anda buat.
  • Parameter kolom1, kolom2… menggambarkan kolom yang perlu ditambahkan ke tabel.
  • Batasan menunjukkan nama batasan yang Anda buat.
  • Referensi menunjukkan tabel dengan kunci utama.

Contoh:

Kode Departemen Nama Departemen
001 Ilmu
002 Inggris
005 komputer
ID Guru Nama Fan nama
B002 David Warner
B017 Sara Yusuf
B009 Mike Brunton

Pada contoh di atas, kita memiliki dua tabel: guru dan departemen di sekolah. Namun, tidak ada cara untuk melihat pencarian mana yang berhasil di departemen mana.

Pada tabel ini, dengan menambahkan kunci asing di Deptcode ke nama guru, kita dapat membuat hubungan antara kedua tabel.

ID Guru Kode Departemen Nama Fan nama
B002 002 David Warner
B017 002 Sara Yusuf
B009 001 Mike Brunton

Konsep ini juga dikenal sebagai integritas referensial.

Mengapa menggunakan Kunci Asing?

Dari apa yang saya lihat, berikut adalah alasan penting untuk menerapkan kunci asing:

  • Kunci asing membantu Anda memigrasikan entitas menggunakan kunci utama dari tabel induk.
  • A kunci asing memungkinkan Anda menghubungkan dua tabel atau lebih secara bersamaan.
  • Itu membuat data database Anda konsisten.
  • Kunci asing dapat digunakan untuk mencocokkan kolom atau kombinasi kolom dengan kunci utama dalam tabel induk.
  • Batasan kunci asing SQL digunakan untuk memastikan integritas referensial induk data cocok dengan nilai di tabel anak.

Perbedaan antara Kunci Utama dan Kunci Asing

Izinkan saya berbagi perbedaan penting antara kunci utama dan kunci asing, seperti yang saya alami secara pribadi:

Kunci Utama vs Kunci Asing
Kunci Utama vs Kunci Asing
Dasar Perbandingan Kunci utama Kunci asing
Definisi Batasan kunci utama adalah kolom atau sekelompok kolom yang secara unik mengidentifikasi setiap baris dalam tabel sistem manajemen basis data relasional. Kunci asing adalah kolom yang membuat hubungan antara dua tabel.
Dasar Ini membantu Anda mengidentifikasi catatan dalam tabel secara unik. Ini adalah bidang dalam tabel yang merupakan kunci utama dari tabel lain.
NULL Kunci Utama tidak pernah menerima nilai nol. Kunci asing dapat menerima beberapa nilai null.
Pengindeksan Kunci utama adalah indeks berkelompok, dan data pada tabel DBMS secara fisik diatur dalam urutan indeks berkelompok. Kunci asing tidak dapat secara otomatis membuat indeks, terkluster atau tidak terkluster.
Menghitung Anda dapat memiliki satu kunci utama dalam sebuah tabel. Anda dapat memiliki beberapa kunci asing dalam sebuah tabel.
penghapusan Nilai kunci utama tidak dapat dihapus dari tabel induk. Nilai kunci asing dapat dihapus dari tabel anak.
Meja sementara Anda dapat menentukan kunci utama secara implisit di tabel sementara. Anda tidak dapat menentukan kunci asing pada tabel sementara lokal atau global.
Hubungan Kunci utama adalah indeks berkelompok. Secara default, ini bukan indeks terkluster.
Duplikasi Tidak ada dua baris yang memiliki nilai identik untuk kunci utama. Kunci asing dapat berisi nilai duplikat.
Insersi Tidak ada batasan untuk memasukkan nilai ke dalam kolom tabel. Saat memasukkan nilai apa pun ke dalam tabel kunci asing, pastikan bahwa nilai tersebut ada di kolom kunci utama.

Cara Memilih Antara Kunci Utama dan Kunci Asing

Dari apa yang telah kita lihat, kunci utama secara unik mengidentifikasi entri tabel, dan kunci asing menghubungkan entri-entri ini di seluruh tabel, keduanya penting untuk menjaga integritas data dan memfasilitasi pengambilan data yang efisien.