Foreign Key Nedir?

İngilizce: Foreign Key

Foreign key, bir tablodaki değeri başka tablonun anahtarına bağlayarak ilişkisel veritabanlarında referans bütünlüğünü koruyan kısıttır.

Foreign Key Nedir?

Foreign key veya yabancı anahtar, bir tablodaki kaydın başka tablodaki geçerli bir kayda bağlı olmasını sağlayan veritabanı kısıtıdır. Örneğin orders.customer_id, customers.id alanını referans alıyorsa siparişin var olan bir müşteriye ait olması beklenir.

Nasıl Çalışır?

SQL veritabanlarında foreign key tanımı, çocuk tablo ve ebeveyn tablo arasındaki ilişkiyi belirtir. Veritabanı, referans olmayan müşteriyle sipariş oluşturmayı veya bağlı siparişleri varken müşteriyi silmeyi engelleyebilir.

Silme ve güncelleme davranışı kurala göre değişir. RESTRICT işlemi engeller, CASCADE bağlı kayıtları da günceller veya siler, SET NULL referansı boş bırakır. Hangi davranışın seçileceği iş kuralına bağlıdır.

Neden Önemlidir?

Foreign key, raporlama ve operasyon ekranlarında “yetim kayıt” oluşmasını önler. Siparişin müşterisiz, fatura kaleminin faturasız veya yorumun kullanıcısız kalması veri kalitesini bozar.

Normalizasyon yapılan ilişkisel modellerde foreign key temel araçlardan biridir. Performans için ilgili kolonların indekslenmesi, toplu veri aktarımı ve silme stratejilerinin ayrıca düşünülmesi gerekir.