Apakah Kunci Asing dalam Pangkalan Data SQL?

Apakah Kunci Asing dalam Pangkalan Data SQL?

Kekunci asing membolehkan pentadbir pangkalan data dengan mudah mengenal pasti pelbagai sambungan yang wujud dalam sistem pengurusan pangkalan data SQL.





SQL melakukan operasi matematik pada data dalam sistem pengurusan pangkalan data. Pangkalan data ini mengandungi jadual yang berbeza yang masing-masing menyimpan data pada entiti tertentu. Sekiranya anda mempunyai pangkalan data sewaan kereta, entiti (atau jadual) dalam pangkalan data tersebut akan menjadi pelanggan (yang akan menyimpan semua data peribadi pada setiap pelanggan).





Jadual pangkalan data ini mengandungi baris dan lajur, di mana setiap baris menampung rekod dan setiap lajur menyimpan data khusus atribut.





Dalam sistem pengurusan pangkalan data, setiap rekod (atau baris) harus unik.

Kekunci Utama

Walaupun ketetapannya adalah bahawa setiap catatan dalam jadual harus berbeza, ini tidak selalu berlaku. Melanjutkan dengan contoh pangkalan data sewa mobil, jika pangkalan data tersebut mengandungi dua pelanggan yang masing-masing mempunyai nama John Brown, seorang John Brown diharapkan dapat mengembalikan Mercedes-Benz yang tidak disewanya.



Membuat kunci utama akan mengurangkan risiko ini. Dalam sistem pengurusan pangkalan data SQL, kunci utama adalah pengecam unik yang membezakan satu rekod dengan rekod yang lain.

stop code perangkap mod kernel yang tidak dijangka

Oleh itu, setiap rekod dalam sistem pengurusan pangkalan data SQL harus mempunyai kunci utama.





Menggunakan Kekunci Utama dalam Pangkalan Data

Untuk memasukkan kunci utama dalam sistem pengurusan pangkalan data menggunakan SQL, Anda hanya dapat menambahkannya sebagai atribut biasa ketika membuat tabel baru. Oleh itu, jadual pelanggan akan mengandungi empat atribut (atau lajur):

  • CarOwnerID (yang akan menyimpan kunci utama)
  • Nama pertama
  • Nama terakhir
  • Nombor telefon

Berkaitan: Cara Membuat Jadual dalam SQL





Sekarang setiap rekod pelanggan yang memasuki pangkalan data akan mempunyai nombor pengenalan yang unik, serta nama depan, nama belakang, dan nombor telefon. Nombor telefonnya tidak cukup unik untuk menjadi kunci utama, kerana walaupun unik untuk satu orang pada satu masa, seseorang dapat menukar nombor mereka dengan mudah, yang bermaksud sekarang ia adalah milik orang lain.

Rekod Dengan Contoh Utama Utama

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

Kod SQL di atas akan menambahkan rekod baru pada yang sudah ada Pelanggan meja. Jadual di bawah menunjukkan jadual pelanggan baru dengan dua rekod John Brown.

Kunci Asing

Kini anda mempunyai kunci utama yang membezakan satu penyewa kereta dengan yang lain secara unik. Satu-satunya masalah adalah bahawa, dalam pangkalan data, tidak ada hubungan sebenar antara setiap John Brown dan kereta yang disewanya.

Oleh itu, kemungkinan melakukan kesalahan masih ada. Di sinilah kunci asing dimainkan. Menggunakan kunci utama untuk menyelesaikan masalah kesamaran pemilikan hanya dapat dicapai jika kunci utama berfungsi sebagai kunci asing.

Apakah Kunci Asing?

Dalam sistem pengurusan pangkalan data SQL, kunci asing adalah pengecam unik atau gabungan pengecam unik yang menghubungkan dua atau lebih jadual dalam pangkalan data.

Dari empat sistem pengurusan pangkalan data SQL yang ada, sistem pengurusan pangkalan data hubungan adalah yang paling popular. Semasa menentukan jadual mana dalam pangkalan data hubungan yang harus mempunyai kunci asing, anda harus terlebih dahulu mengenal pasti jadual mana yang menjadi subjek dan yang mana objek dalam hubungan mereka.

Kembali ke pangkalan data sewaan kereta, untuk menghubungkan setiap pelanggan dengan kereta yang betul, anda perlu memahami bahawa pelanggan (subjek) menyewa kereta (objek). Oleh itu, kunci asing harus ada di dalam jadual kereta.

Kod SQL yang menghasilkan jadual dengan kunci asing sedikit berbeza dengan norma.

Membuat Jadual Dengan Contoh Kunci Asing

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

Seperti yang anda lihat dalam kod di atas, kunci asing harus dikenal pasti secara eksplisit seperti itu, bersama dengan rujukan ke kunci utama yang disambungkan ke jadual baru.

macbook tidak dapat menyambung ke wifi

Berkaitan: The Essential SQL Memerintah Lembaran Menipu untuk Pemula

Untuk menambahkan rekod ke jadual baru, anda perlu memastikan bahawa nilai di medan kunci asing sepadan dengan nilai di medan kunci utama jadual asal.

Menambah Rekod Dengan Contoh Kunci Asing

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

Kod di atas membuat rekod baru di baru Kereta jadual, menghasilkan hasil berikut.

Jadual Kereta

Dari jadual di atas, anda dapat mengenal pasti John Brown yang betul yang menyewa Mercedes-Benz dengan kunci asing dalam rekod.

Memajukan Kunci Asing

Terdapat dua cara lain untuk menggunakan kunci asing dalam pangkalan data.

Sekiranya anda melihat kembali definisi kunci asing di atas, anda akan mendapati bahawa ia mengatakan kunci asing boleh menjadi pengecam unik atau gabungan pengecam unik.

Kembali ke contoh pangkalan data sewa kereta, anda akan melihat bahawa membuat rekod baru (dari kereta yang sama) setiap kali pelanggan menyewa kereta itu, mengalahkan tujuan Kereta meja. Sekiranya kereta itu dijual dan dijual kepada satu pelanggan sekali, pangkalan data yang ada adalah sempurna; tetapi memandangkan kereta adalah sewa, ada cara yang lebih baik untuk mewakili data ini.

Kekunci Komposit

Kekunci komposit mempunyai dua atau lebih pengecam unik. Dalam pangkalan data hubungan, akan ada keadaan apabila penggunaan satu kunci asing tidak akan mewakili hubungan yang ada dalam pangkalan data tersebut.

Dalam contoh penyewaan kereta, pendekatan yang paling praktikal adalah membuat jadual baru yang menyimpan maklumat sewa. Agar maklumat di dalam jadual penyewaan kereta berguna, ia mesti disambungkan ke kedua-dua meja kereta dan pelanggan.

Membuat Jadual Dengan Kekunci Asing Komposit

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

Kod di atas menggambarkan perkara penting; walaupun jadual dalam pangkalan data SQL boleh mempunyai lebih daripada satu kunci asing, ia hanya boleh mempunyai satu kunci utama. Ini kerana hanya ada satu cara unik untuk mengenal pasti rekod.

Anda mesti menggabungkan ketiga-tiga atribut dalam jadual untuk mempunyai kunci unik. Seorang pelanggan boleh menyewa lebih dari satu kereta pada hari yang sama (begitu ID pelanggan dan Tarikh Disewa bukan kombinasi yang baik) lebih daripada satu pelanggan juga dapat menyewa kereta yang sama pada hari yang sama (begitu Nombor lesen dan Tarikh Disewa bukan gabungan yang baik).

Walau bagaimanapun, penciptaan kunci komposit yang memberitahu pelanggan mana, kereta apa, dan pada hari apa menjadikan kunci unik yang sangat baik. Kekunci unik ini mewakili kunci asing komposit dan kunci utama komposit.

distro linux terbaik untuk penyuntingan video

Kunci Utama Asing

Oh ya, kunci utama asing keluar. Walaupun tidak ada nama rasmi untuk itu, kunci asing juga boleh menjadi kunci utama dalam jadual yang sama. Ini berlaku apabila anda membuat jadual baru yang mengandungi data khusus mengenai entiti yang ada (atau rekod dalam jadual lain).

Katakan Fred (yang bekerja di syarikat kereta sewa) ada di pangkalan data syarikat di bawah jadual pekerja. Setelah beberapa tahun, dia menjadi penyelia dan ditambahkan ke jadual penyelia.

Fred masih pekerja dan masih akan mempunyai nombor id yang sama. Oleh itu, id pekerja Fred kini berada dalam jadual penyelia sebagai kunci asing yang juga akan menjadi kunci utama dalam jadual itu (kerana tidak masuk akal untuk membuat nombor id baru untuk Fred sekarang kerana dia adalah penyelia).

Kini Anda Boleh Mengenal Kunci Asing Dalam Pangkalan Data SQL

Kekunci asing menghubungkan jadual yang berbeza dalam pangkalan data SQL. Dari artikel ini, anda dapat melihat apa itu kunci asing, cara kerjanya, dan mengapa penting untuk menyimpannya dalam pangkalan data. Anda juga memahami bentuk-bentuk kunci asing yang asas dan lebih kompleks.

Sekiranya anda merasakan kunci asing menarik, anda akan mempunyai hari kerja ketika anda mula menggunakan projek dan operasi pemilihan untuk menanyakan pangkalan data SQL anda.

Berkongsi Berkongsi Tweet E-mel Pelajari Cara Menggunakan Projek dan Operasi Pemilihan di SQL

Dapatkan maklumat mengenai pangkalan data hubungan SQL dengan memahami operasi Projek dan Pemilihan dengan contoh-contoh ini.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Pengaturcaraan
  • SQL
  • pangkalan data
Mengenai Pengarang Kadeisha Kean(21 Artikel Diterbitkan)

Kadeisha Kean adalah Pembangun Perisian Penuh dan Penulis Teknikal / Teknologi. Dia mempunyai kemampuan berbeza untuk menyederhanakan beberapa konsep teknologi yang paling kompleks; menghasilkan bahan yang dapat difahami dengan mudah oleh mana-mana pemula teknologi. Dia minat menulis, mengembangkan perisian yang menarik, dan menjelajah dunia (melalui dokumentari).

Lagi Dari Kadeisha Kean

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan