Rabu, 22 Oktober 2014

foreign key

Dalam konteks database relasional , foreign key adalah bidang (atau kumpulan field) dalam satu tabel yang secara unik mengidentifikasi deretan meja lain. Dengan kata lain, kunci asing adalah kolom atau kombinasi dari kolom yang digunakan untuk menetapkan dan menegakkan link antara dua tabel.
Tabel yang berisi kunci asing disebut referensi atau anak meja, dan tabel yang berisi kunci kandidat disebut tabel referensi atau orang tua.
Karena tujuan kunci asing adalah untuk mengidentifikasi baris tertentu dari tabel yang direferensikan, umumnya diperlukan bahwa kunci asing adalah sama dengan candidate key dalam beberapa baris dari tabel utama, atau yang lain tidak memiliki nilai ( the NULL value). Aturan ini disebut batasan integritas referensial antara dua tabel.Karena pelanggaran kendala ini dapat menjadi sumber banyak masalah basis data, sebagian besar sistem manajemen database menyediakan mekanisme untuk memastikan bahwa setiap kunci asing non-null sesuai dengan deretan tabel yang direferensikan. 
Sebagai contoh, perhatikan database dengan dua tabel : tabel CUSTOMER yang mencakup semua data pelanggan dan meja PESANAN yang mencakup semua pesanan pelanggan. Misalkan bisnis mensyaratkan bahwa setiap pesanan harus mengacu pada satu pelanggan. Untuk mencerminkan hal ini dalam database, kolom kunci asing ditambahkan ke tabel PESANAN (misalnya, Pelanggan), yang referensi Primary Key NASABAH (misalnya ID). Karena kunci utama dari tabel harus unik, dan karena Pelanggan hanya berisi nilai-nilai itu bidang kunci utama, kita dapat mengasumsikan bahwa, ketika memiliki nilai, Pelanggan akan mengidentifikasi pelanggan tertentu yang ditempatkan urutan. Namun, ini tidak bisa lagi diasumsikan jika tabel PESANAN tidak terus up to date ketika baris tabel PELANGGAN dihapus atau kolom ID diubah, dan bekerja dengan tabel ini mungkin menjadi lebih sulit. Banyak database dunia nyata mengatasi masalah ini dengan 'menonaktifkan' daripada fisik menghapus tabel master kunci asing, atau dengan program pembaruan kompleks yang mengubah semua referensi kunci asing ketika perubahan dibutuhkan.
Kunci asing memainkan peran penting dalam desain database . Salah satu bagian penting dari desain database adalah memastikan bahwa hubungan antara entitas dunia nyata tercermin dalam database dengan referensi, menggunakan kunci asing untuk merujuk dari satu meja ke yang lain. Bagian penting lainnya dari desain database adalah normalisasi database , di mana tabel rusak terpisah dan kunci asing memungkinkan bagi mereka untuk dibangun kembali.
Beberapa baris dalam tabel referensi (atau anak) bisa merujuk ke baris yang sama di (atau orang tua) tabel direferensikan. Dalam hal ini, hubungan antara dua tabel disebut satu ke banyak hubungan antara tabel referensi dan tabel referensi.
Selain itu, anak dan orang tua tabel mungkin, pada kenyataannya, menjadi meja yang sama, yaitu kunci asing mengacu kembali ke meja yang sama. Kunci asing seperti dikenal di SQL : 2003 sebagai referensi diri atau kunci asing rekursif. Dalam sistem manajemen database, hal ini sering dilakukan dengan menghubungkan pertama dan kedua mengacu pada meja yang sama.
Sebuah meja mungkin memiliki beberapa kunci asing, dan setiap kunci asing dapat memiliki tabel induk yang berbeda. Setiap kunci asing diberlakukan secara independen oleh sistem database . Oleh karena itu, Cascading hubungan antara tabel dapat dibentuk dengan menggunakan kunci asing.

Tidak ada komentar:

Posting Komentar