1
Hng dn thc hin dng chun 3NF
Tác gi: Fred Coulson
Copyright © Fred Coulson 2007 (last revised November 18, 2007)
This tutorial may be freely copied and distributed, providing appropriate
attribution to the author is given.
Inquiries may be directed to http://phlonx.com/contact
http://phlonx.com/resources/nf3/
2
Mc lc
M c l c ........................................................................................................................................................... 2
V b n d ch .................................................................................................................................................... 3
Gi i thi u ........................................................................................................................................................ 4
ơBài toán: Qu n lí Hóa đ n .............................................................................................................................. 5
D ng chu n th 1 (1NF): Không có ph n t /nhóm ph n t l p ................................................................... 7
D ng chu n th 2 (2NF): Không có ph thu c hàm không đ y đ vào khóa chính. .................................... 9
D ng chu n th 2 (2NF): Pha th II ............................................................................................................. 13
D ng chu n th 3 (3NF): Không có ph thu c hàm vào thu c tính không khóa. ....................................... 16
Tham kh o ................................................................................................................................................... 18
3
V bn dch
Ngi dch: Phan Anh V. Lp T12.K49. Trng H Bách Khoa HN.
Email: virces931511@yahoo.com
Website: http://cntt.tv
Xin giành bn dch này tng anh em lp T12.K49 nói riêng, bà con khoa in t Vin
thông K49 trng H Bách Khoa HN nói hi riêng vi li chúc anh em thi tt môn K
thut phn mm (thi li tn 5k y). Vi ai không ôn thi môn KTPM nhng quan tâm
bc u tìm cách chun hóa CSDL ca riêng mình, ây l s tài liu bt u tt
nht.
Theo quan im ca tôi thì ây là mt tutorial rt thú v,  cp n khá nhiu khía cnh
lt léo trong quá trình chun a. Tuy nhiên bn dch nhiu do (tôi ang ôn thi T
tng HCM ln
1
chng hn) nên cht lngn hn ch, mong nhn c góp ý 
hoàn thin dn.
Cm ơn i ca Fred Coulson tt bng ã ng ý cho dch và phát tán tài liu này vi li
h a s host bn dch trên trang ca i ca. Chúc i ca s c kh!e, chp nhiu nh "p
và vit nhiu tutorial hay.
Còn bây gi, nào mình cùng i xe buýt, nào mình cùng i thi nhé …
4
Gii thiu
ây là mt hng d#n rt ngn g$n giành cho nh%ng ngi mi bt u bc vào l&nh
v'c chun hóa cơ s( d% liu. rt khó  din t bng li nêni dùng nhiu nht
th các hình nh, biu .
 trình bày các qui tc chính trong quá trình chun hóa, tôi d'a theo d c) in v
Hóa n (Invoice) chun hóa v dng 3NF (Third Normal Form). Trong quá trình
ó, chúng ta s hình thành Sơ  liên kt th'c th (Entity Relationship Diagram - ERD)
cho cơ s( d% liu.
Chú ý: ây không phi hng d#n chi tit  thit k th'c thi mt cơ s( d% liu
th'c t. Bn không phi làm theo tuyt i nh các hình minh h$a ch* minh h$a
cho vic các d% liu thô c sp xp li nh th nào trong quá trình chun hóa.
th ngi không thích cách ó. Tôi cng không trình bày các vn  liên quan
n im li, hi ca vic chun a. Ai quan tâm n c ch  ó, xin xem danh
sách tham kho ( cui tài liu này.
Thng thì khi ai ó bt tay vào thit k CSDL, trong u anh/cô ta ã mt hình
chun hóa phn nào ri chun hóa mt cách t' nhiên  nhn ra mi quan h ca
d% liu không cn kin th c c bit v toán h$c, tp hp Trong th'c t, nhiu
khi còn phi “phi chun hóa” (de-normalize) CSDL nhng vn  này nm ngoài ni
dung bài vit.
 bt u: Trc tiên, xin nh nm lòng 3 qui tc sau v các dng chun. Nh trc,
bn s hiu sau:
1. Không có phn t/nhóm các phn t lp.
2. Không có ph thuc hàm không y  vào khóa ng c.
3. Không có ph thuc hàm vào các thuc tính không khóa.
5
Bài toán: Qun lí Hóa đn
Cho m#u hóa ơn nh Hình A).
Hình A: Hóa n
ây m#u hóa ơn quen thuc trong kinh doanh. Tt c các thông tin trên ó u
quan tr$ng. Chúng ta a các thông tin ó vào CSDL nh th nào ây?
Ai ó cha bit v CSDL quan h th a các thông tin ó vào spreadsheet trong
Excel nh sau:
Hình A-1: Bng hóa n
Không ti! Bàng này ghi li tt c các ơn hàng c mua b(i tt c các khách hàng.
Nhng iu gì xy ra nu ta mun ly các thông tin ph c tp nh:
Có bao nhiêu 3" Red FreensFreens R Us t trong n+m 2002?