İlişkisel bir veritabanında, aynı veritabanı tablosunda depolanan bilgiler aynı tabloda depolanan diğer bilgileri benzersiz şekilde belirlediğinde bir bağımlılık oluşur. Bir tabloda bir veya daha fazla satırın bulunması, aynı tablodaki bir veya daha fazla satırın varlığını ima ettiğinde, çok değerli bir bağımlılık oluşur. Başka bir deyişle, bir tablodaki iki öznitelik (veya sütun) birbirinden bağımsızdır, ancak her ikisi de üçüncü bir özniteliğe bağlıdır.
Çok değerli bir bağımlılık, normalleştirme standardı dördüncü normal biçimi engeller. İlişkisel veritabanları, kayıt tasarımı için yönergeleri temsil eden beş normal formu takip eder. Verilerdeki güncelleme anormalliklerini ve tutarsızlıklarını önlerler. Dördüncü normal biçim, bir veritabanındaki çoktan bire ilişkilerle ilgilenir.
İşlevsel Bağımlılık ve Çok Değerli Bağımlılık
Çok değerli bir bağımlılığı anlamak için, işlevsel bir bağımlılığın ne olduğunu tekrar gözden geçirmek yararlıdır.
X özelliği bir Y niteliğini benzersiz bir şekilde belirlerse, Y işlevsel olarak X'e bağlıdır. Bu, X -> Y olarak yazılır. Örneğin, aşağıdaki Öğrenciler tablosunda, Öğrenci_Adı Binbaşı belirler:
Öğrenci_Adı | Binbaşı |
---|---|
Ravi | Sanat Tarihi |
Beth | Kimya |
Bu işlevsel bağımlılık şu şekilde yazılabilir: Student_Name -> Major. Her Öğrenci_Adı tam olarak bir Binbaşı belirler ve daha fazlasını değil.
Veritabanının bu öğrencilerin yaptığı sporları da izlemesini istiyorsanız, bunu yapmanın en kolay yolunun Spor: başlıklı başka bir sütun eklemek olduğunu düşünebilirsiniz.
Öğrenci_Adı | Binbaşı | Spor |
---|---|---|
Ravi | Sanat Tarihi | Futbol |
Ravi | Sanat Tarihi | Voleybol |
Ravi | Sanat Tarihi | Tenis |
Beth | Kimya | Tenis |
Beth | Kimya | Futbol |
Buradaki sorun, hem Ravi hem de Beth'in birkaç spor yapması. Her ek spor için yeni bir sıra eklemek gerekir.
Bu tablo çok değerli bir bağımlılığı ortaya çıkardı çünkü ana dal ve spor birbirinden bağımsız ama ikisi de öğrenciye bağlı. Bu basit bir örnektir ve kolayca tanımlanabilir, ancak çok değerli bir bağımlılık, büyük ve karmaşık bir veritabanında bir sorun haline gelebilir.
Çok değerli bir bağımlılık X ->-> Y yazılır. Bu durumda:
Öğrenci_Adı ->-> Binbaşı
Öğrenci_Adı ->- > Spor
Bu, "Öğrenci_Adı Binbaşı çoklu belirler" ve "Öğrenci_Adı Sporu çoklu belirler" şeklinde okunur.
Çok değerli bir bağımlılık her zaman en az üç öznitelik gerektirir, çünkü bir üçüncüye bağlı en az iki öznitelikten oluşur.
Çok Değerli Bağımlılık ve Normalleştirme
Çok değerli bağımlılığa sahip bir tablo, gereksiz fazlalıklar oluşturduğundan ve tutarsız verilere katkıda bulunabileceğinden dördüncü normal formun normalleştirme standardını ihlal eder. Bunu 4NF'ye getirmek için bu bilgiyi iki tabloya bölmek gerekiyor.
Aşağıdaki tabloda artık Öğrenci_Adı -> Binbaşı işlevsel bağımlılığı var ve birden çok değerli bağımlılık yok:
Öğrenci_Adı | Binbaşı |
---|---|
Ravi | Sanat Tarihi |
Ravi | Sanat Tarihi |
Ravi | Sanat Tarihi |
Beth | Kimya |
Beth | Kimya |
Bu tablo aynı zamanda Student_Name -> Sport: için tek bir işlevsel bağımlılığa sahip olsa da
Öğrenci_Adı | Spor |
---|---|
Ravi | Futbol |
Ravi | Voleybol |
Ravi | Tenis |
Beth | Tenis |
Beth | Futbol |
Normalleştirme, genellikle, tek bir tablonun çok fazla farklı bilgi içermesini sağlamaya çalışmak yerine, tek bir fikir veya temayla ilgili bilgileri içerecek şekilde karmaşık tabloları basitleştirerek gerçekleştirilir.