İlişkisel veritabanları bağlamında yabancı anahtar, varlıklar arasındaki ilişkileri kuran ve uygulayan ve veritabanı tabloları arasında referans bütünlüğünü sağlayan kritik bir unsurdur. Yabancı anahtar, bir tablodaki başka bir tablonun birincil anahtar sütununa/sütunlarına atıfta bulunan bir sütun veya sütunlar kümesidir. Yabancı anahtarı içeren tabloya referans tablosu veya alt tablo adı verilirken, birincil anahtarı içeren tabloya genellikle başvurulan tablo veya ana tablo adı verilir.
Güçlü bir no-code platform olan AppMaster, veritabanı şeması tasarımı ve yönetimine yönelik kapsamlı yaklaşımının bir parçası olarak yabancı anahtarlardan yararlanarak kullanıcıların herhangi bir kod yazmadan verimli ve ölçeklenebilir ilişkisel veritabanı yapıları oluşturmasına olanak tanır. AppMaster, yabancı anahtarlardan yararlanarak kullanıcılarına, uygulamalarının veri varlıkları arasındaki karmaşık ilişkileri ve bağımlılıkları modelleme yetkisi vererek temel iş alanının doğru ve tutarlı bir şekilde temsil edilmesini sağlar.
Yabancı anahtarın temel amacı ilişkisel bir veritabanındaki referans bütünlüğünü korumaktır. Referans bütünlüğü, ilgili tablolardaki verilerin doğru ve tutarlı kalmasını sağlayan bir dizi veri tutarlılığı kuralı ve kısıtlamasıdır. Bu kurallar, alt tablonun yabancı anahtar sütun(lar)ındaki herhangi bir değerin, ana tablonun birincil anahtar sütun(lar)ındaki mevcut değere karşılık gelmesi gerektiğini belirtir. Başka bir deyişle, yabancı anahtar kısıtlamaları alt tablolarda artık kayıtların oluşturulmasına karşı koruma sağlar.
Her siparişin onu veren bir müşterinin bulunduğu Müşteriler ve Siparişler olmak üzere iki tablo içeren basit bir veritabanı örneğini düşünün. Bu senaryoda, Müşteriler tablosu, her müşteriyi benzersiz şekilde tanımlamak için 'Müşteri_Kimliği' gibi bir birincil anahtar sütunu içerecektir. Öte yandan Siparişler tablosu, her siparişi ilgili müşteriye bağlamak için 'Müşteri_Kimliği' gibi bir yabancı anahtar sütunu içerecektir. Bu yabancı anahtar kısıtlaması, Siparişler tablosundaki herhangi bir siparişin, Müşteriler tablosunda bulunan, kendisiyle ilişkilendirilmiş geçerli bir müşteriye sahip olması gerektiğini zorunlu kılar. Sonuç olarak, mevcut olmayan bir müşteriyle sipariş oluşturmak mümkün olmayacak ve olası veri tutarsızlıklarının önüne geçilecektir.
Referans bütünlüğünü korumanın yanı sıra, yabancı anahtarlar varlıklar arasındaki ilişkileri tanımlamak için de kullanılabilir. Bu ilişkiler üç türe ayrılabilir: bire bir, bire çok ve çoktan çoğa. Bire bir ilişki, iki varlık arasındaki katı ilişkiyi tanımlar; burada ana tablodaki her varlık, alt tablodaki en fazla bir varlığa bağlanır. Müşteriler ve Siparişler örneğinde gösterildiği gibi bire-çok ilişki, alt tablodaki birden çok kaydın üst tablodaki tek bir kayıtla ilişkilendirilmesine olanak tanır. Ara tablo veya bağlantı tabloları gerektiren çoktan çoğa ilişkiler, katılan her tablodaki birden çok kaydın diğerindeki birden çok kayda bağlanmasına olanak tanır.
Yabancı anahtar kısıtlamaları ayrıca veritabanının ilgili kayıtlardaki güncellemeleri veya silme işlemlerini nasıl ele alması gerektiğini belirleyen basamaklı eylemleri de zorlayabilir. Dört ana basamaklı eylem, CASCADE, SET NULL, SET DEFAULT ve NO ACTION veya RESTRICT'tir. CASCADE seçeneği, ana tablodaki bir birincil anahtar değerinde yapılan değişiklikleri veya silmeleri, alt tablodaki tüm ilgili yabancı anahtar değerlerine yayacaktır. SET NULL, ana tablodaki ilgili birincil anahtar değeri güncellendiğinde veya silindiğinde, alt tablodaki yabancı anahtar değerini NULL olarak ayarlayacaktır. SET DEFAULT benzer şekilde çalışır ancak alt tablodaki yabancı anahtar değerini NULL yerine varsayılan değerine atar. Son olarak, NO ACTION veya RESTRICT, birincil anahtar değerinde, alt tablodaki ilgili kayıtların yetim kalmasına neden olacak herhangi bir değişikliği önler.
Özetle yabancı anahtar, ilişkisel veritabanlarının oluşturulmasında ve yönetiminde tutarlı, doğru ve birbirine bağlı veri temsilini sağlayan hayati bir kavramdır. Veritabanı şeması tasarımına yönelik sezgisel, görsel yaklaşımı sayesinde AppMaster yabancı anahtarların gücünü ve esnekliğini benimsiyor ve kullanıcılarına tek bir kod satırı bile yazmadan ölçeklenebilir, verimli ve güvenilir veritabanı yapıları oluşturma yetkisi veriyor. AppMaster yalnızca yabancı anahtarların veritabanı tasarımlarına dahil edilmesi sürecini basitleştirmekle kalmaz, aynı zamanda daha hızlı ve daha uygun maliyetli yazılım geliştirmeye de katkıda bulunur.