İlişkisel Veri Tabanlarında Yabancı Anahtarların Gücü

Yabancı bir anahtar, tüm dünyaya açılan bir kapıyı açar

Veritabanı tasarımcıları ilişkisel veritabanları geliştirirken geniş çaplı tuşlar kullanırlar. Bu anahtarların en yaygın olanları arasında birincil anahtarlar ve yabancı anahtarlar bulunur. Bir veritabanı yabancı anahtarı, başka bir tablonun birincil anahtar sütununa uyan ilişkisel bir tablodaki bir alandır. Yabancı bir anahtarın nasıl çalıştığını anlamak için ilişkisel bir veri tabanı fikrine daha yakından bakalım.

İlişkisel Veritabanlarının Bazı Temelleri

İlişkisel bir veritabanında, veri, satır ve sütun içeren tablolarda saklanır , bu da arama ve manipüle etmeyi kolaylaştırır. İlişkisel veritabanı kavramının arkasındaki bazı ciddi matematik (EF tarafından önerilen ilişkisel cebir)

1970'de IBM'de Codd), ancak bu makalenin konusu değil.

Pratik amaçlar için (ve matematikçi olmayanlar) ilişkisel bir veritabanı, satır ve sütunlardaki "ilgili" verileri saklar. Dahası - ve işte burada ilginç oluyor - çoğu veri tabanı, bir tablodaki verilerin başka bir tablodaki verilere erişebilmesi için tasarlandı. Tablolar arasındaki ilişkileri oluşturma yeteneği ilişkisel veritabanının gerçek gücüdür.

Yabancı Anahtarları Kullanma

Çoğu tablo, özellikle büyük, karmaşık veritabanlarında bulunanların birincil anahtarları vardır. Diğer tablolara erişmek için tasarlanan tablolar da yabancı bir tuşa sahip olmalıdır.

Yaygın olarak belirtilen Northwinds veritabanını kullanmak için, Ürün tablosundan bir alıntı:

Northwind Veritabanı Ürün Tablosu Alıntı
Ürün kimliği Ürün adı Kimlik kategorisi QuantityPerU Birim fiyat
1 Chai 1 10 kutu x 20 torba 18.00
2 Chang 1 24 - 12 oz şişe 19,00
3 Anason Şurubu 2 12 - 550 ml'lik şişeler 10.00
4 Şef Anton'un Cajun Baharatı 2 48 - 6 oz kavanoz 22.00
5 Şef Anton'un Gumbo Mix 2 36 kutu 21.35
6 Büyükannenin Boysenberry Spread 2 12 - 8 oz kavanoz 25.00
7 Bob Amca'nın Organik Kuru Armutları 7 12 - 1 lb pkgs. 30.00

ProductID sütunu, bu tablonun birincil anahtarıdır. Her ürüne benzersiz bir kimlik atar.

Bu tablo ayrıca bir yabancı anahtar sütunu KategoriID içerir . Ürün tablosundaki her ürün, bu kategorinin kategorisini tanımlayan Kategoriler tablosundaki bir girdiyle ilişkilendirir.

Bu alıntı, veritabanının Kategoriler tablosundan not alın:

Northwind Veritabanı'nın Kategorileri Table Excerpt
Kimlik kategorisi Kategori adı Açıklama
1 içkiler Alkolsüz içecekler, kahveler, çaylar, biralar ve ales
2 Baharat Tatlı ve tuzlu soslar, lezzetler, baharatlar ve baharatlar
3 şekerlemelerde Tatlılar, şekerler ve tatlı kaşıklar
5 Günlük Ürünler peynirler

CategoryID sütunu, bu sütunun birincil anahtarıdır. (Başka bir tabloya erişmeye gerek olmadığı için yabancı anahtarı yoktur.) Ürün tablosundaki her yabancı anahtar, Kategoriler tablosundaki birincil anahtara bağlanır. Örneğin, Chai ürününe "İçecekler" kategorisi verilirken, Anasonize Şurup ise Çeşnilendir.

Bu tür bir bağlantı, ilişkisel bir veritabanında verileri kullanmak ve yeniden kullanmak için sayısız yollar yaratır.