Veritabanı Tasarımında Çok Değerli Bağımlılık

Ç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:

Öğrenciler
Öğ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:

Öğrenciler
Öğ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:

Öğrenciler ve Majörler
Öğ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:

Öğrenciler ve Spor
Öğ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.