Son Haberler
Anasayfa / Yazılım / SQL / Normalizasyon Nedir?

Normalizasyon Nedir?

Normalizasyon işlemi veritabanı tasarımında oldukça mühimdir. Verimli bir veritabanına sahip olmak için veritabanımız içinde yer alan tablolarımızın en etkili şekilde tasarlanması gerekmektedir. Yani bir tabloyu tekrarlayan verilerden kurtarabilmek için daha az satır ve sütun içeren alt kümelere bölme işlemidir. Bununla birlikte bir tabloda her yer alan veri için eşsiz bir ID değerinin atanmasını sağlamaktır. Normalizasyon 6 adımdan oluşan bir süreçtir ama 3 adımının olması dahilinde normalizasyon yapılmış gibi görebiliriz. Çok fazla detaya inip kafa bulandırmak istemiyorum, dolayısı ile basit örneklemeler ile konuyu anlatacağım. Çünkü aslında oldukça derin bir konudur ve veri tabanı tasarımında başlı başına bir çok yazı ile anlatılması gerekir.

Şimdi şöyle bir örnek verelim; bir veritabanımız olsun ve bu veritabanında bir tablomuz olsun.

Şimdi bu tablomuzda verilerimizi sakladığımız bir tablomuz mevcut. Böyle bir tablo veritabanı tasarımında kabul gören bir tablo değildir, çünkü bu tip veri tablosunda sürekli olarak veriler tekrarlanacaktır. Bu durumda normalizasyon durumundan bahsedilemez. Bu üstteki tabloda hem müşteri bilgisi var, hem ürün bilgisi var, hem sipariş bilgisi var, her seferinde bir müşteri birden fazla ürün aldığında aynı müşterinin tüm bilgileri tekrar tekrar girilmek zorunda kalınacak. İşte bu durum az önce bahsettiğim gibi tekrarlı olarak verinin tablo içinde yer almasına sebebiyet verecek. İşte normalizasyonun ana kurallarından birisi yazımın başında belirttiğim gibi tekrarlı verilerin olmaması için efektif olarak mümkün olan en küçük parçalara bölerek veritabanımıza ait tabloları tasarlamak.

Üstteki örneği aslında şöyle bir veritabanı tablo tasarımı ile daha düzenli yapabiliriz :

Görüldüğü üzere mümkün olduğunda bilgileri farklı tablolarda tuttuğumuzda tekrarlı satırlar oluşmasının önüne geçebiliriz. Böyle bir örnekte, müşteri bilgileri farklı, sipariş bilgileri farklı, sipariş detay bilgileri ise daha farklı bir tabloda yer almaktadır. Tabi burdaki örneğimiz çok fazla genişletilebilir, amacımız normalizasyonda mümkün olduğunda tekrarlı verilerden kurtulmanın ne şekilde olacağını anlatmak.

Veritabanı tasarımında aceleci davranmamak gerekir mümkün olduğunca etraflı düşünmeniz gerekir. Çünkü veritabanı tasarımında daha sonradan yapılacak her değişiklik, her eklenti daha sonraki süreçte sizin daha fazla vakit harcamanıza sebep verecek ve ilk anda esaslı çok düzgün bir veritabanına harcamadığınız vakti daha sonra bu veritabanı üzerinde yapmış olduğunuz değişiklikler nedeni ile yapacaksınız. Bu da hiç istenmeyen bir durumdur.

Bir örnek daha verelim, bu sefer bir excel tablosu üzerinden örnekleme yapayım. Diyelim ki bir şirketsiniz ve çalışanlarınıza maaş ödüyorsunuz. Çalışanlarınıza dair verilerde bir tabloda tutulmaktalar.

Şimdi tabloda görüldüğü üzere iki tane İsmail GÜRSOY var, maaş ödemesi yapacaksınız ve İsmail GÜRSOY bilgileri elinizde mevcut herhangi bir eşsiz bilgi vermediniz, listelemediniz. Dolayısı ile yanlış yapma olasılığınız çok çok fazla, bu örnek tbai basit ama bunun gibi binlerce satır hatta yüzbinlerce satır verileriniz olduğunu düşünün, hata yapma ihtimaliniz ne olacak? Fazlası ile hata yapma ihtimaliniz artacaktır. İşte bu gibi aksaklıkların önüne geçebilmek için de normalizasyon işleminde her tablo için bir eşsiz sütun bilgisi yani bir ID bilgisi olması gerekir.

Bu tablo için doğru olan bir sütun daha olması ve burda eşsiz bir ID daha teknik konuşursek unique bir değer atamak..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir