Thông tin tài liệu:
Tham khảo tài liệu 'hướng dẫn thực hiện dạng chuẩn 3nf', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
HƯỚNG DẪN THỰC HIỆN DẠNG CHUẨN 3NF
1
Hư ng d n th c hi n d ng chu n 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
M cl c
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 b n d ch
Ngư i d ch: Phan Anh Vũ. L p ĐT12.K49. Trư ng ĐH Bách Khoa HN.
Email: virces931511@yahoo.com
Website: http://cntt.tv
Xin giành b n d ch này t ng anh em l p ĐT12.K49 nói riêng, bà con khoa Đi n t Vi n
thông K49 trư ng ĐH Bách Khoa HN nói hơi riêng v i l i chúc anh em thi t t môn K
thu t ph n m m (thi l i t n 5k đ y). V i ai không ôn thi môn KTPM nhưng quan tâm và
bư c đ u tìm cách chu n hóa CSDL c a riêng mình, đây có l s là tài li u b t đ u t t
nh t.
Theo quan đi m c a tôi thì đây là m t tutorial r t thú v , đ c p đ n khá nhi u khía c nh
l t léo trong quá trình chu n hóa. Tuy nhiên b n d ch vì nhi u lí do (tôi đang ôn thi Tư
tư ng HCM l n 1 ch ng h n) nên ch t lư ng còn h n ch , mong nh n đư c góp ý đ
hoàn thi n d n.
C m ơn đ i ca Fred Coulson t t b ng đã đ ng ý cho d ch và phát tán tài li u này v i l i
h a s host b n d ch trên trang c a đ i ca. Chúc đ i ca s c kh e, ch p nhi u nh đ p
và vi t nhi u 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
Gi i thi u
Đây là m t hư ng d n r t ng n g n giành cho nh ng ngư i m i b t đ u bư c vào lĩnh
v c chu n hóa cơ s d li u. Vì r t khó đ di n t b ng l i nên tôi dùng nhi u nh t có
th các hình nh, bi u đ .
Đ trình bày các qui t c chính trong quá trình chu n hóa, tôi d a theo ví d c đi n v
Hóa đơn (Invoice) và chu n hóa nó v d ng 3NF (Third Normal Form). Trong quá trình
đó, chúng ta s hình thành Sơ đ liên k t th c th (Entity Relationship Diagram - ERD)
cho cơ s d li u.
Chú ý: Đây không ph i là hư ng d n chi ti t đ thi t k và th c thi m t cơ s d li u
th c t . B n không ph i làm theo tuy t đ i như các hình minh h a vì nó ch minh h a
cho vi c các d li u thô đư c s p x p l i như th nào trong quá trình chu n hóa.
Có th có ngư i không thích cách đó. Tôi cũng không trình bày các v n đ liên quan
đ n đi m l i, h i c a vi c chu n hóa. Ai quan tâm đ n các ch đ đó, xin xem danh
sách tham kh o cu i tài li u này.
Thư ng thì khi ai đó b t tay vào thi t k CSDL, trong đ u anh/cô ta đã có m t mô hình
chu n hóa ph n nào r i – chu n hóa là m t cách t nhiên đ nh n ra m i quan h c a
d li u và không c n ki n th c đ c bi t v toán h c, t p h p … Trong th c t , nhi u
khi còn ph i “phi chu n hóa” (de-normalize) CSDL – nhưng v n đ này n m ngoài n i
dung bài vi t.
Đ b t đ u: Trư c tiên, xin nh n m lòng 3 qui t c sau v các d ng chu n. Nh trư c,
b n s hi u sau:
1. Không có ph n t /nhóm các ph n t l p.
2. Không có ph thu c hàm không đ y đ vào khóa ng c .
3. Không có ph thu c hàm vào các thu c tính không khóa.
5
Bài toán: Qu n lí Hóa đơn
Cho m u hóa đơn như Hình A).
Hình A: Hóa đơn
Đây là m u hóa đơn quen thu c trong kinh doanh. T t 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 đó chưa bi t v CSDL quan h có th đưa các thông tin đó vào spreadsheet trong
Excel như sau:
Hình A-1: B ng hóa đơn
Không t i! Bàng này ghi l i t t c các đơn hàng đư c mua b i t t c các khách hàng.
Nhưng đi u gì x y ra n u ta mu n l y các thông tin ph c t p như:
• Có bao nhiêu 3 Red Freens mà Freens R Us đ t trong năm 2002?
6
T ng s 56 Blue Freens đư c bán Texas?
•
Nh ng s n ph m nào đư c bán vào ngày 14 tháng 7 năm 2003?
•
B ng trên càng nhi u thông tin thì vi c tr l i các câu h i trên càng khó khăn. Trong n
l c đưa d li u v tr ng thái mong mu n đ tr l i các câu h i ki u như trên, chúng ta
đang b t đ u vi c chu n hóa CSDL (normalization).
7
D ng chu n th 1 (1NF): Không có ph n t /nhóm ph n t l p
Nhìn vào hàng 2, 3, 4 c a b ng trong Hình A-1, ta th y t t c các d li u liên quan đ n
m t hóa đơn (Invoice #125). Theo thu t ng CSDL, nhóm các hàng này đư c g i là
m t hàng đơn CSDL (a single database row). M t hàng đơn CSDL đây đư c t o b i
ba hàng trong b ng Hình A-1.
D ng chu n 1NF mu n chúng ta tri t tiêu các ph n t l p. Chúng là các ph n t nào?
M t l n n a, đ ý hóa đơn đ u tiên (#125) trong Hình A-1. Ô H2, H3, và H4 ch a m t
danh sách các s Item ID. Đ ...