You are on page 1of 52

NORMALLETRME

Normalletirmenin amac Veri fazlal ile bal sorunlar Gncelleme sapmalar (anomalileri) levsel bamllklar likilerin normal biimleri Normalletirme sreci Yaygn Kullanlan Normal Biimler

Tasarm srecinde Normalletirmenin yeri


Kavramsal tasarm
Kavramsal ema (ER Model)

Mantksal Tasarm

Adm 1: ER modelin ilikilere dntrlmesi Adm 2: Normalletirme: Tasarm gelitirme

Mantksal ema (likisel Model

Varlk-likisel Modelin likisel Tablolara Dntrlmesi


1 Varlk trlerinin dntrlmesi- Her bir gl varlk tr iin , bu varlk trnn tm zelliklerini ieren tablo oluturmal. Karmak zelliklerin yalnz basit bileenlerini almal.Anahtar zelliklerden birisini tablonun birincil anahtar olarak kabul etmeli. Eer, birincil anahtar varlk trndeki karmak zellik ise, bu zelliin tm bileenlerini birlikte karmak anahtar olarak kabul etmeli 2.Zayf varlk iin de benzer yolla tablo oluturmal. Ama bu tabloya , sahip (uygun gl ilikinin) birincil anahtarn yabancl anahtar olarak ilave etmeli. 3. Her 1:1 ve 1:N trl R iliki tr iin , bu ilikiye katlan varlk trlerine uygun ilikileri (S ve T) tanmlamal. Bu ilikilerden birisi iin (S) , dierinin (T) birincil anahtarn yabancl anahtar olarak kullanmal. R iliki trnn tm zelliklerini (basit zellik olarak) Sin zellikleri olarak kabul etmeli; her iki katlmc varlk genel olursa o zaman bu varlk ve iliki tr tek bir tabloda birletirile bilir 4. Her M:M trl iliki iin yeni bir S tablosu oluturmal. Katlmc ilikilerin birincil anahtarn S tablosunda yabancl anahtarlar olarak kullanmal. M:M iliki trnn tm zelliklerini (basit) bu tabloya ilave etmeli

likilerin Tasarlanmas lkeleri


likilerin anlamsal btnl olmaldr Veri tekrarlanmalar nlenmelidir:
sapmalar: ekleme, silme, deiiklik yapma

Bo deerlerden mmkn olduka kanlmaldr


Yorumlama zorluu:
Belli deil, eriile bilen deil, uygulana bilen deil

Yapay birlemelerden kanlmaldr

Normalletirme sreci
likisel veri tabanlarnn gelitirilme aamas olan mantksal veri modelinin oluturulmasnda balca hedef, verilerin, veriler arasndaki ilikilerin ve snrlamalarn kesin, tam ifade edilmesidir. Bu hedefe ulamak iin uygun ilikiler kmesi tanmlanmaldr. Byle ilikilerin tanmlanmas ilevine normalletirme denir. Normalletirme- veri gereksinimlerinde tanmlanm olan, arzu olunan nitelikleri bulunan ilikiler kmesinin retilmesi srecidir.

Normalletirme sreci (devam)


Kt tasarlanm veri tabanlarnn, sapmalar nedeniyle kullanm zorluklar bulunmaktadr: Sapmalar: Deitirme zelliin deerinin deitirilmesi veri tabannn tutarszlna neden ola bilir Ekleme baz tasarm kusurlarndan dolay satr eklenmesi mmkn olmaya bilir Silme - satr silinmesi bilgilerin beklenmeyen kaybna neden ola bilir Normalletirme tm bu sapmalarn kaldrlmas iin veri taban tasarmnda yaplan dzenli sretir.

Veri Fazlal ve Gncelleme Sapmalar (rnek)

Staff_Branch ilikisinde gncelleme sapmalar (ekleme)


1. Varsayalm ki, Branch_Staff ilikisine yeni personelin kaytlar eklenmelidir. Bu halde personelin alaca ubenin bilgileri de girilmelidir. rnein, yeni personel B7 ubesine kabul edilmise, bu bilgiler B7 ubesi bilgileri bulunan dier satrlardaki bilgilerle ayn olmal, yani veri tutarszl olumamaldr. Bu muhtemel hatan nlemek iin Staff_Branch ilikisinin iki ilikiye paralanmas (Staff ve Branch) gerekmektedir. 2. Varsayalm ki, yeni ube oluturulmu, ama bu ubeye henz personel atanmamtr. Personel bilgileri yerine bo deerler yazlmas mmkndr. Ama Staff_No, ilikide birincil anahtar olduundan bo deer alamaz. Bu ikilemi nlemek iin Staff_Branch ilikisinin iki ilikiye paralanmas (Staff ve Branch) gerekmektedir.

Staff_Branch(Staff_No,SName,SAddress, Position, Salary, Branch_no,BAddress, Tel_No)

Staff_Branch ilikisinde gncelleme sapmalar (silme)


1. Varsayalm ki, Branch_Staff ilikisinden ubede alan sonuncu personel hakkndaki bilgiler de silinmelidir. Ama bu bilgilerin silinmesi, ube hakkndaki bilgilerin de kaybna neden olacaktr(byle ki, bu ube hakknda bilgiler ilikinin dier hibir satrnda bulunmuyor). rnein, ilikiden SA9 (Mary Howe) bilgilerinin silinmesi ile B7 ubesi hakkndaki bilgileri de kaybedeceiz. Bu olas itkileri nlemek iin Staff_Branch ilikisinin iki ilikiye paralanmas (Staff ve Branch) gerekmektedir.

Staff_Branch(Staff_No,SName,SAddress, Position, Salary, Branch_no,BAddress, Tel_No)

Staff_Branch ilikisinde gncelleme sapmalar (gncelleme)


Varsayalm ki, Branch_Staff ilikisinden her hangi bir

ubenin bir veya birka zellik deerini deitirmek gerekmektedir.rnein, B7 ubesinin telefon numaras deitirilmelidir. Bunun iin ise Staff_Branch ilikisindeki B7 ubesinde alan personellere uygun tm satrlar gncellenmelidir. Eer tm gereken satrlar gncellenmezse bu, veri tabannn tutarszlna neden olacaktr.Yani, B7 ubesi hakkndaki bilgileri ieren farkl satrlarda ubenin telefon numaralar farkl grnecektir. Staff_Branch(Staff_No,SName,SAddress, Position, Salary, Banch_no,BAddress, Tel_No)

Veri Fazlal ve Gncelleme Sapmalar (devam)

Ekleme anormallii Silme Anormallii Deitirme anormallii

Ne yapmal?
Mantksal tasarm srecinde oluturulmu her bir veri ilikisini ayrlkta gzden geirmeli ve arzu olunan niteliklere ulamak iin ilikileri iyiletirmeli
Normal biimler Atomik deerlere (1NF) Anahtarlara ve bamllklara ve levsel bamllklara gre tanmlanr ( 2NF, 3NF, BCNF) Normalletirme Normalletirme,yukardan aaya metodolojisinin uyguland ve ardk paralamalar ve arndrmalar yolu ile yeni ilikilerin oluturulduu tasarm srecidir.

Normalletirme sorunlar
ema arzu olunan normal biimlere nasl paralanmaldr? Kaynak emann anlamsal btnln korumak iin paralanm emalara hangi kstaslar koyulmaldr? Yeniden yaplabilirlik: kaynak emann yeniden elde edilmesi yapay bititirmeler yoktur Paralamada kayp olmamas: bilgi kayb yoktur Kstlamalarn korunmas: kaynak emada bulunan kstlamalar paralanm ilikilerde tanmlanan kstlamalarla uyumlu olmaldr. Bititirme ilemlerinden dolay sorgularn ilem sresi ykseler

Normal Biimler arasnda ballk

Tekrarlanan Gruplar
Tekrarlanan grup, birincil anahtar deeri iin birden fazla deeri bulunan zellik veya zellikler kmesidir
rnek: aadaki rnekte ube ve personel bilgileri ,her bir personelle irtibat telefonlar verilmitir. (iletiim_telefonlar tekrarlanan gruptur)
persNo grev SL10 Satc SA51 Ynetici DS40 Muhas. OS45 Muhas. ube 10 20 20 30 _ad Sat Muhasebe Muhasebe letme kent stanbul zmir zmir zmir iletiim_telefonlar 018111777, 018111888, 079311122 017111777 079311555

Tasarmda Tekrarlanan gruplara izin verilmez, tm zellikler blnmez olmaldr,yani tablonun her hcresinde tek bir deer bulunmaldr

Normalolmayan biim- Unnormalized


Form -(UNF)
Tanm: Hibir normalletirme kurallarna uymayan ve sapmalarn bulunduu tablo normallememi biimdedir.
Normal olmayan tablo, bir veya daha fazla tekrarlanan gruplar ierir Tablonun satrlarnda zellik veya zellikler okdeerli ifade edilmise byle tablo normal olmayan biimdedir Normal olmayan tablo oluturmak iin Bilgi kaynaklarndan verileri ikiboyutlu tabloya aktarmak yeterlidir.

UNFden 1NFe dntrme


Birinci normal biim (1NF) -her hcresi (satr ve stunlarn kesimesi) yalnz ve yalnz bir deer ieren iliki birinci normal biimdedir. Normalletirilmemi tablo iin anahtar olacak zellik veya zellikler kmesini belirlemeli. Normal olmayan tablodaki tekrarlanan grubun her esini anahtarla bir yerde yeni satrda tanmlamal (gruptaki her deer iin anahtar tekrarlamal)

1NF zellikleri
Tm anahtar zellikler tanmlanmtr Tabloda tekrarlanan gruplar yoktur Tm zellikler birincil anahtara bamldr

kinci Normal Biim (2NF)


Tam ilevsel bamllk kavramna dayaldr:
A ve B ilikinin zellikleridir, B zellii A zelliine ilevsel baml olup Ann her hangi altkmesine baml deilse o zaman B, Aya tam bamldr,

2NF liki birinci normal biimde ise ve birincil anahtar olmayan zellikleri birincil anahtardan tam baml ise (ksm bamlln olmamas) bu iliki ikinci normal biimdedir

levsel Bamllklar
levsel bamllk- ilikideki zellikler arasndaki balantlar ifade ediyor. Eer A ve B, R ilikisinin zellikleri ise , ve Ann her bir deerine Bnin kesin bir deeri uygun ise B ilevsel olarak Aya bamldr.(A B)
A
B, Aya ilevsel bamldr

levsel Bamllklar
levsel bamllk ilikisel veri tabannn iki zellikler kmesi arasndaki kstlamay ifade ediyor. Eer X ve Y ayn T ilikisinin zellikleri kmeleri ise, o zaman X Y , Xin ilevsel olarak Yyi tanmlamas anlamn veriyor: Xdeki zellik deerleri Ydeki zellik deerlerini tekdeerli tanmlar Tdeki her hangi iki t1 ve t2 satrlar iin t1[X] = t2[X] olmas t1[Y] = t2[Y] anlamna gelir (Eer T ilikisinin iki satr X stunu(stunlar)zere ayndrsa, onlarn Y stunu(stunlar) da ayn olmaldr)

levsel Bamllklar
Belirleyici- bamllk iaretinin solundaki zellik veya zellikler grubuna ilevsel bamlln belirleyicisi denir

Position Staff_noya ilevsel bamldr Staff_No Staff number SL21

Position
Manager

Staff_no Positiona ilevsel baml deil

Position
Manager

Staff_No
Staff Number SL21 Staff Number SG5

Staff-Branch likisi zere ilevsel bamllklar


Staff_No SName Branch_No BAddress Staff_No Branch_No Tel_no Staff_No Position BAddress Tel_No Staff_No Salary BAddress Branch_No Staff_No Branch_No Staff_No BAddress Tel_No Branch_No Staff_No Tel_No Tel_No BAddress
Staff_No,Branch_No,BAddress , Tel_No belirleyicilerdir. (Her ubenin bir telefonu olduunu varsayyoruz)

SAddress

Staff_Branch (Staff_No,SName,SAddress, Position, Salary, Banch_no,BAddress, Tel_No)

Tam ve ksm bamllk


Tam ilevsel bamllk- A ve B ilikinin zellikleri ise, eer B, ilevsel olarak Aya baml ise, ama Ann her hangi alt kmesine baml deilse, o zaman B zellii A zelliine tam ilevsel bamldr A ve B zellikleri (zellikler kmeleri) ilevsel baml ise (A B) ve A zellikler kmesinden her hangi zelliin karlmas bu bamll bozmazsa, A B bamllna ksm bamllk denir
Staff_No,SName Branch_No

Bamll tam ilevsel bamllk deil, nk, Branch_no ayn zamanda Staff_No zelliine de ilevsel bamldr.

kinci Normal Biim


Eer iliki birinci normal biimde ise ve her bir birincil anahtar olmayan zellik birincil anahtardan tam ilevsel baml ise , bu iliki ikinci normal biimdedir (2NF)

1NFden 2NFe gemek iin ksm bamllklar kaldrlmaldr.

1NFden 2NFe dntrme


1NF ilikisi iin birincil anahtar tanmlamal likideki ilevsel bamllklar tanmlamal

Eer birincil anahtar zere ksm bamllklar varsa bu bamllklar oluturan zellikleri onlarn belirleyicilerinin kopyas ile yeni bir ilikiye tamal

Customer-Rental ilikisinin 2NFe dntrlmesi


Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Customer_No,Property_No zellikler kmesini birincil anahtar olarak kabul ediyoruz

levsel bamllklar
Fd1 Customer_No,Property_No RentStart, RentFinish (tam bamllk) Fd2 Customer_No CName (ksm bamllk) Fd3 Property_No PAdderss,Rent,Owner_No, OName (ksm bamllk) Fd4 Owner_No Owner_name (dolayl bamllk) FD5 Customer_No,RentStart Property_no, PAdderss,RentFinish, Rent, Owner_No,OName (aday anahtara bamllk) Fd6 Property_No,RentStart Customer_no, CName,RentFinish (aday anahtara bamllk)

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Fd1
Fd2 Fd3
Ksm bamllk

Birincil anahtara tam bamlk

Ksm bamllk

Fd4 Fd5 Fd6

d.b

Aday anahtara bamllk Aday anahtara bamllk

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Fd2

Ksm bamllk

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Fd1

Birincil anahtar

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Ksm bamllk

Fd3

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Fd4

Dolayl bamllk

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Fd5
Aday anahtar

Customer-Rental ilikisinin 2NFe dntrlmesi


Birincil anahtar Customer_No Property_no CName PAddress Rent Start Rent Finish Rent Owner_no OName

Fd6
Aday anahtar

Customer-Rental likisinin 2NFe dntrlmesi

Customer_Rental likisinin 2NFe dntrlmesi


Customer_Rental (Customer_No,Property_No, CName, PAddress, RentStart, RentFinish, Rent, Owner_No,OName)
Customer_No (Customer_No,CName) Rental (Customer_No,Property_No, RentStart,RentFinish) Property_Owner(Property_No, PAddress,Rent, Owner_No,OName)

nc Normal Biim (3NF)


Dolayl bamllk kavramna dayanmaktadr:
A, B ve C ilikinin zellikleridir; A B ve B C ise O zaman C Adan B zellii araclyla dolayl bamldr
Staff_No Branch_No Branch_NoBAddress

nc normal biim (3NF)- eer iliki birinci ve ikinci normal biimde ise ve birincil anahtar olmayan zellikler birincil anahtardan dolayl baml deilse , bu iliki nc normal biimdedir

2NFden 3NFe dntrme


Birincil anahtar 2NFde tanmlamal likideki ilevsel bamllklar tanmlamal.

Eer birincil anahtara ilevsel bamllk varsa bu bamll oluturan zellikleri belirleyicilerinin kopyas ile birlikte yeni bir ilikiye tamal

nc Normal Biim
Customer, Rental ve Property_Owner ilikilerindeki ilevsel bamllklar : Customer ilikisi Fd2 Customer_No CName Rental likisi Fd1 Customer_No,Property_No RentStart,RentFinish FD5 Customer_No,RentStart Property_no, RentFinish Fd6 Property_No,RenStart Customer_no, RentFinish Property_Owner likisi Fd3 Property_No Paddress, Rent,Owner_No,OName Fd6 Owner_No OName

Customer ve Rental ilikilerinde dolayl bamllk yoktur. Tm birincil olmayan zellikler birincil anahtara ilevsel bamldr

Property_Owner ilikisinde OName zelliinin dnda tm zellikler birincil anahtara ilevsel bamldr. OName ise ayn zamanda Owner_Noya bamldr (Fd4). 3NFe dntrmek iin dolayl bamllk kaldrlmaldr. Bunu 2 yeni iliki oluturmakla yapa bileriz: Property_for_Rent (Property_No,PAdderss,Rent,Owner_No) Owner (Owner_No,OName)

Property_Owner ilikisinin 3NFe dntrlmesi

Customer_Rental tablosunun 1NFden 3NFe dntrlmesi


Customer_Rental 1NF

Property_Owner

2NF

Customer

Rental

Property_for_rent

Owner

3NF

Customer_Rental tablosunun 3NF ilikilerinin alnmas

Normalletirme basamaklar
Normal olmayan biim (UDF) Birinci normal biim (1NF)
Ksm bamllklar aradan kaldrmal tekrarlanan gruplar silmeli

kinci normal biim (2NF)


Dolayl bamllklar aradan kaldrmal

nc normal biimm (3NF)


Dier ilevsel bamllk sorunlarn aradan kaldmal

Boyce-Codd normal form (BCNF)


okdeerli bamllklar aradan kaldrmal

Fourth normal form (4NF)


Dier sapmalar aradan kaldrmal

Fifth normal form (5NF)

43

rnek: Normal olmayan tablonun normalletirilmesi sreci

Normallememi biim (UNF)

SPAR (Sipari_no, sipari-tarihi, mteri-no, mteri-ad, mteri_adr, (rn-no, rn-ad, rn-fiyat, sip-mikt, toplam)*, genel-toplam

Birinci normal biim (1NF)


Tanm: Tm zellikleri atomik deer ieren iliki birinci normal biimdedir.

Yeni ilikide tekrarlanan gruplar silmeli


Tekrarlanan grup parantez iinde verilmitir

SPAR (Sipari_no, sipari-tarihi, mteri-no, mteri-ad, mteri_adr, (rn-no, rn-ad, rn-fiyat, sip-mikt, toplam)*, genel-toplam

UNFten 1NFe gei En d tekrarlanan grubu silmeli(ve onun ierdii tm yuval tekrarlanan gruplar) ve bu silinmi gruplar ieren yeni iliki oluturmal. Bu yeni ilikiye kaynak ilikinin birincil anahtarnn kopyasn ilave etmeli. Yeni ilikiye ad vermeli Yeni iliki iin birincil anahtar belirlemeli Tekrarlanan gruplar kalmayana dek admlar tekrar etmeli

rnek UNFten 1NFe


SPAR (Sipari_no, sipari-tarihi, mteri-no, mteri-ad, mteri_adr, (rn-no, rn-ad, rn-fiyat, sip-mikt, toplam)*, genel-toplam
1. En d tekrarlanan grubu silmeli(ve onun ierdii tm yuval tekrarlanan gruplar) ve
bu silinen gruplar ieren yeni iliki oluturmal.

SPAR (Sipari_no, sipari-tarihi, mteri-no, mteri-ad, mteri_adr, genel-toplam (rn-no, rn-ad, rn-fiyat, sip-mikt, toplam)
2. Bu yeni ilikiye kaynak ilikinin birincil anahtarnn kopyasn ilave etmeli

Sipari (Sipari_no, sipari-tarihi, mteri-no, mteri-ad, mteri_adr, genel-toplam) (sipari_no, rn-no, rn-ad, rn-fiyat, sip-mikt, toplam)
3. Yeni ilikiye ad vermeli ve birincil anahtar tanmlamal

Sipari_rn (sipari_no, rn-no, rn-ad, rn-fiyat, sip-mikt, toplam)

kinci normal biim (2NF)


Tanm: 1NFte olan ve her bir anahtar olmayan zellii birincil anahtara tam baml olan iliki ikinci normal biimdedir
Yeni ilikide ksm ilevsel bamllklar aradan gtrmeli

1NFten 2NFe gei:


Karmak anahtardan ksm ilevsel baml olan zellikleri karp
yeni ilikiye aktarmal

Bu yeni ilikiye, karlm zellikleri belirleyen zelliin

(zelliklerin) kopyasn ilave etmeli. Bu belirleyici yeni ilikinin birincil anahtar olacak

Yeni ilikiye ad vermeli Kaynak ilikiye yeni ad vermeli

rnek - 1NFten 2NFe


Sipari-rn (sipari-no, rn-no, rn-ad, rn-fiyat, sipari-mikt, toplam)
1. Karmak anahtardan ksm ilevsel baml olan zellikleri karp yeni ilikiye aktarmal

sipari-rn (sipari-no, rn-no, sipari-mikt, toplam )


(rn-ad, rn-fiyat)
2. Bu yeni ilikiye, karlm zellikleri belirleyen zelliin (zelliklerin) kopyasn ilave
etmeli. Bu belirleyici yeni ilikinin birincil anahtar olacak

Sipari-rn (sipari-no, rn-no, sipari-mikt, toplam )

(rn-no,rn-ad, rn-fiyat )
3. Yeni ilikiye ad vermeli ve birincil anahtar belirlemeli

rn (rn-no, rn-ad, rn-fiyat)

nc Normal biim (3NF)


Tanm: 2NFte olan ve her bir anahtar olmayan zellii birincil anahtara dolayl olmadan bal olan iliki nc normal biimdedir Yeni ilikide dolayl bamll aradan gtrmeli

2NFten 3NFe gei admlar

Anahtar olmayan zellie dolayl baml olan zellikleri karmal ve onlar yeni ilikiye aktarmal Bu ilikiye , karlm zellikleri belirleyen zelliin(zelliklerin) kopyasn ilave etmeli. Bu belirleyici yeni ilikinin birincil anahtar olacaktr. Bu ilikiyi adlandrmal Kaynak ilikiye yeni ad vermeli

rnek - 2NFten 3NFe


Sipari (sipari-no, sipari_tarihi, mt-no , mt-ad, mt-adr, genel-toplam)
1. Anahtar olmayan zellie dolayl baml olan zellikleri karmal ve onlar yeni ilikiye aktarmal

Sipari (sipari-no, sipari_tarihi, mt-no, toplam) (mt-ad, mt-adr )


2. Bu ilikiye , karlm zellikleri belirleyen zelliin(zelliklerin) kopyasn ilave etmeli. Bu belirleyici yeni ilikinin birincil anahtar olacaktr.

Sipari (sipari-no, sipari_tarihi, mt-no, toplam) (mt-no, mt-ad, mt-adr )


3. Bu ilikiyi adlandrmal

Mteri (mt-no, mt-ad, mt-adr )

rnek 3NFte bulunan ilikiler


Sipari (sipari-no, sipari_tarihi, mt-no, genel-toplam)

Mteri (mt-no, mt-ad, mt-adr )


rn (rn-no, rn-ad, rn-fiyat) Sipari-rn (sipari-no, rn-no, sipari-miktar, toplam) sipari-no Sipari rn-no rn

mt-no Mteri

sipari-no, rn-no Sipari-rn

You might also like