You are on page 1of 37

VER TABANI YNETM

Ders 6: Normalletirme

Yrd. Do. Dr. Altan MESUT


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
1 2 3 4 34 6 6 34 stanbul Ankara Ankara stanbul 1,2,3,4,6 1,2 2 2,4,5

miktar
300,200,400,200,100 300,400 200 200,300,400

Birinci Normal Form Uygulandnda:


mteri_no ehir_kodu ehir_ad gnderi_no miktar

1
1 1 1

34
34 34 34

stanbul
stanbul stanbul stanbul

1
2 3 4

300
200 400 200

1
2 2 3

34
6 6 6

stanbul
Ankara Ankara Ankara

6
1 2 2

100
300 400 200

4
4 4

34
34 34

stanbul
stanbul stanbul

2
4 5

200
300 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 1 4 34 34 ehir_ad stanbul stanbul gnderi_no 1 5 miktar 300 400

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 1 1 34 34 ehir_ad stanbul stanbul gnderi_no 1 2 miktar 300 200

Ankara

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 1 1 1 34 34 34 ehir_ad stanbul stanbul stanbul gnderi_no 1 2 3 miktar 300 200 400

34

stanbul

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_no ehir_kodu ehir_ad 1 2 34 6 stanbul Ankara mteri_no gnderi_no miktar 1 1 1 2 300 200

3
4

6
34

Ankara
stanbul

1
1 1 2

3
4 6 1

400
200 100 300

MTERLER

2
3 4 4

2
2 2 4

400
200 200 300

MKTARLAR

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 1 2 3 34 6 6 ehir_ad stanbul Ankara Ankara

34
35

stanbul
zmir

Satr Silme Sorunu


Tablodan bir mteri silindiinde, eer o ehirdeki tek mteri ise, ehir_kodu ve ehir_ad bilgileri de yok olacaktr.
mteri_no ehir_kodu 1 2 3 4 34 6 6 34 ehir_ad stanbul Ankara Ankara stanbul

35

zmir

nc Normal Form
Birinci normal formdaki sorunlardan kurtulmak iin nitelikler arasndaki ksmi ilevsel bamllklar ortadan kaldrmtk. kinci normal formdaki sorunlardan kurtulmak iin de nitelikler arasndaki geili ilevsel bamllklar ortadan kaldrmamz gerekir. rneimizde ehir_ad ehir_kodu ilevsel bamllnn geili olduunu belirtmitik (bak slayt 7). Bir anahtara bal olmayan bu bamll ayr bir tabloya dntrerek nc normal formu (3NF) elde edebiliriz.

nc Normal Form Uygulandnda:


EHRLER ehir_kodu 6 34 ehir_ad Ankara stanbul 1 1 1 1 MTERLER mteri_no ehir_kodu 1 2 3 34 6 6 1 2 2 3 4 4 4 1 2 3 4 6 1 2 2 2 4 5 MKTARLAR mteri_no gnderi_no miktar 300 200 400 200 100 300 400 200 200 300 400

35

zmir

4
5

34
35

Boyce-Codd Normal Formu


Her belirleyicinin bir anahtar oluu halidir. rnek olarak aadaki ilikiyi dnelim: RENC(rNo, Blm, Danman)
RENC rNo 123 123 456 789 Blm Fizik Kimya Biyoloji Fizik Danman A. ERCAN M. AKINCI K. SNMEZ A. ERCAN

999

Kimya

B. ZKAN

Boyce-Codd Normal Formu


rNo 123 Blm Fizik Danman A. ERCAN

123
456 789 999

Kimya
Biyoloji Fizik Kimya

M. AKINCI
K. SNMEZ A. ERCAN B. ZKAN

1NF ? EVET (btn niteliklerin ald deerler atomik) 2NF ? EVET (ksmi bamllk yok) 3NF ? EVET (geili bamllk yok)

Boyce-Codd Normal Formu


rNo 123 Blm Fizik Danman A. ERCAN

123
456 789 999

Kimya
Biyoloji Fizik Kimya

M. AKINCI
K. SNMEZ A. ERCAN B. ZKAN

Her normal formu da salyor. Sorun var m? EVET


1. 456 numaral renci silinirse Biyoloji ve K.SNMEZ yok olacak 2. Bir renci Matematik blmne kayt olana kadar bu blm var olmayacak.

zm: Belirleyicileri anahtar yap


Birincil Anahtar:
(rNo, Blm)
rNo Blm Danman

123
123 456 789 999

Fizik
Kimya Fizik Kimya

A. ERCAN
M. AKINCI A. ERCAN B. ZKAN

Aday Anahtar:
(rNo, Danman)

Biyoloji K. SNMEZ

levsel Bamllklar:

(rNo, Blm) Danman Danman Blm


Belirleyiciler

Boyce-Codd Normal Formu (BCNF) Uygulandnda:


RENC_DANIMAN rNo Danman

RENC rNo 123 123 Blm Fizik Kimya Danman A. ERCAN M. AKINCI

123 123 456 789 999

A. ERCAN M. AKINCI K. SNMEZ A. ERCAN B. ZKAN

456
789 999

Biyoloji
Fizik Kimya

K. SNMEZ
A. ERCAN B. ZKAN

DANIMAN_BLM Danman Blm A. ERCAN M. AKINCI K. SNMEZ B. ZKAN Fizik Kimya Biyoloji 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

Belirleyici: Baka bir niteliin tam ilevsel baml olduu nitelik

Drdnc Normal Form


Baz durumlarda BCNFdaki bir ilikide de sorunlar grlebilmektedir. rnein; RENC(rNo, Blm, Spor)
RENC rNo 123 123 123 Blm Fizik Kimya Fizik Spor Kayak Kayak Tenis

123
999

Kimya
Kimya

Tenis
Tenis

Drdnc Normal Form


Burada bir renci birden ok blme kayt olabilmekte ve birden ok spor etkinliine katlabilmektedir. Bu nedenle rNo ile Blm ve rNo ile Spor arasndaki ilikiler birer ilevsel bamllk deil ok-deerli bamllk (multivalued dependency) halindedir.
RENC rNo 123 123 123 123 999 Blm Fizik Kimya Fizik Kimya Kimya Spor Kayak Kayak Tenis Tenis Tenis

rNo Blm rNo Spor


ok-deerli bamllk

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 rNo 123 123 999 Blm Fizik Kimya Biyoloji RENC_SPOR rNo 123 123 999 Spor Kayak Tenis Yzme

rnek 1
.NO 2001001 2001001 2001001 2001001 2001001 2001005 2001005 2001005 2001002 2001003 2001004 .AD Ahmet Ahmet Ahmet Ahmet Ahmet Seyhan Seyhan Seyhan Selim Ahmet Sezai .SOYAD Solmaz Solmaz Solmaz Solmaz Solmaz Glmez Glmez Glmez Solmaz Vardar Kantar DERS_NO 202 203 204 205 206 202 203 204 702 702 702 DERS_ADI Matematik 2 Fizik 2 Bilgisayar Mhendisliine Giri 2 VIZE 70 80 60 90 70 80 80 60 60 60 65 FINAL 60 40 45 95 75 95 70 70 50 60 55 H.NO 11 11 3 9 12 11 11 3 6 6 6 H.AD zlem zlem Aydn Zeki Nebahat zlem zlem Aydn Altan Altan Altan H.SOYAD UAR UAR CARUS DURMU YILDIZ UAR UAR CARUS MESUT MESUT MESUT

Atatrk lkeleri ve nklap Tarihi 2


Trk Dili 2 Matematik 2 Fizik 2 Bilgisayar Mhendisliine Giri 2 Veri Taban Ynetimi Veri Taban Ynetimi Veri Taban Ynetimi

Verilen ema 1. Normal Formda (atomik deerler)


OKUL (.No, .Ad, .Soyad, Ders_No, Ders_Ad, Vize, Final, H.No, H.Ad, H.Soyad)

2. NFye geerken ksmi bamllklar ortadan kaldrlr


NOTLAR(.No, Ders_No, Vize, Final) RENCLER(.No, .Ad, .Soyad) DERSLER(Ders_No, Ders_Ad, H.No, H.Ad, H.Soyad)

3. NFye geerken geili bamllklar ortadan kaldrlr


NOTLAR(.No, Ders_No, Vize, Final) RENCLER(.No, .Ad, .Soyad) DERSLER(Ders_No, Ders_Ad, H.No) HOCALAR(H.No, H.Ad, H.Soyad)

rnek 2
UrunNo 10026201 10026201 10026201 10026201 10026501 10026501 10026501 10026501 10220012 10220012 10220012 10220012 UrunAd Pavilion DV2620ET Pavilion DV2620ET Pavilion DV2620ET Pavilion DV2620ET ParcaNo 1 2 3 4 1 2 3 4 1 2 3 4 ParcaAd Intel Core 2 Duo T5450 Kingston 512MB DDR2 Samsung 160GB HDD Nvidia GeForce 8400M Miktar 1 1 1 1 1 2 1 1 1 2 1 1 UreticiNo 100 100 100 100 100 100 100 100 102 102 102 102 UreticiAd HP HP HP HP HP HP HP HP Toshiba Toshiba Toshiba Toshiba UreticiSehir Seattle Seattle Seattle Seattle Seattle Seattle Seattle Seattle Tokyo Tokyo Tokyo Tokyo UreticiTel 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 335678912 335678912 335678912 335678912

Pavilion DV2650ET
Pavilion DV2650ET Pavilion DV2650ET Pavilion DV2650ET Satellite A2001N2 Satellite A2001N2 Satellite A2001N2 Satellite A2001N2

Intel Core 2 Duo T7500


Kingston 1024MB DDR2 Samsung 160GB HDD Nvidia GeForce 8400M Intel Core 2 Duo T5250 Samsung 1024MB DDR2 Maxtor 120GB HDD Intel GMA X3100

Verilen ema 1. Normal Formda (atomik deerler)


Urun_Parca (UrunNo, UrunAd, ParcaNo, ParcaAd, Miktar, UreticiNo, UreticiAd, UreticiSehir, UreticiTel)

1NF 2NF (ksmi bamllklar giderilir)


Urun_Parca (UrunNo, ParcaNo, ParcaAd, Miktar) Urunler (UrunNo, UrunAd, UreticiNo, UreticiAd, UreticiSehir, UreticiTel)

2NF 3NF (geili bamllklar giderilir)


Urun_Parca (UrunNo, ParcaNo, ParcaAd, Miktar) Urunler (UrunNo, UrunAd, UreticiNo) Ureticiler (UreticiNo, UreticiAd, UreticiSehir, UreticiTel)

rnek 3
SiparisNo 1 1 2 3 4 5 6 7 7 8 Tarih 23.11.2007 23.11.2007 23.11.2007 24.11.2007 24.11.2007 25.11.2007 25.11.2007 25.11.2007 25.11.2007 26.11.2007 UrunAd Nokia 6300 Kingston 2 GB USB Samsung D600 Nokia 5070 Philips DVP 5160/12 Samsung Digimax S850 Sinbo SBS-4414 Baskl Canon Powershot A560 Kingston 2 GB SD Nokia 6300 UrunNo 57463 73624 72352 71224 90876 98123 35465 95293 37285 57463 Adet 1 2 1 1 1 1 2 1 1 1 MusNo 875 875 932 123 452 786 932 875 875 321 MusAd Ali Ali Selin Kamil Metin Kemal Selin Ali Ali Ece MusSoyad Korkmaz Korkmaz Atasoy Snmez Kaplan Durukan Atasoy Korkmaz Korkmaz alayan

Verilen ema 1. Normal Formda (atomik deerler)


SIPARIS (SiparisNo, Tarih, UrunAd, UrunNo, Adet, MusNo, MusAd, MusSoyad)

1NF 2NF (ksmi bamllklar giderilir)


SIPARIS_URUN (SiparisNo, UrunNo, Adet) SIPARIS_MUSTERI (SiparisNo, Tarih, MusNo, MusAd, MusSoyad) URUN (UrunNo, UrunAd)

2NF 3NF (geili bamllklar giderilir)


SIPARIS_URUN (SiparisNo, UrunNo, Adet) SIPARIS_ MUSTERI (SiparisNo, Tarih, MusNo) MUSTERILER (MusNo, MusAd, MusSoyad) URUN (UrunNo, UrunAd)

You might also like