M t b ng quan h là m t c&u trúc b ng n gi n g m c t và hàng như trong các cu n s k toán, dùng di!n t các th c th và quan h trong mô hình th c th quan h cho phù h p v i các b ng d li u c a các c s d li u lo i quan h (Relational Database).
• M$i c t c a b ng quan h tư ng ng v i m t thu c tính c a th c th (ho*c quan h )
• M$i hàng c a b ng quan h tư ng ng v i m t th hi n c a th c th (ho*c th c th quan h ) Không ph i b ng nào c.ng ư c dùng làm b ng quan h ; nó ph i tho mãn các i u ki n sau:
1. Các ô d li u trong b ng u là nguyên t (không ch a nhi u thành ph n nh% h n). M$i ph n t c a b ng là n v d li u nh% nh&t ư c h th ng lưu tr và c ra. Như v y, n u th c th khách hàng có thu c tính “ a ch'” g m “s nhà”, “ ư(ng”, “phư(ng”, “qu n” mà h th ng c n ph i phân bi t trên t#ng thành t này (ví d : m s lư ng khách hàng có trong m t qu n), thì b ng quan h tư ng ng s+ ph i có các trư(ng “s nhà”, “ ư(ng”, “phư(ng”, “qu n” thay vì ch' có 1 trư(ng “ a ch'”.
2. M+i dòng là duy nh t, ngh a là không th có 2 dòng hoàn toàn gi ng nhau trong b ng.
3. M+i c t có 1 tên duy nh t trong b ng quan h phân bi t v i các c t khác trong b ng.
4. M+i b ng quan h ch* có 1 tên duy nh t trong toàn b h th ng.
Tư ng t như ERD, chúng ta không quan tâm n c&u trúc lưu tr v t lý (ki u, lo i, kích c ) c a các b ng quan h . Tuy nhiên, ngoài vi c b o v toàn v3n d li u, chúng ta c n quan tâm h n ch t i a s trùng l*p d li u các dòng, vì (1) trùng l*p d li u thư(ng gây ra hi n tư ng d li u không nh&t quán khi chúng ư c c p nh t (thêm, xóa, s a) và (2) nó s+ gây lãng phí không gian lưu tr v t lý khi cài *t b ng quan h vào trong các c s d li u.
Th t c a các c t trong b ng không quan tr ng. Khóa c a b ng quan h tư ng ng v i khóa c a th c th . Ví d : th c th NHÂNVIÊN g m có các thu c tính Mã_NV, Tên_NV, Phòng, M cLư ng và các th hi n c a nó ư c di!n t thành b ng NHÂNVIÊN như sau: Mã_NV Tên_NV Phòng M cLư ng 100 140 110 190 150 Margaret Simpson Alan Beeton Chris Lucero Lorenzo Davis Susan Martin Maketing Accounting Info. Systems Finance Marketing $ 42,000 $ 52,000 $ 43,000 $ 38,000 $ 38,500
4.1.2Chuy n t< th c th sang b ng quan h
Ví d 1. Th c th NHÂNVIÊN có các thu c tính khóa (Mã_NV), thu c tính nguyên t (Tên_NV), thu c tính t h p ( aCh') và thu c tính a tr (K N ng). Các thu c tính khóa và thu c tính nguyên t ư c chuy n tr c ti p thành các c t c a b ng NHANVIÊN (Hình 4.1).
i v i thu c tính t h p, ch' các thành ph n nguyên t c a thu c tính này ư c chuy n thành các c t c a b ng (Street, City, State, Zip) th%a mãn cho i u ki n 1.
i v i thu c tính a tr “K N ng”, n u ta chuy n tr c ti p nó thành c t K N ng trong b ng quan h thì trong trư(ng h p m t nhân viên có nhi u h n 1 k n ng (như Susan Martin), nó s+ gây trùng l*p d li u trên t&t c các c t còn l i. Vì v y, ngu(i ta s d ng m t b ng quan h th 2 tên KENFNGNV g m 2 c t Mã_NV và K N ng, liên k t v i b ng NHÂNVIÊN b-ng khóa Mã_NV như hình 4.1b. Theo cách này, ch' có giá tr Mã_NV b l*p l i cho m$i k n ng c a m t ngư(i nhân viên trong b ng KENFNGNV. M i tên (ph i ư c v+ rõ) t# Mã_NV c a KENFNGNV ch' n Mã_NV c a NHÂNVIÊN cho bi t r-ng giá tr c a
Mã_NV Tên_NV K N ng … 150 150 … Susan Martin Susan Martin … Interpersonal Negotiation Mã_NV Tên_NV ư(ng T.ph Bang Vùng aCh' K N ng NHÂNVIÊN
Mã_NV Tên_NV ư(ng T.Ph Bang Vùng
Mã_NV K N ng
EMP_SKILLS
NHÂNVIÊN
Hình 4.1 Chuy n th c th sang b ng quan h a) Th c th
Mã_NV trong b ng KENFNGNV ph i ư c l&y t# Mã_NV c a b ng NHÂNVIÊN b o ãm toàn v3n d li u (Mã_NV ư c g i là khóa ngo i c a b ng KENFNGNV).
Ví d 2. Nhóm thu c tính l*p l i (“Repeating group”) là t p g m nhi u thu c tính a tr có liên quan nhau như thông tin v nh ng ngư(i thân c a m t nhân viên g m tên ngư(i thân, ngày sinh c a ngư(i thân, và quan h gi a ngư(i thân v i ngư(i nhân viên. Các thu c tính này t o thành m t nhóm thu c tính l*p l i cho m$i ngư(i thân trong th c th NHÂNVIÊN (tư ng t như thu c tính a tr ) và ư c minh h a như như hình 4.2a.
Tư ng t như thu c tính a tr , nhóm thu c tính l*p ư c di!n t b-ng m t b ng quan h riêng g m có các thu c tính nguyên t trong nhóm k t h p v i khóa chính c a th c th (4.2.b).
4.1.3Chuy n các quan h trong ERD sang b ng quan h
Ví d 3. Quan h b ôi 1:M cho 2 th c th KHÁCHHÀNG và ƠNHÀNG (hình 4.3a). M t khách hàng có th g i nhi u n *t hàng n công ty (0, M). M$i m t n *t hàng mà công ty nh n ư c ph i có ch nhân, t c là nó ph i thu c v m t khách hàng nào ó (1,1).
di!n t cho quan h này b-ng b ng quan h , chúng ta chuy n i hai th c th KHÁCHHÀNG và ƠNHÀNG thành 2 b ng quan h và xác nh vai trò “master/detail” c a 2 b ng: b ng ƠNHÀNG
Mã_KH aCh'_KH Tên_KH KHÁCHHÀNG N p Mã_ H ƠNHÀNG Ngày 1,1 0,M
Hình 4.3a Lư c ERD cho quan h b 2 KHÁCHHÀNG và ƠNHÀNG Mã_NV NHÂNVIÊN Tên_nt, NgàySinh_nt, QuanH
NGƯ+ITHÂN Mã_NV Tên NgàySinh QuanH
Mã_NV Tên_NV ư(ng T.Ph Bang Vùng
NHÂNVIÊN
Hình 4.2b B ng quan h di!n t nhóm thu c tính l*p l i
mô t chi ti t *t hàng (“detail”) cho khách hàng (“master”); nó cho bi t m$i n *t hàng trong b ng ƠNHÀNG thu c v khách hàng nào trong b ng KHÁCHHÀNG. Do ó, khóa Mã_KH c a b ng KHÁCHHÀNG ư c g"n thêm vào b ng ƠNHÀNG liên k t 2 b ng (Hình 4.3b).
Ví d 4. Quan h b ôi N:M gi a NGUYÊNLIBU và NHÀCUNGC8P
M t nhà cung c&p nguyên li u có th cung c&p nhi u lo i nguyên li u khác nhau (1,N) và m$i m t lo i nguyên li u có th ư c cung c&p t# nhi u nhà cung c&p (1,M). M$i m t nhà cung c&p cho m t lo i nguyên v t li u s+ quy nh giá bán i v i nguyên li u ó.
Khác v i quan h b ôi 1:N, quan h b ôi N:M c n có b ng quan h CUNGC8P i di n cho quan h CUNGC8P m t cách công khai.
tránh trư(ng h p d li u b l*p l i trên m$i nguyên li u ư c cung c&p (g m GiáG c, nV o) và m$i nhà cung c&p (Tên_NCC, aCh'_NCC), b ng quan h CUNGC8P s d ng 2 khóa Mã_NL và Mã_NCC l&y t# 2 b ng NGUYÊNLIBU và NHÀCUNGC8P. Các khóa này ư c dùng liên k t v i các b ng tư ng ng, và ư c v+ như trong hình 4.4b.
Theo cách này, các quan h b ba c.ng có th ư c chuy n i tư ng t .
Mã_KH Tên_KH aCh'_KH KHÁCHHÀNG (1) Mã_KH Mã_ H Ngày ƠNHÀNG (M)
Hình 4.3b B ng quan h mô t cho quan h KHÁCHHÀNG - ƠNHÀNG
Hình 4.4a ERD di!n t quan h N:M gi a 2 th c th MATERIALS và VENDORS
Mã_NL GiáG c nV o NGUYÊNLIBU C.C8P Mã_NCC NHÀCUNGC8P Tên_NCC 1,N 1,M aCh'_NCC GiáBán
Ví d 5. Quan h quy 1:N trên th c th NHÂNVIÊN (hình 4.5a): M t nhân viên có th là ngư(i qu n lý nhi u nhân viên khác ho*c không qu n lý ai, và m t nhân viên b qu n lý (tr c ti p) b i 1 ngư(i.
Các quan h quy 1:N như trên có th bi u di!n b-ng m t b ng quan h có thêm khóa ngo i (Ng_Qu nLý) l&y t# khóa chính c a th c th (Mã_NV) như hình 4.5b. Ng_Qu nLý g"n kèm v i m$i nhân viên ch' ra r-ng m$i ngư(i nhân viên (có mã s Mã_NV) có m t ngư(i qu n lý (có mã s Ng_Qu nLý).
Mã_NV TênNV Ng.Sinh Ng_Qu nLý
001 … … 100
002 … … 100
003 … … 110
004 … … None
Ví d 6. Quan h quy N:M trên th c th V9TT5 (hình 4.6a). Quan h này có tên là “Bill of Material” mô t cho các thành ph n bên trong m t thành ph n khác, ví d : m t s n ph)m là bánh mì ư c làm t# b t, mu i, b ; bánh Flan ư c làm t# ư(ng, s a, tr ng; bánh bông lan có b t, ư(ng, s a, tr ng,… c nguyên li u l,n s n ph)m u là i tư ng qu n lý trong kho c a nhà hàng, m$i i tư ng ư c g i chung là m t “V ttư”. M$i nguyên v t li u có th ư c dùng cho nhi u thành ph n và m$i thành ph n s d ng nhi u nguyên li u khác nhau, do ó quan h trên th c th V9TT5 là quan h N:M. Mã_NL GiáG c nV o NGUYÊNLIBU (1) Mã_NCC Tên_NCC aCh'_NCC NHÀCUNGC8P (1) Mã_NL Mã_NCC GiáBán CUNGC8P (M) (N)
Hình 4.4b. B ng quan h di!n t quan h N:M trong ví d 4
Hình 4.5a Quan h quy 1:N c a ví d 5
Hình 4.5b B ng quan h cho quan h quy 1:N Mã_NV
TênNV NgàySinh
Qu nLý NHÂNVIÊN
1 0, N
Mã_NV TênNV NgàySinh Ng_Qu nLý (1) (N)
Chúng ta c n t o ra m t b ng quan h THÀNHPHGN di!n t m i quan h thành ph n c a 2 món b&t k trong kho. B ng THÀNHPHGN có 2 khóa ngo i: Mã_VT và Mã_TP u ư c l&y t# Mã_VT c a b ng V9TT5. Mã_TP di!n t các thành ph n c a v t tư chính. M t Mã_TP có th liên k t v i nhi u Mã_VT trong b ng THÀNHPHGN. Mã_VT Mã_TP S Lư ng Bánh Flan S a 2 Bánh Flan Tr ng 2 B. Bông lan S a 1 B. Bông lan Tr ng 1 B. Bông lan B t 2 4.1.4Ràng bu c toàn vCn d" li u
Các ràng bu c toàn v3n d li u là nh ng i u ki n ki!m tra trên d li u khi chúng ư c c p nh t trong h th ng, d li u không b “hư h%ng” do thao tác c p nh t.
Ràng bu c trên mi n giá tr .M$i thu c tính c a th c th ư c quy nh m t mi n gía tr h p l . Các giá tr n-m ngoài mi n giá tr này là các giá tr vô ngh a i v i th c th , c n ph i lo i b%. Ví d : thu c tính Lo i-H c a nhân viên ch' có th là “S” (Salary based payment, tr lư ng), ho*c “H” (Hourly based payment, tr công theo gi().
Ràng bu c trên liên k t. Vì d li u trong h th ng ư c t ch c liên k t v i nhau (như các b ng quan h và quan h gi a các b ng) theo m t logic ư c thi t k s1n, n u các liên k t này b m&t thì các th c th ã ư c mô hình hóa s+ tr thành r(i r c, không mô t ư c y cho th gi i th c. Ràng bu c toàn v3n cho các liên k t bao g m:
• Không có khóa chính nào b r$ng. Khóa chính c a b ng quan h ph i có giá tr khác nhau, liên k t d li u các b ng có quan h v i nhau.
• Không gây trùng l*p d li u. N u d li u l*p l i 10 l n trên 10 dòng thì khi c n s a d li u, h th ng ph i c p nh t 10 dòng này. i u này thư(ng gây ra s không nh&t quán trên d li u, t n công th c hi n và t n không gian lưu tr .
• Không làm hư d li u liên quan khi thêm, xóa, s a d li u. Ví d : trong ví d 3, n u xóa m t khách hàng trong b ng KHÁCHHÀNG thì các n *t hàng c a khách hàng này trong b ng ƠNHÀNG s+ b vô th#a nh n (rác). Khi thêm m t hàng vào b ng thì t&t c các ô ch a d li u c a nó c ng ph i có d li u (ho*c mang giá tr m*c nh có ý ngh a trong h th ng).
Hình 4.6a Quan h quy N:M c a ví d 6 Mã_VT TênVT nGiá Ch a V9TT5 0,M 0, N S Lư ng V9TT5
Item_ID Tên_VT nGiá
(M) (1) (N) Mã_VT Mã_TP S Lu ng THÀNHPHGN (1)
4.1.5Chu-n hóa b ng quan h
Là x lý phân rã các b ng quan h t o ra các b ng quan h có c&u trúc t t (Well Structured Relation): là b ng quan h ch' ch a t i thi u d li u dư th#a và ch' cho phép thêm, xóa, s a d li u c a b ng m t cách có quy t"c th%a mãn các ràng bu c toàn v3n d li u.
Vi c chu)n hóa các b ng d a trên khái ni m ph thu c hàm (Functional Dependency). M t thu c tính B ư c g i là ph thu c hàm vào thu c tính A n u v i m$i th hi n trong b ng, giá tr c a thu c tính A xác nh duy nh&t (theo logic nào ó, không ch' là tính toán) giá tr c a thu c tính B. Ví d : Trong b ng quan h NHÂNVIÊN (Mã_NV, Tên_NV, M cLư ng), vì giá tr c a tên nhân viên (Tên_NV) và lu ng nhân viên (M cLư ng) g"n v i t#ng nhân viên (xác nh b i Mã_NV) nên ta nói r-ng Tên_NV và M cLư ng ph thu c hàm vào Mã_NV. M t thu c tính có th ph thu c hàm vào c hai thu c tính khác, hay nhi u h n n a. Ví d trong hình 4.4b, n giá c a nguyên li u là m t thu c tính ph thu c hàm vào c mã s c a nguyên li u l,n mã s c a nhà cung c&p. Ph thu c hàm này ư c ký hi u là Mã_NL, Mã_NCC H nGiá. Ví d trên cho chúng ta m t quy t"c: thu c tính không khóa
ph thu c hàm vào khóa.
D ng chu-n 1 (The First Normal Form, 1NF). B ng quan h thu c d ng chu)n 1 là b ng quan h không ch a nhóm (thu c tính/c t) b l*p l i (repeated group): Không có c t nào ư c thi t k lưu nhi u giá tr trong m t ô, và không có nhi u c t mang m t ý ngh a như nhau (ví d : S T1,S T2,..). Ví d b ng NHÂNVIÊN sau ây là m t b ng quan h d ng chu)n 1:
Mã_NV Tên_NV Phòng M cL ng MônH&c NgàyHoànT t
100 Magaret Simpson Marketing 42,000 SPSS 19/06/1999 100 Magaret Simpson Marketing 42,000 Surveys 07/10/1999 150 Susan Martin Marketing 38,500 SPSS 19/06/1999 150 Susan Martin Marketing 38,500 TQM 12/08/1999 190 Lorenzo Davis Finance 38,000 Investments 07/05/1999
B ng quan h thu c d ng chu)n 1 v,n có nhi u n i dung d li u b trùng l*p gi a các dòng. Trong ví d trên, d li u trong các c t Mã_NV, Tên_NV, Phòng và M cLư ng b l*p l i khi m t nhân viên h c nhi u h n 1 môn (như Magaret Simpson h c 2 môn SPSS và Surveys).
D ng chu-n 2 (The Second Normal Form, 2NF). B ng quan h thu c d ng chu)n 2 là b ng quan h thu c d ng chu)n 1, và m i thu c tính không ph i là khóa thì ph thu c hàm y vào toàn b khóa chính (không có thu c tính không khóa ph thu c hàm vào ch' m t ph n c a khóa chính). Như v y, b ng có khóa chính ch' ch a m t thu c tính nguyên t , ho*c b ng không có thu c tính không khóa,
u d ng chu)n 2.
Trong b ng NHÂNVIÊN trên, các thu c tính không ph i là khóa như Tên_NV, Phòng và M cLư ng ph thu c hàm vào Mã_NV mà không ph thu c hàm vào MônH c, trong khi ó NgàyHoànT&t môn h c ph thu c hàm y vào Mã_NV, MônH c
chu)n hóa b ng d ng chu)n 1 thành d ng chu)n 2, chúng ta th c hi n 3 bu c sau:
1) Thi t l p b ng quan h ch' ch a các thu c tính không khóa ph thu c hàm y vào khóa chính. Trong b ng NHÂNVIÊN ch' có thu c tính NgàyHoànT&t ph thu c hàm y vào khóa chính, như v y ta có b ng quan h R1 (Mã_NV, MônH c, NgàyHoànT&t) là m t b ng d ng chu)n 2. 2) Thi t l p (các) b ng quan h ch' ch a các thu c tính không khóa ph thu c hàm vào t#ng ph n
c a khóa. Trong b ng NHÂNVIÊN có các thu c tính không khóa Tên_NV, Phòng và M cLư ng ch' ph thu c hàm vào Mã_NV, như v y ta thi t l p ư c b ng quan h R2(Mã_NV, Tên_NV, Phòng, M cLư ng) là b ng thu c d ng chu)n 2.
3) Thi t l p khóa liên k t gi a các b ng m i. B ng R1 có ch a khóa Mã_NV, MônH c, trong khi b ng R2 ch' có khóa nguyên t Mã_NV, do ó khóa chính Mã_NV c a b ng R2 s+ ư c dùng làm khóa ngo i cho b ng R1 (giá tr Mã_NV c a R1 ư c l&y t# Mã_NV c a R2).
T# 3 bư c trên ta có b ng quan h ư c v+ như hình bên. Các b ng R1 và R2 u d ng chu)n 2.
D ng chu-n 3 (The Third Normal Form, 3NF). B ng quan h thu c d ng chu)n 3 là b ng quan h thu c d ng chu)n 2, và nó không ch a ph thu c hàm b"t c u (Transitive Dependency). N u m t thu c tính C ph thu c hàm vào thu c tính B, mà thu c tính B l i ph thu c hàm vào thu c tính A thì ta nói gi a A, B và C có ph thu c hàm b"c c u, ký hi u là A H B H C.
Ví d , ta hãy xem b ng quan h BÁNHÀNG như sau: