Professional Documents
Culture Documents
Ders 6: Normalletirme
Trakya niversitesi
Bilgisayar Mhendislii
Veri Modelini Normalletirmek
likisel veri taban tasarlanmas aamasnda verinin
tekrarlanmasn, kaybn veya yetersizliini nlemek
iin normalletirme (normalization) ilemi uygulanr.
Normalletirme, ayn zamanda ilk taslak veri taban
tasarmnn zerinde revizyonlar yapmann yolu,
tasla son haline yaklatrmann yntemlerden
birisidir.
Normalletirmenin altyaps da, ilikisel modelin
altyaps gibi matematikseldir. Temel alnan kavram,
ilevsel bamllk (functional dependency) (bak slayt
6) denilen bir kavramdr.
Normalletirmenin Amalar - 1
Veri btnln salamak
Eer veri gereksiz yere tekrarlanyorsa, bu deiik
kopyalar, bunlardan habersiz olan uygulama kodlar
yznden bir sre sonra birbirinden farkl deerleri
tamaya balayabilirler. Bu, doruluk ve tutarllk
asndan ok kt bir sonutur.
Bu gibi durumlarda ilikisel veri taban ynetim
sisteminin otomatik btnlk (automatic integrity)
mekanizmalar bile ie yaramaz. Dzeltmenin,
uygulama seviyesinde yaplmas gerekir. Fakat bu da
uygulama programlarn daha karmak hale getirecek,
dolaysyla bakmn zorlatracaktr.
Normalletirmenin Amalar - 2
Uygulamadan bamszlk
Normalletirme, ilikisel model, verinin
ieriine gre kurulmal, uygulamaya gre deil
kavramn bir adm daha ne alr.
Bu sayede veri modeli, zerinde onu kullanan
uygulama deise bile, daha tutarl, sabit ve
deimez olarak kalacaktr.
Uygulama programnn gereksinimlerinin veri
tabannn mantksal modeli zerinde minimum
etkisi olmaldr.
Normalletirmenin Amalar - 3
Performans arttrmak
D anahtarlarn haricinde, tamamyla
normalletirilmi bir veri taban gereksiz yere
kopyalanm veri miktarn en aza indirecektir.
Verilerin daha az kopyasnn olmas saklama
kapasitesinin azalmasna ve veri taban
motorunun arama sresinin azalmasna yol
aar. Bu da performansn artmas demektir.
levsel Bamllk
R bir iliki emas, X ve Y nitelik kmeleri ise Rnin alt
kmeleri olsun (X R, Y R).
Eer X nitelik kmesinin deerleri Y nitelik kmesinin
deerlerini belirliyorsa (Xin her farkl deeri Ynin
belirli bir deerine karlk geliyorsa); Y nitelii X
niteliine ilevsel bamldr denir ve X Y
eklinde gsterilir.
Xten bir nitelik karld halde bu bamllk hl
geerli ise ksmi bamllk (partial dependency) sz
konusudur.
levsel Bamllk
DAITIM (mteri_no, ehir_kodu, ehir_ad,
gnderi_no, miktar)
1. mteri_no ehir_kodu, ehir_ad
2. (mteri_no, gnderi_no) miktar
3. ehir_kodu ehir_ad (geili bamllk)
lkinde anahtar alan oluturan niteliklerden 1 tanesi,
iki farkl nitelii belirleyebiliyor (ksmi bamllk)
Bir mteriye birden fazla defa rn gnderilebildii
iin ikincisinde iki nitelik bir anahtar oluturuyor.
lk ikisi anahtara gre baml, ncs geili
baml (transitive dependent).
Normalletirme Aamalar
Birinci Normal Form
kinci Normal Form
nc Normal Form
Boyce-Codd Normal Formu
Drdnc Normal Form
Normal Olmayan Form
likisel veri taban modelinin temel kuralna
gre btn niteliklerin ald deerler atomik
(tek ve basit) olmaldr.
Aadaki DAITIM tablosu bu kurala
uymamaktadr, bu yzden normal deildir.
mteri_no ehir_kodu ehir_ad gnderi_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
Birinci Normal Form Uygulandnda:
mteri_no ehir_kodu ehir_ad gnderi_no miktar
1 34 stanbul 1 300
1 34 stanbul 2 200
1 34 stanbul 3 400
1 34 stanbul 4 200
1 34 stanbul 6 100
2 6 Ankara 1 300
2 6 Ankara 2 400
3 6 Ankara 2 200
4 34 stanbul 2 200
4 34 stanbul 4 300
4 34 stanbul 5 400
Birinci Normal Formun Sorunlar
Birinci normal formdaki bir tablo baz
alanlarda tekrarl verilere sahiptir.
rneimizde ehir_kodu ve ehir_ad
alanlarnda her mteri iin tekrarl veriler
vardr.
Bu tekrarlar ekleme, silme ve gncelleme
ilemlerinde sorunlara neden olacaktr.
Satr Ekleme Sorunu
Baka bir mterinin bilgilerinin (mteri_no,
ehir_kodu, ehir_ad) girilmesi iin mutlaka o
mteriye bir datm ileminin yaplmas
(gnderi_no ve miktar deerlerinin girilmi olmas)
gerekiyor.
mteri_no ehir_kodu ehir_ad gnderi_no miktar
1 34 stanbul 1 300
4 34 stanbul 5 400
5 35 zmir
Satr Silme Sorunu
Bir mteriye tek bir datm yapldysa (rn. 3 nolu
mteri), o datm ilemi iptal edildiinde, sadece
gnderi_no ve miktar deil, o datmn yapld
mteri hakkndaki dier bilgiler de (mteri_no,
ehir_kodu, ehir_ad) yok olur.
mteri_no ehir_kodu ehir_ad gnderi_no miktar
1 34 stanbul 1 300
1 34 stanbul 2 200
3 6 Ankara 2 200
Gncelleme Sorunu
1 numaral mteri Ankaraya tanrsa, bu mteri ile
ilgili tm satrlarn gncelletirilmesi gerekecektir.
Eer tablo ok byk ise, sadece bir mteri ile ilgili
kk bir deiiklik bile binlerce kaydn
gncelletirilmesini gerektirebilir.
mteri_no ehir_kodu ehir_ad gnderi_no miktar
1 34 stanbul 1 300
1 34 stanbul 2 200
1 34 stanbul 3 400
1 34 stanbul 4 200
kinci Normal Form
Birinci normal formdaki sorunlardan (en azndan
gncelleme sorunundan) kurtulmak iin nitelikler
arasndaki ilevsel bamllktan yararlanlarak birinci
normal form (1NF) tablolarnn birden fazla tabloya
dntrlmesi sonucunda ikinci normal forma (2NF)
ulalr.
kinci normal formda, ilikisel tablonun her bir
anahtar olmayan stunu birincil anahtara ksmi
baml deil, tam ilevsel baml olmaldr.
kinci Normal Form
ehir_kodu ve ehir_ad nitelikleri (mteri_no,
gnderi_no) birleik anahtarnn sadece mteri_no
nitelii zerinde tam ilevsel bamldr.
O halde ehir_kodu ve ehir_ad nitelikleri
mteri_no ile beraber ayr bir tablo oluturmaldr.
DAITIM(mteri_no, ehir_kodu, ehir_ad,
gnderi_no, miktar)
MTERLER(mteri_no, ehir_kodu, ehir_ad)
MKTARLAR(mteri_no, gnderi_no, miktar)
kinci Normal Form Uygulandnda:
mteri_n ehir_kod ehir_ad mteri_n gnderi_no mikta
o u o r
1 34 stanbul 1 1 300
2 6 Ankara 1 2 200
3 6 Ankara 1 3 400
4 34 stanbul 1 4 200
1 6 100
2 1 300
MTERLER 2 2 400
3 2 200
MKTARLAR 4 2 200
4 4 300
4 5 400
kinci Normal Formun Sorunlar
Birinci normal formdaki gncelleme sorununu
ikinci normal forma dntrme ile ortadan
kaldrm olsak ta, ikinci normal formda da
ekleme ve silme sorunlar olabilmektedir.
Satr Ekleme Sorunu
MTERLER tablosuna yeni bir mteri kayd
girilmedii srece yeni bir ehir tanm yaplamaz.
zmir ilini tabloya dahil edebilmek iin zmirde
bulunan bir mteriye ihtiya vardr.
mteri_no ehir_kodu ehir_ad
1 34 stanbul
2 6 Ankara
3 6 Ankara
4 34 stanbul
35 zmir
Satr Silme Sorunu
Tablodan bir mteri silindiinde, eer o
ehirdeki tek mteri ise, ehir_kodu ve
ehir_ad bilgileri de yok olacaktr.
Belirleyiciler
Boyce-Codd Normal Formu (BCNF)
Uygulandnda:
RENC_DANIMAN
rNo Danman
RENC 123 A. ERCAN
123 M. AKINCI
rNo Blm Danman
456 K. SNMEZ
123 Fizik A. ERCAN
789 A. ERCAN
123 Kimya M. AKINCI
999 B. ZKAN
456 Biyoloji K. SNMEZ
789 Fizik A. ERCAN DANIMAN_BLM
999 Kimya B. ZKAN Danman Blm
A. ERCAN Fizik
M. AKINCI Kimya
K. SNMEZ Biyoloji
B. ZKAN Kimya
zet
NF: Normal olmayan form
1NF: Btn alan deerleri atomik ise R 1NFde
2NF: R 1NFde ise ve anahtar olmayan tm nitelikler
anahtara tam baml ise R 2NFde
3NF: R 2NFde ise ve anahtar olmayan tm nitelikler
anahtara geisiz baml ise R 3NFde
BCNF: Her belirleyici bir aday anahtar ise R BCNFde
RENC
rNo Blm Spor
123 Fizik Kayak rNo Blm
123 Kimya Kayak
rNo Spor
123 Fizik Tenis
ok-deerli bamllk
123 Kimya Tenis
999 Kimya Tenis
Drdnc Normal Form
123 numaral rencinin bir blme daha kayt
olmas yada bir spor etkinliine daha katlmas
halinde iki kayt daha ilave edilmelidir.
Bu gibi yineleme sorunlarn ortadan kaldrmak iin
RENC ilikisi ikiye ayrlrak drdnc normal form
(4NF) oluturulur.
RENC_BLM RENC_SPOR
rNo Blm rNo Spor
123 Fizik 123 Kayak
123 Kimya 123 Tenis
999 Biyoloji 999 Yzme
rnek 1
.NO .AD .SOYAD DERS_NO DERS_ADI VIZE FINAL H.NO H.AD H.SOYAD
Bilgisayar Mhendisliine
2001001 Ahmet Solmaz 204 60 45 3 Aydn CARUS
Giri 2
Atatrk lkeleri ve nklap
2001001 Ahmet Solmaz 205 90 95 9 Zeki DURMU
Tarihi 2
Bilgisayar Mhendisliine
2001005 Seyhan Glmez 204 60 70 3 Aydn CARUS
Giri 2
Quentin Quentin
110912 Pulp Fiction 1994 MF Miramax Films
Tarantino Tarantino
Quentin
110912 Pulp Fiction 1994 Roger Avary MF Miramax Films
Tarantino
114369 Se7en 1995 David Fincher A. Kevin Walker NL New Line Cinema
1375666 Inception 2010 Christopher Nolan Christopher Nolan WB Warner Bros Pic.
Verilen ema 1. Normal Formda (atomik deerler). Anahtar alanlar
Film_No, Ynetmeni ve Senaristi.
Filmler (FilmNo, Film_Ad, Yl, Ynetmeni, Senaristi, irketID, irketAd)
1NF 2NF (Ynetmeni ve Senaristi dndaki tm nitelikler FilmNo
niteliine ksmi olarak baml)
FilmYnetmenSenarist (FilmNo, Ynetmeni, Senaristi)
Filmler (FilmNo, FilmAd, Yl, irketID, irketAd)
2NF 3NF (irketAd nitelii irketID niteliine geili olarak baml)
FilmYnetmenSenarist (FilmNo, Ynetmeni, Senaristi)
Filmler (FilmNo, FilmAd, Yl, irketID)
irketler (irketID, irketAd)
3NF 4NF (ok-deerli bamllk var: Ynetmen ve Senaristin ayn
tabloda olmas gereksiz tekrarlara neden oluyor)
FilmYnetmen (FilmNo, Ynetmeni) NOT: 4NF anlatrken verdiimiz
FilmSenarist (FilmNo, Senaristi) RENC(rNo, Blm, Spor)
Filmler (FilmNo, FilmAd, Yl, irketID) rneine benziyor
irketler (irketID, irketAd)
rnek 5
KitapNo KitapAd Yazar YayneviAd YayneviYeri TrID TrAd
101 Benim Adm Krmz Orhan Pamuk YK Kltr Sanat stanbul 1 Roman