Çoklu değer bağımlılığı dördüncü normal formu bozar
İlişkisel bir veritabanında, aynı veritabanı tablosunda saklanan bilgiler aynı tabloda depolanan diğer bilgileri benzersiz olarak belirlediğinde bir bağımlılık oluşur. Bir tablodaki bir veya daha fazla satırın varlığı, aynı tabloda 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 özelliğe bağlıdır.
Çok değerli bir bağımlılık normalizasyon standardını dördüncü normal formda (4NF) önler. İlişkisel veritabanları, kayıt tasarımı için yönergeleri temsil eden beş normal formu takip eder. Verideki güncelleme anormalliklerini ve tutarsızlıkları önler. Dördüncü normal form, bir veritabanında bire bir ilişkilerle ilgilenir.
İşlevsel Bağımlılık ve Çok Değerli Bağımlılık
Çok değerli bağımlılığı anlamak için, işlevsel bağımlılığın ne olduğunu tekrar gözden geçirmek faydalıdır.
Bir öznitelik X, Y özelliğini bağımsız olarak belirlerse, Y, X'e işlevsel olarak bağımlıdır. Bu, X -> Y olarak yazılır. Örneğin, aşağıdaki Öğrenci tablosunda, Student_Name, Binbaşı belirler:
Öğrenci adı | Majör |
---|---|
Ravi | Sanat Tarihi |
Beth | Kimya |
Bu işlevsel bağımlılık yazılabilir: Student_Name -> Major . Her bir Student_Name tam olarak bir Major'u belirler ve artık yok.
Veritabanının bu öğrencilerin aldıkları sporları da takip etmesini istiyorsanız, bunu yapmanın en kolay yolunun Spor başlıklı başka bir sütun eklemesi gerektiğini düşünebilirsiniz:
Öğrenci adı | Majör | Spor |
---|---|---|
Ravi | Sanat Tarihi | Futbol |
Ravi | Sanat Tarihi | Voleybol |
Ravi | Sanat Tarihi | Tenis |
Beth | Kimya | Tenis |
Beth | Kimya | Futbol |
Buradaki problem, hem Ravi hem de Beth'in birden fazla spor yapması. Her ek spor için yeni bir satır eklemek gerekiyor.
Bu tablo, büyük ve spor birbirinden bağımsız olduğu, ancak her ikisinin de öğrenciye bağlı olduğu için çoklu değerli bağımlılık getirmiştir.
Bu basit bir örnektir ve kolayca tanımlanabilir, ancak çok değişkenli bir bağımlılık büyük, karmaşık bir veritabanında bir sorun haline gelebilir.
Birden çok değerli bağımlılık X -> -> Y olarak yazılır. Bu durumda:
Student_Name -> -> Binbaşı
Student_Name -> -> Spor
Bu, "Student_Name multidetermines Major" ve "Student_Name multidetermines Sport" olarak okunur.
Çok değerlikli bir bağımlılık her zaman en az üç öznitelik gerektirir; çünkü bu, üçte birine bağımlı olan en az iki öznitelikten oluşur.
Çok Değerli Bağımlılık ve Normalleşme
Çok değerlikli bağımlılığa sahip bir tablo, gereksiz fazlalıklar yarattığından ve tutarsız verilere katkıda bulunabileceğinden, Dördüncü Normal Formun (4NK) normalizasyon standardını ihlal etmektedir. Bunu 4NF'ye çıkarmak için, bu bilgiyi iki tabloya ayırmak gerekir.
Aşağıdaki tablo şu anda Student_Name -> Major'un işlevsel bağımlılığına ve çoklu değerli bağımlılıklara sahip değildir:
Öğrenci adı | Majör |
---|---|
Ravi | Sanat Tarihi |
Ravi | Sanat Tarihi |
Ravi | Sanat Tarihi |
Beth | Kimya |
Beth | Kimya |
Bu tablo aynı zamanda Student_Name -> Sport'un tek bir işlevsel bağımlılığına sahip olsa da:
Öğrenci adı | Spor |
---|---|
Ravi | Futbol |
Ravi | Voleybol |
Ravi | Tenis |
Beth | Tenis |
Beth | Futbol |
Normalleştirmenin, karmaşık tabloların basitleştirilmesiyle, tek bir tabloyu çok fazla farklı bilgi içermek yerine, tek bir fikir veya temayla ilgili bilgileri içerecek şekilde genellikle ele alındığı açıktır.