Veri Tabanı Normalizasyonunda Tam Fonksiyonel Bağımlılık

Tam işlevsel bağımlılık, İkinci Normal Formun (2NF) normalizasyon standardına eşit olan bir veritabanı normalleştirmesidir . Kısaca, ilk Normal Form (1NF) gereksinimlerini karşıladığı ve tüm anahtar olmayan niteliklerin tamamen işlevsel olarak birincil anahtara bağlı olduğu anlamına gelir.

Bu, duyulabileceği kadar karmaşık değildir. Buna daha ayrıntılı olarak bakalım.

İlk Normal Form Özeti

Bir veritabanı tamamen işlevsel olarak bağımlı olmadan önce, İlk Normal Form ile uyumlu olmalıdır.

Tüm bunlar, her bir özelliğin bir atomik değere sahip olması gerektiği anlamına gelir.

Örneğin, aşağıdaki tablo 1NF ile uyumlu değildir , çünkü çalışan Tina iki noktaya bağlanmıştır, her ikisi de tek bir hücrede:

İlk Normal Form Uyumsuzluğu
işçi yer
John Los Angeles
Tina Los Angeles, Şikago

Bu tasarımın izin vermesi veri güncellemelerini veya girişlerini olumsuz yönde etkileyebilir. 1NF uyumluluğunu sağlamak için, tüm özniteliklerin (veya sütun hücrelerinin) tek bir değer tutacak şekilde tabloyu yeniden düzenleyin:

İlk Normal Form Uygunluğu
işçi yer
John Los Angeles
Tina Los Angeles
Tina Chicago

Ancak verilerle ilgili problemlerden kaçınmak için 1NF hala yeterli değil.

Tam Bağımlılığın Sağlanması İçin 2NF Nasıl Çalışır?

Tamamen bağımlı olmak için, tüm aday olmayan anahtar nitelikleri birincil anahtara bağlı olmalıdır. (Unutmayın, bir aday anahtar özniteliği, bir veritabanı kaydını benzersiz şekilde tanımlamak için kullanılan herhangi bir anahtar (örneğin, bir birincil veya yabancı anahtar).

Veritabanı tasarımcıları, öznitelikler arasındaki bağımlı ilişkileri tanımlamak için bir notasyon kullanır:

Eğer A niteliği B'nin değerini belirlerse, bu A -> B'yi yazarız - yani B'nin işlevsel olarak A'ya bağımlı olduğu anlamına gelir. Bu ilişkide, A B'nin B değerini belirler, B ise B'ye bağlıdır.

Örneğin, aşağıdaki Çalışan Bölümleri tablosunda, EmployeeID ve DeptID her ikisi de aday anahtardır: DeptID bir yabancı anahtar iken ÇalışanNo tablonun birincil anahtarıdır.

Başka bir öznitelik - bu durumda, ÇalışanName ve DeptName - değerini elde etmek için birincil anahtara bağlı olmalıdır.

Çalışan Departmanları
Çalışan kimliği Çalışan Adı DeptID DeptName
Emp1 John Dept001 maliye
Emp2 Tina Dept003 Satış
Emp3 Carlos Dept001 maliye

Bu durumda, tablo tam olarak bağımlı değildir, çünkü ÇalışanAdı birincil anahtar çalışanın bağımlı olduğu, DeptName yerine DeptID bağlıdır. Buna kısmi bağımlılık denir.

Bu tabloyu 2NF'ye uygun hale getirmek için, verileri iki tabloya ayırmamız gerekiyor:

Çalışanlar
Çalışan kimliği Çalışan Adı DeptID
Emp1 John Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

DeptName özniteliğini Çalışanlar tablosundan kaldırır ve yeni bir tablo bölümü oluştururuz :

Bölümler
DeptID DeptName
Dept001 maliye
Dept002 İnsan kaynakları
Dept003 Satış

Şimdi tablolar arasındaki ilişkiler tamamen bağımlı veya 2NF'dir.

Tam Bağımlılık Neden Önemlidir?

Veritabanı öznitelikleri arasındaki tam bağımlılık, veri bütünlüğünün sağlanmasına yardımcı olur ve veri anormalliklerinden kaçınır.

Örneğin, yukarıdaki bölümde yalnızca 1NF'ye yapışan tabloyu düşünün. İşte yine:

İlk Normal Form Uygunluğu
işçi yer
John Los Angeles
Tina Los Angeles
Tina Chicago

Tina'nın iki kaydı var. Biri olduğunu fark etmeden birini güncellersek, sonuç tutarsız veriler olur.

Ya da, bu masaya bir çalışan eklemek istersek, ama henüz Konum'u bilmiyorsak ne olur? Konum özniteliği NULL değerlerine izin vermiyorsa, yeni bir çalışan eklemek bile yasaktır.

Normalleşmeye gelince tam bağımlılık resmin tamamı değildir. Veritabanınızın Üçüncü Normal Form'da (3NF) olduğundan emin olmalısınız.