Normalizasyon Nedir
Örneklerle 1NF, 2NF, 3NF ve BCNF
Normalleştirme nedir?
Normalleştirme, tabloları, fazlalık ve verinin bağımlılığını
azaltacak şekilde düzenleyen bir veritabanı tasarım tekniğidir.
İlişkisel modelin mucidi Edgar Codd, İlk Normal Form'un
getirilmesiyle normalizasyon teorisini ortaya çıkardı ve İkinci ve Üçüncü Normal Form
ile teorisini genişletmeye devam etti. Daha sonra Boyce-Codd Normal Form
teorisini geliştirmek için Raymond F. Boyce ile birlikte çalıştı.
SQL'de Veri Normalleştirme Teorisi hala daha da
geliştirilmektedir. Örneğin, 6. Normal Form'da bile tartışmalar var. Bununla
birlikte, çoğu pratik uygulamada normalizasyon, 3. Normal Form'da en iyisini
sağlar . Normalleşme teorilerinin evrimi aşağıda gösterilmektedir.
Veritabanı Normalleştirme Örnekleri -
Bir video kütüphanesinin, kiralanmış bir film veritabanını
sakladığını varsayalım. Herhangi bir normalizasyon olmadan, tüm bilgiler aşağıda
gösterildiği gibi bir tabloda saklanır. Burada Movies Rentered sütununda birden
çok değer var .
Veritabanı Normal Formları
Şimdi 1. Normal Form'a geçelim
- 1NF (İlk Normal Form) Kuralları
- Her tablo hücresi tek bir değer içermelidir.
- Her kaydın benzersiz olması gerekir.
yukarıdaki tablo 1NF Örneği
ANAHTAR nedir?
KEY,
tablodaki bir kaydı benzersiz şekilde tanımlamak için kullanılan bir değerdir. ANAHTAR,
tek bir sütun veya birden çok sütunun kombinasyonu olabilir
Not: Bir
kaydı benzersiz olarak tanımlamak için kullanılmayan bir tablodaki sütunlara
anahtar olmayan sütun denir.
Birincil
Anahtar Nedir?
Birincil,
bir veritabanı kaydını benzersiz şekilde tanımlamak için kullanılan tek bir
sütun değeridir.
Aşağıdaki
özelliklere sahiptir
|
Kompozit Anahtar Nedir?
Bir bileşik
anahtar, benzersiz bir kaydı tanımlamak için kullanılan birden çok sütundan
oluşan bir birincil anahtardır.
Veritabanımızda
Robert Phil adında iki kişi var ama farklı yerlerde yaşıyorlar.
Bu nedenle, bir kaydı benzersiz şekilde tanımlamak
için hem Tam Ad hem de Adres gerektirir. Bu
bileşik bir anahtardır.
İkinci normal form 2NF'ye geçelim.
2NF (İkinci Normal Form) Kuralları
- 1NF'de olun
- Tek Sütun Birincil Anahtar
Yukarıdaki tabloyu bölmedikçe basit veritabanımızı
Normalizasyon formunda yapmak için ileri gidemeyeceğimiz açıktır.
Tablo1 |
Tablo 2 |
1NF tablomuzu ikiye böldük. Tablo
1 ve Tablo2. Tablo 1 üye bilgilerini içerir.
Tablo 2'de kiralanan filmler hakkında bilgiler yer almaktadır.
Tablo 1 için birincil anahtar olan Membership_id adlı yeni
bir sütun hazırladık. Kayıtlar, üyelik kimliği kullanılarak Tablo 1'de
benzersiz bir şekilde tanımlanabilir
Veritabanı - Yabancı Anahtar (foreign key)
Yabancı Anahtar, başka bir Tablonun
birincil anahtarına atıfta bulunur! Tablolarınızı bağlamanıza
yardımcı olur
- Bir yabancı anahtarın, birincil anahtardan farklı bir adı olabilir.
- Bir tabloda satırların diğerinde karşılık gelen satırlara sahip olmasını sağlar
- Birincil anahtarın aksine, benzersiz olmaları gerekmez. Çoğu zaman değildir
3NF (Üçüncü Normal Form) Kuralları
- Kural 1- 2NF'de olun
- Kural 2- Geçişli fonksiyonel bağımlılık yok
3NF Örneği
Tablolarımızı tekrar böldük ve ünvanları depolayan yeni bir tablo oluşturduk.
Geçişli fonksiyonel bağımlılıklar yoktur ve bu nedenle tablomuz
3NF’dedir.
Tablo 3'te salutation_ID birincil anahtardır ve Tablo
1'de salutation_ID, Tablo 3'teki birincil anahtara yabancıdır.
Şimdi küçük örneğimiz, daha yüksek normalleştirme formlarına
ulaşmak için ayrılamayacak bir seviyede. Aslında,
zaten daha yüksek normalleştirme formlarında. Karmaşık
veritabanlarında normalde bir sonraki normalleştirme verisi seviyesine geçmeye
yönelik ayrı çabalar gereklidir. Bununla birlikte, ileride
yapılacak olan normalizasyon seviyelerini aşağıda kısaca tartışacağız.
Boyce-Codd Normal Formu (BCNF)
Bir veritabanı. Normal Formda olsa bile, birden fazla Aday Anahtarına sahip olsaydı, yine de anomaliler ortaya çıkardı.Bazen BCNF, 3.5 Normal Form olarak da adlandırılır .
4NF (Dördüncü Normal Form)
Hiçbir veritabanı tablosu örneği, ilgili varlığı açıklayan iki veya daha fazla bağımsız ve çok değerli veri içermiyorsa, 4. Normal Formdadır.
5NF (Beşinci Normal Form)
Bir tablo yalnızca 4.NF'deyse 5. Normal Formdadır ve veri kaybı olmadan herhangi bir sayıda daha küçük tabloya ayrıştırılamaz.
6NF (Altıncı Normal Form)
6. Normal Form standartlaştırılmamıştır, ancak bir süredir veri tabanı uzmanları tarafından tartışılmaktadır. Umarım yakın gelecekte 6. Normal Form için net ve standartlaştırılmış bir tanımımız olur.