Veritabanında İşlevsel Bağımlılık

İşlevsel Bağımlılıklar Veri Çoğaltmasından Kaçınmanıza Yardımcı Olur

Bir veritabanındaki işlevsel bağımlılık, öznitelikler arasında bir dizi kısıtı zorlar. Bu, bir ilişkideki bir öznitelik başka bir özniteliği benzersiz olarak belirlediğinde ortaya çıkar. Bu A -> B olarak yazılabilir, bu da "B, A'ya işlevsel olarak bağımlıdır" anlamına gelir. Buna ayrıca veritabanı bağımlılığı denir.

Bu ilişkide, B B'nin değerini belirler, B ise A'ya bağlıdır.

Veri Tabanı Tasarımında İşlevsel Bağımlılık Neden Önemli?

İşlevsel bağımlılık, verilerin geçerliliğinin sağlanmasına yardımcı olur. Sosyal Güvenlik Numarası (SSN), isim, doğum tarihi, adres vb. Gibi özellikleri listeleyen bir masa çalışanı.

SSN, isim, doğum tarihi, adres ve diğer değerlerin değerini belirleyecektir, çünkü bir sosyal güvenlik numarası benzersizdir, bir isim, doğum tarihi veya adresi olmayabilir. Bunu şöyle yazabiliriz:

SSN -> isim, doğum tarihi, adres

Bu nedenle, isim, doğum tarihi ve adres SSN'ye işlevsel olarak bağımlıdır. Ancak, tersi ifade (isim -> SSN) doğru değildir, çünkü birden fazla çalışan aynı ada sahip olabilir ancak asla aynı SSN'ye sahip olmayacaktır. Başka bir daha somut yolla, eğer SSN özelliğinin değerini biliyorsak, ismin değerini, doğum tarihini ve adresini bulabiliriz. Ancak bunun yerine sadece isim niteliğinin değerini biliyorsanız, SSN'yi tanımlayamayız.

Fonksiyonel bağımlılığın sol tarafı birden fazla özellik içerebilir. Diyelim ki birden fazla lokasyonda bir işimiz var. Görevler çalışanı, unvanı, departmanı, yeri ve yöneticisi olan bir çalışanımız olabilir.

Çalışan, çalıştığı yeri belirler, dolayısıyla bir bağımlılık vardır:

çalışan -> yer

Ancak, yerin birden fazla yöneticisi olabilir, bu nedenle çalışan ve departman birlikte yöneticisi belirler:

çalışan, bölüm -> yönetici

İşlevsel Bağımlılık ve Normalleşme

İşlevsel bağımlılık, veri bütünlüğünü sağlayan ve veri işten çıkarmalarını azaltan veritabanı normalleştirmesi olarak adlandırılana katkıda bulunur. Normalizasyon olmadan, bir veri tabanındaki verilerin doğru ve güvenilir olduğuna dair bir güvence yoktur.