Veritabanı İlişkisi Nedir?

İçindekiler:

Veritabanı İlişkisi Nedir?
Veritabanı İlişkisi Nedir?
Anonim

Bir tablo başka bir tablonun birincil anahtarına başvuran bir yabancı anahtar kullandığında, iki veritabanı tablosu arasında bir ilişki kurulur. İlişkisel veritabanı teriminin arkasındaki temel kavram budur.

Bir Yabancı Anahtar İlişki Kurmak İçin Nasıl Çalışır

Birincil anahtar, tablodaki her kaydı benzersiz şekilde tanımlar. Genellikle bir tablodaki ilk sütun olan ve benzersiz olduğundan emin olmak için veritabanı tarafından otomatik olarak oluşturulabilen bir aday anahtar türüdür. Yabancı anahtar, bir kaydı başka bir tablodaki verilere bağlamak için kullanılan başka bir aday anahtardır (birincil anahtar değil).

Örneğin, hangi öğretmenin hangi dersi verdiğini belirten bu iki tabloyu ele alalım. Burada, Courses tablosunun birincil anahtarı Course_ID'dir. Yabancı anahtarı Teacher_ID:

Kurs_Kimliği Kurs_Adı Öğretmen_Kimliği
Kurs_001 Biyoloji Öğretmen_001
Kurs_002 Matematik Öğretmen_002
Kurs_003 İngilizce Öğretmen_003

Kurslar'daki yabancı anahtarın, Öğretmenler'deki birincil anahtarla eşleştiğini görebilirsiniz:

Öğretmen_Kimliği Öğretmen_Adı
Öğretmen_001 Carmen
Öğretmen_002 Veronica
Öğretmen_003 Jorge

Teacher_ID yabancı anahtarının Courses ve Teachers tabloları arasında bir ilişki kurulmasına yardımcı olduğunu söyleyebiliriz.

Image
Image

Veritabanı İlişkisi Türleri

Yabancı anahtarları veya diğer aday anahtarları kullanarak tablolar arasında üç tür ilişki uygulayabilirsiniz:

Bire Bir

Bu tür bir ilişki, ilişkinin her iki tarafında yalnızca bir kayda izin verir. Birincil anahtar, başka bir tablodaki yalnızca bir kayıtla (veya hiçbiriyle) ilgilidir. Örneğin, bir evlilikte, her eşin yalnızca bir başka eşi vardır. Bu tür bir ilişki tek bir tabloda uygulanabilir ve bu nedenle yabancı anahtar kullanmaz.

Birden Çoka

Birden çoğa ilişki, bir tablodaki tek bir kaydın başka bir tablodaki birden çok kayıtla ilişkilendirilmesine olanak tanır. Müşteriler ve Siparişler tabloları olan bir veritabanına sahip bir işletme düşünün.

Tek bir müşteri birden fazla sipariş satın alabilir, ancak tek bir sipariş birden fazla müşteriye bağlanamaz. Bu nedenle Siparişler tablosu, Müşteriler tablosunun birincil anahtarıyla eşleşen bir yabancı anahtar içerirken, Müşteriler tablosunda Siparişler tablosunu gösteren yabancı bir anahtar bulunmaz.

Çoktan Çoka

Bu, bir tablodaki birçok kaydın başka bir tablodaki birçok kayda bağlanabildiği karmaşık bir ilişkidir. Örneğin, işletmemizin büyük olasılıkla Müşteriler ve Siparişler tablolarına ve muhtemelen bir Ürünler tablosuna da ihtiyacı vardır.

Yine, Müşteriler ve Siparişler tablosu arasındaki ilişki bire çoktur, ancak Siparişler ve Ürünler tablosu arasındaki ilişkiyi göz önünde bulundurun. Bir sipariş birden fazla ürün içerebilir ve birkaç müşteri aynı ürünlerden bazılarını içeren bir sipariş gönderebileceğinden bir ürün birden çok siparişe bağlanabilir. Bu tür bir ilişki en az üç tablo gerektirir.

Veritabanı İlişkileri Neden Önemlidir?

Veritabanı tabloları arasında tutarlı ilişkiler kurmak, veri bütünlüğünün sağlanmasına yardımcı olarak veritabanı normalleşmesine katkıda bulunur. Örneğin, yabancı bir anahtar aracılığıyla herhangi bir tabloyu bağlamasaydık ve bunun yerine Kurslar ve Öğretmenler tablolarındaki verileri şu şekilde birleştirseydik:

Öğretmen_Kimliği Öğretmen_Adı Kurs
Öğretmen_001 Carmen Biyoloji, Matematik
Öğretmen_002 Veronica Matematik
Öğretmen_003 Jorge İngilizce

Bu tasarım esnek değildir ve her tablo hücresinin tek, ayrı bir veri parçası içermesi gerektiğini belirten veritabanı normalleştirmesinin ilk ilkesi olan İlk Normal Form'u ihlal eder.

Ya da belki 1NF'yi uygulamak için Carmen için ikinci bir kayıt eklemeye karar verdik:

Öğretmen_Kimliği Öğretmen_Adı Kurs
Öğretmen_001 Carmen Biyoloji
Öğretmen_001 Carmen Matematik
Öğretmen_002 Veronica Matematik
Öğretmen_003 Jorge İngilizce

Bu hala zayıf bir tasarımdır, gereksiz yinelemelere ve veri ekleme anormallikleri olarak adlandırılanlara yol açar, bu da tutarsız verilere katkıda bulunabileceği anlamına gelir. Örneğin, bir öğretmenin birden fazla kaydı varsa, bazı verilerin düzenlenmesi gerekiyorsa, ancak veri düzenlemeyi yapan kişi birden fazla kaydın olduğunu fark etmezse ne olur? Ardından tablo, tanımlamanın veya bundan kaçınmanın açık bir yolu olmaksızın aynı kişi için farklı veriler içerecektir.

Bu tabloyu Öğretmenler ve Kurslar olmak üzere iki tabloya ayırmak, veriler arasında doğru ilişkiyi oluşturur ve bu nedenle veri tutarlılığı ve doğruluğunun sağlanmasına yardımcı olur.

Önerilen: