normalleştirme

İlk normal form (1NF)

Belirli bir veritabanındaki bir ilişki (veya ilişki şeması), o ilişkinin tüm “niteliklerinin” etki alanı atomik ise, “ilk normal formda” olur. Bir alan, o alanın tüm öğeleri bölünmez birimler olarak kabul edilirse atomiktir. “Çalışan”* ilişkisinin “ad” özniteliğine sahip olduğunu varsayalım, bu durumda ilişki “ilk normal formda” değildir, çünkü “nitelik adı” etki alanının öğeleri “ad” ve “soyadı” olarak bölünebilir. `.

Özetle, bir ilişkinin bileşik nitelikler varsa, o zaman ilk normal biçimde değildir. Aşağıdaki ilişkiye sahip olduğumuzu varsayalım:

EmpId ilk isim soyadı maaş pozisyon
Bölüm-101 John demirci 12000 ara
Bölüm-201 Caroline Williams 18900 yönetici

İlk satırın ‘EmpId’i şu bölümlere ayrılabilir: ‘Deptx’ (departmanı tanımlamak için kullanılır) ve ‘101’, organizasyon içinde atanan benzersiz bir numaradır. Açıkça, “EmpId” özniteliğinin etki alanı atomik değildir ve bu nedenle ilişkimiz “birinci normal formda” değildir.

Karşılaşılan dezavantajlar:

  1. Bu tür çalışan kimlikleri kullanıldığında, ‘EmpId’ yapısını parçalayan kod yazarak ‘Deptx’ ve ‘101’ ekstra programlama gerektiren bir çalışanın departmanı bulunabilir. Ayrıca bilgiler veritabanında değil programda kodlanır.
  2. Belirli bir çalışanın departmanını değiştirmesi gerektiğini varsayalım, o zaman ‘EmpId’ özelliğinin kullanıldığı her yerde güncellenmesi gerekir.

İlişkimizi aşağıdaki iki ilişkiye bölerek “birinci normal biçimi” tatmin edebiliriz:

İlişki 1

EmpId ilk isim soyadı bölüm
101 John demirci Bölüm
201 Caroline Williams Departman

İlişki 2

EmpId maaş pozisyon
101 12000 ara
201 18900 yönetici

Şimdi departman değiştirmek zorunda kalırsak, bunu ilişki 1’de sadece bir kez yapmamız gerekiyor, ayrıca departman belirlemek artık daha kolay.

İkinci Normal Form (2NF)

Veritabanını ikinci formda normalleştirmek için herhangi bir sütunun birincil anahtara kısmi bağımlılığı olmamalıdır.

Aşağıdaki örneği ele alalım:

kimlik isim dob konu
1 işaret 1-1-1981 Fizik
2 Jack 2-2-1982 Matematik
2 Jack 2-2-1982 Biyoloji
3 John 3-3-1983 Matematik

Bu tablonun bileşik bir birincil anahtara (id ve subject) sahip olduğu kabul edilir, ancak *name ve dob sütunları konu‘ya değil, yalnızca id’e ​​bağlıdır, bu nedenle kısmi bağımlılığa sahiptirler. birincil anahtar. Sonuç olarak, tablodaki bilgilerin fazlalığını görebiliriz. Veritabanını ikinci formda normalleştirmek için bu tabloyu aşağıdaki gibi iki tabloya bölmeliyiz:

Öğrenci masası

kimlik isim dob
1 işaret 1-1-1981
2 Jack 2-2-1982
3 John 3-3-1983

Konular tablosu

öğrenci_kimliği konu
1 Fizik
2 Matematik
2 Biyoloji
3 Matematik

Subjects tablosunun student_id sütunu, Students tablosunun id birincil anahtarına başvuran bir yabancı anahtardır.