Apa itu Kunci Asing dalam Database SQL?
Kunci asing tidak begitu asing lagi—pelajari apa itu dan bagaimana menggunakannya dalam SQL.
Kunci asing memungkinkan administrator database untuk dengan mudah mengidentifikasi koneksi yang berbeda yang ada dalam sistem manajemen database SQL.
SQL melakukan operasi matematika pada data dalam sistem manajemen database. Database ini berisi tabel berbeda yang masing-masing menyimpan data pada entitas tertentu. Jika kamu memiliki database persewaan mobil, entitas (atau tabel) dalam database tersebut akan menjadi pelanggan (yang akan menyimpan semua data pribadi pada setiap pelanggan).
Tabel database ini berisi baris dan kolom, di mana setiap baris menyimpan catatan dan setiap kolom menyimpan data khusus atribut.
Dalam sistem manajemen basis data, setiap catatan (atau baris) harus unik.
Kunci Utama
Meskipun ketentuannya adalah bahwa setiap record dalam tabel harus berbeda, hal ini tidak selalu terjadi. Melanjutkan contoh database persewaan mobil, jika database berisi dua pelanggan yang masing-masing memiliki nama “John Brown”, seorang John Brown dapat diharapkan mengembalikan Mercedes-Benz yang tidak dia sewa.
Membuat kunci utama akan mengurangi risiko ini. Dalam sistem manajemen database SQL, kunci utama adalah pengidentifikasi unik yang membedakan satu catatan dari yang lain.
Oleh karena itu, setiap record dalam sistem manajemen database SQL harus memiliki primary key.
Menggunakan Kunci Utama dalam Basis Data
Untuk memasukkan kunci utama dalam sistem manajemen database menggunakan SQL, kamu cukup menambahkannya sebagai atribut normal saat membuat tabel baru. Jadi tabel pelanggan akan berisi empat atribut (atau kolom):
CarOwnerID (yang akan menyimpan kunci utama)
Nama depan
Nama keluarga
Nomor telepon
Sekarang setiap catatan pelanggan yang masuk ke database akan memiliki nomor identifikasi unik, serta nama depan, nama belakang, dan nomor telepon. Nomor telepon tidak cukup unik untuk menjadi kunci utama, karena meskipun unik untuk satu orang pada satu waktu, seseorang dapat dengan mudah mengubah nomor mereka, yang berarti sekarang akan menjadi milik orang lain.
Catatan Dengan Contoh Kunci Utama
/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');
Kode SQL di atas akan menambahkan catatan baru ke tabel Pelanggan yang sudah ada sebelumnya. Tabel di bawah ini menunjukkan tabel pelanggan baru dengan dua catatan John Brown.
Kunci Asing
Sekarang kamu memiliki kunci utama yang secara unik membedakan satu penyewa mobil dari yang lain. Satu-satunya masalah adalah, dalam database, tidak ada hubungan nyata antara masing-masing John Brown dan mobil yang dia sewa.
Oleh karena itu, kemungkinan melakukan kesalahan tetap ada. Di sinilah kunci asing berperan. Menggunakan kunci utama untuk memecahkan masalah ambiguitas kepemilikan hanya dapat dicapai jika kunci utama berfungsi gkamu sebagai kunci asing.
Apa itu Kunci Asing?
Dalam sistem manajemen database SQL, kunci asing adalah pengidentifikasi unik atau kombinasi pengidentifikasi unik yang menghubungkan dua atau lebih tabel dalam database.
Dari empat sistem manajemen database SQL yang ada, sistem manajemen database relasional adalah yang paling populer. Saat memutuskan tabel mana dalam database relasional yang harus memiliki kunci asing, kamu harus terlebih dahulu mengidentifikasi tabel mana yang merupakan subjek dan mana objek dalam hubungannya.
Kembali ke database persewaan mobil, untuk menghubungkan setiap pelanggan ke mobil yang benar, kamu harus memahami bahwa pelanggan (subjek) menyewa mobil (objek). Oleh karena itu, kunci asing harus ada di tabel mobil.
Kode SQL yang menghasilkan tabel dengan kunci asing sedikit berbeda dari biasanya.
Membuat Tabel 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 kamu lihat dalam kode di atas, kunci asing harus diidentifikasi secara eksplisit, bersama dengan referensi ke kunci utama yang sedang terhubung ke tabel baru.
Untuk menambahkan catatan ke tabel baru, kamu harus memastikan bahwa nilai di bidang kunci asing cocok dengan nilai di bidang kunci utama dari tabel asli.
Menambahkan Catatan Dengan Contoh Kunci Asing
/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');
Kode di atas membuat rekor baru di tabel Mobil baru , menghasilkan hasil berikut.
Meja Mobil
Dari tabel di atas, kamu dapat mengidentifikasi John Brown yang benar yang menyewa Mercedes-Benz dengan kunci asing dalam catatan.
Lanjutan Kunci Asing
Ada dua cara lain untuk menggunakan kunci asing dalam database.
Jika kamu melihat kembali definisi kunci asing di atas, kamu akan menemukan bahwa kunci asing dapat berupa pengenal unik atau kombinasi pengenal unik.
Kembali ke contoh database persewaan mobil, kamu akan melihat bahwa membuat rekor baru (dari mobil yang sama) setiap kali pelanggan menyewa mobil itu, mengalahkan tujuan tabel Mobil . Jika mobil dijual dan dijual ke satu pelanggan sekali, database yang ada sempurna; tetapi mengingat bahwa mobil tersebut adalah persewaan, ada cara yang lebih baik untuk merepresentasikan data ini.
Tombol Komposit
Kunci komposit memiliki dua atau lebih pengidentifikasi unik. Dalam database relasional, akan ada contoh ketika penggunaan kunci asing tunggal tidak cukup mewakili hubungan yang ada dalam database itu.
Dalam contoh persewaan mobil, pendekatan paling praktis adalah membuat tabel baru yang menyimpan detail persewaan. Agar informasi di tabel sewa mobil bermanfaat, tabel harus terhubung ke tabel mobil dan pelanggan.
Membuat Tabel Dengan Kunci Asing Gabungan
/* 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)
);
Kode di atas menggambarkan poin penting; meskipun sebuah tabel dalam database SQL dapat memiliki lebih dari satu kunci asing, tabel tersebut hanya dapat memiliki satu kunci utama. Ini karena seharusnya hanya ada satu cara unik untuk mengidentifikasi catatan.
kamu perlu menggabungkan ketiga atribut dalam tabel untuk memiliki kunci unik. Seorang pelanggan dapat menyewa lebih dari satu mobil pada hari yang sama (jadi CustomerID dan DateRented bukanlah kombinasi yang baik) lebih dari satu pelanggan juga dapat menyewa mobil yang sama pada hari yang sama (jadi LicenseNumber dan DateRented bukanlah kombinasi yang baik) .
Namun, pembuatan kunci komposit yang memberi tahu pelanggan mana, mobil apa, dan pada hari apa membuat kunci unik yang sangat baik. Kunci unik ini mewakili kunci asing komposit dan kunci primer komposit.
Kunci Utama Asing
Oh ya, kunci utama asing memang keluar. Meskipun tidak ada nama resmi untuk itu, kunci asing juga bisa menjadi kunci utama dalam tabel yang sama. Ini terjadi saat kamu membuat tabel baru yang berisi data khusus tentang entitas yang sudah ada (atau rekaman di tabel lain).
Katakanlah Fred (yang bekerja di perusahaan rental mobil) ada di database perusahaan di bawah tabel karyawan. Setelah beberapa tahun, dia menjadi supervisor dan ditambahkan ke tabel supervisor.
Fred masih seorang karyawan dan akan tetap memiliki nomor id yang sama. Jadi id karyawan Fred sekarang ada di tabel supervisor sebagai kunci asing yang juga akan menjadi kunci utama di tabel itu (karena tidak masuk akal untuk membuat nomor id baru untuk Fred sekarang karena dia seorang supervisor).
Sekarang kamu Dapat Mengidentifikasi Kunci Asing Dalam Basis Data SQL
Kunci asing menghubungkan tabel yang berbeda dalam database SQL. Dari artikel ini, kamu dapat melihat apa itu kunci asing, cara kerjanya, dan mengapa penting untuk memilikinya dalam database. kamu juga memahami bentuk dasar, dan bahkan lebih kompleks, dari kunci asing.
Jika menurut kamu kunci asing menarik, kamu akan memiliki hari lapangan saat kamu mulai menggunakan proyek dan operasi pemilihan untuk mengkueri database SQL kamu.
Posting Komentar untuk "Apa itu Kunci Asing dalam Database SQL?"