Normalleştirme
(Normalization)
Yrd.Doç.Dr. M. Betül Yılmaz
Normalleştirme
 Yanlış veri tabanı tasarımı sonucunda ortaya
çıkan kötü ilişkileri düzeltmek üzere ele alarak
sistematik biçimde, daha küçük ilişkilere bölme
süreci
 Kullanılan yol 
Normal biçim (normal form NF) uygulamak
2
Normalleştirmede AMAÇ
 Veri tekrarlarını önlemek
 Ekleme / silme / güncellenme sorunları
 Depolama birimlerini verimsiz kullanma
 Veri bütünlüğünü sağlamak
 Doğru ve tutarlı veriler saklamak
 Performansı arttırmak
 (Yabancı anahtarlar hariç) tamamıyla normalleştirilmiş
bir VT gereksiz (kopyalanmış) veri miktarını en aza
indirecektir.
 Uygulamadan bağımsızlık sağlamak
 Uygulama programının gereksinimlerinin VT modeli
3
üzerindeki etkisi sıfır olmalıdır.
Normal Biçim (Normal Form - NF)
 Bir ilişkinin anahtarlarını ve işlevsel
bağımlılıklarını kullanarak, ilişki şemasının
belli bir standart biçimde olduğunu gösteren
durum
UNF
4
1. NF
2. NF
3. NF
BCNF
Normal Olmayan Form (UNF)
 İlişkisel veri tabanı modelinin temel kuralına göre
bütün niteliklerin aldığı değerler atomik (tek ve basit)
olmalıdır.
 Bir veya daha fazla tekrarlanan gruplar içeren iki
boyutlu tablo normal olmayan tablodur.
Aşağıdaki DAĞITIM tablosu bu kurala uymamaktadır,
bu yüzden normal değildir.
5
müşteri_no
şehir_kodu
şehir
parti_no
miktar
1
34
İstanbul
1,2,3,4,6
300,200,400,200,100
2
6
Ankara
1,2
300,400
3
6
Ankara
2
200
4
34
İstanbul
2,4,5
200,300,400
UNF
Birinci Normal Biçim (1NF)
 Anahtar özellikler tanımlanmıştır.
 İlişkide birleşik özellikler, çok değerli özellikler
ve tekrarlanan gruplar yoktur.
 İlişkinin her bir hücresi yalnız ve yalnız tek
değer içerir.
 Tüm özellikler birincil anahtara bağımlıdır.
6
UNF
UNF – 1NF Geçişi
UNF
1 NF
 İlişkiler için anahtar özellik kümesi belirlenir.
 İlişkide çok değerli özelliğin her öğesi için yeni bir satır oluşturulur.
 Birleşik özellikler için ilişkilerden çıkarılır.
 İlişkide tekrarlanan gruplar için yeni bir ilişki tanımlanır ve
bu ilişkide ana ilişkinin birincil anahtarı yabancı anahtar olarak yer alır.
7
UNF
1 NF
Birinci Normal Biçime (1NF) Geçiş Örnek - 1
Birleşik
nitelik
Çok
değerli
nitelik
8
UNF
Sicil No
Personel Adı
Soyadı
Telefonları
1
Taner Akbaş
2902451, 2941821,
2986883
2
Aysu Demir
2903912, 2982039
3
Fatih Sarı
2905793, 2819283
Sicil No
Personel Adı
Personel Soyadı
Telefon
1
Taner
Akbaş
2902451
1
Taner
Akbaş
2941821
1
Taner
Akbaş
2986883
2
Aysu
Demir
2903912
2
Aysu
Demir
2982039
3
Fatih
Sarı
2905793
3
Fatih
Sarı
2819283
1 NF
UNF
1NF
(Veri Artıklığı ile)
Birinci Normal Biçime (1NF) Geçiş Örnek - 2
Birleşik
nitelik
Sicil No
Personel Adı
Soyadı
Telefonları
1
Taner Akbaş
2902451, 2941821,
2986883
2
Aysu Demir
2903912, 2982039
3
Fatih Sarı
2905793, 2819283
Çok
değerli
nitelik
9
Sicil No
Personel
Adı
Personel
Soyadı
1
Taner
Akbaş
2
Aysu
Demir
3
Fatih
Sarı
UNF
1 NF
UNF
Satır No
Telefon
Sicil No
1
2902451
1
2
2941821
1
3
2986883
1
4
2903912
2
5
2982039
2
6
2905793
3
7
2819283
3
1NF
(Veri Artıklığı yok)
Birinci Normal Biçime (1NF) Geçiş Örnek - 3
Sicil
No
Personel
Adı
Personel
Soyadı
Telefon1
Telefon2
Telefon3
1
Taner
Akbaş
2902451
2941821
2986883
2
Aysu
Demir
2903912
2982039
3
Fatih
Sarı
2905793
2819283
Tekrarlanan
alanlar
Boş alanlar
UNF
10
Sicil No
Personel
Adı
Personel
Soyadı
1
Taner
Akbaş
2
Aysu
Demir
3
Fatih
Sarı
UNF
1 NF
Satır No
Telefon
Sicil No
1
2902451
1
2
2941821
1
3
2986883
1
4
2903912
2
5
2982039
2
6
2905793
3
7
2819283
3
1NF
(Veri Artıklığı yok)
Birinci Normal Formun Sorunları
 Tekrarlı veriler
 Birinci normal formdaki bir tablo bazı alanlarda tekrarlı
verilere sahiptir.
Örneğin aşağıdaki örnekte “şehir_kodu” ve “şehir”
alanlarında her müşteri için tekrarlı veriler vardır.
 Bu tekrarlar ekleme, silme ve güncelleme işlemlerinde
sorunlara neden olacaktır.
11
UNF
1 NF
müşteri_no
şehir_kodu
şehir
1
34
İstanbul
2
6
Ankara
3
6
Ankara
4
34
İstanbul
Birinci Normal Formun Sorunları
 Satır ekleme
 Başka bir müşterinin bilgilerinin
(müşteri_no, şehir_kodu, şehir_adı) girilmesi için
mutlaka o müşteriye bir dağıtım işleminin yapılması (parti_no ve
miktar değerlerinin girilmiş olması) gerekiyor (aksi halde boş nitelik).
müşteri_no şehir_kodu
12
şehir_adı
parti_no
miktar
1
34
İstanbul
1
300
…
…
…
…
…
4
34
İstanbul
5
400
5
35
İzmir
UNF
1 NF
Birinci Normal Formun Sorunları
 Satır Silme Sorunu
 Bir müşteriye tek bir dağıtım yapıldıysa (örn. 3 no’lu müşteri), o
dağıtım işlemi iptal edildiğinde, sadece parti_no ve miktarı
değil, o dağıtımın yapıldığı müşteri hakkındaki diğer bilgiler de
(müşteri_no, şehir_kodu, şehir_adı) yok olur.
müşteri_no şehir_kodu
13
şehir_adı
parti_no
miktar
1
34
İstanbul
1
300
1
34
İstanbul
2
200
…
…
…
…
…
3
06
Ankara
2
200
…
…
…
…
…
UNF
1 NF
Birinci Normal Formun Sorunları
 Güncelleme
 1 numaralı müşteri Ankara’ya taşınırsa, bu müşteri ile ilgili tüm
satırların güncelleştirilmesi gerekecektir.
Eğer tablo çok büyük ise, sadece bir müşteri ile ilgili küçük bir
değişiklik bile binlerce kaydın güncelleştirilmesini gerektirebilir.
müşteri_no şehir_kodu
14
şehir_adı
parti_no
miktar
1
34
İstanbul
1
300
1
34
İstanbul
2
200
1
34
İstanbul
3
400
1
34
İstanbul
4
200
…
…
…
…
…
UNF
1 NF
İkinci Normal Biçim
 Birinci normal formdaki sorunlardan (özellikle de
güncelleme sorunundan) kurtulmak için nitelikler
arasındaki fonksiyonel bağımlılıktan yararlanılarak
birinci normal form (1NF) tablolarının birden fazla
tabloya dönüştürülmesi sonucunda ikinci normal biçime
(2NF) ulaşılır.
 İkinci normal biçimde, ilişkisel tablonun her bir anahtar
olmayan sütunu birincil anahtara kısmi bağımlı değil,
tam işlevsel bağımlı olmalıdır.
15
UNF
1 NF
2 NF
İkinci Normal Biçim
 VT tam işlevsel bağımlılık kavramına dayalıdır.
 Birincil anahtarı birden çok özelliğe sahip olan ve 2NF
olmayan ilişkilere uygulanır.
 İlişki, öncelikle 1 NF şartını sağlamalıdır. Ayrıca;
 İlişkide, birincil anahtar olmayan tüm özellikler
birincil anahtara tam işlevsel bağımlı olmalıdır.
16
UNF
1 NF
2 NF
İkinci Normal Biçim (2NF) Örnek - 1
Sicil No
Proje No
Proje Adı
Personel
Adı
Personel
Soyadı
Unvan
Çalışma
Saati
1
23
F-16
Taner
Akbaş
Uzman
15
2
17
UAV
Aysu
Demir
Mühendis
30
3
21
Göktürk
Fatih
Sarı
Teknisyen
25
İşlevsel Bağımlılıklar
 Proje No  Proje Adı
-- Kısmi
 Sicil No  {Personel Adı, Personel Soyadı, Unvan}
-- Kısmi
 {Personel Adı, Personel Soyadı}  Unvan
-- Dolaylı
 {Sicil No, Proje No}  Çalışma Saati
-- Tam
 Proje Adı, birincil anahtara kısmi bağımlıdır.
 {Personel Adı, Personel Soyadı, Unvan}, birincil anahtara kısmi bağımlıdır.
 Çalışma Saati, birincil anahtara {Sicil No, Proje No} tam bağımlıdır. Çünkü Sicil No
veya Proje No, tek başına Çalışma Saati’ni belirleyemiyor. İkisi birlikte belirliyor.
17
UNF
1 NF
2 NF
1NF
İkinci Normal Biçim (2NF) Çözüm
18
Sicil No
Proje No
Proje Adı
Personel
Adı
Personel
Soyadı
Unvan
Çalışma
Saati
1
23
F-16
Taner
Akbaş
Uzman
15
2
17
UAV
Aysu
Demir
Mühendis
30
3
21
Göktürk
Fatih
Sarı
Teknisyen
25
Sicil No
Personel
Adı
Personel
Soyadı
Unvan
Proje No
Proje Adı
1
Taner
Akbaş
Uzman
23
F-16
2
Aysu
Demir
Mühendis
17
UAV
3
Fatih
Sarı
Teknisyen
21
Göktürk
Sicil No
Proje No
Çalışma
Saati
1
23
15
2
17
30
3
21
25
UNF
1 NF
2 NF
1NF
2NF
İkinci Normal Biçimin Sorunları
 Birinci normal biçimdeki güncelleme sorununu
ikinci normal biçime dönüştürme ile ortadan
kaldırmış olsak da, ikinci normal biçimde de
ekleme ve silme sorunları olabilmektedir.
20
UNF
1 NF
2 NF
Üçüncü Normal Biçim
 Dolaylı bağımlılık kavramına dayalıdır.
 İlişki, öncelikle 2 NF şartını sağlamalıdır.
 İlişkide, birincil anahtar olmayan özellikler
birincil anahtara dolaylı bağımlı olmamalıdır.
21
UNF
1 NF
2 NF
3 NF
Üçüncü Normal Biçim (3NF) Örnek
Sicil No
Personel
Adı
Personel
Soyadı
Unvan
Birim
No
Birim
Adı
Birim
Yönetici
1
Taner
Akbaş
Uzman
23
F-16
15
2
Aysu
Demir
Mühendis
17
UAV
30
3
Fatih
Sarı
Teknisyen
21
Göktürk
25
2NF
Tam
Dolaylı
Dolaylı
İşlevsel Bağımlılıklar
 Sicil No  {Personel Adı, Personel Soyadı, Unvan, Birim No}
--- Tam
 {Personel Adı, Personel Soyadı}  Unvan
--- Dolaylı
 Birim No  {Birim Adı, Birim Yönetici}
--- Dolaylı
 Unvan, dolaylı olarak Sicil No’ya bağlıdır.
 Birim Adı ve Birim Yöneticisi, dolaylı olarak Sicil No’ya bağlıdır.
22
UNF
1 NF
2 NF
3 NF
Üçüncü Normal Biçim (3NF) Çözüm
Sicil No
Personel
Adı
Personel
Soyadı
Unvan
Birim
No
Birim
Adı
Birim
Yönetici
1
Taner
Akbaş
Uzman
23
F-16
15
2
Aysu
Demir
Mühendis
17
UAV
30
3
Fatih
Sarı
Teknisyen
21
Göktürk
25
Tam
2NF
Dolaylı
Dolaylı
Sicil
No
Personel
Adı
Personel
Soyadı
Unvan
No
Birim
No
Birim
No
Birim
Adı
Birim
Yönetici
1
Taner
Akbaş
5
23
23
F-16
15
2
Aysu
Demir
2
17
17
UAV
30
3
Fatih
Sarı
7
21
21
Göktürk
25
23
UNF
1 NF
2 NF
Unvan No
UnvanAdı
5
Uzman
2
Mühendis
7
Teknisyen
3 NF
3NF
Normalizasyon Kuralları (ÖZET)
 Verilerin düzenli olarak veri tabanında tutulmasını
sağlayan kurallar topluluğudur.
 1NF:
 Tekrarlanan sütun gruplarını ortadan kaldırmak
 Kompozit olarak birincil anahtar oluşturmak
 2NF:
 Anahtar özelliğine sahip olmayan tüm sütunlar birincil
anahtara tam bağımlı olmalı
 Buna göre tablolar bölünmeli
 3NF:
 Kısmi bağımlılık tamamen ortadan kaldırılmalı.
27
İşlevsel bağımlılık
 X  Y ise Y, X’e işlevsel bağımlıdır.
 Bir R ilişkisinde X  Y ise,
t1 ve t2 satırları için
t1[X]=t2[X] ise t1[Y]=t2[Y] olmalıdır.
 Eğer K, R ilişkisinde anahtar özellik ise, R
ilişkisindeki tüm özellikleri K işlevsel olarak
belirler. (Çünkü iki farklı satır için t1[K]≠t2[K]
36
İşlevsel bağımlılık
 Bir başka deyişle; Y, X’e işlevsel bağımlı ise
X’in belli bir değerine karşılık Y’nin bir tek değeri
karşılık gelir.
(X süper anahtardır)
Y
X
Y, X’e işlevsel
bağımlı
37
İşlevsel bağımlılık (Örnekler)
 ŞİRKET (Şirket No, Şirket Adı, Şirket Adresi,
Şirket Telefonu, Ortak Adı, Hisse) için
{ Şirket No }
 { Şirket Adı, Şirket Adresi, Şirket
Telefonu, Ortak Adı Soyadı, Hisse}
{ Şirket No, Şirket Adı }  { Şirket Adresi }
{ Şirket Adı }
 { Şirket Adresi , Şirket Telefonu }
{ Şirket Telefonu }
 {Şirket Adı, Şirket Adresi }
{ Şirket Telefonu }
 {Ortak Adı, Hisse}
{ Şirket Adı, Ortak Adı }  {Hisse}
{ Ortak Adı }
 { Hisse }
{ Ortak Adı }
 { Şirket No, Şirket Adı }
…..
38
Sınırlılıklar: Aynı adreste birden fazla şirket faaliyette bulunabilir.
Bir şirketin bir telefonu vardır.
(Tam) İşlevsel bağımlılık x Kısmî bağımlılık
 Tam İşlevsel bağımlılık
 A ve B özellik kümeleri işlevsel bağımlı ise (A  B)
 Ancak B, A’nın her hangi alt kümesine bağımlı değilse,
B özelliği A özelliğine tam işlevsel bağımlıdır.
 Kısmi Bağımlılık
 A ve B özellik kümeleri işlevsel bağımlı ise (A  B)
 A özellikler kümesinden herhangi bir özelliğin
çıkarılması bu bağımlılığı bozmazsa
A  B bağımlılığına kısmi bağımlılık denir.
39
(Tam) İşlevsel bağımlılık x Kısmî bağımlılık
 Diğer bir deyişle,
 Y’deki bir nitelik, X’teki niteliklerin hepsine birden bağlı
değilse buna kısmi bağımlılık denir.
Örnek:
{Personel_No, Pers Adı }  {Bölüm No}
Tam işlevsel bağımlılık değil, çünkü….
40
Kısmî bağımlılık
 DAĞITIM (müşteri_no, şehir_kodu, şehir_adı,
gönderi_no, miktar)
 {şehir_kodu, şehir_adı, gönderi_no}  müşteri_no
…?... bağımlılık
 {müşteri_no, gönderi_no{  miktar
…?... bağımlılık
41
Dolaylı Bağımlılık
 A, B ve C özellik kümelerini içeren bir R
ilişkisinde
 A  B ve B  C işlevsel bağımlılıkları bulunmakta ise
C, A’ya B aracılığı ile dolaylı bağımlıdır.
Sicil No
Personel Adı
Personel
Soyadı
Birim
Yönetici
1
Taner
Akbaş
Simülatör
Mehmet Selvi
2
Aysu
Şahin
ARGE
Murat Kara
3
Fatih
Demir
Finans
Gülin Şule
4
Fatma
Aysev
Kütüphane
Ali Atakoğlu
 Sicil No, Birim’i belirlemektedir.
Anahtar olmayan Birim özelliği de, Yönetici özelliğini belirlemektedir.
42
Yönetici özelliği, Sicil No’ya dolaylı bağımlıdır.
Dolaylı bağımlılık
 DAĞITIM (müşteri_no, şehir_kodu, şehir_adı,
gönderi_no, miktar)
 {şehir_kodu, şehir_adı, gönderi_no}  müşteri_no
…?... bağımlılık
 {müşteri_no, gönderi_no}  miktar
…?... bağımlılık
 {şehir_kodu}  {şehir_adı}
…?... bağımlılık
43
Dolaylı Bağımlılık
 Ancak,
X’in birincil anahtar olduğu X  Y ve Y  Z
durumunda, Y bir aday anahtar ise dolaylı
bağımlılıktan söz edilmez.
Örneğin;
PERSONEL(Sicil No, TC Kimlik No, Maaş) ilişkisinde
Sicil No  TC Kimlik No ve TC Kimlik No  Maaş
olmasına rağmen dolaylı bağımlılık yoktur.
Çünkü TC Kimlik No aday anahtardır.
44
KAYNAKLAR
 Ünal Yarımağan, Veri Tabanı Sistemleri
 Ali Öztürk, VT Ders notları
45
Download

VTYS - Hf5 - Normallestirme