Professional Documents
Culture Documents
Normalizasyon
Normalizasyon
BÖLÜM -4-
NORMALİZASYON
3
Genel Bakış…
• Veritabanı tasarım aşamaları,
• Normalizasyon,
• Örnek veritabanı.
4
4.2. Normalizasyon
• Normalleştirme, bir veritabanında veri kayıplarını engellemek,
verinin tekrarını azaltmak, silme, güncelleme ve ekleme
işlemlerinde ortaya çıkan zorlukları en aza indirmek için
yapılan işlemler topluluğudur.
• Normalizasyon tanım olarak; veritabanında çok fazla satır ve
sütundan 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.
• Normalleştirmenin altyapısı da, ilişkisel modelin altyapısı gibi
matematikseldir. Temel alınan kavram, işlevsel bağımlılık
(functional dependency) denilen bir kavramdır.
6
4.2. Normalizasyon
• Avantajları:
• Veri bütünlüğünü sağlar
• Sorgulamalar daha hızlı çalışır
• Anomalilerin giderilmesini sağlar
• Verilerin daha iyi organize edilmesini sağlar
• Daha çok optimize disk boyutu kullanımını sağlar
• Tekrar eden verileri azaltır böylece bakım kolaylaşır ve daha düşük
depolama alanı gerekir
• Dezavantajları:
• Çoklu tablo ve bağlantı gerektirdiğinden karmaşık SQL ifadeleri
gerektirir
• VTYS’nin çok daha fazla zaman harcaması uygulamaların performansını
düşürür
• Normalize edilmiş bir VT normalize edilmemiş bir VT den daha çok
tablo içerir.
• Veri Ambarları için uygun değildir.
8
8
9
9
10
10
11
11
12
12
13
Örnek
14
15
İşlevsel Bağımlılık
DAĞITIM (müşteri_no, şehir_kodu, şehir_adı, gönderi_no,
miktar)
müşteri_no → şehir_kodu, şehir_adı
(müşteri_no, gönderi_no) → miktar
müşteri_no → şehir_adı (geçişli bağımlılık)
İlkinde anahtar alanı oluşturan niteliklerden 1 tanesi, iki farklı
niteliği belirleyebiliyor
Bir müşteriye birden fazla defa ürün gönderilebildiği için
ikincisinde iki nitelik bir anahtar oluşturuyor.
İlk ikisi anahtara göre bağımlı, üçüncüsü geçişli bağımlı (transitive
dependent).
15
16
16
17
Pratik
Çalışan_Proje
17
18
Çözüm
Çalışan_Bölüm
Çalışan_Proje
19
Pratik
Şekilde öğretim elemanları ve bölümlerde verdikleri derslerin
bilgilerinin kayıtlı olduğu tablo verilmiştir. Bu tabloda Id ve Kod
(ders kodu) birleşik anahtar olarak tanımlıdır. Bu tabloya göre
kısmi ve geçişli bağımlılığa birer örnek veriniz.
19
20
Pratik
20
21
AYKIRILIKLAR (Anomali)
İlişkisel veritabanında bir satırdaki verinin (veya satırlardaki
verilerin) hatalı olarak değiştirilmesine aykırılık (anomali) denir.
İyi tasarlanmış bir ilişkisel veritabanında aykırılıklar giderilmelidir.
Bir veritabanında görülebilecek üç aykırılık vardır.
Bunlar
ekleme,
silme ve
güncelleme aykırılıkları olarak sıralanabilir.
Eğer bir tabloda bu aykırılıklardan biri veya birkaçı varsa bu tablo
ve dolayısıyla veritabanının iyi tasarlanmadığı söylenir.
21
22
Ekleme Aykırılığı
22
23
Silme Ayrılığı
23
24
Güncelleme Aykırılığı
Bu aykırılık silme aykırılığına benzer. Asıl ve detay ilişkili
tablolarda güncelleme yaparken asıl tablodaki veri yok edilerek
detay tablosundaki veriler ilişkisiz bırakılmamalıdır. Bu aykırılığı
önlemek için birincil anahtar değerinde güncelleme yaparken detay
tablolarda da ilişkili yabancı anahtarlar sırasıyla (cascade)
güncellenmelidir.
24
25
─ 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.
28
▪ Normalizasyon:
▪ Bir formdan daha dar kapsamlı diğer forma geçiş.
▪ Normal formlar arası geçişler kayıpsız olmalıdır.
30
Normalleştirme Aşamaları
30
• Aykırılıkları, çok değerli alanları (veya ilişkisel olmayan tablo yapılarını), kısmi ve geçişli bağımlılıkları,
Sıfırıncı tekrarlanan veri gruplarını içerir
Norma Form
• Çok değerli alanlar tek değerli hâle dönüştürülür. Her bir alandaki değer atomik olur. Birden fazla bilgi tek
Birinci bir sütunda tutulmaz. Her tabloda birincil anahtar tanımlanır. Tablolar ilişkisel yapıya dönüştürülür
Normal Form
İkinci Normal
• Kısmi bağımlılıklar kaldırılır.
Form
Üçüncü
• Geçişli bağımlılıklar kaldırılır.
Normal Form
Boyce-Codd • Birincil anahtar dışındaki diğer alanlarda bire çok ilişkisi olanlar kaldırılır
Normal
Formu
Dördüncü
• Çok değerli bağımlılıklar kaldırılır. 4NF için tüm bağımsız bire çok ilişki için ayrı tablo oluşturulur.
Normal Form
31
Tedarik Tablosu
Pratik
36
37
Pratik (2 NF)
40
41
Pratik
41
42
Pratik (2 NF dönüştürme)
42
43
Pratik (2 NF dönüştürme)
43
44
MÜŞTERİLER
46
Örnek
46
47
Pratik 3 NF Uygulama
48
49
Pratik 3 NF
49
50
Pratik (3 NF dönüştürme)
50
51
Pratik (3 NF dönüştürme)
51
52
İşlevsel Bağımlılıklar:
ÖğrNo → Danışman
Danışman → Bölüm
56
(BCNF) Uygulandığında
56
57
Burada bir öğrenci birden çok bölüme kayıt olabilmekte ve birden çok spor
etkinliğine katılabilmektedir.
Bu nedenle ÖğrNo ile Bölüm ve ÖğrNo ile Spor arasındaki ilişkiler birer işlevsel
bağımlılık değil çok-değerli bağımlılık (multivalued dependency) halindedir.
59
123 numaralı öğrencinin bir bölüme daha kayıt olması yada bir
spor etkinliğine daha katılması halinde iki kayıt daha ilave
edilmelidir.
Bu gibi yineleme sorunlarını ortadan kaldırmak için ÖĞRENCİ
ilişkisi ikiye ayrılırak dördüncü normal form (4NF) oluşturulur.
60
Özet
60
Örnek 1
62
Örnek 1
Örnek 2
64
Örnek 2
• Verilen şema 1. Normal Formda (atomik değerler)
• Urun_Parca (UrunNo, UrunAd, ParcaNo, ParcaAd, Miktar,
UreticiNo, UreticiAd, UreticiSehir, UreticiTel)
Örnek 3
66
Örnek 3
Örnek 4
67
110912 Pulp Fiction 1994 Quentin Tarantino Quentin Tarantino MF Miramax Films
110912 Pulp Fiction 1994 Quentin Tarantino Roger Avary MF Miramax Films
114369 Se7en 1995 David Fincher A. Kevin Walker NL New Line Cinema
1375666 Inception 2010 Christopher Nolan Christopher Nolan WB Warner Bros Pic.
68
Örnek 4
68
Verilen şema 1. Normal Formda (atomik değerler). Anahtar alanlar Film_No, Yönetmeni
ve Senaristi.
Filmler (FilmNo, Film_Adı, Yılı, Yönetmeni, Senaristi, ŞirketID, ŞirketAdı)
1NF → 2NF (Yönetmeni ve Senaristi dışındaki tüm nitelikler FilmNo niteliğine kısmi
olarak bağımlı)
FilmYönetmenSenarist (FilmNo, Yönetmeni, Senaristi)
Filmler (FilmNo, FilmAdı, Yılı, ŞirketID, ŞirketAdı)
2NF → 3NF (ŞirketAdı niteliği ŞirketID niteliğine geçişli olarak bağımlı)
FilmYönetmenSenarist (FilmNo, Yönetmeni, Senaristi)
Filmler (FilmNo, FilmAdı, Yılı, ŞirketID)
Şirketler (ŞirketID, ŞirketAdı)
3NF → 4NF (Çok-değerli bağımlılık var: Yönetmen ve Senaristin aynı tabloda olması
gereksiz tekrarlara neden oluyor)
FilmYönetmen (FilmNo, Yönetmeni)
FilmSenarist (FilmNo, Senaristi)
Filmler (FilmNo, FilmAdı, Yılı, ŞirketID)
Şirketler (ŞirketID, ŞirketAdı) NOT: 4NF anlatırken verdiğimiz
ÖĞRENCİ(ÖğrNo, Bölüm, Spor)
örneğine benziyor
74
Kaynaklar
• Veritabanı Yönetim Sistemleri, Turgut Özseven
• http://www.ortogon.com.tr/video/db/
• http://www.pau.edu.tr/ali/tr
• http://tr.wikipedia.org/wiki/Veritaban%C4%B1
• https://harunkolyigit.wordpress.com/2013/03/14/veritabani/
• http://botelabs.blogspot.com.tr/2014/02/geleneksel-dosyalama-
sistemleri.html
• Maltepe Ün, YZM 307 - Veritabanı Yönetim Sistemleri ders
notları
• https://www.slideshare.net/shashanksingh161/relational-
algebra-47310566?from_action=save