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.
İlgili Terimler
Normalizasyon, ilişkisel veritabanında tabloları bağımlılıklara göre düzenleyerek tekrarları azaltan ve veri tutarlılığını koruyan tasarımdır.
Primary KeyPrimary key, bir veritabanı tablosundaki her kaydı tekil belirleyen, boş bırakılamayan ve tekrarlanamayan sütun ya da sütun grubudur.
SQLSQL, ilişkisel veritabanlarında tabloları sorgulamak, değiştirmek ve raporlamak için kullanılan standart veri işleme dilidir.