Kunci asing membuka pintu ke seluruh dunia data
Pereka pangkalan data menggunakan kunci yang luas apabila membangun pangkalan data hubungan. Antara yang paling biasa kunci ini ialah kunci utama dan kunci asing. Kunci pangkalan pangkalan data ialah medan dalam jadual relasional yang sepadan dengan lajur utama utama jadual lain. Untuk memahami bagaimana kunci asing berfungsi, mari kita lihat lebih dekat pada idea pangkalan data hubungan.
Beberapa Asas Pangkalan Data Relasi
Dalam pangkalan data relasional, data disimpan dalam jadual yang mengandungi baris dan lajur, memudahkan untuk mencari dan memanipulasi. Terdapat beberapa matematik yang serius di belakang konsep pangkalan data relasional (aljabar relasi, yang dicadangkan oleh EF
Codd di IBM pada tahun 1970), tetapi itu bukan topik artikel ini.
Untuk tujuan praktikal (dan bukan ahli matematik), pangkalan data relasional menyimpan data "berkaitan" dalam baris dan lajur. Lebih jauh-dan di sinilah ia mendapat pangkalan data yang paling menarik direka supaya data dalam satu jadual dapat mengakses data dalam jadual lain. Keupayaan untuk mencipta perhubungan antara jadual adalah kekuatan sebenar pangkalan data hubungan.
Menggunakan Kekunci Asing
Kebanyakan jadual, terutamanya dalam pangkalan data yang besar dan kompleks, mempunyai kunci utama. Jadual yang direka untuk mengakses jadual lain juga mesti mempunyai kunci asing.
Untuk menggunakan pangkalan data Northwinds yang biasa disebut, berikut adalah petikan daripada jadual Produk:
ProductID | Nama Produk | KategoriID | QuantityPerU | Harga seunit |
---|---|---|---|---|
1 | Chai | 1 | 10 kotak x 20 beg | 18.00 |
2 | Chang | 1 | 24 - 12 oz botol | 19.00 |
3 | Syrup Aniseed | 2 | 12 - botol 550 ml | 10.00 |
4 | Perayaan Cajun Chef Anton | 2 | 48 - 6 oz balang | 22.00 |
5 | Chef Anton's Gumbo Mix | 2 | 36 kotak | 21.35 |
6 | Spread Boyenberry Nenek | 2 | 12 - 8 oz balang | 25.00 |
7 | Pear Organik Paman Bob | 7 | 12 - 1 lb pkgs. | 30.00 |
Lajur ProductID ialah kunci utama jadual ini. Ia memberikan ID unik kepada setiap produk.
Jadual ini juga mengandungi lajur utama asing, KategoriID . Setiap produk dalam jadual Produk menghubungkan kepada entri dalam jadual Kategori yang mentakrifkan kategori produk itu.
Perhatikan petikan ini dari jadual Kategori pangkalan data:
KategoriID | Nama kategori | Penerangan |
---|---|---|
1 | Minuman | Minuman ringan, kopi, teh, bir, dan ales |
2 | Perasa | Sayur-sayuran manis, sihat, menyebar, dan perisa |
3 | Kesempurnaan | Pencuci mulut, gula-gula, dan roti manis |
5 | Produk tenusu | Keju |
KategoriID lajur adalah kunci utama lajur ini. (Ia tidak mempunyai kunci asing kerana ia tidak perlu mengakses jadual lain.) Setiap kunci asing dalam jadual Produk menghubungkan kepada kunci utama dalam jadual Kategori. Sebagai contoh, produk Chai diberikan kategori "Minuman", sementara Aniseed Syrup berada dalam kategori Perasa.
Penyambungan semacam ini mewujudkan pelbagai cara untuk menggunakan dan menggunakan semula data dalam pangkalan data hubungan.