Kunci Utama vs Kunci Asing: Apakah Perbezaannya?

Isi kandungan:

Anonim

Sebelum mengetahui perbezaan antara kunci utama dan kunci asing, mari belajar:

Apakah Kunci?

Kunci adalah atribut yang membantu anda mengenal pasti baris (tuple) dalam hubungan (jadual). Mereka membolehkan anda mencari hubungan antara dua jadual. Kekunci membantu anda mengenal pasti baris dalam jadual secara unik dengan gabungan satu atau beberapa lajur dalam jadual tersebut. Kunci pangkalan data juga berguna untuk mencari rekod atau baris unik dari jadual.

Apakah Hubungan Pangkalan Data?

Hubungan pangkalan data adalah perkaitan antara satu atau lebih jadual yang dibuat menggunakan pernyataan bergabung. Ia digunakan untuk mengambil data dari pangkalan data dengan cekap. Terdapat terutamanya tiga jenis hubungan 1) Satu-ke-Satu, 2) Satu-ke-banyak, 3) Banyak-ke-banyak.

Apakah Kunci Utama?

Kekangan kunci utama adalah lajur atau kumpulan lajur yang secara unik mengenal pasti setiap baris dalam jadual sistem pengurusan pangkalan data hubungan. Ini tidak boleh menjadi pendua, yang bermaksud nilai yang sama tidak boleh muncul lebih dari sekali dalam jadual.

Jadual boleh mempunyai lebih daripada satu kunci utama. Kekunci utama dapat ditentukan pada tahap lajur atau jadual. Sekiranya anda membuat kunci utama komposit, kunci tersebut harus ditentukan pada peringkat jadual.

Apakah Kunci Asing?

Kunci asing adalah lajur yang mewujudkan hubungan antara dua jadual. Tujuan kunci Asing adalah untuk mengekalkan integriti data dan membenarkan navigasi antara dua keadaan entiti yang berbeza. Ia bertindak sebagai rujukan silang antara dua jadual kerana merujuk kunci utama jadual lain. Setiap hubungan dalam pangkalan data harus disokong oleh kunci asing.

PERBEZAAN UTAMA:

  • Kekangan kunci utama adalah lajur yang secara unik mengenal pasti setiap baris dalam jadual sistem pengurusan pangkalan data hubungan, sementara kunci asing adalah lajur yang mewujudkan hubungan antara dua jadual.
  • Kunci Utama tidak pernah menerima nilai nol sedangkan kunci asing boleh menerima beberapa nilai nol.
  • Anda hanya boleh mempunyai satu kunci utama dalam jadual sementara anda boleh mempunyai beberapa kunci asing dalam jadual.
  • Nilai kunci utama tidak dapat dikeluarkan dari jadual induk sedangkan nilai kunci asing boleh dikeluarkan dari jadual anak.
  • Tidak ada dua baris yang boleh mempunyai nilai yang sama untuk kunci utama sebaliknya kunci asing boleh mengandungi nilai pendua.
  • Tidak ada batasan dalam memasukkan nilai ke dalam lajur jadual sambil memasukkan nilai apa pun di dalam jadual kunci asing, pastikan bahawa nilai tersebut ada ke dalam lajur kunci utama.

Mengapa menggunakan Kunci Utama?

Berikut adalah keburukan / faedah menggunakan kunci utama:

  • Tujuan utama kunci utama adalah untuk mengenal pasti setiap rekod dalam jadual pangkalan data.
  • Anda boleh menggunakan kunci utama apabila anda tidak membenarkan seseorang memasukkan nilai nol.
  • Sekiranya anda menghapus atau mengemas kini rekod, tindakan yang anda tentukan akan dilakukan untuk memastikan integriti data.
  • Lakukan operasi had untuk menolak operasi hapus atau kemas kini untuk jadual induk.
  • Data disusun dalam urutan indeks berkelompok setiap kali anda mengatur jadual DBMS secara fizikal.

Mengapa menggunakan Kunci Asing?

Berikut adalah sebab-sebab penting menggunakan kunci asing:

  • Kekunci asing membantu anda memindahkan entiti menggunakan kunci utama dari jadual induk.
  • Kekunci asing membolehkan anda menghubungkan dua atau lebih jadual bersama.
  • Ini menjadikan data pangkalan data anda konsisten.
  • Kunci asing boleh digunakan untuk memadankan lajur atau kombinasi lajur dengan kunci primer dalam jadual induk.
  • Kekangan kunci asing SQL digunakan untuk memastikan integriti rujukan induk data untuk memadankan nilai dalam jadual anak.

Contoh Kunci Utama

Sintaks:

Berikut adalah sintaks Kunci Utama:

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

Di sini,

  • Table_Name adalah nama jadual yang harus anda buat.
  • Column_Name adalah nama lajur yang mempunyai kunci utama.

Contoh:

Belajar Gulung No Nama pertama Nama terakhir E-mel
1 11 Tom Harga Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.
2 12 Nick Wright Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.
3 13 Dana Natan Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya.

Dalam contoh di atas, kami telah membuat jadual pelajar dengan lajur seperti StudID, Roll No, First Name, Last Name, dan Email. StudID dipilih sebagai kunci utama kerana dapat mengenal pasti baris lain dalam jadual secara unik.

Contoh Kunci Asing

Sintaks:

Berikut adalah sintaks Kunci Asing:

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)… );

Di sini,

  • Parameter Nama Jadual menunjukkan nama jadual yang akan anda buat.
  • Parameter kolum1, lajur2 ... menggambarkan lajur yang perlu ditambahkan ke jadual.
  • Kekangan menunjukkan nama kekangan yang anda buat.
  • Rujukan menunjukkan jadual dengan kunci utama.

Contoh:

DeptCode Nama Dept
001 Sains
002 Bahasa Inggeris
005 Komputer
ID Guru Nama keluarga Nama Ln
B002 Daud Peringatan
B017 Sara Yusuf
B009 Mike Brunton

Dalam contoh di atas, kita mempunyai dua jadual, seorang guru dan sebuah jabatan di sebuah sekolah. Walau bagaimanapun, tidak ada cara untuk melihat carian mana yang berfungsi di jabatan mana.

Dalam jadual ini, dengan menambahkan kunci asing dalam Deptcode ke nama Guru, kita dapat menjalin hubungan antara dua jadual.

ID Guru DeptCode Nama keluarga Nama Ln
B002 002 Daud Peringatan
B017 002 Sara Yusuf
B009 001 Mike Brunton

Konsep ini juga dikenali sebagai Referential Integrity.

Perbezaan antara kunci Utama dan kunci Asing

Inilah perbezaan penting antara kunci Utama dan kunci Asing:

Kunci utama Kunci asing
Kekangan kunci utama adalah lajur atau kumpulan lajur yang secara unik mengenal pasti setiap baris dalam jadual sistem pengurusan pangkalan data hubungan. Kunci asing adalah lajur yang mewujudkan hubungan antara dua jadual.
Ini membantu anda mengenal pasti rekod secara unik dalam jadual. Ia adalah medan dalam jadual yang merupakan kunci utama dari jadual lain.
Kunci Utama tidak pernah menerima nilai kosong. Kunci asing boleh menerima beberapa nilai nol.
Kunci utama adalah indeks berkelompok, dan data dalam jadual DBMS disusun secara fizikal mengikut urutan indeks berkelompok. Kunci asing tidak dapat membuat indeks, berkelompok, atau tidak berkelompok secara automatik.
Anda boleh mempunyai satu kunci Utama dalam jadual. Anda boleh mempunyai beberapa kunci asing dalam jadual.
Nilai kunci utama tidak dapat dikeluarkan dari jadual induk. Nilai nilai kunci asing boleh dikeluarkan dari jadual anak.
Anda boleh menentukan kunci utama secara tersirat pada jadual sementara. Anda tidak dapat menentukan kunci asing pada jadual sementara tempatan atau global.
Kunci utama adalah indeks berkelompok. Secara lalai, ia bukan indeks berkelompok.
Tidak ada dua baris yang boleh mempunyai nilai yang sama untuk kunci utama. Kekunci asing boleh mengandungi nilai pendua.
Tidak ada batasan dalam memasukkan nilai ke dalam lajur jadual. Semasa memasukkan sebarang nilai dalam jadual kunci asing, pastikan bahawa nilai tersebut terdapat dalam lajur kunci utama.