Kunci Utama vs Kunci Asing: Apa Bedanya?

Daftar Isi:

Anonim

Sebelum mempelajari perbedaan antara kunci primer dan kunci asing, mari pelajari:

Apa itu Keys?

Kunci adalah atribut yang membantu Anda mengidentifikasi baris (tupel) dalam suatu relasi (tabel). Mereka memungkinkan Anda menemukan hubungan antara dua tabel. Tombol membantu Anda secara unik mengidentifikasi baris dalam tabel dengan kombinasi satu atau beberapa kolom dalam tabel itu. Kunci database juga berguna untuk menemukan catatan atau baris unik dari tabel.

Apa itu Hubungan Database?

Hubungan database adalah asosiasi antara satu atau beberapa tabel yang dibuat menggunakan pernyataan gabungan. Ini digunakan untuk mengambil data secara efisien dari database. Pada dasarnya ada tiga jenis hubungan 1) Satu-ke-Satu, 2) Satu-ke-banyak, 3) Banyak-ke-banyak.

Apa itu Kunci Utama?

Batasan kunci utama adalah kolom atau grup kolom yang secara unik mengidentifikasi setiap baris dalam tabel sistem manajemen database relasional. Ini tidak bisa menjadi duplikat, artinya nilai yang sama tidak boleh muncul lebih dari sekali dalam tabel.

Tabel dapat memiliki lebih dari satu kunci utama. Kunci utama dapat ditentukan di kolom atau tingkat tabel. Jika Anda membuat kunci utama komposit, itu harus ditentukan di tingkat tabel.

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 yang berbeda dari suatu entitas. Ini bertindak sebagai referensi silang antara dua tabel karena mereferensikan kunci utama dari tabel lain. Setiap relasi dalam database harus didukung oleh kunci asing.

PERBEDAAN UTAMA:

  • Batasan kunci utama adalah kolom yang secara unik mengidentifikasi setiap baris dalam tabel sistem manajemen database 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 tabel sementara Anda dapat memiliki beberapa kunci asing dalam 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, sebaliknya kunci asing dapat berisi nilai duplikat.
  • Tidak ada batasan dalam memasukkan nilai ke dalam kolom tabel saat memasukkan nilai apa pun di tabel kunci asing, pastikan bahwa nilai tersebut ada ke dalam kolom kunci utama.

Mengapa menggunakan Kunci Utama?

Berikut kekurangan / keuntungan menggunakan kunci utama:

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

Mengapa menggunakan Kunci Asing?

Berikut adalah alasan penting menggunakan kunci asing:

  • Kunci asing membantu Anda memigrasi entitas menggunakan kunci utama dari tabel induk.
  • Kunci asing memungkinkan Anda untuk 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 dari data induk agar sesuai dengan nilai dalam tabel anak.

Contoh Kunci Utama

Sintaksis:

Di bawah ini adalah sintaks dari Primary Key:

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

Sini,

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

Contoh:

StudID Gulung Tidak Nama depan Nama keluarga Surel
1 11 Tom Harga Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.
2 12 Nick Wright Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.
3 13 Dana Natan Alamat email ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.

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

Contoh Kunci Asing

Sintaksis:

Di bawah ini adalah sintaks dari Foreign Key:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Sini,

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

Contoh:

DeptCode DeptName
001 Ilmu
002 Inggris
005 Komputer
ID Guru Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

Dalam contoh di atas, kami memiliki dua tabel, seorang guru dan satu departemen di sebuah sekolah. Namun, tidak ada cara untuk melihat pencarian mana yang berhasil di departemen mana.

Dalam tabel ini, menambahkan kunci asing di Deptcode ke nama Guru, kita bisa membuat hubungan antara dua tabel.

ID Guru DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Konsep ini juga dikenal sebagai Integritas Referensial.

Perbedaan antara Kunci primer dan kunci Asing

Inilah perbedaan penting antara kunci Primer dan kunci Asing:

Kunci utama Kunci asing
Batasan kunci utama adalah kolom atau grup kolom yang secara unik mengidentifikasi setiap baris dalam tabel sistem manajemen database relasional. Kunci asing adalah kolom yang membuat hubungan antara dua tabel.
Ini membantu Anda secara unik mengidentifikasi rekaman dalam tabel. Ini adalah bidang dalam tabel yang merupakan kunci utama dari tabel lain.
Kunci Utama tidak pernah menerima nilai nol. Kunci asing dapat menerima beberapa nilai nol.
Kunci utama adalah indeks berkerumun, dan data dalam tabel DBMS secara fisik diatur dalam urutan indeks berkerumun. Kunci asing tidak dapat secara otomatis membuat indeks, berkerumun, atau tidak berkerumun.
Anda dapat memiliki satu kunci utama dalam sebuah tabel. Anda dapat memiliki beberapa kunci asing dalam satu tabel.
Nilai kunci utama tidak dapat dihapus dari tabel induk. Nilai nilai kunci asing dapat dihapus dari tabel anak.
Anda dapat menentukan kunci utama secara implisit di tabel sementara. Anda tidak dapat menentukan kunci asing di tabel sementara lokal atau global.
Kunci utama adalah indeks berkerumun. Secara default, ini bukan indeks berkerumun.
Tidak ada dua baris yang dapat memiliki nilai identik untuk kunci utama. Kunci asing dapat berisi nilai duplikat.
Tidak ada batasan dalam memasukkan nilai ke dalam kolom tabel. Saat memasukkan nilai apa pun dalam tabel kunci asing, pastikan bahwa nilai tersebut ada di kolom kunci utama.