İlişkisel bir veri tabanı tasarlarken verilerin gereksiz yere tekrarını,kaybını veya yetersizliğini önlemek amacıyla veri tabanı içerisinde yer alan tablolarımızın en etkili şekilde kullanılabilmesi için Normalizasyon işleminin uygulanması gerekmektedir. Veri tabanı üzerinde değişiklik yaparak veri tabanını son taslak haline yaklaştırma işlemidir de diyebiliriz normalizasyon için.
Bu amaçla normalizasyon yapmamız için normal formlar tanımlanmıştır.Genel olarak tasarladığımız bir veri tabanı şemasının en az BCNF(Boyce Codd Normal Form) ya da 3NF olması beklenir.
Bu derste 1NF üzerinde duracağız.
1NF
Birinci normal form olarak adlandırılan bir tabloda her satır ve sütunun kesişiminde yalnız bir değer vardır.Yani bir tablodaki her bir nitelik , sadece atomik değerler alıyorsa(liste halinde veri yoksa) o tablo birinci normal form kuralına uyuyordur denir.
Aşağıda bu kurala uymayan şöyle bir örnek verebiliriz :
Ad | Soyad | Bilgisayar Bilgisi |
Ali | Demirci | Java ,Android |
John | Doe | C# , .NET |
Meriç | Göktürk | PHP, C++ |
Yukarıdaki örnekte , birden fazla veri içeren bilgi tek sütunda olamaz kuralını ihlal ettiği için 1NF kuralına uygun bir tablo değildir.
Ancak bu örneği aşağıdaki gibi verirsek 1NF kuralına uyuyordur diyebiliriz.
Ad | Soyad | Bilgisayar Bilgisi |
Ali | Demirci | Java |
Ali | Demirci | Android |
John | Doe | C# |
John | Doe | .NET |
Meriç | Göktürk | PHP |
Meriç | Göktürk | C++ |
Bu örnek 1NF ‘a uygun bir örnektir. Şöyleki ; Her satır ve sütunun kesiştiği noktada yalnızca bir değer bulunmaktadır.
Ancak 1NF ‘ da kayıt ekleme , silme ve güncelleme işlemleri sıkıntıya yol açmaktadır. Bu sebeple 2NF geliştirilmiştir. Bir sonraki örneklerde 2NF konusundan bahseceğiz.