Cara Membuat Kunci Asing di Microsoft SQL Server

Salah satu konsep terpenting dalam basis data adalah menciptakan hubungan antara tabel basis data. Hubungan ini menyediakan mekanisme untuk menghubungkan data yang disimpan dalam beberapa tabel dan mengambilnya secara efisien. Untuk membuat tautan antara dua tabel, Anda harus menentukan kunci asing dalam satu tabel yang merujuk ke kolom di tabel lain.

Tabel dan Relasi Database

Anda mungkin sudah tahu bahwa database hanyalah serangkaian tabel , mirip dengan apa yang mungkin sudah Anda gunakan dalam program spreadsheet , seperti Microsoft Excel. Bahkan, Anda bahkan dapat mengonversi spreadsheet Excel ke database. Namun, jika basis data berbeda dari spreadsheet, adalah ketika membangun hubungan yang kuat antar tabel.

Pertimbangkan, misalnya, database yang digunakan oleh perusahaan untuk melacak informasi sumber daya manusia. Database itu mungkin memiliki tabel yang disebut Karyawan yang berisi informasi berikut untuk setiap anggota staf perusahaan:

Dalam contoh ini, ID karyawan adalah bilangan bulat unik yang diberikan kepada setiap karyawan ketika mereka ditambahkan ke database. ID posisi adalah kode pekerjaan yang digunakan untuk referensi posisi karyawan di perusahaan. Dalam skema ini, seorang karyawan hanya boleh memiliki satu posisi, tetapi banyak (atau tidak ada) karyawan dapat mengisi setiap posisi. Misalnya, Anda mungkin memiliki ratusan karyawan dengan posisi "Kasir".

Database mungkin juga berisi tabel yang disebut Posisi dengan informasi tambahan berikut tentang setiap posisi:

Bidang ID Posisi dalam tabel ini mirip dengan bidang ID Karyawan dalam tabel Karyawan - ini adalah bilangan bulat unik yang dibuat ketika posisi ditambahkan ke database.

Ketika kita pergi untuk menarik daftar karyawan dari database, itu wajar untuk meminta nama setiap orang dan judul mereka. Namun, informasi ini disimpan dalam beberapa tabel basis data, sehingga hanya dapat diambil menggunakan kueri JOIN yang membutuhkan hubungan yang ada di antara tabel.

Saat Anda melihat struktur tabel, bidang yang menentukan hubungan mungkin sudah jelas - bidang ID Posisi. Setiap karyawan hanya dapat memiliki satu posisi dan posisi tersebut diidentifikasi dengan memasukkan ID Posisi dari entri yang sesuai tabel Posisi. Selain menjadi kunci utama untuk tabel Posisi, dalam contoh ini, bidang ID Posisi juga merupakan kunci asing dari tabel Karyawan ke tabel Posisi. Database kemudian dapat menggunakan bidang ini untuk menghubungkan informasi dari beberapa tabel dan memastikan bahwa perubahan atau penambahan pada basis data terus menegakkan integritas referensial .

Setelah Anda mengidentifikasi kunci asing, Anda dapat melanjutkan dan menarik informasi yang diinginkan dari database menggunakan kueri berikut:

SELECT FirstName, LastName, Judul DARI Karyawan INNER GABUNG Posisi ON Employees.PositionID = Posisi.PositionID

Membuat Kunci Asing di SQL Server

Secara teknis, Anda tidak perlu mendefinisikan hubungan secara eksplisit untuk dapat melakukan kueri seperti yang di atas. Namun, jika Anda secara eksplisit menentukan hubungan menggunakan batasan kunci asing, database akan dapat melakukan beberapa pekerjaan rumah tangga untuk Anda:

Beginilah cara Anda membuat kunci asing di SQL Server:

ALTER TABLE Employees ADD FOREIGN KEY (PositionID) REFERENSI Posisi (PositionID)

Anda juga dapat membuat kunci asing saat Anda membuat tabel dengan menambahkan klausa:

FOREIGN KEYIGN REFERENCES Positions (PositionID)

sampai akhir definisi kolom untuk kolom kunci asing.