
Veri Tabanı Tasarımında Normalizasyonun Önemi
İçindekiler
Arkadaşlar bugün normalizasyon nedir, veri tabanı tasarımda normalizasyonun önemini, normalizasyon kurallarını, kurallara uyarken oluşacak adımları inceleyeceğiz. Normalizasyon kuralları ile oluşturulan veri tabanı her zaman daha iyi bir tasarım ve sorunsuz yapıya sahip olur. Öncelik olarak normalizasyonun tanımı sonrasında normalizasyon işlemlerini yapmaktaki amacı kavradıktan sonra normalizasyon kurallarına geçiş yapacağız. Sevgili arkadaşlar yararlı bir yazı olması dileği ile keyifli okumalar 🙂
Normalizasyon; veri tabanı tasarım aşamasında veri tekrarını, veri kaybını veya veri yetersizliğini önlemek için gerçekleştirilen işlemlerdir.
Normalizasyon (Ayrıştırma) tanım olarak, veri tabanlarında çok fazla sütun ve satırdan oluşan bir tabloyu tekrarlardan arındırmak için daha az satır ve sütun içeren alt kümelerine ayrıştırma işlemidir.
Normalizasyon Amaçları
Veri Bütünlüğünün Sağlanması
– Gereksiz veri tekrarını önleyerek verilerdeki bozulmaları önlemek
Uygulamadan Bağımsızlık
– Uygulama değişse bile veritabanı tutarlı olarak çalışmalı
Performansı Arttırmak
– Veri tekrarı en aza iner ve arama hızlı olur.
Normalizasyon yapılırken uyulması gereken kuralların her birine normal form adı verilir. 5 adet normal form vardır. Biz bu normal formların özellikle ilk üçü üzerinde duracağız.
- Birinci Normal Form (1 NF)
- İkinci Normal Form (2 NF)
- Üçüncü Normal Form (3 NF)
- Dördüncü Normal Form (4 NF)
- Beşinci Normal Form (5 NF)
İlk 3 normal form ihlal edilmesi durumunda
- Kayıt güncelleme
- Kayıt silme
- Kayıt bulmakta zorluk çekilir.
3 NF’de olan tablolar 1 NF ve 2 NF’ye uygundur. 2 NF’de olan tablolarda 1 NF ‘ye uygundur.
Normalizasyon Kuralları
Birinci Normal Form
Tekrarlanan sütun yapıları olmamalıdır.
Birden fazla bilgi tek bir sütunda olamaz.
Bir alan içerisindeki bilgi özel karakterlerle ayrılarak tutulmamalıdır.
<!> Yukarıdaki tablolarımıza 1. normal form kurallarına uygun hale getirirsek aşağıda şekilde gözüktüğü gibi bir görünüm elde ederiz.
Oluşacak Sorunlar:
Veri Ekleme
• Eklenen verinin daha önce olup olmadığının kontrolü zor
Veri güncelleme
• Kişiye ait bir telefon numarası güncellenmek istediğine hangisinin güncelleneceği
Veri silme
• Silinecek verinin hangisi olduğu
İkinci Normal Form
Tabloda bir birincil anahtar olmalı ve anahtar olmayan
sütunlar birincil anahtara bağımlı olmalı.
Birincil anahtar birden fazla sütundan oluşuyorsa
tablodaki veriler her iki sütuna da bağımlı olmalıdır.
<!> Aşağıdaki tabloda 2. normal kuralına göre öğrenci bilgileri ve not bilgileri ayrılmalıdır.
Üçüncü Normal Form
Anahtar olmayan sütunlar anahtar sütuna tam bağımlı olmalıdır. Anahtar olmayan sütuna bağımlı olmamalıdır. Yani bir tablo için, anahtarı olmayan bir alan, anahtarı olmayan başka hiç bir alana bağlı olamaz.
<!> Yukarıdaki tablomuzu 3. normal form kurallarına göre şekillendirdiğimizde birim ve ürün tablosu şeklinde ayırmış oluruz ve bu iki tablomuzu birim adındaki sütunumuz ile ilişkilendirerek iki tablomuzu birbirlerini bağlamış oluruz.
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 film, hem korku filmi hem de bilim-kurgu filmi olabilir. Bu durum Film 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. Örneğimizde, türler için yeni bir tablo açılması gerekir. Tablonun adına türler denilebilir. Sonrasında filmTurleri diye başta bir tablo açılması gerekir. ‘Korku filmleri’ adlı kitap film için, öncelikle film numarası, korku bölümünün kodunun yer aldığı bir satır ; ardından da yine film numarası, ardından da bilim-kurgu 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. Bir tablomuzda bir sütun girdisi eklenmek istendiğinde bu bölüme girilecek bilgiler belli başlıdır. Bu bilgiler başka bir tabloda tutulabilir. Böylelikle, kullanıcıların bu alana gelişi güzel bilgiler girmesi engellenmiş olur.
2 Yorumlar
Merhabalar,
Rica etsem veri tekrarını, veri kaybını veya veri yetersizliğini biraz açabilir miyiz. Teşekkürler hayatta başarılar
Merhabalar,
Veri tekrarı aynı veya benzeri veriler birçok farklı tablolarda karşılaşabiliriz. Bundan dolayı en uygun tabloda mümkün olduğunca o bilginin en az sayıda tabloda gözükmesi daha sağlıklıdır. Bunun tam tersi de mevcuttur. Az sayıda tabloda yer alsın derken bazı verilerden tam anlamıyla bilgi sahibi olamayabiliriz. Veri kaybından söz edecek olursak depolanan verinin normal yollarla erişilemez hale gelmesi şeklinde tanımlayabiliriz. Bu durum dosyanın formatından, veri depo ortamında bozulma ve hasar görmelerin gözükmesinden ve daha birçok nedenden dolayı olabilir. Teşekkür ederim.