logo

DBMS'de Geçişli Bağımlılık

Bir R(A B C) ilişkisini düşünelim. Burada A, B ve C, R ilişkisinin niteliği olarak bilinmektedir. Aşağıdaki durum ortaya çıktığında; daha sonra DBMS'de geçişli bağımlılık oluşur. Koşullar A → B, B → C'dir. Dolayısıyla koşul A → C olur. Yani bağımlılıklar iki fonksiyonel bağımlılık tarafından yapıldığında fonksiyonel bağımlılıklar geçişli bağımlılıklar haline gelir diyebiliriz.

Geçişli Bağımlılık Nedir?

Bir R(A B C) ilişkisini düşünün. Burada A, B ve C, R ilişkisinin niteliği olarak bilinmektedir. Aşağıdaki durum ortaya çıktığında; daha sonra DBMS'de geçişli bağımlılık oluşur. Koşullar A → B, B → C'dir. Bu nedenle koşul A → C olur. geçişli fonksiyonel bağımlılıklarda, bir bağımlı doğrudan determinanta bağlıdır.

Aşağıdaki örnek yardımıyla geçişli bağımlılıkları anlayalım.

Author_ID Yazar Kitap Yazar_Uyruğu
A1 Arundhati Roy Küçük Şeylerin Tanrısı Hindistan
A1 Kiran Desai Zararın Mirası Hindistan
A2 R. K. Narayan Malgudy'nin İnsan Yiyeni Hindistan

Yukarıdaki yazar tablosunda bunu anlıyoruz.

    Kitap → Yazar:Burada yazar niteliği kitap niteliğine göre belirlenir. Birisi kitabın adını biliyorsa yazarının adını da öğrenebilir.Yazar → Author_Nationality:Birisi yazarın adını biliyorsa, aynı zamanda yazarın uyruğunu da öğrenebilir.Kitap → Author_Nationality: Kitabın adını bilen biri, yazarının uyruğunu da öğrenebilir.

Yukarıda tartışılan işlevsel bağımlılıklara yakından bakarsak aşağıdaki modeli buluruz.

  • A → B ve B → C B→C; bu nedenle A → CA → C.
  • A → Kitap, B → Yazar B → Yazar ve C → Author_Nationality C→Author_Nationality

Yukarıdaki yazar tablosunda Üçüncü Normal Formu (3NF) uyguladığımızı varsayalım. Bu durumda yazar tablosunun geçişli bağımlılığının kaldırılması gerekir ve veritabanının geçişli bağımlılıklarının kaldırılması işlemi Normalleştirme işlemi olarak bilinir.

Geçişli Bağımlılıklardan Nasıl Kaçınılır?

Yukarıdaki yazar tablosunu tekrar ele alalım ve tablo oluşturulurken ne tür bir sorunla karşılaşıldığını görelim.

Yazarlar tablosu:

Author_ID Yazar Kitap Yazar_Uyruğu
A1 Arundhati Roy Küçük Şeylerin Tanrısı Hindistan
A1 Kiran Desai Zararın Mirası Hindistan
A2 R. K. Narayan Malgudy'nin İnsan Yiyeni Hindistan

Veri anormallikleri (güncelleme, ekleme ve silme anormallikleri gibi) ve tutarsızlık yazar tablosundan kaynaklanabilir. Veritabanında çok fazla fazlalık olduğunda verilerde veri anormallikleri ortaya çıkar. Veri anormallikleri aynı zamanda yeni verilerin güncellenmesi, silinmesi ve eklenmesiyle ilgili bir sorun olduğunda da ortaya çıkar. Örneğin, yazar tablosunda-

  • Tabloya kitap ekleyemediğimiz sürece yeni bir yazar ekleyemeyiz.
  • Kitabı veri tabanından tamamen silinceye kadar yazarı silemeyiz.
  • 'Küçük Şeylerin Tanrısı' kitabını silmek istersek yazarın kimliği, yazarı ve uyruğu da silinir.

Yukarıdaki sorunlar, geçişli bağımlılıklar içeren herhangi bir ilişkide ortaya çıkar.

Geçişli Bağımlılığı Kaldırarak Üçüncü Normal Form

Şunu düşünelim Yazar tablosu üç özelliği (Author_ID, Author, Author_Nationality) kullanarak ve bu tablodan Geçişli bağımlılığı bulup ortadan kaldırmaya çalışın,

Yazarlar Tablosu:

Author_ID Yazar Kitap Yazar_Uyruğu
A1 Arundhati Roy Küçük Şeylerin Tanrısı Hindistan
A1 Kiran Desai Zararın Mirası Hindistan
A2 R. K. Narayan Malgudy'nin İnsan Yiyeni Hindistan

Yukarıdaki Yazarın tablosu Geçişli bağımlılığa sahip olduğundan 3NF'de değil. Bakalım nasıl

Java dizesine göre bölünmüş
  • Yazar → Author_Nationality Yazar → Author_Nationality
  • Author_ID → Yazar

Bu nedenle aşağıdaki işlevsel bağımlılık da mevcuttur:

  • Authir_ID → Author_Nationality yukarıda tartıştığımıza benzer bir model oluşturuyor.

Şimdi Geçişli bağımlılığı ortadan kaldırmak için tek yapmamız gereken Yazarın tablosunu Author_ID'nin artık işlevsel olarak Author_Nationality'ye bağlı olmayacağı şekilde bölmektir.

Biri yalnızca { Author_ID, Author} ve diğeri {Author_Nationality} içeren iki tablo oluşturalım. Yeni tablolar şöyle görünecek,

Yazar Tablosu

Author_ID Yazar
A1 Küçük Şeylerin Tanrısı
A2 Zararın Mirası
A3 Malgudy'nin İnsan Yiyeni

Yazar Uyruk Tablosu

Yazar Yazar_Uyruğu
Arundhati Roy Hindistan
Kiran Desai Hindistan
R. K. Narayan Hindistan

Artık yeni Yazar tablosu ve Yazar Uyruğu tablosu Geçişli bağımlılık içermiyor ve ilişki artık 3NF'de.