2. Artık Veriler
Artık veriler (redundancy), veri tabanında aynı
verilerin farklı yerlerde tekrar edilmesidir.
(-) Diskte yer işgal ederler.
(-) Verilerin tutarlılığını sağlamak zorlaşır.
Kayıt giriş, güncelleme ve silme sonucunda
kayıtlar tutarsız olur.
3. Tutarsız Veriler
Aynı verinin kopyaları farklı farklı ise, veri
tutarsızdır (inconsistency).
Örneğin, öğrencileri kaydederken ad soyad
ve öğrenci noyu birden fazla yerde
kullanırsak ve sonra bir öğrencinin soyadı
bir tek yerde değişirse ne olur?
Veri tabanının bir yerinde 17371 nolu
öğrencinin adı “Ayşe Yılmaz” bir başka
yerinde 17371 nolu öğrenci “Ayşe Şahin”
olursa, veri tutarsızlığı oluşur!
4. İşlevsel Bağımlılık
İşlevsel bağımlılık (functional dependency)
ok (→) işareti ile gösterilir.
Diyelim ki A'nın değeri, B'nin değerini
belirliyorsa; A → B'dir.
Örneğin: ogrenci_no → ad
5. Birinci Normal Form 1NF
ER şemalarındaki çok değerli (multi valued) veya
bileşik özellikler bir ilişki veya varlığın birinci
normal formda olmasını engeller.
Eğer varlık veya ilişkinin tüm özellikleri basit
özelliklerse, tablosu birinci normal formdadır.
İlişkisel veri tabanı tabloları zorunlu olarak 1NF'dir.
6. Birinci Normal Form
Üstteki öğrenci ilişkisinde, telefon özelliği
olarak birden fazla telefon saklanmaya
çalışıldığı için, bu yapı 1NF'yi sağlamaz.
Tablo oluşturmak için alttaki gibi bir yapı
gerekir. 1NF sağlanır.
7. İkinci Normal Form 2NF
Tablo öncelikle birinci normal formda olmalıdır.
İlişki parsiyel bağımlılık (partial dependency)
içermemelidir.
Birincil anahtar adayını oluşturan kolonların
bazılarına işlevsel olarak bağımlı kolonlar
varsa, ikinci normal form bozulur.
Bir tablonun 2NF olması için hem 1NF olmalı,
hem de anahtar harici tüm kolonlar aday
birincil anahtara bağımlı olmalıdırlar.
8. İkinci Normal Form
ÖNEMLİ: Yalnızca birden fazla kolondan oluşan bir
anahtar varsa, 2NF var mı diye bakılır. Birincil anahtar
tek kolondan oluşuyorsa, 2NF zaten sağlanır!
9. Üçüncü Normal Form 3NF
Öncelikle 2NF sağlanmalıdır.
Birincil anahtar dışında kalan kolonlarda,
geçişli bağımlılık olmayacak.
R(A,B,C,D,E): A → B,C,D,E ise
D → E gibi bir bağımlılık olmayacak.
Anahtar harici bütün kolonlar doğrudan
birincil anahtara bağlı olmalıdır.
10. Üçüncü Normal Form
Fatura no → Tarih, Firma Adı, Tutar, KDV, KDV'li tutar
Firma Adı → Vergi Dairesi, Vergi No
11. Boyce Codd Normal Formu
BCNF
3,5. normal form diye de düşünülebilir.
3NF'nin biraz daha güçlendirilmiş halidir.
İlişkisel bir veri tabanı BCNF'da ise, işlevsel
bağımlılıktan kaynaklanan tüm artık
verilerden kurtulmuş oluruz.
12. BCNF Kurallar
Bir R tablosundaki tüm önemli (non-trivial)
işlevsel bağımlılıkların aşağıdaki kurallara
uyması gerekir:
X → Y arasında işlevsel bağımlılık varsa
X, R tablosunun (ilişkisinin) süper anahtarı
olmalıdır.
“Her bir kolon anahtar hakkında bir gerçeği
saklamalıdır ve anahtarın tamamına ve
yalnızca anahtara bağlı olmalıdır.”
14. 4NF ve 5NF
Literatürde 4. ve 5. normal formlar da
vardır ancak yaygın olarak
kullanılmamaktadırlar.
4NF: Bir varlığın (ilişkinin) iki veya daha
fazla, birbirinden bağımsız, çok değerli
özelliği olmamalıdır.
Örnek: Kişi (Ad, Yetenek, Yabanci_Dil) gibi
bir yapı 4NF'yi sağlamaz!
15. Özet
İlişkisel veri tabanı kullanıyorsak, tablolar
veri tabanının doğası gereği 1NF olur.
2NF ve 3NF anahtar kolonlarla diğer
kolonlar arasındaki ilişkileri düzenler.
Birincil anahtar birden fazla kolondan
oluşursa 2NF aranır. 2NF için birinci
anahtara parsiyel olarak bağlı kolonlar
olmamalıdır.
16. Özet
3NF birincil anahtar dışındaki tüm
kolonların, birincil anahtara bağlı olmalarını
ve kendi aralarında geçişli bağımlılık
olmamasını ister.
Her bir normal form, daha alt seviyedeki
normal formların sağlanmasını zorunlu
kılar.
Hepsinin amacı artık veriden kurtulmaktır!