Kekuatan Kunci Asing dalam Database Relasional

Kunci asing membuka pintu ke seluruh dunia data

Perancang basis data membuat penggunaan kunci secara luas ketika mengembangkan basis data relasional. Di antara yang paling umum dari kunci ini adalah kunci primer dan kunci asing. Kunci asing database adalah bidang dalam tabel relasional yang cocok dengan kolom primary key dari tabel lain. Untuk memahami cara kerja kunci asing, mari kita lihat lebih dekat gagasan basis data relasional.

Beberapa Dasar-Dasar Database Relasional

Dalam database relasional, data disimpan dalam tabel yang berisi baris dan kolom, membuatnya mudah dicari dan dimanipulasi. Ada beberapa matematika serius di balik konsep database relasional (aljabar relasional, yang diusulkan oleh EF

Codd di IBM pada tahun 1970), tetapi itu bukan topik artikel ini.

Untuk tujuan praktis (dan non-matematikawan), database relasional menyimpan data "terkait" dalam baris dan kolom. Lebih lanjut — dan disinilah tempat menarik — sebagian besar basis data dirancang sehingga data dalam satu tabel dapat mengakses data di tabel lain. Kemampuan untuk membuat hubungan antar tabel ini adalah kekuatan nyata dari database relasional.

Menggunakan Kunci Asing

Sebagian besar tabel, terutama yang dalam database besar dan rumit, memiliki kunci utama. Tabel yang dirancang untuk mengakses tabel lain juga harus memiliki kunci asing.

Untuk menggunakan database Northwinds yang biasa disebut, berikut adalah kutipan dari tabel Produk:

Kutipan Tabel Produk Database Northwind
ID Produk Nama Produk CategoryID QuantityPerU Patokan harga
1 Chai 1 10 kotak x 20 tas 18,00
2 Chang 1 24 - 12 oz botol 19,00
3 Syrup adas manis 2 12 - 550 botol ml 10,00
4 Bumbu Cajun Chef Anton 2 48 - 6 ons botol 22,00
5 Campuran Gumbo Chef Anton 2 36 kotak 21,35
6 Penyebaran Boysenberry Nenek 2 12 - 8 oz botol 25,00
7 Pir Kering Organik Paman Bob 7 12 - 1 pon pkgs. 30,00

Kolom ProductID adalah kunci utama tabel ini. Ini menetapkan ID unik untuk setiap produk.

Tabel ini juga berisi kolom kunci asing, CategoryID . Setiap produk dalam tabel Produk menaut ke entri di tabel Kategori yang mendefinisikan kategori produk tersebut.

Catat kutipan ini dari tabel Kategori database:

Database Northwind Kategori Tabel Kutipan
CategoryID Nama Kategori Deskripsi
1 Minuman Minuman ringan, kopi, teh, bir, dan bir
2 Bumbu Saus manis dan gurih, relish, menyebar, dan bumbu
3 Confections Makanan penutup, permen, dan roti manis
5 Produk susu Keju

Kolom CategoryID adalah kunci utama kolom ini. (Tidak memiliki kunci asing karena tidak perlu mengakses tabel lain.) Setiap kunci asing dalam tabel Produk terhubung ke kunci utama dalam tabel Kategori. Sebagai contoh, produk Chai diberi kategori "Minuman", sedangkan Syrup Aniseed berada dalam kategori Condiments.

Jenis penautan ini menciptakan berbagai cara untuk menggunakan dan menggunakan kembali data dalam basis data relasional.