Normalizasyon Nedir

Normalizasyon Nedir 
Aslında ilişkisel veri tabanı tasarımından ziyade, bir tablo içerisinde yer alacak kaydın nelerden oluşmasına karar vermeye yarayan normalizasyon kuralları başlı başına bir işlemdir. Normalizasyon; veri tabanı tasarımı aşamasında gerekli bir işlem olduğundan bu bölümde incelenecektir. Genel kabul görmüş 5 normalizasyon kuralı vardır. Burada her bir kuralı tam olarak anlatmak mümkün değildir. Ancak bu kurallar, ilişkisel veri tabanının tanımı ile birlikte ortaya konulmuştur. Özet olarak fikri vermesi açısından normalizasyon kurallarına aşağıda yer verilmiştir. Normalizasyonda amaç veri tutarlığı ve veri tekrarını önlemektir. İlk 3 NF oluşmuş olursa normalizasyon gerçekleşmiş sayılır.

Birinci Normal Form
Bir satırdaki bir alan yalnızca bir tek bilgi içerebilir. Birden fazla yazarı olan kitap için yazar1, yazar2 ve yazar3 diye alanların açılması ile bu kurala uyulmamış olunur. Böyle bir durumda, ayrıca yazarlar tablosu da oluşturularak kural çiğnenmemiş olur. Veri tabanı tasarımında; verileri virgül veya bir başka karakter ile ayrılıp aynı alana girilmesi ve daha sonra program içerisinde split ile bu değerlerin ayrılması genellikle sık yapılan hatalardan birisidir. Ancak bu ilişkisel veri tabanının doğasına terstir. Bunun yapılmaması gerekir.

İkinci Normal Form
Bir tablo için, anahtar olmayan her alan, birincil anahtar olarak tanımlı tüm alanlara bağlı olmak zorundadır. Örneğin, Ödünç tablosuna KitapAdi diye bir alan eklense idi, bu sadece ödünç verilen kitap ile ilgili bir bilgi olacaktı ve oduncNo ?na bağlı bir nitelik olmayacaktı. Bunu çözmek için, kitap adları ayrı bir tabloda tutularak sorun çözülebilir.
Ya da anahtar alanın birden fazla alandan oluştuğu tablolarda, anahtar alanlardan sadece birine bağlı veriler tabloda yer almamalı, ayrı bir tabloya taşınmalıdır. Bunun tersi de geçerlidir. Yani iki ya da daha fazla tablonun birincil anahtarı aynı olamaz. Böyle bir durum söz konusu ise, bu iki tablo tek tabloya indirilmelidir.

Üçüncü Normal Form
Bir tablo için, anahtarı olmayan bir alan, anahtarı olmayan başka hiç bir alana bağlı olamaz. Örneğin, kitaplar için cilt tipi adında bir alan eklenip burada da karton kapak için K, deri cilt için D, spiral cilt için S yazılsaydı, bu kodlama, kitap tablosunun birincil anahtarı olan kitapNo alanına bağlı bir kodlama olamazdı. Çünkü bu kodlama bir başka anahtarı olmayan alana bağlıdır. Bunun sonucunda da veri tabanında, karşılığı olmayan bir kodlama yer almış olurdu. Cilt tipi bilgisini kodlu olarak tutan alan aslında cilt tipi açıklaması olan başka bir alana bağlıdır. Bu ilişki başka bir tabloda tutulmalıdır. Bu durumda, cilt şekillerini tutan bir tablo açılması gerekir. Bu tablonun alanları da ciltTipKodu ve ciltSekli olabilir. Ancak bundan sonra, kitaplar tablosunda ciltTipi adında bir sütun açıp buraya da D,S,K gibi kodlar yazılabilir.

Dördüncü Normal Form
Birincil anahtar alanlar ile anahtarı olmayan alanlar arasında, birden fazla bağımsız bire-çok ilişkisine izin verilmez. Örneğin, tabloda yer alan bir kitap, hem hikaye kitabı hem de kişisel gelişim kitabı olabilir. (Bu durumda kitabın adı, kişisel gelişim hikayeleri olurdu her halde) Bu durum Kitap tablosunda nasıl ifade edilebilir? 4.Normal formu sağlamak için, her bağımsız bire çok ilişki için ayrı bir tablo oluşturulması gerekir. Bu örnekte, türler için yeni bir tablo açılması gerekir. Tablonun adına türler denilebilir. Daha sonra kitapTurleri diye bir başka tablo daha açılması gerekir. ?Kişisel Gelişim Hikayeleri? adlı kitap için, öncelikle kitap numarası, Hikaye bölümünün kodunun yer aldığı bir satır; ardından da yine kitap numarası, ardından da kişisel gelişim türünün kodunun aldığı yeni bir satırın daha eklenmesi gerekir.

Beşinci Normal Form
Tekrarlamaları ortadan kaldırmak için her bir tablonun mümkün olduğunca küçük parçalara bölünmesi gerekir. Aslında ilk 4 kural sonuçta bu işe yarar ancak, bu kurallar kapsamında olmayan tekrarlamalar da 5 normalizasyon kuralı ile giderilebilir.
Örneğin, kitaplar için bir edinme şekli bilgisi girilecek sütun eklenmek istenebilir: Bu bölüme girilebilecek bilgiler bellidir: Bağış veya satın alma.
Bu bilgiler başka bir tabloda tutulabilir. Böylelikle, kullanıcıların bu alana gelişi güzel bilgiler girmesi engellenmiş olur. Bu da sorgulama esnasında veriler arasında bir tutarlılık sağlar. Bu işlem sonucunda, tutarsızlıklara neden olabilecek ve sık tekrarlayan veriler başka bir tabloya taşınmış olur. Bu tablo için, veri tabanı programlamada ?look-up table ? terimi kullanılır.



SENARYO :

Hiç yorum yok:

Yorum Gönder