Professional Documents
Culture Documents
MỤC LỤC
----oOo----
Chương 1 .
M ÔHÌNH QUAN H Ệ
Trướckhi m áy tính h ó a cơ s ở d ữ liệu được g iớ i thiệu, d ữ liệu được lưu trữ theo kiểu điện t ử thànhnhiều tập tin riêng
biệt s ử dụng h ệ tậ p tin (t ừ đây v ề sau ta gọi h ệ tậ p tin theo lối cũ) . Nhữngtập
tin n ày được x ử l ý bằng c á c ngôn n g ữ thế h ệ th ứ ba như COBOL, FORTRAN, PASCAL v à ngay c ả
BASIC đ ể tạo ra c á c giải pháp cho c á c vấn đ ề c ủ a doanh nghiệp. M ỗi ứ n g dụng, chẳng hạn như h ệ tính lương,
h ệ kho hay h ệ thống k ế toán s ẽ c ó m ột tập c á c tập tin riêng chứ a d ữ liệu riêng. C ác ứ n gdụng như vậy tạo ra ba vấn
đ ề sau:
- C ó sự liên kết chặt ch ẽ giữa cấu trú c luận l ý v à cấu trú c v ật lý của cá c tập tin v à chương trình ứ n g dụng
khai thác chúng. Điều nà y khiến việc tạo nên c á c ứ n g dụng n ày rất k h ókhăn,tố n nhiều th ờ igian v à
do vậy m à tố n kém trong b ảo trì h ệ thống.
- C ó sự dư thừa d ữ liệu rấ t lớ n qua việc trùng lắ p cá c tậ p tin trong cá c ứ n g dụng khác nhau.
Điều n ày tạo ra nhữngvấn đ ề như: d ữ liệu thiếu nhất quán,không gian đĩa b ị lãng phí, th ờ igian b ảo trì v à
lưu phòng h ờ cá c tập tin gia tăng, vấn đ ề v ề quản trị như không c h ú trọng b ảo m ật v à tổ chứ cd ữ liệu thiếu
thốngnhất.M ộtví dụ điển hình v ề sự trùnglắp d ữ liệu là :
H ệ quảnlý nguồnnhân lực bao gồm ba h ệ chính:
1. H ệ lương, h ệ n ày duy trì ngàycôngv à lương cho tấ t c ả nhân viên.
2. H ệ nhân sự, h ệ n ày duy trì lý lịch c á nhân, d ữ liệu v ề tổ chức,công việc đ ào tạo v à
v ị trí thăngtiến.
3. H ệ hưu, h ệ n ày quản trị c á c qui tắc liên quan đến nghỉ hưu, loại nghỉ hưu. Chi tiết v ề hưu c ủ a từ ng
nhân viên.
V ấn đ ề phứctạp là H ệ lương thôngthườngđược quản l ý b ở i phòngtà i chánh,trong khi H ệ nhân sự v à H ệ hưu
được quảnlý b ở iphòngtổ chức.R õ ràng, c ó nhiều d ữ liệu v ề nhân viên
là chung cho c ả ba hệ. Thườngn h ữ n gh ệ n ày thực hiện v à g iữ gìn riêng biệt v à chúng tạo
sự trùngd ữ liệu nhân viên m à chúngdùng.
- N gườis ử dụng c ó ít k hả năng khai th áctrực tiếp d ữ liệu.
II CƠ S Ở D Ữ L IỆ U V À H Ệ Q U Ả N TR Ị CƠ S Ở D Ữ L IỆ U (DATABASE AND DATABASE
MANAGEMENT SYSTEM)
K hở iđầu, sự g iớ ithiệu CSDL v à HQTCSDL nhằm giải quyết c á c vấn đ ề củ a h ệ thôngtin dựa trên
c á c tập tin theo lố i c ũ (C1.I). Điều n ày tạo ra việc phát triển trên hai mươi lăm năm qua m ột h ệ
CSDL quan h ệ thương mại xuất hiện cuối nhữngnăm thập niên 70 và c á c năm đầu củ a thập niên
80. Trướckhi xem x é t CSDL v à h ệ QTCSDLQH giảiquyếtm ộtv à i vấn đ ề c ủ a h ệ thôngtin theo lố i
c ũ như th ế nà o chúngta cần làm r õ v à ikháiniệm .
1 CSDL l à gì?
M ột cơ s ở d ữ liệu c ó thể định nghĩa tạm như sau: m ộ t ch ỗ chứ a c ó tổ ch ứ c tậ p hợp c á c tập tin d ữ liệu c ó tương quan,
c á c m ẫu tin v à cá c cột.
N gàynay CSDL tồ n tại trong m ỗ iứ n gdụng thôngdụng, ví dụ:
- H ệ kho v à kiểm kê.
- H ệ đ ặ t ch ỗ m áy bay
- H ệ nguồnnhân lực.
- h ệ dịch vụ côngcộngnhư cấp nước,điện,khí đ ố t
- Đ iều khiển q uá trình chế tạo v à sả n xuất
2 H ệ q u ả ntrị CSDL
M ộth ệ quảntrị CSDL (HQTCSDL) là :
- m ộ t tập cá c phần m ềm quản l ý CSDL v à cung cấp c á c dịch vụ x ử l ý CSDL cho c á c nhữngngườiphát triển
ứ n gdụng v à ngườidùngcuối.
- HQTCSDL cung cấp m ộ tgiao diện giữangườis ử dụng v à d ữ liệu.
- HQTCSDL biến đ ổ iCSDL v ật l ý thànhCSDL logic.
C ách ệ HQTCSDLQH ngàynay được xây dựng dựa v ào l ý thuyếtcủ a m ô hình quan hệ.
Mục đích củ a m ôn học n ày g iú pcho sinh viên nắm được kiến trú ctổng quát v ề m ô hình quan h ệ v à
áp dụng n ó đ ể lập m ô hình d ữ liệu quan h ệ c ó hiệu q uả trong lưu tr ữ v à khai thác.
Chẳnghạn v ớ i b à i toán quản lý điểm thi củ a sinh viên; nếu lưu trữ d ữ liệu theo dạng bảng v ớ i cá c
cộ t MASV, HOTEN, MONHOC,TENKHOA, DIEMTHI thì cá c giá trị c ủ a c á c c ộ t HOTEN, MONHOC,
TENKHOA s ẽ b ị trùnglắp.S ự trùnglắp nà y gây nên m ộ ts ố vấn đề:
- Ta khôngthể lưu trữ m ộ tsinh viên m ớ ikhi sinh viên n ày chưa c ó điểm thi
- Khi cần sử a đ ổ i họ tên sinh viên thì ta phải sử a tấ t c ả cá c dòng c ó liên quan đến sinh viên này.Điều n ày d ễ
gây ra tình trạng d ữ liệu thiếu nhấtquán.
- Khi c ó nhu cầu x o á điểm thi củ a m ộ tsinh viên kéo theo k h ả năng x o á luôn họ tên sinh viên đ ó .
Việc lưu trữ d ữ liệu như trên khôngđúngv ớ im ô hình quan hệ. Đ ể lưu trữ đúngv ớ im ô hình quan h ệ
ta phải thay MONHOC bằng MAMH, thay TENKHOA bằng MAKHOA, tách m ột bảng d ữ liệu lớ n đ ó ra thànhnhiều
bảngcon, như m ô hình dưới.
MASV MAMH MAKHOA DIEMTHI MASV HOTEN
99001 CSDL CNTT 3.0 99001 TRAN DAN THU
99002 CSDL CNTT 8.0 99002 NGUYEN HA DA THAO
99001 THVP CNTT 6.0 99005 LE THANH TRUNG
99005 THVP AV 5.0
Nhiều lược đ ồ quan h ệ cùngnằm trong m ộth ệ thốngquảnl ý được gọi là m ộtlược đ ồ cơ s ở d ữ liệ u.
Ví dụ lược đ ồ cơ s ở d ữ liệu đ ể quản l ý điểm sinh viên c ó thể gồm cá c lược đ ồ quan h ệ sau: Sv(MASV,
HOSV,TENSV, NU, NGAYSINH, MALOP, TINH, HOCBONG)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Kh(MAKHOA,TENKHOA, SOCBGD)
Mh(MAMH, TENMH, SOTIET)
Kq(MASV, MAMH, DIEMTHI)
Phần g iảithích c á c thuộctính:
MASV M ã sinh viên
HOTEN T ên sinh viên
NU Nữ
NGAYSINH ngàysinh
LOP lớ p
TENLOP tên lớ p
SISO s ỉ s ố lớ p
MAKHOA m ã khoa
HOCBONG học bổng
TINH tỉnh
TENKHOA tên khoa
SOCBGD s ố cán b ộ giảngdạy
MAMH m ã m ôn học
TENMH tên m ôn học
SOTIET số tiết
DIEMTHI điểm thi
iii Quan H ệ (Relation)
Sự th ể hiện củ a lược đ ồ quan h ệ Q ở m ộ t th ờ iđiểm n ào đ ó được gọi là quan h ệ, rõ ràng là trên m ộ tlược đ ồ quan h ệ c ó th ể
định nghĩa rất nhiều quan hệ. Thườngta dùngcác k ý hiệu như R, S, Q đ ể c hỉ
c á c lược đ ồ quan hệ, c ò nquan h ệ được định nghĩa trên n ó tương ứ n gđược k ý hiệu là là r, s, q.
iv B ộ (Tuple)
Bộ là tậ p m ỗ ig iá trị liên quan c ủ a tất c ả c á c thuộctính c ủ a m ộ tlược đ ồ quan hệ.Chẳnghạn quan
h ệ sau c ó 2 b ộ .
MASV HOTEN NU NGAYSINH MALOP TINH HOCBONG
99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000
99002 NGUYEN HA DA THAO TRUE 25-04-1986 TCTH29C TPHCM 120000
Thườngngườita dùngcác c h ữ c á i thường(như t,p,q,… )đ ể biểu diễn cá c b ộ . Chẳnghạn đ ể n ó ib ộ
t thuộcquan h ệ r ta viết: t ∈ r.
V ề trực quan thì m ỗi quan h ệ xem như m ột bảng, trong đ ó m ỗi c ộ t l à thông tin v ề m ộ t thuộc tính, m ỗ i dòng là
thông tin v ề m ộ t b ộ . Chẳng hạn sau đây là cá c thể hiện củ a cá c quan h ệ định nghĩa trên lược đ ồ cơ s ở d ữ liệu quản
l ý sinh viên ở trên:
rSv
MASV HOTEN NU NGAYSINH MALOP TINH HOCBONG
99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000
99002 NGUYEN HA DA THAO TRUE 25-04-1986 CĐTH2B TPHCM 120000
99003 PHAM ANH HUY FALSE 16-08-1977 CĐTH2B BAC LIEU
99004 NGUYEN NGOC THUAN FALSE 24-12-1980 CĐTH2B CA MAU
99005 LE THANH TRUNG FALSE 20-11-1978 CĐAV1 CA MAU 120000
99006 NGUYEN HONG VAN FALSE 19-09-1979 CĐAV1 SOC TRANG
99007 VU THI LOAN TRUE 15-03-1975 CĐAV1 CA MAU
99008 TRUONG KIM QUANG FALSE 15-05-1975 CĐTH2B HA NOI
99009 TON THAT QUYEN FALSE 26-06-1976 CĐTH2B VUNG TAU 60000
99010 HA VAN LONG FALSE 14-04-1973 CĐAV1 BAC LIEU
99011 BUI VAN ANH FALSE 22-12-1972 CĐAV1 AN GIANG
99012 LE HUU CHI FALSE 28-08-1977 CĐĐT2 CAN THO 60000
99013 VU THANH CONG FALSE 29-03-1979 CĐTH2B KIEN GIANG 60000
99014 TRAN QUANG CUONG FALSE 30-05-1981 CĐĐT2 DONG THAP 120000
99015 PHAM VAN HAI FALSE 30-06-1976 CĐĐT2 CA MAU
99016 HUYNH THANH HOANG FALSE 29-07-1982 CĐĐT2 TPHCM 80000
99017 TRAN MINH LAM FALSE 21-08-1977 CĐTH2B TRA VINH
99018 PHAN VAN SANG FALSE 19-05-1979 CĐDL1 DONG THAP 120000
99019 PHAM THI HUYEN FALSE 16-06-1982 CĐDL1 CAN THO 120000
99020 NGUYEN THI NGAN TRUE 11-11-1981 CĐTH2B CA MAU 120000
99021 PHAM TAN QUANG FALSE 01-01-1980 CĐDL1 CA MAU
99022 TRAN PHUOC QUYEN FALSE 12-12-1979 CĐTH2B BAC LIEU 60000
99023 LE THI THANH VAN TRUE 11-11-1980 CĐDL1 TPHCM 120000
rKh rMh
MAKHOA TENKHOA SOCBGD MAMH TENMH SOTIET
CNTT CONG NGHE THONG TIN 60 CSDL CO SO DU LIEU 90
AV ANH VAN 60 FOX FOXPRO 120
HOA HOA CHAT 20 THVP TIN HOC VAN PHONG 90
MÁY TÍNH MOI TRUONG 10 AVTH ANH VAN TIN HOC 60
XD XAY DUNG 10 KTS KY THUAT SO 60
DL DU LICH 5 CTDL CAU TRUC DU LIEU 60
rKq
MASV MAMH DIEMTHI
99001 CSDL 3.0 99006 MANG 6.0 99016 KTS 7.0
99002 CSDL 8.0 99007 MANG 2.0 99017 KTS 7.0
99003 CSDL 8.0 99008 MANG 7.0 99017 FOX 4.0
99004 CSDL 3.0 99009 MANG 3.0 99017 MANG 8.0
99005 CSDL 2.0 99010 TTNT 5.0 99017 CSDL 8.0
99001 THVP 6.0 99011 FOX 4.0 99017 TTNT 6.0
99002 THVP 3.0 99012 FOX 5.0 99002 MANG 8.0
99003 THVP 8.0 99013 FOX 7.0 99004 MANG 4.0
99004 THVP 9.0 99014 VB 7.0 99018 TTNT 7.0
99005 THVP 5.0 99015 VB 3.0 99019 CSDL 8.0
rLop
MALOP TENLOP SISO MAKHOA
CĐTH2B CAO Đ Ẳ N GTIN HỌC K H O Á2000B 60 cntt
TCTH29C TRUNG CẤP TIN H Ọ CK H O Á29 C 121 cntt
CĐAV1 CAO Đ Ẳ N GANH V Ă N1 120 av
CĐĐT2 CAO Đ Ẳ N GĐ IỆ NT Ử 2 80 đt
CĐDL1 CAO Đ Ẳ N GDU LỊCH 1 42 dl
v K hóa(Key, Candidate Key):
+
Cho lược đ ồ quan h ệ R, S⊆R . S được gọi là m ộ t siê u khóa (superkey) củ a lược đ ồ quan h ệ R nếu
v ớ ihai b ộ tù y ý trong quan h ệ R thì g iá trị củ a c á c thuộctính trong S l à khácnhau.
Một lược đ ồ quan h ệ c ó thể c ó nhiều siêu khoá.Siêu khoáchứa ít thuộc tính nhất được gọi l à k h ó a
c h ỉ định, trong trường hợp lược đ ồ quan h ệ c ó nhiều khóa c h ỉ định, thì khóa được chọn đ ể c à i đ ặtgọi l à k h ó achính
(Primary key) (trong c á c phần sau khóachính được gọi tắ t là khóa)
C ác thuộc tính tham gia v ào m ột khóa được gọi l à th u ộctính kh óa (prime key), ngược lại
được gọi là th u ộctính khôngkh óa(non prime key).
M ột thuộc tính được gọi l à kh óangoại nếu n ó l à thuộc tính củ a m ột lược đ ồ quan h ệ n ày nhưng lại
l à khóa chính củ a lược đ ồ quan h ệ khác.Ví dụ:
Ta h ãy xem lược đ ồ quan h ệ sau:
Xe(SODANGBO,QUICACH, INHDANG,MAUSAC,SOSUON,SOMAY,MAXE,QUOCGIA)
Siêu khóa:(SOSUON,QUICACH),...
K hóac h ỉđịnh: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY), (MAXE)
K hóachính: MAXE
Thuộctính khóa:SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE
Thuộctính khôngkhóa:QUICACH, HINHDANG, MAUSAC
K hóa củ a Sv l à (MASV), Khoá c ủ a Mh là (MAMH), khoá c ủ a Kh l à (MAKHOA), khóa củ a Kq l à
(MASV,MAMH) khóacủ a Lop l à MALOP, trong Lop thuộctính MAKHOA l à khóangoại
3 C á cph éptoá ntậ p hợp (set operation )
i P h éphợp (Union operation )
Cho hai lược đ ồ quan h ệ Q1 v à Q2 c ó cùng tập thuộc tính {A1,A2,..,An}. r1 v à r2 lần lượt là hai quan h ệ trên
Q1 v à Q2. Phép hợp c ủ a hai lược đ ồ quan h ệ Q1 v à Q2 s ẽ tạo thành m ộ t lược đ ồ quan
h ệ Q3. Q3 được x ác định như sau:
Q3+= {A1,A2,..,An}
r3= r1+r2 = {t | t ∈ r1 hoặc t ∈ r2}
Ví dụ:
r1 r2 r3 = r1 + r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0
99002 CTDL 2.0 99001 TTNT 5.0 99002 CTDL 2.0
99003 MANG 8.0 99003 CSDL 6.0 99003 MANG 8.0
99001 TTNT 5.0
99003 CSDL 6.0
ii P h épGiao (Intersection):
Cho hai lược đ ồ quan h ệ Q1 v à Q2 c ó cùng tập thuộc tính {A1,A2,..,An}. r1 v à r2 lần lượt l à hai quan h ệ trên
Q1 v à Q2. Phép giao củ a hai lược đ ồ quan h ệ Q1 v à Q2 s ẽ tạo thành m ộ t lược đ ồ quan
h ệ Q3 như sau:
Q3+={A1,A2,..,An}
r3 = r1*r2= {t | t ∈ r1 v à t ∈ r2}
Ví dụ:
r1 r2 r3 = r1* r2
iv P h épchia (division):
Cho hai lược đ ồ quan h ệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm).
r1 v à r2 lần lượt là hai quan h ệ trên Q1 v à Q2.
Ai v à Bj lần lượt l à cá c thuộctính củ a Q1 v à Q2 sao cho n>m.
Phépchia Q1 v à Q2 s ẽ tạo thànhm ộtlược đ ồ quan h ệ Q3 như sau:
Q3+ = {A1,...,An -m}
r3 = r1÷ r2 = {t3|∀t2∈r2, ∃ t1∈r1 t3=t1.{A1,...,An-m}
t2=t1.{An-m+1,...,An}}
Ví dụ:
r1 r2 r3 = r1 r2
A1 A2 A3 A4 A5 B1 B2 A1 A2 A3
a b d c g c g a b d
a b d e f e f e g c
b c e e f
e g c c g
e g c e f
a b e g e
(r:E1):E2 = (r:E2):E1
Chứngminh:
(r:E1):E2 = {t’|t’∈(r:E1) v à t’(E2)}
= {t’|t’∈{t|t∈r v à t(E1)} v à t’(E2)}
= {t’∈r|t’(E1) v à t’(E2)}
= {t’|t’∈{t|t∈r v à t(E2)} v à t’(E1)}
= {t’|t’∈(r:E2) v à t’(E1)}
= (r:E2):E1
(r+s):E = (r:E)+(s:E)
Chứngminh:
(r+s):E = {t|t∈(r+s) v à t(E)}
= {t|t∈{t’|t’∈r hoặc t’∈s} v à t(E)}
= {t|(t∈r hoặc t∈s) v à t(E)}
= {t|(t∈r v à t(E)) hoặc (t∈s v à t(E))}
= {t|t∈{t’|t’∈r v à t’(E)} hoặc t∈{t’|t’∈s v à t’(E)}}
= {t|t∈(r:E) hoặc t∈(s:E)}
= (r:E)+(s:E)
(r*s):E = (r:E)*(s:E)
Chứngminh:
(r*s):E = {t|t∈(r*s) v à t(E)}
= {t|t∈{t’|t’∈r v à t’∈s} v à t(E)}
= {t|t∈r v à t∈s v à t(E)}
= {t|(t∈r v à t(E)) v à (t∈s v à t(E))}
= {t|t∈{t’|t’∈r v à t’(E)} v à t∈{t’|t’∈s v à t’(E)}}
= {t|t∈(r:E) v à t∈(s:E)}
= (r:E)*(s:E)
(r-s):E = (r:E)-(s:E)
Chứng minh:
(r-s):E = {t|t∈(r-s) v à t(E)}
= {t|t∈{t’|t’∈r v à t’∉s} v à t(E)}
= {t|t∈r v à t∉s v à t(E)}
= {t|(t∈r v à t(E)) v à (t∉s v à t(E))}
= {t|t∈{t’|t’∈r v à t’(E)} v à t∉{t’|t’∈s v à t’(E)}}
= {t|t∈(r:E) v à t∉(s:E)}
= (r:E)*(s:E)
V ớ i X2 ⊇ X1 ⇒ (r.X2).X1 = r.X1
Chứngminh:
(r.X2).X1 = {t.X1|t∈(r.X2)}
= {t.X1|t∈{t’.X2|t’∈r}}
= {(t’.X2).X1|t’∈r}
= {t’.X1|t’∈r} vì X1 ⊆ X2
= r.X1
E phátbiểu trên X ⇒ (r:E).X = (r.X):E
Chứngminh:
(r:E).X = {t.X|t∈(r:E)}
= {t.X|t∈{t’|t’∈r v à t’(E)}}
= {t.X|t∈r và t(E)}
= {t’|t’∈{t.X|t∈r} và t’(E)}
= {t’|t’∈(r.X) và t(E)}
= (r.X):E
q|><|r = r|><|q
Chứng minh:
(q|><|r) ={t12|∃ t1∈q,∃ t2∈r t12.Q+ = t1, t12.R+ = t2 t12.Aiθ t12.Bj}
= r|><|q
Lược đ ồ cơ s ở d ữ liệu xây dựng theo hướngn ày thôngthường đạt tố i thiểu dạng chuẩn3 (3NF: third
normal form) nghĩa l à ở dạng c ó sự dư thừa d ữ liệu ở m ứ c tố i thiểu, c ò n m ôn CSDL xây dựng lược
đ ồ CSDL đạt dạng chuẩn 3 t ừ lược đ ồ cơ s ở d ữ liệu chưa đạt dạng chuẩn c ó kèm c á c tâ n từ
(C1.III.2.ii). Ta h ãy xem ví dụ sau:
i Ví d ụ – M ốiquan h ệ một-n h iề u
(a)Đ ặc tả v ấ n đề
Những người phụ trách đ ào tạo c ủ a Trườngcao đ ẳn gcộ ng đồn gn ú i Ayers mong m uốn tạo lập m ộ tCSDL v ề c á c
m ôn đ ào tạo củ a trường (như: chứng c h ỉ leo n ú i, công nghệ bay) v à học viên ghi danh v ào những m ôn học này.
Trườngcũngc ó qui định là cùng m ộ t lú c,học viên c h ỉ c ó thể ghi danh và om ột m ôn học. H ọ c h ỉ quan tâm v ề d ữ liệu
c ủ a đợt ghi danh hiện tại. Một khi học viên kết thúc m ôn học thì n h à trường s ẽ không c ò n quan tâm đến họ và
nhữnghọc viên n ày phảiđược x o á kh ỏiCSDL. Thông tin cần lưu trữ v ề m ộ t học viên bao gồm : m ã học viên, tên
học viên, địa chỉ, ngày sinh, s ố điện thoại, ngàynhập học
Thôngtin v ề m ôn học gồm m ã m ôn học, tên m ônhọc, th ờ ilượng
Phân tích:
- phần đặc tả vấn đ ề chứađựng c á c qui tắc quảnl ý v à d ữ liệu yêu cầu c ủ a vấn đề.
- d ữ liệu c ủ a vấn đ ề là : chi tiết v ề học viên c ó m ã học viên, tê n học v iên, địa c h ,ỉ n gà ysinh,
s ố đ iệ n thoại v à n gàynhập học chi tiết v ề m ôn học c ó m ã m ôn học, tê n m ôn học v à th ờ ilượng.
- qui tắ c quảnl ý gồm :
+ C ùngm ộ tlú c,m ộ thọc viên c h ỉ c ó thể ghi danh v ào m ộtm ônhọc.
+ Nhiều học viên c ó thể ghi danh v ào m ộtm ôn học.
+ N hàtrườngc hỉ quan tâm đến nhữnghọc viên c ủ a m ônhọc hiện tại.
(b)M ô hình thực th ể k ết hợp (M ôhình ER)
V B À IT Ậ P
1 P héptoántậ p hợp và ph éptoá nquan hệ
Cho lược đ ồ cơ s ở d ữ liệu dùng đ ể quản lý h ồ sơ sinh viên bao gồm cá c quan h ệ Sv(sinh viên), Lop(Lớp),
kh(khoa), Mh(mônhọc), Kq(kếtquả)được m ô t ả b ở icá c lược đ ồ quan h ệ như sau:
Sv(MASV,HOTEN,NU,NGAYSINH,MALOP,TINH,HOCBONG)
T ân từ : M ỗi sinh viên c ó m ỗi MASV duy nhất. M ỗi MASV x ác định tấ t c ả c á c thuộctính c ò nlại củ a
sinh viên đ ó .
Lop(MALOP,TENLOP,SISO,MAKHOA)
T ân từ : M ỗilớ p c ó m ộtm ã lớ p duy nhất, m ỗ ilớ p c h ỉ thuộcv ề m ộtkhoa n ào đ ó .
Kh(MAKHOA,TENKHOA,SOCBGD)
Tân từ : M ỗi khoa c ó m ỗ i MAKHOA duy nhất. M ỗi MAKHOA x ác định tấ t c ả c á c thuộc
tính c ò n lại c ủ a khoa đ ó .
Mh(MAMH,TENMH,SOTIET)
T ân từ : M ôiM ôn học c ó m ộtMAMH duy nhất. M ỗiMAMH x á c địn htấ t c ả cá c thuộctính c ò n lại củ a
m ôn học đ ó .
Kq(MASV,MAMH,DIEMTHI)
T â ntừ : M ỗisinh viên cùngv ớ im ộ tm ôn học x ác định duy nhấtm ộ tđiểm thi
Y Ê UC Ầ U :
1. Tìm khóacho m ỗilược đ ồ quan h ệ trên.
2. H ãythực hiện cá c câu h ỏ isau bằng ngônn g ữ đại số quan h ệ
a. L ập danh sáchsinh viên gồm MASV, HOTEN, HOCBONG
b. L ập danh s á c hsinh viên n ữ khoa ‘CNTT’,danh sáchcần MASV, HOTEN, HOCBONG
c. L ập bảng điểm cho tấ t c ả sinh viên khoa ‘CNTT’, bảng điểm gồm c á c cộ t MASV, HOTEN,
TENMH, DIEMTHI
d. L ập phiếu điểm cho sinh viên c ó MASV=”99001”
e. L ập danh sách sinh viên gồm MASV,HOTEN,TENLOP, TENKHOA
f. L ập bảng điểm m ôn học c ó m ã m ôn học là CSDL cho tấ t c ả sinh viên c ó m ã lớ p là
“CĐTH2B”
g. L ập danh sách sinh viên củ a lớ p c ó m ã lớ p là “CĐTH2B” v à c ó điểm thi m ôn học lớ nhơn hay bằng 8.
2 M ô hình thực th ể k ết hợp
Dựa v ào c á c phân tích sơ b ộ dư ớ iđây, h ãy lập m ô hình thực thể kết hợp cho m ỗi b à i toán quản l ý sau:
i Q U Ả NL Ý LAO Đ Ộ N G
Đ ể quản lý việc phân công cá c nhân viên tham gia v ào xây dựng cá c công trình. Công ty xây dựng
ABC tổ chứ cquảnl ý như sau:
C ùng lú c công ty c ó thể tham gia xây dựng nhiều công trình, m ỗ i công trình c ó m ộ t m ã s ố công trình duy
nhất (MACT), m ỗi m ã số công trình xác định c á c thông tin như: tên gọi công trình (TENCT), địa
điểm(ĐIAĐIEM), ngày công trình được cấp giấy phép xây dựng (NGAYCAPGP), ngày khởi công
(NGAYKC), ngàyhoànthành(NGAYHT).
M ỗi nhân viên củ a công ty ABC c ó m ộ t m ã số nhân viên(MANV) duy nhất, m ộ t m ã s ố nhân viên x á c định cá c
thông tin như: H ọ tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), địa c h ỉ (ĐIACHI). M ỗi
nhân viên phải chịu sự quản l ý hành chánh b ở i m ột phòng ban. T ất nhiên m ộ tphòngban quảnlý hànhchánh
nhiều nhân viên. Công ty c ó nhiều phòngban (Phòngk ế toán,phòngkinh doanh, phòng k ỹ thuật, phòng tổ chức,
phòngchuyên m ôn, Phòngphục v ụ ,… ).M ỗi phòngban
c ó m ộ tm ã s ố phòngban(MAPB) duy nhất,m ã phòngban x ác định tên phòngban (TENPB).
Công ty phân công c á c nhân viên tham gia v ào c á c công trình, m ỗi công trình c ó thể được phân cho nhiều nhân
viên v à m ỗ i nhân viên cùng lú c cũng c ó thể tham gia và o nhiều công trình. Với m ỗ icông trình m ộ t nhân viên c ó
m ột số lượng ngày công (SLNGAYCONG) đ ã tham gia v ào công trình
đó.
ii Q U Ả NL Ý THƯ V IỆ N
M ộtthư viện tổ chứ cviệc cho mượn sáchnhư sau:
M ỗi quyển sách được đánh m ộ t m ã sách (MASH) dùng đ ể phân biệt v ớ i cá c quyển sách khác (g iả
s ử nếu m ộ t tá c phẩm c ó nhiều b ản giống nhau hoặc có nhiều tập thì cũng xem là c ó m ã sách khácnhau), m ỗ i m ã
sách x á c định cá c thông tin khác như : tên sách (TENSACH), tên tá c g iả (TACGIA), n h à xuất b ản (NHAXB),
năm xuấtb ản (NAMXB).
M ỗiđọc g iả được thư viên cấp cho m ộ tth ẻ thư viện, trong đ ó c ó ghi r õ m ã đọc g iả (MAĐG), cùng
v ớ i cá c thông tin khác như : họ tên (HOTEN), ngày sinh (NGAYSINH), địa c h ỉ (ĐIACHI), nghề
nghiệp(NGHENGHIEP).
C ứ m ỗ i lượt mượn sách,đọc g iả phải ghi c á c quyển sách cần mượn và o m ộ t phiếu mượn, m ỗi phiếu mượn c ó m ột s ố
phiếu mượn (SOPM) duy nhất, m ỗi phiếu mượn x ác định c á c thông tin như: ngày mượn (NGAYMUON),
đọc g iả mượn, c á c quyển sách mượn v à ngày trả (NGAYTRA). C ác cá c quyển sách trong cùngm ột phiếu
mượn khôngnhấtthiết phảitrả trong trong cùngm ộ tngày.
iii Q U Ả NL Ý B Á NH À N G
M ỗikháchhàng c ó m ộ tm ã khách hàng(MAKH) duy nhất, m ỗ iMAKH x ác định được cá c thôngtin
v ề khách hàng như : họ tên khách hàng (HOTEN), địa c hỉ (ĐIACHI), s ố điện thoại (ĐIENTHOAI). C ác m ặt
hàng được phân loại theo từ ng nhóm hàng,m ỗ i nhóm hàng c ó m ộ t m ã nhóm (MANHOM) duy nhất, m ỗ i m ã nhóm
hàng x á c định tên nhóm hàng (TENNHOM), tấ t nhiên m ột nhóm hàng c ó
th ể c ó nhiều m ặt hàng.M ỗi m ặt hàng được đánh m ộ t m ã số (MAHANG) duy nhất, m ỗ i m ã s ố n ày
x ác định c á c thôngtin v ề m ặt hàng đ ó như : tên hàng (TENHANG), đơn g iá bá n (ĐONGIA), đơn v ị
tính (ĐVT). M ỗih ó a đơn b án hàngc ó m ộts ố h óa đơn (SOHĐ) duy nhất,m ỗihó a đơn x á c định được kháchhàng v à
ngày lậ p h ó a đơn (NGAYLAPHĐ), ngày b án hàng (NGAYBAN). V ớ im ỗi m ặt hàngtrong m ộ th óa đơn cho biết
s ố lượng b án (SLBAN) c ủ a m ặthàngđ ó .
iv Q U Ả NL Ý LỊCHDẠY - H Ọ C
Đ ể quảnlý lịch dạy củ a cá c giáoviên v à lịch học củ a cá c lớp, m ộ ttrường tổ chứ cnhư sau:
M ỗigiáo viên c ó m ộ t m ã s ố giáo viên (MAGV) duy nhất, m ỗ i MAGV x ác định c á c thôngtin như: họ
v à tên giáo viên (HOTEN), s ố điện thoại (DTGV). M ỗi giáo viên c ó thể dạy nhiều m ôn cho nhiều khoa nhưng c h ỉ
thuộcsự quảnl ý hànhchánhc ủ a m ộ tkhoa n ào đ ó .
M ỗi m ôn học c ó m ộ t m ã số m ôn học (MAMH) duy nhất, m ỗ i m ôn học x ác định tên m ôn học
(TENMH). ứ n g v ớ im ỗilớ p thì m ỗ im ôn học c hỉ được phân cho m ộ tgiáoviên.
M ỗi phòng học c ó m ột số phòng học (SOPHONG) duy nhất, m ỗ i phòng c ó m ột chứ c năng
(CHUCNANG); chẳng hạn như phòng lý thuyết, phòng thực hành m áy tính, phòng nghe nhìn, xưởngthực tậ p
cơ khí,…
M ỗi khoa c ó m ộ t m ã khoa (MAKHOA) duy nhất, m ỗ i khoa x á c định cá c thông tin như: tên khoa
(TENKHOA), điện thoại khoa(DTKHOA).
M ỗi lớ p c ó m ộ t m ã lớ p (MALOP) duy nhất, m ỗi lớ p c ó m ột tên lớ p (TENLOP), sĩ số lớ p (SISO). M ỗilớ p c ó th ể
học nhiều m ôn của nhiều khoa nhưng c h ỉ thuộcsự quảnl ý hànhchính củ a m ột khoa n ào đ ó .
H àngtuần, m ỗi giáo viên phảilập lịch b áo giảngcho biết giáo viên đ ó s ẽ dạy nhữnglớ p nào,ngày
n ào (NGAYDAY), m ôn gì?, tại phòngnào, t ừ tiết n ào (TUTIET) đến tiết n ào (DENTIET),tựa đ ề
b à i dạy (BAIDAY), ghi c h ú (GHICHU) v ề cá c tiết dạy này,đây l à g iờ dạy lý thuyết(LYTHUYET)
hay thực hành- g iả s ử nếu LYTHUYET=1 thì đ ó là g iờ dạy thực hànhv à nếu LYTHUYET=2 thì đ ó là
g iờ lý thuyết, m ộ t ngày c ó 16 tiết, sáng t ừ tiết 1 đến tiết 6, chiều t ừ tiết 7 đến tiết 12, tố i t ừ tiết 13
đến 16.
----oOo----
Chương 2 .
N G Ô NN G ỮTRUY V Ấ NSQL
I C Á C HTẠ O QUAN H ỆB Ằ N GACCESS
Microsoft Access là m ộ t h ệ quản trị cơ s ở d ữ liệu quan hệ. Ta c ó thể dùng HQTCSDL Access hay gọi tắ t là
Access đ ể thực hànhm ô hình quan hệ.
Sau đây ta s ẽ tạo lược đ ồ csdl quảnlý sinh viên như ở trang 6 c ủ a tà i liệu.
+ K hở iđộngAccess: Start-> Programs-> Microsoft Access.
+ Tạo lược đ ồ csdl rỗng c ó tên l à qLSV: Blank Database->OK->qLSV->Create
+ Tạo quan h ệ bằng cách:Tables->New->Design View->OK
o Data type là Text (kiểu chuỗi),Yes/No (Kiểu luận lý ),Date/Time (kiểu ngày tháng),
Currency (kiểu số )
o Field size là kích thướckiểu d ữ liệu
+ Khi tạo xong c á c thuộc tính v à khóa chính ta lưu lại v à đ ặt tên cho quan h ệ Sv bằng cách :
File->Close->Yes->Sv->OK.
+ Tạo c á c quan h ệ c ò n lại theo bước3 v à 4
+ Nhập d ữ liệu cho quan h ệ Sv bằng cách:Tables->Sv->Open
II C Â UL Ệ N HTRUY V Ấ N
1 B IỂ UT H Ứ C(EXPRESSION)
C ác thành phần tạo nên biểu thứ c bao gồm :Literal
value
L à cá c d ữ liệu c ó g iá trị đúngnhư văn b ản thể hiện.
D ữ liệu chuỗi c ó dạng: “New York” D ữ
liệu số c ó dạng: 1056; 1056.25
D ữ liệu ngày c ó dạng: #1-Jan-94#; #12/2/2001#
Constant
Là m ộttên đại diện cho m ộtg iá trị khôngthay đ ổ inhư :
Const G iátrị đại d iện
True -1
False 0
Null 0
Toánt ử s ố học:
T oántử Ý nghĩa Ví d ụ K ết q u ả
+ Cộngsố học 5+2 7
Cộngngày #28/08/01# + 4 #01/09/01#
- T rừ s ố học N gày 5-2 3
trừ s ố N gày trừ #02/09/01# - 3 #30/08/01#
ngày #29/9/01#-#24/3/84# 16.597
* Phépnhân 5*2 10
/ Phépchia 5/2 2.5
\ Chia nguyên 5\2 2
^ L u ỹthừa 5^2 25
Mod L ấy s ố dư củ a phép chia 5 Mod 2 1
Toánt ử luận lý
T oánt ử Ý nghĩa Ví d ụ K ết Q u ả
Not Luậtp h ủ định Not True False
Not False True
And Luậtv à True And True True
True And False False
False And True False
False And False False
Or Luậthay True Or True True
True Or False True
False Or True True
False Or False False
Toánt ử so sánh
T oánt ử Ý nghĩa Ví d ụ K ết q u ả
< N hỏhơn 2<5 True
<= N hỏhơn hay bằng 2 <= 5 True
> L ớ nhơn 2>5 False
>= L ớ nhơn hay bằng 2 >= 5 False
= Bằng nhau 2=5 False
<> K hácnhau 2 <> 5 True
C áctoánt ử khác
T oántử Ý nghĩa Ví d ụ K ết q u ả
Between ... And ... G iữa hai g iá trị. 2 Between 1 And 5 True
D ùngtrong query
Like Giốngnhư “Hung” Like “Hu*” True
& N ốichuỗi “Nguyễn Văn” & “Hùng” “Nguyễn V ăn Hùng”
V ớ itoántử like ta c ó thể dùngcá c k ý tự đại diện sau:
Wildcard characters
K ý tự Ý nghĩa Ví d ụ
? Đại diện cho m ộtk ý tự b ất k ỳ A? -> AN, AM, AC
* Đại diện cho m ộtchuỗik ý tự b ất k ỳ . A* -> AI, ANH,
# Đại diện cho m ộtk ý s ố A## ->A13, A24, A35
[] Đại diện cho c á c k ý tự nằm trong A[IN] -> AI, AN
- Đại diện cho c á c k ý tự nằm trong khoảng A[M-O] -> AM, AN, AO
! Đại diện cho k ý tự khôngphảik ý tự nằm sau ! A[!C] -> AA, AB, AD, AE, ...
H àm:
H àm c ó dạng tenHam(danhSachDoiSo). H àm luôn luônđại diện cho m ộ ttrị gọi là trị trả về.
IIf(điềukiện,trị 1, trị 2)
Kiểm tra điều kiện,nếu điều kiện đúngtrả trị 1 ngược lại trả trị 2
Ví dụ: IIf(namNu = 1, “Nam”,”Nu ”)
Date()
T rả v ề ngàythángnăm củ a h ệ thống.
Now(biểuthức ngày)
T rả v ề g iờ ,phút,giây,ngàythángnăm củ a h ệ thống.
Time(biểuth ứ cngày)
T rả v ề g iờ ph útgiây c ủ a h ệ thống.
Day(biểuthức ngày)
T rả v ề m ộts ố t ừ 1 đến 31 là ngàycủ a Date.
Month(biểuth ứ cngày)
T rả v ề m ộts ố t ừ 1 đến 12 là thángc ủ a Date
Year(biểuth ứ cngày)T rả
v ề năm củ a ngày Len(
b iể uthức chuỗi)
T rả v ề chiều d àicủ a chuỗi.
Chr(mãAscii)
T rả v ề k ý tự c ó m ã ASCII tương ứn g .
InStr(Start, s1, s2)
T rả v ề v ị trí chuỗis2 nằm trong s1
LCase(s), UCase(s)
Đ ổ ichuỗis thànhchuỗigồm c á c k ý tự thường(hoa)
Left(s, n), Right(s, n)
T rả v ề chuỗigồm n k ý tự bên trá i(phải)c ủ a chuỗis
Mid(s, i, n)
T rả v ề chuỗicon củ a chuỗis, gồm n k ý tự k ể t ừ k ý tự th ứ i
Nz(v1, v2)
N ếu v1 = Null thì T rả v ề v2, ngược lại trả v ề v1
C áchàm tính toántrên nhóm :
SUM (thuộctính )
Tính tổng g iá trị củ a thuộctính củ a cá c b ộ trong bảng
MAX( thu ộctính)
tính g iá trị lớ n nhấtcủ a thuộctính củ a cá c b ộ trong bảng
MIN(thuộctính)
tính g iá trị n h ỏnhấtcủ a thuộctính củ a cá c b ộ trong bảng
AVG(thuộctính>)
tính g iá trị trung bình củ a thuộctính củ a cá c b ộ trong bảng
COUNT(thuộc tính)
c h ỉđếm nhữngb ộ m à g iá trị củ a thuộctính là khácNULL Biểu thứ c
Biểu th ứ c là tổ hợp cá c toán tử , literal value, hằng, tên hàm , tên thuộc tính. Biểu thứ c
được lượng giá thànhm ộtgiá trị.
2 C Â UL Ệ N H SQL
SQL l à ngôn n g ữ truy vấn dựa trên đại s ố quan hệ. C âu lệnh củ a SQL dùng đ ể rú t trích d ữ liệu c ủ a m ộ t m ột hay
nhiều quan hệ. K ết q u ả củ a m ộ t câu lệnh SQL (truy vấn) là m ột quan hệ. Đ ể đơn giản trong cách trình bày, ta
xem quan h ệ m à câu truy vấn s ử dụng đ ể tạo ra quan h ệ khác gọi l à quan h ệ nguồn,quan h ệ kết q u ả củ a truy vấn là
quan h ệ đích.
i Truy v ấ nđ ịn hnghĩa d ữ liệu (data definition query)
Tạo lược đ ồ quan h ệ rSV:
+ Create Table rSV (MASV Text (10) CONSTRAINT khoaChinh
PRIMARY KEY,HOTEN Text (30), NU YesNo, NGAYSINH Date, MALOP
Text (10), TINH Text (50), HOCBONG Double )
Tạo lược đ ồ quan h ệ rKQ:
+ Create Table rKQ (MASV text (10),MAMH Text (10), DIEMTHI
Double,CONSTRAINT khoaChinh PRIMARY KEY (MASV,MAMH) )
C hú ý: Hai cá ch tạo trên cho ta thấy hai cá c htạo k h ó a: kh óa chỉ g ồ mm ộ t thuộctính v à khó a c ó nhiềuthuộctính
Thêm cộ tDTHOAI c ó kiểu d ữ liệu text 20 k ý tự và o lược đ ồ quan h ệ rSV:
+ Alter Table rSV Add Column DTHOAI Text (20)
S ử a kiểu kiểu d ữ liệu c ủ a m ộtcộ :t
+ Alter Table rSV Alter Column DTHOAI double
X óac ộ tcủ a m ộ tlược đ ồ đ ã có:
+ Alter Table rSv Drop Column DTHOAI
X óaràng buộckhóachính:
+ Alter Table rSv Drop Constraint khoaChinh
Thêm ràng buộckhóachính:
+ Alter Table rSv Add Constraint khoaChinh Primary Key (MASV)
Thêm ràng buộcm iền g iá trị:
+ ALTER TABLE doc_exd WITH NOCHECK ADD CONSTRAINT exd _check CHECK (column_a > 1)
ii Truy v ấ nchọn (select query)
Khi c ó nhu cầu thể hiện c á c dòng d ữ liệu củ a m ộ t quan h ệ hay củ a nhiều quan h ệ d ư ới dạng m ộ tquan h ệ c ó s ố c ộ t v à
s ố dòng theo ý m uốn như bảng điểm của sinh viên, danh sách sinh viên thì ta
s ử dụng truy vấn chọn.
Ví dụ: L ập danh sách sinh viên gồm MASV,HOTEN,HOCBONG trong đ ó học bổng được sắp giảmdần
SELECT MASV,HOTEN,HOCBONG
FROM Sv
ORDER BY HOCBONG DESC;
Ví du : L ập danh sáchsinh viên gồm MASV,HOTEN,TENLOP
SELECT MASV,HOTEN,TENLOP
FROM Sv Inner Join Lop On Sv.MALOP=Kh.LOP;
Ví dụ: L ập danh sách sinh viên c ó MASV,HOTEN,NU,NGAYSINH,DIEMTHI v ớ i điểm thi m ôn
‘CSDL’ >= 8
SELECT Kq.MASV,HOTEN,NU,NGAYSINH,DIEMTHI
FROM Kq Inner Sv On Kq.MASV = Sv.MaSV
WHERE MAMH='CSDL' AND DIEMTHI>=8;
Ví dụ: L ập danh sáchsinh viên c ó ho là “NGUYEN”
SELECT *
FROM Sv
WHERE HOTEN Like “NGUYEN*”;
iii Truy v ấ nnhómd ữ liệu (Select query c ó group by)
Khi c ó nhu cầu chia c á c b ộ theo từn g nhóm rồ i tính toán trên từn g nhóm nà y như tính điểm trung bình củ a tấ t c ả cá c
m ôn học c ủ a từ ngsinh viên,hay là cần tính số lượng sinh viên củ a m ỗ ilớ p , hay
l à cần biết tổng s ố m ôn m à m ộtsinh viên đã đăng k ý học thì ta s ử dụng truy vấn theo nhóm .
C ácm ẫu tin củ a query chính thỏam ãntoánt ử so sánhv ớ ibấ t k ỳ /tấ t c ả m ẫu tin n ào củ asubquery
Ví du: L ập danh sách sinh viên c ó điểm thi m ôn CSDL cao nhất SELECT
SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHI FROM sv
Inner Join kq On Sv.MASV = Kq.MASV WHERE
MAMH='CSDL' AND DIEMTHI >= ALL
(SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL');
Hiểu v à vận dụng tố t lệnh truy vấn d ữ liệu là m ột việc làm cực k ỳ cần thiết đ ể tạo ra cá c kết q u ảcho b áo cáo ,thốngk ê s ố
liệu.
v Truy v ấ ncập n hậtd ữ liệu (action query, data modification query)
C ú pháp: Update table Set field1 = biểuThức1
, field2 = biểuThức2Where điềuK iện
C ú pháp: Delete From table Where điềuKiện
vi Truy vấ n hợp (union query)
Khi c ó nhu cầu thực hiện truy vấn c ó kết q uả như toánt ử hợp, ta s ử dụng câu lệnh SQL sau:
Select .....Union Select ....
Ví du: Lệnh sau đây gấp đ ô i danh sáchsinh viên
SELECT MASV,HOTEN,NGAYSINH UNION SELECT MASV,HOTEN,NGAYSINH
III B À IT Ậ P
1/ Cho lược đ ồ CSDL quảnlý sinh viên.H ãythực hiện cá c câu truy vấn sau
a) L ập danh sáchnhữngsinh viên nam củ a tỉnh “LONG AN” học khoa “CNTT”, danh sáchc ầ n
tấ t c ả cá c thuộctính c ủ a quan h ệ Sv.
b) L ập danh sách những sinh viên c ó điểm thi < 5 (thi lại), danh sách cần
MASV,HOTEN,TENMH, DIEMTHI v à được sắp tăng dần theo c ộ tMASV.
c) L ập danh sách c á c sinh viên c ó điểm thi trung bình c á c m ôn < 5, danh sách cần
MASV,HOTEN, DIEMTRUNGBINH v à được sắp tăng d ầ ntheo c ộ tMASV.
d) Tổngs ố tiền học bổngc ủ a m ỗikhoa
e) Những sinh viên n ào đăng k ý học nhiều hơn 3 m ôn học, danh sách cần
MASV,HOTEN,SOLAN_DANGKY
f) L ập danh sách sinh viên c ó điểm trung bình cao nhất, danh sá c h cần MASV, HOTEN,
NGAYSINH, DIEMTRUNGBINH
2/ Cho lược đ ồ CSDL dùngđ ể quảnlý lao độngbao gồm c á c lược đ ồ quan h ệ sau:
Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,DIACHI,MAPB)
T ân từ : M ỗi nhân viên c ó m ộ t m ã số nhân viên (MANV) duy nhất. M ột m ã số nhân viên x á cđịnh c á c thông
tin như họ tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), địa c h ỉ (DIACHI) v à phòng
ban (MAPB) nơi quảnl ý nhân viên.
Phongban(MAPB,TENPB)
T ân từ : M ỗi phòng ban c ó m ột m ã phòng ban (MAPB) duy nhất, m ã phòng ban x ác định tên phòng ban
(TENPB)
Cong(MACT,MANV,SLNGAYCONG)
T ân từ : Lược đ ồ quan h ệ Cong ghi nhận s ố lượng ngày công (SLNGAYCONG) củ a m ộ t nhânviên (MANV)
tham gia v ào côngtrình (MACT).
Congtrinh(MACT,TENCT,DIADIEM,NGAYCAPGP,NGAYKC,NGAYHT)
T ân từ : M ỗi công trình c ó m ột m ã s ố công trình (MACT) duy nhất. M ã số công trình x ác định c á c thông tin như
tên gọi công trình (TENCT), địa điểm (DIADIEM), ngày công trình được cấp giấy phép xây dựng
(NGAYCAPGP), ngày kh ởi công (NGAYKC), ngày hoàn thành
(NGAYHT).
H ãythực hiện c á c câu h ỏ isau bằng SQL
a) Danh sách nhữngnhân viên c ó tham gia và o công trình c ó m ã công trình (MACT) l à X. Y êu cầu cá c th ô n g
tin: MANV,HOTEN, SLNGAYCONG, trong đ ó MANV được s ắ ptăng dần.
b) Đếm s ố lượng ngày công c ủ a m ỗ i công trình. Y êu cầu cá c thông tin: MACT, TENCT,
TONGNGAYCONG (TONGNGAYCONG là thuộc tính tự đặt)
c) Danh sách những nhân viên c ó sinh nhật trong tháng 8. yêu cầu cá c thông tin: MANV, TENNV,
NGAYSINH, ĐIACHI,TENPB, sắp xếp quan h ệ kết q u ả theo th ứ tự tuổigiảm dần.
d) Đếm số lượng nhân viên củ a m ỗi phòng ban. Y êu cầu c á c thông tin: MAPB, TENPB,
SOLUONG. (SOLUONG l à thuộctính tự đặt.)
R À N GB U Ô CT O À NV ẸN QUAN H Ệ
(entegrity constraint )
I R À N GB U Ộ CT O À NVẸN - C Á CY Ế UT Ố C Ủ AR À N GB U Ộ CT O À NVẸN
1 R àngB uộcT oànVẹn
Trong m ỗ iCSDL luôn tồ n tại nhiều m ố i liên h ệ giữa cá c thuộc tính, giữa c á c b ộ . S ự liên h ệ n ày c ó
th ể x ảy ra trong m ột lược đ ồ quan h ệ hoặc trong c á c lược đ ồ quan h ệ c ủ a m ộ t cơ s ở d ữ liệu. C ácm ố i liên h ệ nà y
l à nhữngđiều kiện b ất biến m à tấ t c ả c á c b ộ c ủ a nhữngquan h ệ c ó liên quan trong CSDL đều phảithỏa m ãn ở m ọi th ờ i
điểm. Nhữngđiều kiện b ất biến đ ó được gọi l à ràng buộc toànvẹn. Trong thực tế ràng buộc toàn vẹn l à cá c quy tắc
quảnl ý được á p đ ặt trên c á c đ ố i tượng của thế g iớ ithực.
Nhiệm vụ củ a người phân tích thiết k ế l à phải phát hiện càng đầy đ ủ v à chính x á c c á c ràng buộctoàn vẹn càng tố t v à
m ô tả chúngm ộ tcách chính xác trong h ồ sơ phân tích thiết k ế - đ ó là m ộtviệclàm rấ t quan trọng v à rất cần thiết.
Trong m ộ t cơ s ở d ữ liệu, ràng buộc toàn vẹn được xem như l à m ột công cụ đ ể diễn đạt n g ữ nghĩa c ủ a CSDL. M ột
CSDL được thiết k ế cồng kềnh nhưng n ó thể hiện được đầy đ ủ n g ữ nghĩa c ủ a thực
tế vẫn c ó g iá trị cao hơn rất nhiều so v ớ im ột cách thiết k ế gọn nhẹ nhưng nghèo n àn v ề n g ữ nghĩa
vì thiếu c á c ràngbuộctoàn vẹn c ủ a cơ s ở d ữ liệu.
Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành v ào th ờ i điểm cập nhật d ữ liệu ( thêm, sử a, xóa).
Những ràng buộc toàn vẹn phát sinh cần phải được ghi nhận v à x ử l ý m ộ t cáchtườngminh (thườnglà b ở im ộthàm
chuẩn hoặc m ộ tđoạn chương trình).
2 C á cY ếuT ố C ủ aR àngB uộcT oànVẹn
M ỗiràng buộctoànvẹn c ó 3 yếu tố : điều kiện,b ố i cảnhv à tầm ản h hưởng.
i Đ iều kiện
Điều kiện củ a m ộ t ràng buộc toàn vẹn R c ó thể được biểu diễn bằng ngôn n g ữ tự nhiên, thuật giải,ngôn n g ữ đại số tập
hợp, đại s ố quan h ệ ,…ngoài ra điều kiện c ủ a ràng buộc toàn vẹn cũng c ó thể được biểu diễn bằng phụ thuộc hàm .
Chẳnghạn, v ớ ilược đ ồ quan h ệ SV thì có m ộ tràng buộctoànvẹn như sau:
V ớ ir là m ộ tquan h ệ c ủ a Sv ta c ó ràng buộctoànvẹn sau
∀ t1,t2 ∈ r
t1.MASV ≠ t2.MASV
cu ố i ∀
ii B ố icả n h
B ố i cảnh củ a m ộ t ràng buộc toàn vẹn là những quan h ệ m à ràng buộc đ ó c ó hiệu lực hay n ó i m ột cách khác, đ ó là
nhữngquan h ệ cần phảiđược kiểm tra ràng buộctoàn vẹn. Bối cảnh củ a m ột ràngbuộc toàn vẹn c ó thể là m ộ t hoặc
nhiều quan hệ. Chẳng hạn v ớ i ràng buộc toàn vẹn trên thì b ố i
cảnhl à m ộ tquan h ệ Sv
iii T ầm ả n hhưởng
Trong q u á trình phân tích thiết k ế m ột CSDL, người phân tích cần lập bảng tầm ản h hưởng cho m ộ t ràng
buộc toàn vẹn nhằm x ác định th ờ i điểm cần phải tiến hành kiểm tra c á c ràng buộc toànvẹn đ ó . C ác th ờ i điểm cần
phải kiểm tra RBTV chính là nhữngth ờ i điểm cập nhật d ữ liệu (thêm
/sử a/xóa)
M ộtbảngtâm ản h hưởngcủ a m ộ tRBTV c ó dạng sau:
(T ênRBTV) Thêm(T) Sửa(S) Xóa(X)
r1 + - -
r2
... ... .. ..
... ... ... ...
rn
Lãnh đạo phònggiáo dục thành lập nhiều h ộ i đồng thi (m ỗih ộ i đồng thi gồm m ột trườnghoặc m ột
s ố trường gần nhau). M ỗi h ộ i đồng thi c ó m ộ t mã s ố duy nhất (MAHĐT), m ột m ã s ố h ộ i đồng thi x ác định tên h ộ i
đồng thi(TENHĐT), họ tê n chủ tịch h ộ i đồng(TENCT), địa c h ỉ (ĐCHĐT),điện
thoại(ĐTHĐT).
M ỗi h ộ i đồng thi được b ố trí cho m ộ t s ố phòngthi, m ỗi phòngthi c ó m ột số hiệu phòng(SOPT)duy
nhất,m ộ tphòngthi x ác định địa c h ỉ phòngthi (ĐCPT). S ố hiệu phòngthi được đánhs ố khácnhau ở
tấ t c ả cá c h ộ iđồngthi.
G iáo viên củ a c á c trườngtrực thuộc phòngđược điều động đến c á c h ộ i đồng đ ể coi thi, m ỗi trường
c ó th ể c ó hoặc không c ó thí sinh dự thi, m ỗi trường c ó m ộ t m ã trường duy nhất (MATR), m ỗi m ã trường x ác
định m ộ t tên trường(TENTR),địa c h ỉ (ĐCTR), loại hình đ ào tạo (LHĐT) (C ông lập,chuyên, b án công,
dân lập, n ộ i trú ,… ).G iáo viên củ a m ộ t trườngc ó thể làm việc tại nhiều h ộ i đồng
thi. M ột giáo viên c ó m ột m ã giáo viên(MAGV), m ộ t m ã giáo viên x á c định tên giáo viên
(TENGV), chuyênm ôn giảngdạy (CHUYENMON), c h ứ cdanh trong h ộ iđồngthi(CHUCDANH)
C ác thí sinh dự thi c ó m ộ t s ố b áo danh duy nhất(SOBD), m ỗ i số b áo danh x á c định tên thí
sinh(TENTS), ngày sinh (NGSINH), g iớ i tính (PHAI), m ỗ i thí sinh được xếp thi tại m ột phòng thi nhất
định cho tấ t c ả c á c m ôn, m ỗi thí sinh có thể c ó chứng c hỉ nghề (CCNGHE) hoặc không (thuộctính CCNGHE
kiểu chuỗi, CCNGHE=”x” n ếu thí sinh c ó chứng c h ỉ nghề v à CCNGHE b ằ n grỗngnếu thí sinh khôngc ó chứng
c h ỉnghề).Thísinh củ a cùngm ộ ttrườngc h ỉdự thi tại m ộ th ộ iđồngthi.
M ỗi m ôn thi c ó m ột m ã m ôn thi duy nhất(MAMT),m ỗ i m ã m ôn thi x ác định tên m ôn thi(TENMT). G iả s ử toàn b ộ
c á c thí sinh đều thi chung m ộ tsố m ôn do sở giáo dục quy định. M ỗi m ôn thi được tổ chứ ctrong m ộ tbuổic ủ a m ột
ngàynà o đ ó .
Ứ n gv ớ i m ỗi m ôn thi m ộ t thí sinh c ó m ộ t điểm thi duy nhất(ĐIEMTHI) Dựa v ào
phân tích ở trên,g iả s ử ta c ó lược đ ồ CSDL sau:
Q1: HĐ(MAHĐT,TENHĐT, TENCT, ĐCHĐT,ĐTHĐT)
Q2: PT(SOPT,ĐCPT,MAHĐT)
Q3: TS(SOBD, TENTS,NGSINH,PHAI,CCNGHE, MATR,SOPT)
Q4: MT(MAMT,TENMT,BUOI,NGAY)
Q5: GV(MAGV,TENGV,CHUYENMON,CHUCDANH ,MAHĐT,MATR)
Q6: TR(MATR,TENTR,ĐCTR,LHĐT)
Q7: KQ(SOBD,MAMT,ĐIEMTHI)
Y êu cầu:
a) H ãyx ác định khóacho từn glược đ ồ quan hệ.
b) Tìm tấ t c ả cá c ràng buộctoànvẹn c ó trong CSDL trên.
c) Dựa v ào lược đ ồ CSDL đ ã thành lập, h ãy thực hiện c á c câu h ỏ i sau đây bằng ngôn n g ữ đại
s ố quan hệ.
1. Danh sách c á c thí sinh thi tại phòng thi có số hiệu phòng thi (SOPT) là “100”. Y êu cầu cá c thông
tin:SOBD,TENTS,NGSINH,TENTR
2. K ết q u ả c ủ a m ôn thi c ó m ã m ôn thi (MAMT) l à “T” c ủ a tất c ả cá c thí sinh c ó m ã
trường(MATR) là “NTMK”, kết q uả được sắp theo chiều giảm dần củ a điểm
thi(ĐIEMTHI). Y êu c ầ ucá c thôngtin:SOBD,TENTS, ĐIEMTHI
3. K ết q u ả thi c ủ a m ộ thọc sinh c ó SOBD là MK01. Y êu cầu : TENMT,ĐIEMTHI
4. Tổng s ố thí sinh c ó chứng c h ỉ nghề(CCNGHE) của m ỗ i trường, thông tin cần được sắp theo chiều tăng
dần c ủ aTENTR. Y êu cầu c á c thông tin: MATR, TENTR, SOLUONGCC
----oOo----
Chương 4 .
PH Ụ T H U Ộ CH À M
(functional dependency )
Phụ thuộc hàm (functional dependency) l à m ộ t công cụ dùng đ ể biểu diễn m ột cách hình thứ c c á c ràng buộc toàn
vẹn (vắn tắt: ràng buộc). Phương pháp biểu diễn n ày c ó rấ t nhiều ưu điểm, v à đây
l à m ộ tcôngcụ cực k ỳ quan trọng, gắn chặtv ớ ilý thuyếtthiết k ế cơ s ở d ữ liệu.
Phụ thuộc hàm được ứ n g dụng trong việc giải quyết c á c b à i toán tìm khóa, tìm p h ủ tố i thiểu v à chuẩn h ó a cơ s ở d ữ
liệu.
I K H Á IN IÊ MPH Ụ TH U Ộ CH À M
Cho quan h ệ phanCong sau:
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Cushing 116 10/8 1:25p
Clark 281 8/8 5:50a
Clark 301 12/8 6:35p
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Chin 116 12/8 1:25p
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Copely 412 15/8 1:25p
Quan h ệ phanCong diễn tả phi công nà o lá i m áy bay n ào v à m áy bay kh ởihành và o th ờ igian nào.Không phải sự
phối hợp b ất k ỳ n ào giữa phi công, m áy bay v à ngày g iờ kh ởi hành cũng đều được chấp nhận m à chúngc ó c á c điều
kiện ràng buộcqui định sau:
+ M ỗim áybay c ó m ộtg iờ k hở ihànhduy nhất.
+ N ếu biết phi công,biết ngàyg iờ kh ởihànhthì biết được m áybay do phi côngấ y lái.
+ N ếu biết m áy bay, biết ngày kh ởihành thì biết phi công lá i chuyến bay ấy . C ác ràng buộc
n ày là cá c ví dụ v ề phụ thuộc hàm v à được phátbiểu lại như sau:
+ MAYBAY x ác định GIOKH
+ {PHICONG,NGAYKH,GIOKH} x ác định MABAY
+ {MAYBAY,NGAYKH} x ác định PHICONG
hay
+ GIOKH phụ thuộchàm v ào MAYBAY
+ MABAY phụ thuộchàm v ào {PHICONG,NGAYKH,GIOKH}
+ PHICONG phụ thuộchàm v ào {MAYBAY,NGAYKH}
v à được k ý hiệu như sau:
+ {MAYBAY}→ GIOKH
+ {PHICONG,NGAYKH,GIOKH}→ MABAY
+ {MAYBAY,NGAYKH}→ PHICONG
Trong k ý hiệu trên ta đ ã k ý hiệu MAYBAY thay cho {MAYBAY}.
M ộtcáchtổng quát:
1 Định nghĩa phụ thuộch àm
Q(A1,A2,…,An) là lược đ ồ quan hệ.
X, Y là hai tậ p con c ủ a Q+={A1,A2,…,An}.
r là quan h ệ trên Q.
t1,t2 l à hai b ộ b ất k ỳ củ a r.
X → Y ⇔ (t1.X = t2.X ⇒ t1.Y = t2.Y)
(Ta n ó i X x ác định Y hay Y phụ thuộc hàm và o X (X functional determines Y,Y functional
dependent on X )
Tính chất:
+ phụ thuộchàm X → ∅ đúngv ớ imọi quan h ệ r
+ phụ thuộchàm ∅ → Y c h ỉ đúngtrên quan h ệ r c ó cùngg iá trị trên Y.
Ví dụ: Quan h ệ sau thỏam ãnphụ thuộchàm ∅ → GIOKH
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Cushing 116 10/8 10:15a
Clark 281 8/8 10:15a
Clark 301 12/8 10:15a
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Chin 116 12/8 10:15a
Copely 281 9/8 10:15a
Copely 281 13/8 10:15a
Copely 412 15/8 10:15a
trên thực tế không c ó quan h ệ r n ào thỏa tính chất trên nên t ừ đây v ề sau nếu không n ó i r õ thì v ớ im ộ tquan h ệ r b ất k ỳ ta
luôn xem phụ thuộchàm ∅ → Y luôn luôn khôngthỏatrên r.
2 Phụ thuộch à m hiển nhiên(Trivial Dependencies)
H ệ quả: N ế u X ⊇ Y thì X → Y.
Chứngminh:
G iả s ử t1.X = t2.X do X ⊇ Y nên t1.Y = t2.Y theo định nghĩa suy ra X → Y
Trong trườnghợp nà y X → Y được gọi l à phụ thu ộch à m h iển nhiên. Ví dụ phụ
thuộchàm X → X l à phụ thuộchàm hiển nhiên.
V ậy v ớ i r là quan h ệ b ất k ỳ , F l à tập phụ thuộc hàm thỏa trên r, ta luôn c ó F ⊇ {c á c phụ thuộchàm hiển nhiên}
3 T huậttoá nSatifies
+
Cho quan h ệ r v à X, Y là hai tập con củ a Q . Thuật toán SATIFIES s ẽ trả v ề trị true nếu X → Y
ngược lại l à false
SATIFIES
V ào: quan h ệ r v à hai tập con X,Y
ra: true nếu X → Y, ngược lại l à false
SATIFIES(r,X,Y)
1. Sắp cá c b ộ củ a quan h ệ r theo X đ ể c á c giá trị giốngnhau trên X nhómlại v ớ inhau
2. N ếu tập cá c b ộ cùngg iá trị trên X cho c á c g iá trị trên Y giốngnhau thì trả v ề true ngược lại
là False
Ví dụ 1: SATIFIES(phanCong,MAYBAY,GIOKH)
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Cushing 116 10/8 1:25p
Chin 116 12/8 1:25p
Clark 281 8/8 5:50a
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Clark 301 12/8 6:35p
Copely 412 15/8 1:25p
cho kết q u ả là true nghĩa là MAYBAY→GIOKH
Ví dụ 2: SATIFIES(phanCong,GIOKH,MAYBAY)
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Clark 281 8/8 5:50a
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Cushing 83 9/8 10:15a
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Cushing 116 10/8 1:25p
Chin 116 12/8 1:25p
Copely 412 15/8 1:25p
Clark 301 12/8 6:35p
cho kết q u ả là false nghĩa l à khôngc ó phụ thuộchàm GIOKH→MAYBAY
4 C á cphụ thuộch à m c ó th ể có
+
i C áchtìm tấ t c ả tậ p con c ủ aQ
Lược đ ồ quan h ệ Phancong(PHICONG,MAYBAY,NGAYKH,GIOKH)c ó tậ p thuộc tính
Phancong+={PHICONG,MAYBAY,NGAYKH,GIOKH} v à tấ t c ả cá c tập con c ó th ể c ó củ a
Phancong+ được cho b ở ibảngsau:
PHICONG MAYBAY NGAYKH GIOKH
∅ {PHICONG} {MAYBAY} {NGAYKH} {GIOKH}
{PHICONG,MAYBAY} {PHICONG,NGAYKH} {PHICONG,GIOKH}
{MAYBAY,NGAYKH} {MAYBAY,GIOKH}
{PHICONG,MAYBAY,NGAYKH} {PHICONG,MAYBAY,GIOKH}
{NGAYKH,GIOKH}
{PHICONG,NGAYKH,GIOKH}
{MAYBAY,NGAYKH,GIOKH}
{PHICONG,MAYBAY,NGAYKH,GIOKH}
S ố tập con c ó th ể c ó c ủ a Q+ = {A1,A2,...,An} là 2n
ii C áchtìm tấ t c ả c á cphụ thuộch àm c ó th ể có củ aQ
n 4
Ứ n gv ớ im ỗi tập con củ a Phancong+ cho 2 = 2 = 16 phụ thuộchàm c ó thể c ó .S ố phụ thuộchàm
4 4
c ó th ể c ó l à 2 * 2 = 16 * 16 = 256
∅ → ∅ PTHHN
∅ → {PHICONG} F-
∅ → {MAYBAY} F-
∅ → {MAYBAY,PHICONG} F-
∅ → {NGAYKH} F-
∅ → {PHICONG,NGAYKH} F-
∅ → {MAYBAY,NGAYKH} F-
∅ → {MAYBAY,PHICONG,NGAYKH} F-
∅ → {GIOKH} F-
∅ → {PHICONG,GIOKH} F-
∅ → {MAYBAY,GIOKH} F-
∅ → {MAYBAY,PHICONG,GIOKH} F-
∅ → {NGAYKH,GIOKH} F-
∅ → {PHICONG,NGAYKH,GIOKH} F-
∅ → {MAYBAY,NGAYKH,GIOKH} F-
-
∅ → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG} → ∅ PTHHN
{PHICONG} → {PHICONG} PTHHN
{PHICONG} → {MAYBAY} F-
{PHICONG} → {MAYBAY,PHICONG} F-
{PHICONG} → {NGAYKH} F-
{PHICONG} → {PHICONG,NGAYKH} F-
{PHICONG} → {MAYBAY,NGAYKH} F-
{PHICONG} → {MAYBAY,PHICONG,NGAYKH} F-
{PHICONG} → {GIOKH} F-
{PHICONG} → {PHICONG,GIOKH} F-
{PHICONG} → {MAYBAY,GIOKH} F-
{PHICONG} → {MAYBAY,PHICONG,GIOKH} F-
{PHICONG} → {NGAYKH,GIOKH} F-
{PHICONG} → {PHICONG,NGAYKH,GIOKH} F-
{PHICONG} → {MAYBAY,NGAYKH,GIOKH} F-
-
{PHICONG} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{MAYBAY} → ∅ PTHHN
-
{MAYBAY} → {PHICONG} F
{MAYBAY} → {MAYBAY} PTHHN
{MAYBAY} → {MAYBAY,PHICONG} F-
{MAYBAY} → {NGAYKH} F-
{MAYBAY} → {PHICONG,NGAYKH} F-
{MAYBAY} → {MAYBAY,NGAYKH} F-
-
{MAYBAY} → {MAYBAY,PHICONG,NGAYKH} F
{MAYBAY} → {GIOKH} F
{MAYBAY} → {PHICONG,GIOKH} F-
{MAYBAY} → {MAYBAY,GIOKH} F+
{MAYBAY} → {MAYBAY,PHICONG,GIOKH} F-
{MAYBAY} → {NGAYKH,GIOKH} F-
{MAYBAY} → {PHICONG,NGAYKH,GIOKH} F-
{MAYBAY} → {MAYBAY,NGAYKH,GIOKH} F-
-
{MAYBAY} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG,MAYBAY} → ∅ PTHHN
{PHICONG,MAYBAY} → {PHICONG} PTHHN
{PHICONG,MAYBAY} → {MAYBAY} PTHHN
{PHICONG,MAYBAY} → {PHICONG,MAYBAY} PTHHN
{PHICONG,MAYBAY} → {NGAYKH} F-
{PHICONG,MAYBAY} → {PHICONG,NGAYKH} F-
{PHICONG,MAYBAY} → {MAYBAY,NGAYKH} F-
-
{PHICONG,MAYBAY} → {MAYBAY,PHICONG,NGAYKH} F
+
{PHICONG,MAYBAY} → {GIOKH} F
+
{PHICONG,MAYBAY} → {PHICONG,GIOKH} F
+
{PHICONG,MAYBAY} → {MAYBAY,GIOKH} F
+
{PHICONG,MAYBAY} → {MAYBAY,PHICONG,GIOKH} F
-
{PHICONG,MAYBAY} → {NGAYKH,GIOKH} F
-
{PHICONG,MAYBAY} → {PHICONG,NGAYKH,GIOKH} F
-
{PHICONG,MAYBAY} → {MAYBAY,NGAYKH,GIOKH} F
-
{PHICONG,MAYBAY} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
-
{NGAYKH} → ∅ F
-
{NGAYKH} → {PHICONG} F
-
{NGAYKH} → {MAYBAY} F
-
{NGAYKH} → {PHICONG,MAYBAY} F
{NGAYKH} → {NGAYKH} PTHHN
-
{NGAYKH} → {PHICONG,NGAYKH} F
-
{NGAYKH} → {MAYBAY,NGAYKH} F
-
{NGAYKH} → {MAYBAY,PHICONG,NGAYKH} F
-
{NGAYKH} → {GIOKH} F
-
{NGAYKH} → {PHICONG,GIOKH} F
-
{NGAYKH} → {MAYBAY,GIOKH} F
-
{NGAYKH} → {MAYBAY,PHICONG,GIOKH} F
-
{NGAYKH} → {NGAYKH,GIOKH} F
-
{NGAYKH} → {PHICONG,NGAYKH,GIOKH} F
-
{NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F
-
{NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG,NGAYKH} → ∅ PTHHN
{PHICONG,NGAYKH} → {PHICONG} PTHHN
{PHICONG,NGAYKH} → {MAYBAY} F-
{PHICONG,NGAYKH} → {PHICONG,MAYBAY} F-
{PHICONG,NGAYKH} → {NGAYKH} PTHHN
{PHICONG,NGAYKH} → {PHICONG,NGAYKH} PTHHN
{PHICONG,NGAYKH} → {MAYBAY,NGAYKH} F-
{PHICONG,NGAYKH} → {MAYBAY,PHICONG,NGAYKH} F-
{PHICONG,NGAYKH} → {GIOKH} F-
{PHICONG,NGAYKH} → {PHICONG,GIOKH} F-
{PHICONG,NGAYKH} → {MAYBAY,GIOKH} F-
{PHICONG,NGAYKH} → {MAYBAY,PHICONG,GIOKH} F-
{PHICONG,NGAYKH} → {NGAYKH,GIOKH} F-
{PHICONG,NGAYKH} → {PHICONG,NGAYKH,GIOKH} F-
{PHICONG,NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F-
-
{PHICONG,NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{MAYBAY,NGAYKH} → ∅ PTHHN
{MAYBAY,NGAYKH} → {PHICONG} F
{MAYBAY,NGAYKH} → {MAYBAY} PTHHN
+
{MAYBAY,NGAYKH} → {PHICONG,MAYBAY} F
{MAYBAY,NGAYKH} → {NGAYKH} PTHHN
+
{MAYBAY,NGAYKH} → {PHICONG,NGAYKH} F
{MAYBAY,NGAYKH} → {MAYBAY,NGAYKH} PTHHN
+
{MAYBAY,NGAYKH} → {MAYBAY,PHICONG,NGAYKH} F
+
{MAYBAY,NGAYKH} → {GIOKH} F
+
{MAYBAY,NGAYKH} → {PHICONG,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,PHICONG,GIOKH} F
+
{MAYBAY,NGAYKH} → {NGAYKH,GIOKH} F
+
{MAYBAY,NGAYKH} → {PHICONG,NGAYKH,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG,MAYBAY,NGAYKH} → ∅ PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,MAYBAY} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,MAYBAY,NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,PHICONG,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {NGAYKH,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,NGAYKH,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F+
+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
....................................................
{PHICONG,NGAYKH,GIOKH} → ∅ PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG} PTHHN
{PHICONG,NGAYKH,GIOKH} → {MAYBAY} F
{PHICONG,NGAYKH,GIOKH} → {PHICONG,MAYBAY} F+
{PHICONG,NGAYKH,GIOKH} → {NGAYKH} PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG,NGAYKH} PTHHN
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,NGAYKH} F
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH} F
{PHICONG,NGAYKH,GIOKH} → {GIOKH} PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG,GIOKH} PTHHN
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,GIOKH} F
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,PHICONG,GIOKH} F
{PHICONG,NGAYKH,GIOKH} → {NGAYKH,GIOKH} PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG,NGAYKH,GIOKH} PTHHN
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,NGAYKH,GIOKH} F
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → ∅ PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,MAYBAY} F
{MAYBAY,NGAYKH,GIOKH} → {NGAYKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,NGAYKH} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,NGAYKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH} F
{MAYBAY,NGAYKH,GIOKH} → {GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,PHICONG,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → {NGAYKH,GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,NGAYKH,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,NGAYKH,GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
................ ....
S ố phụ thuộchàm c ó thể c ó củ a Q(A1,A2,...,An) là 2n x 2n =22n
II H ỆL U Ậ TD Ẫ NARMSTRONG (Armstrong inference rule)
Ngườita thườngdùngF đ ể c h ỉ tập c á c phụ thuộchàm c ủ a lược đ ồ quan h ệ Q. Ta c ó thể đánhs ố c á c
phụ thuộc hàm c ủ a F là f1, f2, .., fm. Quy ư ớ c rằng c h ỉ cần m ô tả c á c phụ thuộc hàm không hiển nhiên trong tập
F (cácphụ thuộchàm hiển nhiên được ngầm hiểu l à đ ã c ó trong F).
1 Phụ thuộch à m được suy d iễnlogic từ F
N ó irằng phụ th u ộchà m X → Y được suy diễn logic t ừ F n ế u m ộ tquan h ệ r thỏa m ã n tấ t c ả c á cphụ th u ộch à m c ủ a
F thì cũ ngth ỏ aphụ thu ộch à m X → Y. K ý h iệuF|= X → Y.
Bao đóngcủ a F k ý hiệu F+ là tập tấ t c ả cá c phụ thuộchàm được suy diễn logic t ừ F.
C áctính chấtc ủ a tậ p F+
+
1. Tính p h ảnxạ: V ớ imọi tậ p phụ thu ộchà m F ta lu ônlu ô nc ó F ⊆ F+
2. Tính đơn đ iệu :N ế uF ⊆ G thì F+ ⊆ G+
3. Tính lũ yđẳ ng :V ớ im ọi tậ p phụ th u ộch àm F ta lu ônlu ô nc ó (F+)+ = F+.
Gọi G là tập tấ t c ả cá c phụ thuộchàm có thể c ó củ a r, phần phụ củ a F k ý hiệu F- = G - F+
Chứngminh
1. X → Y ∈ F ⇒ r thỏaX → Y ⇒ X → Y ∈ F+
2. N ếu X → Y l à phụ thuộchàm thuộcF+ ta phảichứngminh X → Y thuộcG+
G iả s ử r thỏatấ t c ả c á c phụ thuộchàm c ủ a G (1)
⇒ r thỏatấ t c ả phụ thuộchàm c ủ a F vì F ⊆ G
⇒ r thỏaphụ thuộchàm X → Y (2) vì X → Y∈F+
(1) v à (2) ⇒ X → Y ∈ G+ ⇒ F+ ⊆ G+
3. F ⊆ F+ (tính phảnxạ) ⇒ F+ ⊆ (F+)+ (1)
+ + +
N ếu X → Y ∈ (F ) (2)⇒ X → Y ∈ F thậtvậy: (3)
G iả s ử r thỏatấ t c ả c á c phụ thuộchàm c ủ a F (4)
⇒ r thỏatấ t c ả cá c phụ thuộchàm củ a F (theo định nghĩa)
+
Phần tiếp theo chúng ta s ẽ chứng minh h ệ luật dẫn Armstrong l à đầy đ ủ , nghĩa l à mọi phụ thuộc hàm X → Y
được suy diễn logic t ừ F s ẽ được suy diễn t ừ F n h ờ h ệ luậtdẫn Armstrong.
ii Bao đóng của tậ p thu ộctính X (closures of attribute sets)
(a)Đ ịnhnghĩa
Q là lược đ ồ quan hệ, r là quan h ệ tương ứ ng ,F l à tập c á c phụ thuộchàm trong Q. X,Ai l à c á c tập con c ủ a Q+.
+
Bao đ ó n gc ủ atậ p th u ộ ctính X đ ố iv ớ iF k ý h iệulà X+ (hoặc X ) được định nghĩa như sau:
X+ = ∪ Ai v ớ iX → Ai là phụ thuộc h àm được suy diễnt ừ F n h ờh ệ tiê nđ ề Armstrong
Tính chất:
+ bao đóngc ủ a Q l à Q+
(b)C á ctính ch ấtc ủ abao đ ó ng
N ếu X,Y l à cá c tập con c ủ a tập thuộctính Q+ thì ta c ó cá c tính chấtsau đây:
1. Tính ph ả nxạ: X ⊆ X+
2. Tính đơn đ iệu : N ế u X ⊆ Y thì X+ ⊆ Y+
3. Tính lũ yđ ẳ n:g X++ = X+
4. (XY)+ ⊇ X+Y+
5. (X+Y)+ = (XY+)+ = (X+Y+)+
6. X → Y ⇔ Y+ ⊆ X+
7. X → X+ v à X+ → X
8. X+ = Y+ ⇔ X → Y v à Y → X
Chứngminh:
X → X ⇒ X ⊇ X
+
1.
+ +
2. A X ⇒ X → A ⇒ Y → A ⇒ A ∈ Y
3. A ∈ X++ ⇒ X+ → A v à X → X+ (á p dụng 8) ⇒ X → A ⇒ A∈X+
⇒ X++ ⊆ X+. Á pdụng 1 ⇒ X++ ⊇ X+
...............................................
7. X → A1 v à X→ A2 ⇒ X → A1∪A2 .... X→∪Ai = X+
X+ ⊇ X ⇒ X+ → X (Phụ thuộchàm hiển nhiên)
...............................................
(c) T huậtto ántìm bao đ ón g
Tính liên tiếp tập c á c tập thuộctính X0,X1,X2,... theo phương phápsau:
B ư ớ c1: X0 = X
B ư ớ c2: lầ n lượt x é tc á cphụ thu ộchà m c ủ aF
N ế u Y→Z c ó Y ⊆ Xi thì Xi+1 = Xi ∪ Z
Loại phụ thuộc h à m Y → Z k h ỏ iF
B ư ớ c3: N ế uở b ư ớ c2 khôngtính được Xi+1 thì Xi chính là bao đ ó n gc ủ aX
Ngược lại lặ p lại bư ớ c2
Ví dụ 1:
Cho lược đ ồ quan h ệ Q(ABCDEGH) v à tập phụ thuộchàm F
A
CE
H
C
D }
Tìm bao đóngcủ a cá c tập X = {AC} dựa trên F. G iải:
B ước1: X0 = AC
B ước2: Do f1, f2, f3, f4 khôngthỏa.f5 thỏa vì X+ ⊇ AC X1
= AC ∪ D = ACD
L ập lại bước2: f1 khôngthỏa,f2 thỏavì X1 ⊇ AD:
X2 = ACD ∪ CE = ACDE
f3 thỏavì X2 ⊇ D
X3 = ACDE ∪ H = ACDEH
f4 khôngthỏa,f5 khôngx é t vì đ ã thỏa
L ập lại bước 2: f2,f3 không x é t vì đ ã thỏa, f1,f4 không thỏa,f5 không x ét vì đ ã thỏa.Trongbướcn ày X3
khôngthay đ ổ i=> X+=X3={ACDEH} là bao đóngc ủ a X
Ví du 2ï:
Q(A,B,C,D,E,G)
F = {f1: A → C;
f2: A → EG;
f3: B → D;
f4: G → E}
X = {A,B}; Y = {C,G,D}
K ết quả:
X+ = {ABCDEG}
Y+ = {CGDE}
(d)Đ ịnhlý
T huậtto á ntìm bao đ ó n gcho k ế tq u ảXi = X+
Chứngminh
1. Ta chứng minh Xi ⊆ X+ bằng phương pháp qui nạp.
B ướccơ sở chứngminh X → X0
Theo tính phảnxạ c ủ a h ệ luậtdẫn thì X → X theo thuậttoánthì X0 = X ⇒ X → X0
V ậy X0 ⊆ X+
B ướcqui nạp g iả s ử c ó X → Xi-1 (1) ta phảichứngminh X → Xi
Theo thuậttoántìm bao đóngthì c ó fj = Xj → Yj đ ể Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj
⇒ Xi-1 → Yj (2).(1)v à (2) ⇒ X → Yj (3)
(1) v à (3) ⇒ X→ Xi-1Yj = Xi ⇒ X → Xi
V ậy Xi ⊆ X+
2. Ta chứngminh A ⊆ X+ ⇒ A ⊆ Xi đ ể kết luận Xi ⊇ X+
A ⊆ X+ nên c ó m ộ tphụ thuộchàm X → A. Theo thuậttoántìm bao đóngthì X ⊆ Xi ⇒ A ⊆Xi
(e)H ệ quả
1. Q là lược đ ồ quan h ệ . F là tậ p phụ th u ộchàm ,A là th u ộctính c h ỉ x u ấ th iện ở v ế p h ả ic ủ ac á cphụ th u ộch à m
trong F thì X+ = (X – A)+ ∪ A
2. Q là lược đ ồ quan h ệ . F là tậ p phụ thu ộchàm , X là tậ p con c ủ a Q+ v à Y = {c á c thu ộctính xu ấth iện ở v ế
p h ả ic ủ ac á cphụ th u ộch àm trong F} thì X+ ⊆ X ∪ Y.
Chứngminh
1. Theo thuậttoán tìm bao đóngthì bao đóngX+ hay (X-A)+ được hình thànhqua m ộts ố bước.
Ta chứngminh biểu thứ cX+ = (X – A)+ ∪ A theo qui nạp.
B ướccơ sở: X0 = X, (X-A)0 = X - A ⇒ X0 =(X - A)0 ∪ A đúng
B ướcqui nạp: g iả s ử ta c ó Xi-1 =(X - A)i-1 ∪ A. Bao đóngXi được hình thànhdo c ó fj
= Xj → Yj để:
Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj = (X - A)i-1 ∪ A ∪ Yj
(1). Sự hình thànhXi luôn kéo theo sự hình thành(X-A)i vì:
Xi-1 = (X - A)i-1 ∪ A ⊇ Xj do Xj khôngchứaA nên:
(X - A)i-1 ⊇ Xj vậy (X - A)i = (X - A)i-1 ∪ Yj (2)
(1) v à (2) cho:
Xi = (X - A)i ∪ A l à điều phảichứngminh
2. B ướccơ sở: X0 = X ⇒ X0 ⊆ X ∪ Y
B ướcqui nạp: g iả s ử c ó Xi-1 ⊆ X ∪ Y ta chứngminh Xi ⊆ X ∪ Y.
Bao đóngXi được hình thànhdo c ó fj = Xj → Yj để:
Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj ⊆ X ∪ Y ∪ Yj do Yj l à v ế phảicủ a phụ thuộc hàm nên
Y ∪ Yj = Y vậy Xi ⊆ X ∪ Y
3 H ệ lu ậ td ẫ nArmstrong là đ ầ yđủ
i Định lý
H ệ lu ậ td ẫ n Armstrong là đ ầ y đ ủ nghĩa là m ọi phụ th u ộch àm X → Y được suy diễn logic t ừ F s ẽ được suy d iễ ntừ
F n h ờh ệ lu ậ td ẫ n Armstrong.
Chứngminh:
Đ ể chứng minh X → Y được suy diễn t ừ F n h ờ h ệ luật dẫn Armstrong ta chứng minh bằng phương pháp phản
chứngnghĩa l à nếu X → Y không suy diễn được t ừ h ệ lu ật dẫn Armstrong thì c ó quan
h ệ r thỏa các phụ thuộc hàm F nhưng không thỏa phụ thuộc hàm X → Y (điều n ày nghịch lý v ớ i
g iả thuyết là mọi quan h ệ r thỏa c á c phụ thuộc hàm trong F thì r cũng thỏa phụ thuộc hàm X →
Y).
Thật vậy g iả s ử Q(A1,A2,...,An) l à lược đ ồ quan hệ, ai,bi l à c á c g iá trị khác nhau trên m iền g iá
trị Ai. r là quan h ệ trên Q c ó hai b ộ t v à t’được x ác định như sau:
t=(a1,a2,...,an)
t ? α N ếu A i ∈ X +
'.Ai ι
?
? β Ngươc lai
ι
V ậy quan h ệ r c ó t.X = t’.X nhưng t.Y ≠ t’.Y (t.Y gồm c á c g iá trị ai c ò n t’.Y phải c ó ít nhất
m ột bi nếu không Y ⊆ X+ ⇒ X → Y được suy dẫn t ừ h ệ luật dẫn Armstrong ). Như vậy r không thỏa
phụ thuộchàm X → Y.
B ây g iờ ta chứngminh quan h ệ r thỏa mọi phụ thuộc hàm trong F. Gọi W → Z l à phụ thuộc hàm trong F.
N ếu W ⊄ X+ ⇒ t.W ≠ t’.W ⇒ mệnh đ ề (t.W = t’.W ⇒ t.Z = t’.Z)đúng
N ếu W ⊆ X+ ⇒ t.Z = t’.Z = b ộ cá c ai
⇒ mệnh đ ề (t.W = t’.W ⇒ t.Z = t’.Z)đúng
ii H ệq u ả :
Bao đ ó n gc ủ atậ p th u ộ ctính X đ ố iv ớ iF là :
X+ = ∪ Ai v ớ iX → Ai là phụ thuộc h àm được suy diễnlogic từ F
Tính chất
X → Y ∈ F+ ⇔ Y ⊆ X +
Chứngminh
X → Y ⇒ c ó k sao cho Y = Ak ⊆ ∪ Ai = X+
Y ⊆ X+ ⇒ X+ = Y ∪ (X+ - Y) ⇒ X → Y ∪ (X+ - Y) ⇒ X → Y
B àitoánthànhviên
N ó irằng X → Y l à thànhviên c ủ a F nếu X → Y ∈ F+
M ộtvấn đ ề quan trọng khi nghiên c ứ u l ý thuyếtCSDL là khi cho trướctậ p c á c phụ thuộchàm F và
+
m ột phụ thuộchàm X → Y, làm thế n ào đ ể biết X → Y c ó thuộcF hay không b à i toán n ày được
+ +
gọi l à ø b ài toán thành viên. Đ ể trả lờ i câu h ỏ i n ày ta c ó thể tính F rồi x ác định xem X → Y c ó thuộc F hay
+
không.Việc tính F là m ộ t công việc đ ò ih ỏ ith ờ igian v à công sứ c.Tuy nhiên, thay vì
+
tính F chúngta c ó thể dùng thuật toán sau đ ể x ác định X → Y c ó là thành viên củ a F hay không.Thuậttoán n ày s ử
dụng tính chấtv ừ achứngminh trên.
T huậtto á nx á cđịnh f = X→Y c ó là thànhviênc ủ aF hay không
B ư ớ c1: tính X+
B ư ớ c2: so sá n hX+ v ớ iY n ế uX+ ⊇ Y thì ta khẳng định X → Y là thànhv iênc ủ aF
Bạn đọc h ãy nắm thậtk ỹ thuậttoánn ày – n ó m ở đầu cho m ộtloạt ứ n gdụng v ề sau.
+
III TH U Ậ TT O Á NTÌM F
1 T huậttoá ncơ b ả n
+
Đ ể tính bao đóngF củ a tập c á c phụ thuộc hàm F ta thực hiện cá c bướcsau: B ước1: Tìm
+
tấ t c ả tập con củ a Q
B ước 2: Tìm tấ t c ả c á c phụ thuộc hàm c ó thể c ó c ủ a Q. B ước 3:
Tìm bao đóngcủ a tấ t c ả tập con củ a Q.
+
B ước 4: Dựa v ào bao đóng củ a tấ t c ả cá c tậ p con đ ã tìm đ ể x ác định phụ thuộc hàm n àothuộcF
Ví dụ 3:
Cho lược đ ồ quan h ệ Q(A,B,C) F = {AB → C,C → B} là tập phụ thuộchàm trên Q. F+ được tính lần lượt
theo c á c bướctrên là như sau:
B ước1: C áctập con củ a Q+
∅ A B C
∅ {A} {B} {C}
{A,B} {A,C}
{B,C}
{A,B,C}
Bước 2: c á c phụ thuộchàm c ó thể c ó củ a F (khôngk ê cá c phụ thuộchàm hiển nhiên)
A B ABC BC ABCF C A CBCF+ ACBCF+ BCAC
+
AAB AABC BAC ABACF CBF CABC ACABCF BCAB
+ + +
A C B A BBC ABBCF CAB ACBF BCA C
AAC BAB BABC ABABCF CAC ACABF BCAB
+ +
B ước3: bao đóngcủ a cá c tập con củ a Q đ ố i v ớ iF
∅+ =∅ A+ = A C+ = BC
+
ABC =ABC B +
= B AC+ = ABC
+
AB = ABC BC+ = BC
B ước4: F = {AB → C,C → B} suy ra:
F+ = {AB→C,AB→AC,AB→BC,AB→ABC,C→B,C→BC,AC→B,AC→AB,AC→BC,AC→ABC}
2 T huậttoá nc ả itiến
Dựa v à o th u ậtto á ncơ b ả n trên ,ta nhậnth ấ yc ó th ể tính F+ theo c á c bư ớ csau: B ư ớ c1: Tìm
tấ tc ả tậ p con c ủ aQ+
B ư ớ c2: Tìm bao đ ó n gc ủ atấ tc ả tậ p con c ủ aQ+.
B ư ớ c4: Dựa v à obao đ ó n gc ủ ac á ctậ p con đ ã tìm đ ể suy ra c á cphụ th u ộch àm th u ộcF+.
Ví dụ bao đóngA+ = A c h ỉ gồm cá c phụ thuộchàm hiển nhiên
bao đóng{AB}+ = ABC cho c á c phụ thuộchàm khônghiển nhiên sau
AB→C,AB→AC,AB→BC,AB→ABC
(Tìm tấ t c ả cá c tập con c ủ a {ABC} rồ i b ỏ c á c tập con c ủ a {AB})
C áctập con c ủ a {ABC} là : ∅, {A},{B},{AB},{C},{AC},{BC},{ABC}
B ỏ c á c tập con củ a {AB} là : ∅, {A},{B},{AB},{C},{AC},{BC},{ABC}
C áctập c ò n lại chính l à v ế phảicủ a phụ thuộchàm c ó v ế trá ilà AB
IV B À IT Ậ P
1/ Cho quan h ệ sau:
r( A B C D E)
a1 b1 c1 d1 e1
a1 b2 c2 d2 d1
a2 b1 c3 d3 e1
a2 b1 c4 d3 e1
a3 b2 c5 d1 e1
Phụ thuộchàm n ào sau đây thỏar:
A→D,AB→D,C→BDE,E→A,A→E
2/ Cho Q+={ABCD}
a) Tìm tấ t c á c cá c tập con c ủ a Q
b) Tìm tấ t c ả cá c phụ thuộchàm c ó thể c ó c ủ a Q (khôngliệt k ê phụ thuộchàm hiển nhiên)
3/ Tìm bao đóngF+ củ a quan h ệ phanCong(PHICONG,MAYBAY,NGAYKH,GIOKH)
4/ Cho F = {AB→C,B→D,CD→E,CE→GH,G→A}
a) H ãychứngtỏ phụ thuộchàm AB→E,AB→G được suy diễn t ừ F n h ờ luậtdẫn Armstrong
b) Tìm bao đóngc ủ a AB(với b à i toán không n ó i gì v ề lược đ ồ quan h ệ Q ta ngầm hiểu Q+ l à tập thuộc tính c ó
trong F nghĩa là Q+={ABCDEGH})
5/ Cho F = {A→D,AB→DE,CE→G,E→H}. H ãytìm bao đóngcủ a AB.
6/ Cho F={AB→E,AG→I,BE→I,E→G,GI→H}.
a) H ãychứngtỏ phụ thuộchàm AB→GH được suy diễn t ừ F n h ờ luậtdẫn Armstrong
b) Tìm bao đóngc ủ a {AB}
7/ Cho F={A→D,AB→E,BI→E,CD→I,E→C} tìm bao đóngcủ a {AE}+={ACDEI}
----oOo----
Chương 5 .
P H ỦC Ủ AT Ậ PPH Ụ T H U Ộ CH À M
I ĐỊNH NGHĨA
N ó irằng hai tậ p phụ thuộchàm F v à G l à tương đương (Equivalent) nếu F+ = G+ k ý hiệu F ≡ G.
Ta n ó iF p h ủG nếu F+ ⊇ G+
T huậtto á nx á cđịnh F v à G c ó tương đương không
B ư ớ c1: V ớ im ỗ iphụ thu ộchà m X→Y c ủ aF ta x á cđịnh xem X→Y c ó là thànhviên c ủ aG khôngB ư ớ c2: V ớ i
m ỗ iphụ th u ộch à m X→Y c ủ aG ta x á c định xem X→Y c ó là thànhv iênc ủ aF khôngN ế uc ả hai b ư ớ ctrên đ ề u
đ ú n gthì F ≡ G
Ví dụ 1: Cho lược đ ồ quan h ệ Q(ABCDE) hai tậ p phụ thuộchàm :
F={A→BC,A→D,CD→E} v à G = {A→BCE,A→ABD,CD→E}
a) F c ó tương đương v ớ iG không?
b) F c ó tương đương v ớ iG’={A→BCDE} không?
G iải:
+
a) Ta c ó A =ABCDE ⇒ trong G+ c ó A→BC v à A→D ⇒ F ⊆ G+ ⇒ F+ ⊆ G+ (1).
+
A =ABCDE ⇒ trong F+ c ó A→BCE v à A→ABD ⇒ F+ ⊇ G ⇒ F+ ⊇ G+ (2)
(1) v à(2) ⇒ F+ = G+ ⇒ F ≡ G.
b) Do (CD) + = CD ⇒ G’+ không chứa phụ thuộc hàm CD→E ⇒ F không tương đương
v ớ iG’
II P H ỦT Ố ITH IỂ UC Ủ AM Ộ TT Ậ PPH Ụ TH U Ộ CH À M(minimal cover)
1 Phụ thuộch à m c ó v ế tr á idư thừa
F là tập cá c phụ thuộc hàm trên lược đ ồ quan h ệ Q, Z là tập thuộc tính, Z→Y∈F. N ó i r ằ n gphụ thu ộch àm Z →
Y c ó v ế trá idư thừa (phụ th u ộckhôngđ ầ yđ ủ )n ế uc ó m ộ tA∈Z sao cho:
F ≡ F-{Z → Y}∪ {(Z-A) → Y}
Ngược lại Z → Y là phụ th u ộchà m c ó v ế trá ikhôngdư th ừ ahay Y phụ thu ộch à m đ ầ yđ ủ v à o Z
hay phụ th u ộch àm đ ầ yđ ủ .
Ví dụ 2: Q(A,B,C) F={AB→C; B→C}
F ≡ F-{AB→C}∪{(AB-A)→C}={B→C}
AB → C là phụ thuộchàm khôngđầy đ ủ
B → C là phụ thuộchàm đầy đ ủ
C h úý: phụ thuộchàm c ó v ế trá ichứam ộ tthuộctính l à phụ thuộchàm đầy đ ủ .
Ví dụ 3: cho tập phụ thuộchàm F = {A → BC,B → C,AB → D} thì phụ thuộchàm AB→D c ó
v ế trá idư thừaB vì:
F ≡ F – {AB → D}∪{A → D}
≡ {A → BC,B → C,A → D}
Ta n ó iF là tậ p phụ thuộc h à m c ó v ế trá ik h ô n gdư th ừ an ế u F kh ôn gch ứ aphụ thu ộch àm c ó v ếtrá idư th ừa.
T huậtto á nloại k h ỏ iF c á cphụ thuộc h à m c ó v ế trá idư thừa.
B ư ớ c1: lầ n lượt thực h iệnb ư ớ c2 cho c á cphụ th u ộch à m X→Y c ủ aF
B ư ớ c2:V ớ im ọi tậ p con th ậ tsự X’≠ ∅ c ủ aX.
N ế uX'→Y∈ F+ thì thay X→Y trong F bằngX'→Y thực h iệnlại b ư ớ c2
Ví dụ: Ở ví dụ 3 phụ thuộc hàm AB→D c ó A+=ABCD ⇒ A→D∈F+. Trong F ta thay AB→D bằng
A→D ⇒ F ≡ {A → BC,B → C,A → D}
2 T ậ pphụ thuộch à m c ó v ế p h ả im ộtthuộctính (the right sides of dependencies has a
single attribute)
M ỗi tậ p phụ thuộc hàm F đều tương đương v ớ i m ộ t tập phụ thuộc hàm G m à v ế phải c ủ a cá c phụ thuộchàm trong G
c h ỉgồm m ộtthuộctính.
Ví dụ 4: cho F = {A → BC,B → C,AB → D} ta suy ra
F ≡ {A → B, A → C ,B → C,AB → D} = G
G được gọi l à tậ p phụ thuộc h à m c ó v ế p h ả im ộ tthu ộctính.
3 T ậ pphụ thuộch à m khôngdư thừa
N ó irằng F l à tập phụ thuộchàm không dư thừa nếu không tồ n tại F’⊂ F sao cho F’≡ F. Ngược
lại F là tập phụ thuộchàm dư thừa.
Ví dụ: cho F = {A→BC, B→D, AB→D} thì F dư thừavì
F ≡ F’= {A→BC, B→D}
C h úý: Theo thuậttoán trên, từ m ộ ttập phụ thuộchàm F luôn tìm được ít nhấtm ộ tp h ủ tố i thiểu Ftt
đ ể F≡ Ftt v à nếu th ứ tự loại cá c phụ thuộc hàm trong tập F là khác nhau thì c ó thể s ẽ thu được nhữngp h ủ tố i
thiểu khácnhau.
Ví dụ 5: Cho lược đ ồ quan h ệ Q(A,B,C,D) v à tập phụ thuộcF như sau:
F={AB → CD,B → C,C → D}
H ãytính p h ủtố i thiểu củ a F.
G iải:
B ước1: AB→CD là phụ thuộchàm c ó v ế trá idư thừa?
B → CD ∈ F+? trả lờ i: B+=BCD ⇒ B → CD ∈ F+
V ậy AB → CD là phụ thuộchàm c ó v ế trá idư thừaA ⇒ kết q u ả củ a bước1 là :
F≡ {B → CD;B → C;C → D}
B ước2: kết q uả củ a bước2 là :
F≡ {B → D; B → C;C → D}=F1tt
B ước3: trong F1tt, B → C l à phụ thuộchàm dư thừa?
B → C ∈ G+? v ớ iG = F1tt - {B → C}={B → D;C → D}
BG+=BD ⇒ B → C ∉ G+ ⇒ trong F1tt B → C không dư thừa.
trong F1tt,B → D l à phụ thuộchàm dư thừa?
B → D ∈ G+? v ớ iG = F1tt - {B → D}={B → C;C → D}
BG+=BCD ⇒ B → D ∈ G+ ⇒ trong F1tt,B → D dư thừa.kết
q u ả củ a bước3 cho p h ủ tố i thiểu:
F≡ {B → C;C → D}=Ftt
Ví dụ 6: Cho lược đ ồ quan h ệ Q(MSCD,MSSV,CD,HG) v à tập phụ thuộcF như sau:
F = {MSCD → CD;
CD → MSCD;
CD,MSSV → HG;
MSCD,HG → MSSV;
CD,HG → MSSV;
MSCD,MSSV → HG}
H ãytìm p h ủtố i thiểu c ủ a F
k ết quả :
Ftt = {MSCD → CD;
CD → MSCD;
CD,HG → MSSV;
MSCD,MSSV → HG}
III K H Ó AC Ủ ALƯỢCĐ Ồ QUAN HỆ (Key)
1 Định Nghĩa
Q(A1,A2,…,An)là lược đ ồ quan hệ.
Q+ là tập thuộctính c ủ a Q.
F là tậ p phụ thuộchàm trên Q.
K là tập con củ a Q+.
N ó irằngK là m ộtkh óac ủ aQ n ếu :
1. K+ = Q+ v à
2. K hôngtồ n tại K' ⊂ K sao cho K’+= Q+
M ộtlược đ ồ quan h ệ c ó thể c ó nhiều khóav à tập thuộctính khôngkhóacũngc ó thể bằng rỗng.
(Khi thiết k ế m ộ t h ệ thống thông tin, thì việc lập lược đ ồ cơ s ở d ữ liệu đạt đến m ộ t tiêu chuẩn n ào
đ ó l à m ột việc làm quan trọng. Việc x ác định chuẩn cho m ộ t lược đ ồ quan h ệ c ó liên quan m ật thiết v ớ i thuật toán tìm
khóa).
T huậtto á n tìm m ộ tkh óac ủ a m ộ tlược đ ồ quan h ệ Q B ư ớ c1:
g á n K = Q+
B ư ớ c2: A là m ộ tthuộc tính c ủ aK, đ ặ tK’ = K − A. N ế uK’+= Q+ thì g á nK = K' thực
h iệnlại b ư ớ c2
N ếu m uốn tìm c á c khóa khác (nếu c ó ) củ a lược đ ồ quan hệ, ta c ó thể thay đ ổ i th ứ tự loại b ỏ c á cphần t ử c ủ a K.
Ví dụ 7:
Q(A,B,C,D,E,G,H,I)F={AC→ B;BI → ACD;ABC→D;H→I;ACE→BCG;CG→AE}
Tìm K
L ần lượt loại c á c thuộctính trong K theo th ứ tự sau:
A, B, D, E, I
Ta được m ộ tkhóal à c ủ a lược đ ồ quan h ệ là {C,G,H}
(Lưu ý là thuậttoánn ày c h ỉ nên s ử dụng trong trườnghợp c h ỉcần tìm m ộtkhóa).
2 T huậttoá ntìm tấ t c ả k h óa
i T huậttoá ncơ b ả n
B ước 1: X ác định tấ t c ả c á c tậ p con khác rỗng củ a Q+. K ết q uả tìm được giả s ử là cá c tập thuộc tính X1,
X2, …,X2n-1
B ước2: Tìm bao đóngc ủ a c á c Xi
B ước3: Siêu khóalà cá c Xi c ó bao đóngđúngbằng Q+. G iả s ử ta đ ã có c á c siêu khóal à S =
{S1,S2,…,Sm}
B ước4: X ây dựng tập chứa tấ t c ả cá c khóa củ a Q từ tập S bằng cách x é t m ọi Si, Sj con c ủ a
S (i ≠ j), nếu Si ⊂ Sj thì ta loại Sj (i,j=1..n), kết q u ả c ò n lại của S chính là tậ p tấ t c ả cá c khóa
cần tìm.
Ví dụ 8: Tìm tấ t c ả c á c khóac ủ a lược đ ồ quan h ệ v à tập phụ thuộchàm như sau:
Q(C,S,Z); F = {f1:CS → Z; f2:Z → C}
X
i
Ví dụ 9: G iảilại b à itập ví dụ 8
A ù pdụng thuậttoánc ả i tiến ta c ó lờ igiảinhư sau:
TN = {S}; TG = {C,Z}
Gọi Xi là c á c tập con củ a tập TG:
C SC Q+ SC SC
Z SZ Q+ SZ SZ
CZ SCZ Q+ SCZ
K ết q u ảquan h ệ trên c ó hai khóal à : {S,C} v à {S,Z}
IV B À IT Ậ P
1/ Chứngminh cá c tính chấtsau:
a) Tính cộngđầy đ ủ X → Y v à Z → W ⇒ XZ → YW
b) Tính tích lũ y X → Y v à Y → ZW ⇒ X → YZW
2/ Cho G={AB→C,A→B,B→C,A→C}. F={AB→C,A→B,B→C} c ó tương đương v ớ iG không?
3/ Cho lược đồ CSDL
Kehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN)
F={NGAY,GIO,PHONG → MONHOC
MONHOC,NGAY → GIAOVIEN
NGAY,GIO,PHONG → GIAOVIEN
MONHOC → GIAOVIEN}
a) Tính {NGAY,GIO,PHONG}+ ; {MONHOC}+
b) Tìm p h ủtố i thiểu c ủ a F
c) Tìm tấ t c ả c á c khóac ủ a Kehoach
4/ Cho lược đồ CSDL
Q(TENTAU,LOAITAU,MACHUYEN,LUONGHANG,BENCANG,NGAY)
F={TENTAU → LOAITAU
MACHUYEN → TENTAU, LUONGHANG
TENTAU,NGAY → BENCANG, MACHUYEN}
a) H ãytìm tập p h ủtố i thiểu c ủ a F
b) Tìm tấ t c ả cá c khóacủ a Q
5/ Q(A,B,C,D,E,G)
Cho F={AB→C;C→A;BC→D;ACD→B;D→EG;BE→C;CG→BD;CE → AG}
X={B,D}, X+=?
Y={C,G}, Y+=?
10/ Q(A,B,C,D,E,H)
F={A → E; C → D; E → DH}
Chứngminh K={A,B,C} là khóaduy nhấtcủ a Q
11/ Q(A,B,C,D)
F={AB→C; D→B; C→ABD}
H ãytìm tấ t c ả cá c khóacủ a Q
12/ Q(A,B,C,D,E,G)
F={AB→C;C→ A;BC→D;ACD→B;D→EG;BE→C;CG→BD;CE→G}
H ãytìm tấ t c ả cá c khóacủ a Q.
13/ X ácđịnh p h ủtố i thiểu củ a tập phụ thuộchàm sau:
a) Q(A,B,C,D,E,G),
F={AB→C;C→A;BC→D;ACD→B;D→EG;BE→C;CG→BD;CE→AG}
b) Q(A,B,C)
F={A→B,A→C,B→A,C→A,B→C}
14/ X ácđịnh p h ủtố i thiểu củ a c á c tậ p phụ thuộchàm sau:
a) Q1(ABCDEGH)
F1={A→ H,AB→C,BC→D;G→B}
b) Q2(ABCSXYZ)
F2={S→A;AX→B;S→B;BY→C;CZ→X}
c) Q3(ABCDEGHIJ)
F3={BG→D;G→J;AI→C;CE→H;BD→G;JH→A; D→I }
d) Q4(ABCDEGHIJ)
F4={BH→I;GC→A;I→J;AE→G;D→B;I→H}
----oOo----
Chương 6 .
C H U Ẩ NH Ó ACƠ S Ở D ỮL IỆ U
Định nghĩa 2:
Lược đ ồ quan h ệ Q ở dạng chuẩn 3 n ế u mọi thuộc tính không kh óa c ủ a Q đ ề u không phụ th u ộcb ắ c cầ u v à o m ộ t
k h ó ab ấ tk ỳ c ủ aQ
Hai định nghĩa trên là tương đương, tuy nhiên việc c à i đặt thuật toán kiểm tra dạng chuẩn 3 theo định nghĩa 1
thì hiệu q uả hơn nhiều vì khôngphảikiểm tra tính phụ thuộcb ắc cầu.
Ta chứngminh hai định nghĩa tương đương bằng cách:
T ừ định nghĩa 1 ⇒ khôngc ó phụ thuộcbắc cầu v ào m ộtkhóabấ t k ỳ c ủ a Q. Thậtvậy:
Giả s ử c ó phụ thuộcbắc cầu v ào khóanghĩa l à c ó K → Y,Y → A,Y K v à A ∉ KY. Y → A
l à m ộ tphụ thuộchàm nên theo định nghĩa 1 c ó hai trườnghợp x ảy ra cho Y:
+ Y l à siêu khóa⇒ Y→K điều n ày m âu thuẫnv ớ iY K.
+ Y khônglà siêu khóa⇒ A là thuộctính khóa⇒ điều nà y trá iv ớ ig iả thiết A ∉ KY
T ừ định nghĩa 2 ⇒ nếu X→A∈F+ v ớ iA∉X thì X l à siêu khóahoặc A là thuộctính khóa
N ếu X→A∈F+ v ớ i A∉X c ó X không là siêu khóa v à A không l à thuộc tính khóa thì dẫn đến m ột số điều sau:
A không là thuộctính khóa ⇒ A ∉ K X
khônglà siêu khóa⇒ X K
Tóm lại ta c ó K→X, X→A,X K v à A ∉ KX ⇒
A phụ thuộc bắc cầu v ào K điều nà y m âu thuẫn v ớ i định nghĩa 2. H ệ qu ả 1:
N ếu Q đạt chuẩn3 thì Q đạt chuẩn2
H ệ q uả 2: N ếu Q không c ó thuộc tính không khóa thì Q đạt chuẩn 3. Chứng
minh:
H ệ q u ả 1: G iả s ử Q đạt dạng chuẩn 3 v à c ó thuộc tính không khóa A không phụ thuộc hàm đầy đ ủ
vào khóa K ⇒ K’⊂ K sao cho K’→A như vậy ta c ó K→K’,K’→A,K’ K, A ∉ KK’⇒ Q c ó phụ
thuộcbắc cầu.
H ệ q uả 2: mọi phụ thuộchàm trong Q đều c ó v ế phảil à thuộctính khóa ⇒ Q đạt dạng chuẩn3
Định lý:
Q là lược đ ồ quan h ệ
F là tậ p c á cphụ thu ộchà m c ó v ế phải m ộ tthu ộctính.
Q đạt ch u ẩ n3 n ế uv à c h ỉn ế umọi phụ thu ộch àm X→A∈F v ớ iA∉X đ ề uc ó
• H oặcX là siê ukh óa
• H oặcA là th u ộctính kh óa
Chứngminh:
Q đạt dạng chuẩn 3 theo định nghĩa ta suy ra m ọi phụ thuộc hàm X→A∈F v ớ i A∉X c ó X là siêu khóahoặc A
l à thuộctính khóa.
Ngược lại ta phải chứngminh nếu mọi phụ thuộc hàm X→A∈F v ớ i A∉X c ó X l à siêu khóa hoặc A
l à thuộc tính khóa thì m ọi phụ thuộc hàm X→A∈F+ v ớ i A∉X cũng c ó X là siêu khóa hoặc A l à thuộctính
khóa
G iả s ử c ó phụ thuộc hàm X→A∈F+ v ớ i A∉X sao cho X không là siêu khóa v à A không l à thuộc tính khóa s ẽ dẫn
đến A ∈ X+ ⊆ X ∪ {cá c thuộc tính khóa} điều nà y m âu thuẫn v ớ i A ∉ K.Trước khi chứngminh A ∈
X+ ⊆ X ∪ {c á c thuộctính khóa} ta c ó nhận x é t sau:
X không l à siêu khóa ⇒ X+ cũng không l à siêu khóa. Theo thuật toán tìm bao đóng, X+ được hình thành t ừ c á c Xi
⇒ ở m ỗ ibướ cXi cũngkhôngl à siêu khóa.
B ướccơ sở: X0 = X ⇒ X0 ⊆ X ∪ {cá c thuộctính khóa}
B ướcqui nạp: g iả s ử c ó Xi-1 ⊆ X ∪ {cá c thuộc tính khóa}. Bao đóngXi được hình thành do c ó
fj = Xj → Yj đ ể Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj ⇒ fj = Xj → Yj l à phụ thuộc hàm c ó Xj
không l à siêu khóa⇒ fj = Xj → Yj l à phụ thuộchàm c ó Yj l à thuộctính khóa⇒ Xi = Xi-1 ∪
Yj ⊆ X ∪ {c á c thuộctính khóa}
Qua chứngminh trên ⇒ A∈X+ ⊆ X ∪ {cá c thuộc tính khóa}⇒ A∈ X∪{c á c thuộc tính khóa}
⇒ A∈{c á c thuộc tính khóa} điều nà y nghịch l ý v ớ iđiều A ∉ K.
T huậtto á nk iểmtra dạn gchuẩn3
V à o: lược đ ồ quan h ệ Q, tậ p phụ thuộch à m F
Ra: khẳngđịnh Q đạt chuẩn3 hay không đạt chuẩn3.
B ư ớ c1: Tìm tấ tc ả kh óac ủ aQ
B ư ớ c2: T ừ F tạo tậ pphụ th u ộch à m tương đương F1tt c ó v ế p h ả im ộ tthu ộctính.
B ư ớ c3: N ế umọi phụ thu ộch à mX → A ∈ F1tt v ớ iA∉X đ ề uc ó X là siê ukh óahoặcA là
th u ộctính kh oá thì Q đạt chuẩn3 ngược lại Q khôngđạt chuẩn3
Ví dụ 5: Cho lược đ ồ quan h ệ Q(A,B,C,D) F={AB→C; D→B; C→ABD}.H ỏ iQ c ó đạt chuẩn 3
không?
G iải:
TN=∅ TG={ABCD}
Xi (TN Xi) (TN Xi)+ S iêuk h óa k h óa
φ φ φ
A A A
B B B
AB AB ABCD AB AB
C C ABCD C C
AC AC ABCD AC
BC BC ABCD BC
ABC ABC ABCD ABC
D D BD
AD AD ABCD AD AD
BD BD BD
ABD ABD ABCD ABD
CD CD ABCD CD
ACD ACD ABCD ACD
BCD BCD ABCD BCD
ABCD ABCD ABCD ABCD
K1 = {AB}; K2 = {AD}; K3={C} l à cá c khóa ⇒ mọi phụ thuộc hàm X→A∈F đều c ó A là
thuộctính khóa.V ậy Q đạt chuẩn3
Định nghĩa: Dạng chuẩnc ủ a m ộ tlược đ ồ cơ s ở d ữ liệ ulà dạng chuẩnth ấp nh ất trong c á cdạng chuẩnc ủ ac á clược
đ ồ quan h ệ con.
II P H É PT Á C HK Ế TN Ố IB Ả OT O À N
1 P héptáchk ết n ố ib ả otoàn th ôn gtin (lossless-join decomposition)
Cho lược đ ồ quan h ệ Q(TENNCC,DIACHI,SANPHAM,DONGIA) c ó quan h ệ tương ứ n gl à r
Đ ặtr1 là quan h ệ c ó được bằng cáchchiếu r lên Q1(TENNCC,SANPHAM,DONGIA),
Đ ặtr2 là quan h ệ c ó được bằng cáchchiếu r lên Q2(TENNCC,DIACHI)
Đặt r’l à quan h ệ c ó được bằng cáchkết tự nhiên giữar1 v à r2 qua TENNCC.
chẳnghạn:
r
TENNCC DIACHI SANPHAM DONGI
Hung 12 NguyễnKiệm Gạch ống A 200
Hung 12 NguyễnKiệm Gạch th ẻ 250
Hung 40 NguyễnOanh Gạch ống 200
r2 = r.Q2+ r1 = r.Q1+
TENNCC DIACHI TENNCC SANPHAM DONGI
Hung 12 NguyễnKiệm Hung Gạch ống A 200
Hung 40 NguyễnOanh Hung Gạch th ẻ 250
TENNCC
r’ = r1|><|r2
TENNC DIACHI SANPHA DONGI
C
Hung 12 NguyễnKiệm M
Gạch ống A 200
Hung 12 NguyễnKiệm Gạch th ẻ 250
Hung 40 NguyễnOanh Gạch ống 200
Hung 40 NguyễnOanh Gạch th ẻ 250
K ết q u ảlà r ≠ r’ hay r ≠ r.Q1|><|r.Q2.
V ớ ik ết qu ả trên, ta n ó i phép tách ρ (Q1,Q2) tách Q thành Q1, Q2 là tách-kếtn ố i (phân rã ) m ất m átthôngtin.
N ếu r = r.Q1|><|r.Q2 ta n ó i phép tách ρ (Q1,Q2) l à tách-kếtn ố i không m ất m át thông tin
(táchk ết n ố i b ảo toànthôngtin hay phân r ã b ảo toànthôngtin).
V ậy v ớ iđiều kiện nà o thì phép táchtrở thành tách-kếtn ố i khôngm ấtm átthôngtin?
i Định nghĩa ph éptáchQ thành2 lược đ ồ con
Q là lược đ ồ quan hệ, Q1, Q2 hai lược đ ồ con c ó :
Q1+∩ Q2+ = X
Q1+∪ Q2+ = Q+
N ó i rằng lược đ ồ quan h ệ Q được tách thành hai lược đ ồ con Q1, Q2 theo phép tách ρ (Q1,Q2) l à phép tách k ết
n ố i không m ất (hay phép tách bả o toàn thông tin) nếu v ớ i r là quan h ệ b ất k ỳ c ủ a Q
ta c ó :
X
r = r.Q1 >< r.Q2
T ứ cl à r được tạo nên t ừ phép kết n ố i tự nhiên của cá c hình chiếu củ a n ó trên c á c Q1,Q2
ii Tính chất
N ế uQ là một lược đ ồ quan h ệ ,Q1,Q2 là hai lược đ ồ quan h ệ con c ó
Q1+ ∩ Q2+ = X
Q1+ ∪ Q2+ = Q+
X → Q2+
X
Thì r = r.Q1 >< r.Q2
Chứngminh:
X
t ∈ r ⇒ t ∈ r.Q1 >< r.Q2
t ∈ r ⇒ ∃ t1∈r1 t1 = t.Q1 ∃ t2∈r2 t2 = t.Q2 t1.X = t2.X = t.X
X
⇒ t ∈ r.Q1 >< r.Q2 (Theo định nghĩa)
X
t ∈ r.Q1 >< r.Q2 ⇒ t ∈ r
X
t ∈ r.Q1 >< r.Q2 ⇒ ∃ t1∈r1 t1 = t.Q1 (1)
m à t1 ∈ r1=r.Q1 nên theo định nghĩa phép chiếu ta lại c ó ∃ t’∈r t1 = t’.Q1 (2)
(1) v à (2) ⇒ t’.Q1 = t.Q1 ⇒ t’.X = t.X ⇒ t’.Q2 = t.Q2 (do X → Q2)
⇒ t’ = t ⇒ t ∈ r
Ví dụ 10: cho Q(SAIP), Q1 =(SA) , Q2 =(SIP) F={S→A,SI→P}. H ỏ iviệc tách Q thành Q1 v à
Q2 c ó gây ra m ất m át thông tin không? Á p
dụng tính chấttrên,ta c ó
Q1+ ∩ Q2+ = S
Q1+ ∪ Q2+ = SAIP = Q+
S → SA = Q1+
S
Theo tính chất trên, v ớ i mọi quan h ệ r c ủ a Q ta luôn c ó r = r.Q1 >< r.Q2. Suy ra phép tách
trên l à phép táchkết n ố i b ảo toànthôngtin.
iii P h éptáchQ thànhn lược đ ồ con
Q là m ộtlược đ ồ quan hệ, F l à tập phụ thuộchàm .Q được tách thànhc á c lược đ ồ con Q1, Q2, Q3..., Qn
theo từn gbướcm à ở m ỗi bướ cm ột lược đ ồ được tách thành hai lược đ ồ con v à thỏa m ãn điều kiện củ a tính chấtb ảo toàn
thôngtin thì v ớ ir là quan h ệ bấ t k ỳ c ủ a Q ta luônc ó :
r = r.Q1|><|r.Q2|><|r.Q3..... |><|r.Qn
Chứngminh:
Ta chứngminh bằng phương phápqui nạp.
Ở bướ ci = 1 thì r = r.Q1|><|r.Q1m đúngtheo định lý b ảo toànthôngtin
G iả s ử biểu th ứ ctrên đúngở bướci = k nghĩa là ta c ó :
r = r.Q1|><|r.Q2|><|r.Q3..... |><|r.Qk |><|r.Qkm (1)
ta phảichứngminh r = r.Q1|><|r.Q2|><|r.Q3.....|><|r.Qk|><|r.Qk+1|><|r.Qk+1m
V ớ i Qkm được tách thành hai lược đ ồ con Qk+1 v à Qk+1m theo đúng điều kiện c ủ a tính chất b ảo toàn thông tin
nghĩa nếu s là quan h ệ củ a Qkm thì s = s.Qk+1|><|s.Qk+1m ⇒
r.Qkm = (r.Qkm).Qk+1|><|(r.Qkm).Qk+1m = r.Qk+1|><|r.Qk+1m ⇒
r = r.Q1|><|r.Q2|><|r.Q3.....|><|r.Qk|><|r.Qk+1|><|r.Qk+1m
iv T huậttoá nkiểm tra ph éptáchk ết n ố ib ả otoànthôngtin
(a)Thuậttoá n
D ữ liệu và o: lược đ ồ quan h ệ Q(A1,A2,…An), tập phụ thuộchàm F, phép táchρ =(Q1,Q2,…,Qk).
D ữ liệu ra: kết luận phép tách ρ c ó phảilà phép táchb ảo toànthôngtin ?
1. T hiếtlậ p bản gv ớ ik+1 dòng,n+1 c ộ t . C ộ tj ứ n gv ớ ithu ộctính Aj (j=1...n), h àngi ứ n g v ớ ilược đ ồ quan h ệ
Qi(i=1…k). Tại ví trí h àngi, c ộ tj ta đ iề nk ý h iệ uAj n ế uAj ∈ Qi, n ế ukhông
ta đ ặ tk ý h iệubt v à ov ị trí đ ó .(v ớ it đ ầ utiê n b ằ n g1) v à sau đ ó tăngt lê n m ộ tđơn vị.
2. X é tlầ n lượt c á cphụ thuộc h àm trong F, á p dụ n gcho bản gv ừ am ớ ithànhlậ p ở trên .G iảs ử x é t
(X → Y) ∈ F, chú ngta tìm những hàng giốn gnhau ở tấ t c ả c á c th u ộctính c ủ a X, n ế u thấy những
hàn g như v ậ y ta s ẽ là m cho c á c k ý h iệu c ủ a hai h àng n à y bằng nhau ở tấ t c ả c á c th u ộctính c ủ a Y. Khi là m
cho 2 k ý h iệu n à y bằng nhau, n ế u m ộ t trong hai k ý h iệu là aj thì cho k ýh iệu kia tr ở thànhaj, n ế u hai k ý
h iệ ulà bk h oặcbl thì c ó th ể cho chú ngtr ở th ànhbt hoặcbt (v ớ i
t = min (k,l)). B ư ớ cn à y được tiế p tục cho c á c phụ th u ộch àm c ò n lại c ủ a F cho đ ế n khi không
c ò ná p dụng được n ữ a .
3. X é tbản g k ế tq u ả ,n ế u th ấ y trong bả n g n à y c ó m ộ t hàng ch ứ atoàn aj (i=1..n) thì k ế t lu ận đ ó là p h é pk ế t n ố ib ả oto à n
thôngtin, ngược lại là p h é pk ế tn ố im ấ tm á tthôngtin.
C h ú ý: m ộ tđiều quan trọng cần phảin h ớ l à khi cho hai k ý hiệu bằng nhau thì phảicho bằng nhau ở
tấ t c ả cá c xuất hiện c ủ a chúng trong bảng chứ không phải c h ỉ cho bằng nhau ở những k ý hiệu trong phạm vi c á c phụ
thuộcX → Y ∈ F.
Ví dụ 11: V ớ iQ(ABCDE)
Q1 = (AD),Q2 =(AB), Q3 =(BE), Q4 =(CDE), Q5 =(AE)
F = {A→C,B→C,A→D,DE→C,CE→A}
Kiểm tra tính bả o toànthôngtin củ a phép phân r ã Q thànhQ1,Q2,Q3,Q4,Q5.
A B C D E A B C D E
Q1(AD) a1 b1 a3 a4 b3 Q1(AD) a1 b1 a3 a4 b3
Q2(AB) a1 a2 a3 a4 b6 Q2(AB) a1 a2 a3 a4 b6
Q3(BE) a1 a2 a3 b9 a5 Q3(BE) a1 a2 a3 a4 a5
Q4(CDE) a1 b11 a3 a4 a5 Q4(CDE) a1 b11 a3 a4 a5
Q5(AE) a1 b12 a3 a4 a5 Q5(AE) a1 b12 a3 a4 a5
D òng th ứ Q3(BE) củ a bảng chứa toàn g iá trị aj (j=1..n) nên phép phân rã trên l à bả o toàn
thôngtin.
(b)Đ ịnhlý
B ản g k ế t q u ả c ủ a thu ật to á n tr ê n cho p h é p ta k ế t lu ận được tính b ả o toàn hay không b ả o toànthôngtin c ủ a
p h éptá c h.
Chứngminh:
Ta chứng minh nếu bảng kết qu ả thuật toán không c ó hàng c hỉ chứa toàn g iá trị a thì phép tách
khôngb ảo toànthôngtin. Thậtvậy:
Ta xây dựng m ộ tquan h ệ r có c á c g iá trị như bảngkết q u ả c ủ a thuật toán, cá c hàngl à cá c b ộ .Quan
h ệ r thỏa tậ p phụ thuộc F vì thuật toán đ ã sử a c á c g iá trị c ủ a r đ ể n ó k hỏ i vi phạm cá c phụ thuộchàm trong F ⇒
r l à m ột quan h ệ củ a lược đ ồ Q. Ta tách quan h ệ r thành cá c quan h ệ ri v ớ i ri = r.Qi v à dùngphép kết tự
nhiên đ ể kết chúnglại. N ếu:
+ ∃ k Qk+∩Qi+ = ∅ ∀i ⇒ r1|><|r2....|><|rk không tồ n tại ⇒ phép tách không b ả o toàn
thôngtin.
+ ∀i,∃ k Qi+∩Qk+ = Xik ≠ ∅ m à m ỗ i ri đều c ó m ột b ộ ti chứa toàn a ⇒ c á c ti n ố i được v ớ inhau vì
c ó cùng g iá trị trên Xik ⇒ c ó m ộ t b ộ t∈r1|><|r2....|><|rk c ó toàn g iá trị a, b ộ
n ày lại không c ó trong r ⇒ r ≠ r1|><|r2....|><|rk ⇒ phép tách không bả o toàn thông
tin.
Ta chứngminh nếu bảng kết q u ả thuật toán c ó hàng chỉ chứa toàn g iá trị a thì phép tách b ảo toàn
thôngtin. Ta chứngminh điều n ày qua 2 bước:
+ B ước1: chứngminh nếu t∈r⇒ t∈r1|><|r2....|><|rk. Suy ra r⊆r1|><|r2....|><|rk.
G iả s ử t=(a1,...,an)∈ r . Ta tách quan h ệ r thành c á c ri = r.Qi v ớ i ti = t.Qi. C ó hai trường
hợp:
o ∀i,∃ k Qi+∩Qk+ = Xik ≠ ∅ ⇒ c á c ti n ố i được v ớ inhau vì c ó cùngg iá trị trên Xik ⇒ b ộ
t∈r1|><|r2....|><|rk ⇒ r ⊆ r1|><|r2....|><|rk.
o ∃ k Qk+∩Qi+ = ∅ ∀i. Suy ra bảng kiểm tra b ảo toàn th ô n gtin ở giai đoạn chưa thỏa cá cphụ thuộc
hàm ,c ó dạng:
V ớ imọi X⊆Q+ tk.X ≠ ti.X v ớ i i≠ k nên khi làm bằng c á c g iá trị theo c á c phụ thuộc hàm X→Y
thì c á c g iá trị b ở dòng Qk không thay đ ổ i c ò n cá c g iá trị b ở cá c c ộ t Ak,Ak+1,... không đ ổ i thành a được. Suy ra
bảngk ết q uả c ủ a thuật toán khôngbao g iờ chứa dòngc ó toàng iá trị a. V ậy trườnghợp
∃ k Qk+∩Qi+ = ∅ ∀i khôngxả y ra khi bảngkiểm tra b ảo toànthôngtin c ó m ộ tdòngtoàna.
+ B ước2: chứngminh nếu t∈r1|><|r2....|><|rk⇒ t∈r. Suy ra r1|><|r2....|><|rk⊆r.
G iả s ử t=(a1,...,an)∈ r1|><|r2....|><|rk theo định nghĩa suy ra ∀i ∃ ti∈ri sao cho
t.Qi+ = ti. Nhưng ri=r.Qi+ ⇒ ∃ ti’∈r sao cho ti’.Qi+=ti=t.Qi+ ∀i . Trườnghợp xấu nhất
l à c á c ti’là cá c dòng khác nhau. Trong trường hợp này, ta c ó thể xem ti’là dòng Qi c ủ a bảng kiểm tra b ảo
toàn thông tin v ớ i cá c g iá trị b xem như chưa biết. Nhưng cá c dòng Qi phải thỏa c á c
phụ thuộc hàm trong F, phép làm bằng c á c g iá trị theo các phụ thuộc hàm đ ã dần dần x ác định
được tấ t c ả cá c g iá trị b c ủ a m ột dòngti’n ào đ o ,ùlà dòngcó toàn g iá trị a. V ậy c ó m ộ t i’ đ ể ti’=
t ⇒ t∈r ⇒ r ⊇ r1|><|r2....|><|rn (2)
(1) v à (2) ⇒ r = r1|><|r2....|><|rn. N ó icách khácphép táchbả o toànthôngtin.
2 P héptáchb ả otoàn phụ thuộch à m (decompositions that preserve dependencies)
i T ậpphụ thuộch àm Fi c ủ aQi
Phần trên c h ỉ đ ề cấp vấn đ ề tách m ộ t lược đ ồ quan h ệ Q(A1,A2,…An)thành c á c lược đ ồ con Q1,Q2,
…,Qk c ò n không đ ề cập đến tậ p phụ thuộc hàm c ủ a c á c lược đ ồ con này. N ếu Q(A1,A2,…
An) là lược đ ồ quan hệ, F phụ thuộc hàm , ρ =(Q1,Q2,…,Qk)l à phép phân r ã b ảo toàn thông tin, ri l à
quan h ệ củ a Qi thì tính chấtsau thỏa:
+ ri c h ỉth ỏ ac á cphụ thu ộch à m X→Y∈F+ v ớ iXY⊆ Qi+
N ó icách khác,tập phụ thuộchàm củ a Qi chính là Fi c ó Fi+={X→Y∈F+| XY⊆Qi+}. Ta c ó thể hiểu
F được phân r ã thànhcá c F1,...,Fk
Chứngminh tính chấttrên:
Do ri được tách t ừ r m à r thỏa F+ ⇒ ri thỏa c á c phụ thuộc hàm X→Y∈F+ v ớ i XY⊆Qi+.Theo định nghĩa
phụ thuộc hàm , đương nhiên ri không thỏa c á c phụ thuộc hàm X→Y∈F+ v ớ i XY⊄Qi+. Ngoàira ri
không thỏa b ấ t k ỳ m ộ t phụ thuộc hàm n ào X→Y∉F+ . Thật vậy nếu c ó X→Y như vậy
thì r = r1|><|r2....|><|rn cũng phải thỏa X→Y∉F+. Điều nà y m âu thuẫn v ớ i định nghĩa
c ủ a tậ p F+ .
ii Định nghĩa:
Cho phân r ã ρ =(Q1,Q2,…,Qk) c ủ a m ộ tlược đ ồ quan hệ, v à m ộttập phụ thuộchàm F. Hình chiếu
c ủ a F trên m ộ ttập cá c thuộctính Qi+ k ý hiệu Π Qi(F) l à tập cá c phụ thuộchàm X → Y ∈ F+ sao
cho XY ⊆ Z.
Π Qi(F)=Fi+={ X → Y| X → Y ∈ F+ v à XY ⊆ Qi}
Ta n ó iphân r ã ρ b ảo toàntập phụ thuộchàm F nếu
F ≡ ∪ Π Qi(F) ⇔ F+ = (∪ Π Qi(F))+ v ớ i i=1..k
Ví dụ12: Cho lược đ ồ quan h ệ Q(A,B,C) v à F={A→B,B→C,C→A}. Phép phân rã ρ =(Q1,Q2) tách
Q thành hai lược đ ồ quan h ệ Q1(A,B) v à Q2(B,C). H ãy tính hình chiếu c ủ a F trên Q1+ v à Q2+.Phép
phân r ã c ó b ảo toànphụ thuộchàm F không?
G iải: v ề nguyêntắ c ta c ó thể giảib à itoántheo c á c bướ cdư ớiđây
B ước1: K ê tấ t c ả tập con c ủ a Q+
A B C
∅ A B C
AB AC
BC
ABC
+
B ước2: Tính bao đóngc ủ a các tập con c ủ a Q
+
∅+=∅ A =ABC B+ =ABC C+ =ABC
AB+ =ABC AC+ =ABC
BC+ =ABC
ABC+ =ABC
B ước3: Tính F+
A B B A CA ABABC ACB BCA
A→AB B→AB C→B AB→C AC→AB BCAB
A→C B→C C→AB AB→BC AC→BC BC→AC
AAC BAC CAC ABABC ACABC BCAB
A→BC B→BC C→BC C
A→ABC B→ABC C→ABC
B ước4: Tính Π Q1(F), Π Q2(F)
Π Q1(F)= F1+ ={A→B,A→AB,B→A,B→AB}≡ {A→B,B→A} (chỉlấy pth c ó v ế phải1 tt)
Π Q2(F)= F2+ ={B→C,B→BC,C→B,C→BC}≡ {B→C,C→B}(chỉlấy pth c ó v ế phải1 tt) B ước5:
G = Π Q1(F)∪ Π Q2(F)={A→B,A→AB,B→A,B→AB,B→C,B→BC,C→B,C→BC}
F={A→B,B→C,C→A} c ó A→B, B→C đều l à thành viên củ a G, c ò n C→A c ó là thành viên
c ủ a G hay không ta tính CG+. CG+=ABC ⇒ C→A cũng là thành viên củ a G. V ậy phép phân rã trên b ảo toàn phụ
thuộchàm .
B àitoán trên c ó thể được giảitheo cá c b ư ớ cđơn giảnsau cho từ nglược đ ồ quan h ệ con: Tính cho Q1
B ước1: K ê tấ t c ả tập con c ủ a Q1+
A B
∅ A B
AB
+
B ước2: Tính bao đóngc ủ a các tập con c ủ a Q1
+ +
∅+=∅ A =ABC B =ABC
+
AB =ABC
+
B ước3: Tính F1 =Π Q1(F)
A→B B→A
A→AB B→AB
Tính cho Q2
B ước4: K ê tấ t c ả tập con c ủ a Q2+
B C
∅ B C
BC
+
B ước5: Tính bao đóngc ủ a các tập con c ủ a Q2
+ +
∅+=∅ B =ABC C =ABC
+
BC =ABC
+
B ước6: Tính F2 =Π Q2(F)
B→C C→B
B→BC C→BC
B ước7:
G=Π Q1(F)∪Π Q2(F)={A→B,A→AB,B→A,B→AB,B→C,B→BC,C→B,C→BC}
F={A→B,B→C,C→A} c ó A→B, B→C đều là thành viên củ a G c ò n C→A c ó là thành viên củ a
G hay không ta tính CG+. CG+=ABC ⇒ C→A cũng l à thành viên củ a G. V ậy phép phân r ã trên b ảo toàn phụ
thuộchàm .
iii Ý nghĩa c ủ aphânr ã có b ả otoàn phụ thuộch à m
Ví dụ 13: Cho lược đ ồ quan h ệ Q(C,S,Z) v à F={CS→Z,Z→C}. Phép tách ρ =(Q1,Q2) tách Q
thànhhai lược đ ồ Q1(S,Z) v à Q2(C,Z). H ỏ iphép táchc ó b ảo toànphụ thuộchàm không?G iải:
Q1 c ó c á c tập thuộctính con:
S Z
∅ S Z
SZ
Bao đóngcủ a c á c tậ p thuộctính con Q1+
+
∅ =∅ S =S
+ Z+ =ZC
SZ+ =CSZ
F1+ c h ỉ gồm cá c phụ thuộchàm hiển nhiên vì tấ t c ả c á c phụ thuộchàm sau đều khôngthỏa:
Z→C SZ→C
Z→ZC SZ→CS
SZ→CZ
SZ→CSZ
Q2 c ó c á c tập thuộctính con:
C Z
∅ C Z
CZ
Bao đóngcủ a c á c tậ p thuộctính con Q2+
+
+
∅ =∅ C =C Z+ =ZC
CZ+ =CZ
F2+ gồm c á c phụ thuộc:
Z→C Z→ZC
Ví dụ 14: thực hiện lại ví dụ 13, nghĩa l à kiểm tra phép tách c ó b ảo toàn phụ thuộc hàm không? V ào:
Q(C,S,Z),F={CS→Z,Z→C},Q1(S,Z) v à Q2(C,Z)
Đương nhiên Z→C∈G = Π Q1(F)∪Π Q2(F)⇒ Z→C ∈ (Π Q1(F)∪Π Q2(F))+
1. Z’=CS
+ +
2. g án Z’= Z’∪((Z’∩ Q 1 )+ ∩ Q1 ): Z’ = CS∪(S∩SZ)=CS
B ước1 v à 2 c ó Z’ khôngthay đổ i,ta sang lược đ ồ Q2 v à tính tiếp Z’
+ +
3. g án Z’= Z’∪((Z’∩ Q 2 )+ ∩ Q 2 ): Z’ = CS∪(C∩CZ)=CS
Z’khôngthay đ ổ iv à hết lược đ ồ quan h ệ ⇒ ngưng khôngtính tiếp Z’
4. V ậy CSG+ =CS⇒ CS→Z ∉ (Π Q1(F) ∪ Π Q2(F))+ phép phân r ã không b ảo toàn phụ thuộc
hàm .
Ví dụ 15: thực hiện lại ví dụ 12 v ớ in ộ idung kết luận phép táchρ c ó b ảo toàn phụ thuộchàm không
(khôngtính F+)
V ào: Q(A,B,C),F={A→B,B→C,C→A},Q1(A,B) v à Q2(B,C)
Hiển nhiên G = Π Q1(F) ∪ Π Q2(F) ⊇ {A→B,B→C}
Ta x ác định C→A c ó thuộc(Π Q1(F) ∪ Π Q2(F))+
1. Z’=C
+ +
2. g án Z’= Z’∪((Z’∩ Q 1 )+ ∩ Q1 ): Z’ = C∪(∅∩AB)=C
B ước1 v à 2 c ó Z’ khôngthay đổ i,ta sang lược đ ồ Q2 v à tính tiếp Z’
+ +
3. g án Z’= Z’∪((Z’∩ Q 2 )+ ∩ Q 2 ): Z’ = C∪(ABC∩BC)=BC
Z’thay đ ổ i ⇒ tính tiếp Z’b ắ t đầu t ừ lược đ ồ Q1
+ +
4. g án Z’= Z’∪((Z’∩ Q 1 )+ ∩ Q1 ): Z’ = BC∪(ABC∩AB)=ABC
do Z’=Q+ ⇒ Z’ s ẽ khôngbao g iờ thay đổi.
+
5. vậy C G=ABC ⇒ C→A∈(Π Q1(F) ∪ Π Q2(F))+ phép phân r ã b ảo toànphụ thuộchàm .
C h ú ý: đ ể tính được F1,F2,K1,K2 như hình trên, ta phải tính bao đóng c ủ a tấ t c ả tập con
c ủ a{SDM} v à {SDI} ⇒F1,F2 rồ i tìm tấ t c ả khóacủ a Q1 v à Q2.
+
S =S D+ =D M+ =M S+=S D+ =D I+ =I
+
SD
Phép phân r ã cũngcho kết q u ả phép phân rã bả o toàn thông tin, c á c lược đ ồ con Q1,Q2,Q3,Q4 đạt
chuẩn BC v à phép phân r ã không b ảo toàn phụ thuộc hàm vì G = F1 ∪ F2 ∪ F3 ∪ F4
={CS→G;HR→C;CH→R;C→T;HS→C} không tương đương v ớ i F (HT→R ∉ G+).Phép phân r ã
n ày tố t hơn vì c h ỉ c ó m ộ tphụ thuộchàm HT→R khôngthuộcG+ trong khi phép phân r ã trên c ó tớ i 2
phụ thuộchàm HT→R v à CS→G không thuộcG+.S ở dĩ phép phân r ã th ứ 2 tốt hơn vì ở bướcchọn
phụ thuộchàm đ ể phân r ã thànhQ1 phép phân rã đ ã chọn phụ thuộchàm sao cho khi chiếu F xuống
Q12 s ố phụ thuộchàm mang xuốngcàngnhiều càngtố t.
Ví dụ 19: cho Q(A,B,C,D,E,G), F={AE→C;CG→A;BD→G;GA→E} h ãy phân rã Q thành
các lược đ ồ con đạt chuẩnBC b ảo toànthôngtin.
Ví dụ 20: cho lược đ ồ Q(CSZ) c ó F={CS→Z,Z→C}. Q khôngthể phân r ã thành c á c lược đ ồ con ở dạng chuẩn
BC v ừ ab ảo toànthôngtin v ừ a bả o toànphụ thuộchàm .Thậtvậy:
TN={S} TG={CZ}
T ất c ả khóac ủ a Q là :
+
Xi TN∪Xi (TN∪Xi) siêu k h óa k h óa
∅ S S
Z SZ SZC SZ SZ
C SC SZC SC SC
ZC SZC SZC SZC
V ậy Q đạt dạng chuẩn 3 nhưng không ở dạng chuẩn BC vì c ó Z→C c ó v ế trái không là siêu khóa.
Nhưng nếu ta phân r ã Q thành c á c lược đ ồ con c ó ít hơn 3 thuộc tính thì phụ thuộcCS→Z
khôngsuy ra được t ừ c á c phụ thuộchình chiếu.
2 P hânr ã thànhdạng chuẩn 3 vừa b ả otoànthôngtin vừa b ả otoàn phụ thuộch àm
T huậtT oá nph ânr ã Q, F thànhdạng chuẩn3, b ả otoànthông tin, b ả otoànphụ thu ộch àm
D ữ liệu v à o: lược đ ồ quan h ệ Q v à tập phụ thuộchàm F.
D ữ liệu ra: m ộ t phân r ã sao cho m ỗ i lược đ ồ quan h ệ con đều đạt chuẩn 3 v ừ a b ảo toànthôngtin
v ừ ab ảo toànphụ thuộchàm .
N ế uc ó m ộ tphụ th u ộch àm n à oc ủ aFtt m à liê n quan đ ế ntấ t c ả c á c thu ộctính c ủ aQ thì k ế tq u ảphânr ã chính là
Q ( Q khôngth ểphânr ã )
N ế u c ó nhữngth u ộctính c ủ a Q không nằm trong m ộ tphụ thu ộcn à o c ủ a Ftt - d ù ở v ế p h ả ihay v ế trá ic ủ aF
thì ch úngtạo th à n hm ộ tlược đ ồ cầ n tìm.
siêu k h óa k h óa
∅ HS CTHRSG HS HS
C HSC CTHRSG HSC
T HST CTHRSG HST
CT HSCT CTHRSG HSCT
R HSR CTHRSG HSR
CR HSCR CTHRSG HSCR
TR HSTR CTHRSG HSTR
CTR HSCTR CTHRSG HSCTR
+ Q5 chứakhóac ủ a Q nên Q1,Q2,Q3,Q4,Q5 l à kết q u ảc ủ a phân rã .
Định lý: Thuậttoántrên tạo ra m ộtphân r ã ở dạng chuẩn 3 v ừ ab ảo toànthôngtin v ừ a bả o toànphụ thuộchàm
Chứngminh:
1. N ếu Ftt c ó phụ thuộchàm fi liên quan đến tấ t c ả thuộctính thì Q đạt chuẩn3. Thậtvậy:
fi∈Ftt ⇒ fi l à phụ thuộc hàm c ó v ế phải1 thuộc tính ⇒ fi c ó dạng K→A ⇒ K là siêu khóa.N ếu khóa c ủ a
Q l à K’⊂ K thì ta c ó K’→A ⇒ K→A l à phụ thuộc hàm c ó v ế trá i dư thừa điều
n ày m âu thuẫn v ớ i fi∈Ftt. V ậy K là khóa c ủ a Q ⇒ nếu Q c ó thuộc tính không khóa thì A là thuộc tính
khôngkhóaduy nhấtcủ a Q v à mọi phụ thuộchàm c ó v ế phảilà A phảic ó v ế trá ilà K
⇒ lược đ ồ quan h ệ Q khôngc ó phụ thuộchàm c ó v ế trá ikhôngl à siêu khóav à v ế phảikhônglà
thuộctính khóa⇒ Q đạt chuẩn3.
2. N ếu lược đ ồ Q’(W) gồm c á c thuộctính khôngxuấthiện trong Ftt thì Q đạt chuẩn3. Thậtvậy:
V l à tập con b ất k ỳ c ủ a W ta c ó V+=V ⇒ F’ củ a Q’ c hỉ gồm c á c phụ thuộc hàm hiển nhiên ⇒
trong F’ không c ó phụ thuộc hàm c ó v ế trá i không là siêu khóa v à v ế phải là thuộc tính không khóa⇒ Q’ đạt
chuẩn3.
3. Ta chứngminh m ỗilược đ ồ con ở dạng chuẩn3. Thậtvậy:
Theo thuật toán thì m ỗ i lược đ ồ con Qi c ó dạng YB v ớ i Y→B ⇒ Y là siêu khóa. G iả s ử trong
Qi c ó phụ thuộc hàm X→A c ó v ế trá i không là siêu khóa v à v ế phải không l à thuộc tính khóa.
Ta phân làm hai trườnghợp:
Trườnghợp 1: A=B ⇒ X→B ⇒ X ⊂ Y ⇒ Y→B là phụ thuộc c ó v ế trái dư thừa,điều n àytrá i v ớ iY→B
là phụ thuộchàm trong p h ủ tố i thiểu.
Trường hợp 2: A≠ B ⇒ A∈Y (1). Gọi K l à khóa c ủ a Qi ⇒ K ⊆ Y (2). A là thuộc tính
không khóa nên A ∉ K (3).(1)(2)(3)⇒ K ⊂ Y (4).K là khóa nên K→B ⇒ Y→B
là phụ thuộc hàm c ó v ế trá i dư thừa. Điều n ày trá i v ớ i điều phụ thuộc hàm Y→B là phụ thuộchàm củ a p h ủ tố i thiểu
Ftt
4. Ta chứngminh phép phân r ã b ảo toànphụ thuộchàm. Thậtvậy:
Hiển nhiên Ftt ⊆ G = ∪Π Qi(Ftt)⇒ Ftt+ ⊆ G+ (1)
Hơn nữ a Ftt+ ⊇ G = ∪Π Qi(Ftt)⇒ Ftt++ ⊇ G+ ⇒ Ftt+ ⊇ G+
(2) (1)v à (2) ⇒ Ftt+ = G+
5. Ta chứngminh phép phân r ã b ảo toànthôngtin. Thậtvậy:
L ập bảng kiểm tra b ảo toàn thông tin. Ta lần lượt đồng nhất cá c g iá trị c ủ a bảng trên theo c á c
+
phụ thuộc hàm được phát hiện ở m ỗ i bước củ a thuật toán tìm bao đ ó n gc ủ a tập thuộc tính Qi
v ớ i Qi+ chứa khóa K củ a lược đ ồ Q. Phụ thuộc hàm đầu tiên được phát hiện là Y→Aj∈Ftt sao
cho Qi+⊇Y v à Aj∉Qi+.Ở dòng c ủ a lược đ ồ Ql(YAj) c ó g iá trị aj ở c ộ t Aj nên khi làm bằng g iá
trị k ết q u ả l à ở c ộ t Aj của dòng c ó lược Qi c ó thêm g iá trị aj. Tiếp tục cho c á c phụ thuộc hàm pháthiện tiếp theo
ta sẽ c ó thêm c á c g iá trị a ở c á c cột khác củ a dòngQi. Do Qi chứakhóanên
c á c g iá trị a m ớ ithêm v ào củ a dòngQi s ẽ xuấthiện ở tấ t cả c á c thuộctính củ a lược đ ồ Q. Suy ra hàng củ a lược đ ồ
Qi s ẽ chứa toàn a l à điều phải chứngminh. Đ ể làm sáng t ỏ ý tưởng c ủ a phầnchứngminh n ày ta x ét trườnghợp
cụ th ể c ủ a ví dụ 21 :
B ước1: ta lập bảngkiểm tra b ảo toànthôngtin:
C T H R S G
Q1(CT) a1 a2
Q2(HRC) a1 a3 a4
Q3(THR) a2 a3 a4
Q4(CSG) a1 a5 a6
Q5(HSR) a3 a4 a5
B ước2:Ta chứngminh dòng Q5 củ a bảng trên s ẽ chứa toàn g iá trị a. Thật vậy: ta lần lượt đồngnhất cá c giá trị
c ủ a bảng trên theo c á c phụ thuộc hàm được phát hiện theo thuật toán tìm bao đóngc ủ a X={HSR} ⊇ K;
F={C→T,HR→C,TH→R,CS→G,HS→R}
X0=HSR
X1=HSRC do HR→C. Đồngnhất cá c g iá trị theo phụ thuộchàm này.Trên dòng
Q2 ở c ộ tC chứag iá trị a nên trên dòngQ5 s ẽ c ó thêm g iá trị a ở c ộ tC
X2=HSRCT do C→T. Đồngnhấtcá c g iá trị theo phụ thuộchàm này.
X3=HSRCTG do CS→G đồngnhấtc á c g iá trị theo phụ thuộchàm này.
C T H R S G
Q1(CT) a1 a2
Q2(HRC) a1 a2 a3 a4
Q3(THR) a1 a2 a3 a4
Q4(CSG) a1 a2 a5 a6
Q5(HSR) a1 a2 a3 a4 a5 a6
Do X+=Q+ nên dòngQ5 chứatoàng iá trị a
Ví dụ 22: Cho Q(ABCDEGH), F={AB→D; EH→G; G→C; D→C} h ãy phân r ã Q thànhcá c lược
đ ồ con ở dạng chuẩn3 v ừ a b ảo to à nthôngtin v ừ ab ảo toànphụ thuộc.G iải:
Tìm p h ủtố i thiểu Ftt củ a F
Ftt=F={AB→D; EH→G; G→C; D→C}
Á pdụng thuậttoán,Q được phân r ã thànhlược đ ồ CSDL sau:
Q1{ABD), Q2(EHG), Q3(GC), Q4(DC)
Tìm khóac ủ a Q
TN={ABEH} TG={GD}
Xi TN∪ Xi (TN∪ Xi)+ Siêu khóa K hóa
∅ ABEH ABCDEGH ABEH ABEH
G ABEHG ABCDEGH ABEHG
D ABEHD ABCDEGH ABEHD
GD ABEHGD ABCDEGH ABEHGD
Q1,Q2,Q3,Q4 không chứa khóa ⇒ đ ể b ảo toàn thông tin ta cần c ó Q5(A,B,E,H).V ậy kết q u ả c ủ a phân r ã l à
Q1,Q2,Q3,Q4,Q5
IV B À IT Ậ P
1/ Cho biết dạng chuẩncủ a cá c lược đ ồ quan h ệ sau:
a) Q(ABCDEG); F={A→BC, C→DE, E→G}
b) Q(ABCDEGH); F={C→AB, D→E, B→G}
c) Q(ABCDEGH) F={A BC, D E, H G}
d) Q(ABCDEG); F={ABC, CB, ABDE, GA}
e) Q(ABCDEGHI); F={AC→B,BI→ACD,ABC→D,H→I,ACE→BCG,CG→AE}
----oOo----
Đ Ề THI M Ẫ UM Ô NCƠ S Ở D ỮL IỆ U
(thờ igian 60 phút)
Đ ề1
B À I1: (6 điểm)
Đ ể quảnlý lịch dạy củ a cá c giáoviên v à lịch học củ a cá c lớp, m ộ ttrường tổ chứ cnhư sau:
M ỗigiáo viên c ó m ộ t m ã s ố giáo viên (MAGV) duy nhất, m ỗ i MAGV x ác định c á c thôngtin như: họ
v à tên giáo viên (HOTEN), s ố điện thoại (DTGV). M ỗi giáo viên c ó thể dạy nhiều m ôn cho nhiều khoa nhưng c h ỉ
thuộcsự quảnl ý hànhchánhc ủ a m ộ tkhoa n ào đ ó .
M ỗi m ôn học c ó m ộ t m ã số m ôn học (MAMH) duy nhất, m ỗ i m ôn học x ác định tên m ôn học
(TENMH). Ư ùngv ớ im ỗ ilớ p thì m ỗim ôn học c h ỉ được phân cho m ộ tgiáoviên.
M ỗi phòng học c ó m ộ t số phòng học (PHONG) duy nhất, m ỗ i phòng c ó m ột chứ c năng
(CHUCNANG); chẳng hạn như phòng lý thuyết, phòng thực hành m áy tính, phòng nghe nhìn, xưởngthực tậ p
cơ khí,…
M ỗi khoa c ó m ộ t m ã khoa (MAKHOA) duy nhất, m ỗ i khoa x á c định cá c thông tin như: tên khoa
(TENKHOA), điện thoại khoa(DTKHOA).
M ỗi lớ p c ó m ộ t m ã lớ p (MALOP) duy nhất, m ỗi lớ p c ó m ột tên lớ p (TENLOP), sĩ số lớ p (SISO). M ỗilớ p c ó th ể
học nhiều m ôn của nhiều khoa nhưng c h ỉ thuộcsự quảnl ý hànhchính củ a m ột khoa n ào đ ó .
H àngtuần, m ỗi giáo viên phảilập lịch b áo giảngcho biết giáo viên đ ó s ẽ dạy nhữnglớ p nào,ngày
n ào (NGAYDAY), m ôn gì, tại phòng nào, t ừ tiết (TUTIET) n ào đến tiết (DENTIET) nào, tựa đ ề
b à i dạy (BAIDAY), những ghi c h ú (GHICHU) v ề c á c tiết dạy này, đây l à g iờ dạy lý thuyết
(LYTHUYET) hay thực hành - giả s ử nếu LYTHUYET=1 thì đ ó là g iờ dạy thực hành v à nếu
LYTHUYET=2 thì đ ó l à g iờ l ý thuyết, m ộ t ngày c ó 16 tiết, sáng t ừ tiết 1 đến tiết 6, chiều t ừ tiết 7
đến tiết 12, tố i từ tiết 13 đến 16.Giảs ử ta c ó lược đ ồ cơ s ở d ữ liệu đ ể quảnlý b à itoántrên như sau:
Giaovien(MAGV,HOTEN,DTGV,MAKHOA)
Monhoc(MAMH,TENMH)
Phonghoc(PHONG,CHUCNANG)
Khoa(MAKHOA,TENKHOA,DTKHOA)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Lichday(MAGV,MAMH,PHONG,MALOP,NGAYDAY,TUTIET,DENTIET,BAIDAY,LYTHUYET,GHICHU)
Tính F1, K1
Tính F2,K2
F2={E->BH} F22={E->K;CE->G}
Q2(E,B,H) Q22(C,E,G,K)
K2=E K22 = CE
Tính F4,K4
Tính F3,K3
F3={E->K} F4={CE->G}
Q3(E,K) Q4(C,E,G)
K3 = E K4 = CE
Q1: Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)
T ân từ: M ỗi ngườithợ đều c ó m ã s ố là MATHO đ ể nhận diện. M ỗi thợ c h ỉ có m ộ t tên (TENTHO)
v à c h ỉ thuộc m ộ t nhóm (NHOM). N hóm trưởng (NHOM_TRUONG)củ a m ỗ i nhóm là m ộttrong s ố những
ngườithợ c ủ a nhómđ ó .
MGT(MATHO)=MGT(NHOM_TRUONG)
Q2: Cong_viec(MACV,NOIDUNGCV)
T ân từ: Dịch vụ sử a chữa xe được chia n h ỏ thành nhiều công việc đ ể d ễ dàng tính toán chi phí v ớ ikhách hàng. M ỗi
công việc đều c ó m ã riêng (MACV) v à n ộ i dung củ a công việc được m ô
tả qua NOIDUNGCV.
Q3: Hop_dong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,
NG_GAIO_DK,NG_NGTHU)
T ân từ: M ỗihợp đồng sử a xe k ý kết v ớ ikháchhàng đều c ó m ã số (SOHD) đ ể phân biệt. NGAYHD
là ngày k ý hợp đồng. M ỗi khách hàng c ó m ộ t m ã s ố (MAKH), m ộ t tên (TENKH) v à m ột
địa c h ỉ (DCHI) đ ể theo d õ icôngnợ. SOXE là số đăng b ộ củ a xe đem đến sử a chữa,s ố n ày
do phòng CSGT đường b ộ cấp (nếu xe đ ổ i c h ủ thì xem như m ột xe khác). Khách hàng k ý hợp đồng
chính là c h ủ xe sử a chữa. M ột khách hàng c ó thể k ý nhiều hợp đồng sử a chữanhiều xe khác nhau hoặc
hợp đồng sử a chữa nhiều lần củ a cùng m ột xe nhưng trong cùngm ột ngày. Những công việc sử a chữa
cho m ộ tđầu xe c h ỉ k ý hợp đồng m ộ tlần. TRIGIAHD
là tổng trị g iá củ a hợp đồng. NG_GIAO_DK là ngày dự kiến phải giao trả xe cho khách.
NG_NGTHU l à ngàynghiệm thu thậtsự sau khi đ ã sử a chữaxong đ ể thanh lý hợp đồng.
Q4: Chitiet_HD(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)
T ân từ: M ỗi hợp đồng sử a xe c ó thể gồm nhiều công việc. MACV là m ã số c ủ a từ ng công việc.
TRIGIA_CV là chi phí v ề v ật tư, phụ tùng,thiết bị, công thợ ... đ ã tính toán v ớ i khách. M ỗicông việc củ a
hợp đồng s ẽ giao cho m ộ t ngườithợ phụ trách (MATHO) v à m ộ t ngườithợ
c ó th ể tham gia và o nhiều công việc củ a m ộ t hay nhiều hợp đồng khác nhau. KHOANTHO
là s ố tiền giao khóanlại cho ngườithợ sử a chữa.
Q5: Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)
T ân từ: Khách hàng (MAKH) c ó thể thanh toán tiền củ a m ột hợp đồng (SOHD) làm nhiều lầ n trước hoặc
sau khi nghiệm thu (trong cùng ngày hoặc khác ngày) . M ỗi lần thanh toán đều
c ó s ố phiếu đ ể phân biệt (SOPH), NGAYPH l à ngày phát hành phiếu v à SOTIENTHU là s ố tiền thanh
toán.HOTEN l à họ tên c ủ a ngườimang tiền đến thanh toán (c ó thể khác v ớ i tên củ a kháchhàngđứngra k ý
hợp đồng)
C âu h ỏ :i
1/ X ác định tập hợp F gồm tấ t c ả c á c phụ thuộc ham suy ra từ tân t ừ c ủ a cá c lược đ ồ quan h ệ (khôngcần liệt k ê c á c phụ
thuộchàm hiển nhiên).X ácđịnh khóacho từ nglược đ ồ quan hệ.
2/ M ô t ả tấ t c ả cá c ràng buộc toàn vẹn củ a lược đ ồ cơ s ở d ữ liệu C. L ập bảng tầm ản h hưởngtổng
hợp.
3/ D ùngngônn g ữ SQL đ ể thực hiện nhữngyêu cầu sau:
a) Cho biết danh sách những người thợ hiện không tham gia v ào m ộ t hợp đồng sử a chữ anào.
b) Cho biết danh sách những hợp đồng hiện đ ã thanh l ý (đ ã giao tra xe cho khách) nhưng chưa được
thanh toánđầy đ ủ .
c) G iả s ử hôm nay là ngày 21/12/95 cho biết danh sách những hợp đồng cần phải hoàn tấ t trước ngày
31/12/95.
d) Cho biết ngườithợ nà o thực hiện nhiều côngviệc nhất.
e) Cho biết ngườithợ n ào thực hiện tổng giá trị côngviệc (tổngs ố tiền) cao nhất.
4/ Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất). H ãy dùngthuật toán phân r ã đ ể nâng cấp lược đ ồ cơ s ở d ữ liệu
trên.
Đ á p á n:
C âu 1:
F1={MATHO→TENTHO,NHOM,NHOM_TRUONG}
Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)
F2={MACV→NOIDUNGCV}
Q2:Congviec(MACV,NOIDUNGCV)
F3={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU;
MAKH→TENKH,DCHI}
Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)
F4={SOHD,MACV→TRIGIA_CV,MATHO,KHOANTHO}
Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)
F5={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU;SOHD→MAKH}
Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)
b)SELECT
sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu
FROM hop_dong
WHERE ng_giao_dk <= DATE() AND (TRIGIAHD >
(SELECT SUM(SOTIENTHU) FROM phieu_thu
WHERE phieu_thu.sohd = hop_dong.sohd) OR sohd Not In (Select sohd
From phieu_thu))
c)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu
FROM hop_dong
WHERE ng_giao_dk > #12/21/95# AND ng_giao_dk <= #12/31/95#
C âu 4:
F1={MATHO→TENTHO,NHOM,NHOM_TRUONG}
Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)
K1 = MATHO
⇒ Q1 ở dạng chuẩnBC
F2={MACV→NOIDUNGCV}
Q2:Congviec(MACV,NOIDUNGCV)
K2 = MACV
⇒ Q2 ở dạng chuẩnBC
F3={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU;
MAKH→TENKH,DCHI}
Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)
K3 = SOHD
⇒ Q3 ở dạng chuẩn2
F4={SOHD,MACV→TRIGIA_CV,MATHO,KHOANTHO}
Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)
K4 = {SOHD,MACV}
⇒ Q4 ở dạng chuẩnBC
F5={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU;SOHD→MAKH}
Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)
K5 = SOPH
⇒ Q5 ở dạng chuẩn2
V ậy lược đ ồ cơ s ở d ữ liệu C đạt dạng chuẩn2.
F31={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU}
Q31: Hopdong(SOHD,NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)
K31 = SOHD
⇒ Q31 đạt chuẩn BC
F32={MAKH→TENKH,DCHI}
Q32: Khachhang(MAKH,TENKH,DCHI)
K32 = MAKH
⇒ Q32 đạt chuẩnBC
F51={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU}
Q51:Phieu_thu(SOPH,NGAYPH,SOHD,HOTEN,SOTIENTHU)
K51 = SOPH
⇒ Q51 đạt chuẩnBC
F52={SOHD→MAKH}
Q52:Hopdong(SOHD,MAKH)
K52 = SOHD ⇒ Q52 đạt chuẩnBC
Lược đ ồ Q52 l à lược đ ồ con c ủ a Q31 nên ta loại Q52 k hỏ ilược đ ồ cơ sở d ữ liệu C. V ậy lược đ ồ cơ s ở
d ữ liệu C được phân r ã thànhc á c lược đ ồ Q1,Q2,Q31,Q32,Q4,Q51
----oOo----
Đ ề3
Cho m ộ t lược sơ đ ồ cơ s ở d ữ liệu C dùng đ ể quản lý hoạt động kinh doanh kiều h ố i củ a m ột đơn vị. Lược đ ồ cơ s ở d ữ
liệu C gồm c á c lược đ ồ quan h ệ như sau :
Q1: Nguyen_te(LOAINT,NGAY,TIGIA,TILE_HH)
T ân từ : M ỗi nguyên tệ được nhận diện duy nhất qua LOAINT. C ác loại nguyên tệ c ó thể là : USD, FF, DM,
YEN, ...Thuộc tính TIGIA c h ỉ t ỉ g iá so v ớ i tiền đồng VN củ a m ỗ i nguyên tệ trong ngày ( do
Ngân hàng Ngoại thương quyết đ ịnh v ào đầu m ỗ i ngày v à c ố định trong ngày).Thuộc tính TILE_HH
là t ỉ lệ % huê hồng m à công ty được hưởng trên g iá trị chi trả củ a m ỗi nguyên tệ (tỉ lệ n ày c ố định trong
năm).
Lưu ý : Quan h ệ n ày c h ỉ chứa cá c nguyên tệ m à công ty c ó chi trả kiều hối. M ỗi khi cần chi trả m ô tloại nguyên tệ m ới,
côngty bắ t đầu lưu t ỉ g iá nguyêntệ m ớ ik ể t ừ ngàychi trả trở đi.
Q2: Don_vi(MADV,NUOC)
T ân từ : Công ty làm đại diện cho khoảng 50 đơn v ị của nướ cngoài đ ể chi trả kiều h ố i cho kháchhàng tại VN.
M ỗi đơn v ị c ó m ã riêng đ ể phân biệt (MADV)v à đ ặt trụ s ở chính tại 1 nước(NUOC).
Q3: Danh_sach(MADV,SODS,NGAYDS)
T ân từ : M ỗidanh sách liên quan đến 1 đơn vị, c ó m ộ t s ố th ứ tự (SODS) đ ể phân biệt v ớ i cá c danh sách khác củ a
cùng đơn vị. Thuộc tính NGAYDS l à ngày công ty nhận được danh sách,cũng l à ngày m à đơn
v ị tại nước ngoài g ở i danh sách cho công ty. Trong m ột ngày, m ộtđơn v ị tại nướcngoàic h ỉ g ở i tố i đa
m ộ tdanh sách.
Q4: Ctiet_ds(MADV,SODS,HOTENKH,DIACHI,LOAINT,TIENNT)
T ân từ : M ỗi danh sách chi trả c ủ a m ộ t đơn v ị có thể gồm nhiều kháchhàng.G iả s ử rằng thuộc tính HOTENKH c ó
th ể thêm m ộ t số thôngtin phụ đ ủ đ ể phân biệt v ớ i c á c khách hàng khác trong cùng danh sách. M ỗi khách
hàngc h ỉc ó m ộtđịa c h ỉ (DIACHI) v à nhiều kháchhàngc ó thể
c ó chung m ột địa chỉ. Trong m ộ t danh sách,m ỗ i khách hàng c hỉ nhận m ộ t loại nguyên tệ
v ớ isố tiền nguyêntệ là TIENNT
Q5: Giay_bao(SOGB,MADV,SODS,HOTENKH,NGAYGB,LAN)
T ân từ : Sau khi nhận danh sách c ủ a m ộ t đơn vị, công ty g ở i giấy báo cho cá c khách hàng tại VN.
M ỗigiấy b áo c ó s ố th ứ tự là SOGB (đánhs ố tăng dần) đ ể phân biệt v ớ ic á c giấy b áo khác
(của cùngđơn v ị hoặc khác đơn vị). N ếu sau 3 lần g ở igiấy b áo (m ỗilần cách nhau 1 tuần)
m à kháchhàngkhôngđến nhận tiền, côngty s ẽ g ở itrả cho đơn v ị tại nướcngoài).
Q6:Chi_tra(SOPCHI,MADV,SODS,HOTENKH,NGAYCTRA,SOTIENVN)
T ân từ : M ỗi khách hàng trong danh sach c ủ a 1 đơn vị, sau khi nhận giấy báo, s ẽ đến nhận tiền đồng VN 1
lần tại công ty v à m ỗi phiếu chi tiền cho khách s ẽ c ó s ố l à SOPCHI đ ể phân biệt v ớ i b ất k ỳ phiếu chi
khác. Thuộc tính SOTIENVN chỉ s ố tiền ĐVN mà khách hàng nhận được tương đương v ớ i
TIENNT ghi trong danh sách.T ỉ giá qui đ ổ i được tính v ào ngày
chi trả (NGAYCTRA). S ố tiền huê hồng m à công ty được hưởngs ẽ được tính toán dựa trên
s ố tiền thực chi (SOTIENVN) v à t ỉ lệ huê hồngcủ a nguyên tệ .
C âu h ỏ i:
1. X ác định tập F gồm tấ t c ả c á c phụ thuộc hàm suy ra từ tân từ c ủ a c á c lược đ ồ quan hệ. X ácđịnh khóacho từn g
lược đ ồ quan hệ.
2. M ô tả tấ t c ả cá c ràng buộctoànvẹn c ủ a lược đ ồ cơ s ở d ữ liệu. L ập bảngtầm ản h hưởngtổnghợp.
3. D ùngngônn g ữSQL đ ể thực hiện nhữngyêu cầu sau:
a) Cho biết t ỉ g iá củ a c á c nguyêntệ trong ngày21/12/95
b) Cho biết nhữngdanh sáchchi trả kiều h ố ic ủ a các đơn v ị c ó trụ s ở chính đ ặt tại nướcPháp.
c) Cho biết nhữngkháchhàngkhôngđến nhận tiền.
d) Cho tổng s ố tiền huê hồngm à côngty được trong khoảngth ờ igian t ừ ngàyd1 đến ngàyd2.
e) Cho biết đơn v ị nướcngoàic ó tổngs ố tiền chi trả (tính theo tiền đồngVN) cao nhất.
4. Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất) ? H ãy dùng thuật toán phân rã đ ể nâng cấp cơ s ở d ữ
liệu trên.
Lưu ý : C ác thuộctính c ó m iền g iá trị l à ngàydương lịch xem như thuộctính đơn.
----oOo----
Đ ề4
Cho m ộtlược đ ồ cơ s ở d ữ liệu C dùngđ ể quảnlý việc thuê m ướnphòngtại m ộ tkháchsạn. Lược đ ồ
cơ s ở d ữ liệu C gồm c á c lược đ ồ quan h ệ nhu sau :
Q1: Phong(MAPH,SO_NGUOI,DACDIEM,GIA_PHONG)
T ân từ: C ác phòng củ a khách sạn được phân biệt v ớ i nhau qua MAPH. SO_NGUOI là kh ả năngchứa tố i đa
c ủ a phòng. DACDIEM m ô t ả số đặc điểm củ a phòng. GIA_PHONG là g iá c ả thuê phòngtrong 1 ngày.
Q2: Tien_nghi(LOAI_TN,TEN_TN)
T ân từ: Ngoàic á c vậ t dụng tố i thiểu, khách sạn c ó thể trang b ị thêm m ộ t s ố tiện nghi khác cho c á c phòng như :
điện thoại, tivi, t ủ lạnh, … LOAI_TN là m ã s ố đ ể phân biệt từ ng loại tiện nghi. TEN_TN là
tên gọi c ủ a loại tiện nghi.
Q3: Tai_san(LOAI_TN,STT,MAPH,NGAY_TB)
T ân từ : M ỗi loại tiện nghi, khách sạn c ó thể mua m ộ t s ố lượng lớ n v à STT dùng đ ể phân biệt c á c
v ật dụng trong cùng loại tiện nghi. M ột v ậ t dụng c ó thể được sắp xếp trang b ị cho nhiều phòng khác
nhau nhưng trong m ộ t ngày v ật dụng c hỉ trang b ị cho m ộ t phòng. MAPH l à phòngđược trang
b ị v à NGAY_TB là ngàyb ắt đầu trang bị.
Lưu ý : M ỗikhi m ộ tv ật dụng được thay đ ổ i phòngthì cập nhậtlại MAPH v à NGAY_TB củ a v ật dụng
đó.
Q4: Thue_phong(MAPH,HOTEN,NGAYBD,NGAYKT,NGAYTRA,LOAIDV,NGAYDV,TIENDV)
T ân từ : HOTEN là họ tên củ a khách thuê phòng MAPH. G iả s ử rằng h ô tên cá c khách thuê phòngtrong cùng m ộ t
phòng trong m ộ t ngày luôn luôn khác nhau. NGAYBD v à NGAYKT là ngày
b ắt đầu v à ngày kết thúc (dự kiến) thuê phòng. NGAYTRA l à ngày trả thật sự. G iả s ử rằng không c ó
trường hợp khách trả phòng v à thuê lại chính phòng đ ó trong cùng m ộ t ngày. S ố tiền thuê phòng được
chia đều cho s ố kháchthuê trong cùngphòng.
Kháchthuê phòngc ó thể s ử dụng thêm cá c dịch vụ (gọi điện thoại đườngdài,thuê xe, th ủ
tục hành chính, … ) LOAI_DV là m ã s ố củ a loại dịch vụ s ử dụng. NGAYDV ngày dịch vụ thực hiện.
TIENDV l à s ố tiền kháchthuê phảitrả cho dịch vụ.
N ếu trong cùng m ộ t ngày khách thuê phòng s ử dụng 1 dịch vụ nhiều lần thì tiền dịch vụ
được cộng dồn lại thành m ộ t lần v à tạo thành m ột b ộ (ví dụ trong ngày gọi điện thoại 3 cuộc v ớ i s ố
tiền phải trả lần lượt là : 5000ĐVN, 4500ĐVN, 2000ĐVN thì s ẽ được tính chung m ộ t lần là
11500ĐVN). C ác dịch vụ được tính riêng đ ố i v ớ itừ ngkhách.N ếu là dịch
vụ chung cho m ộts ố kháchthì s ẽ tính tiền cho m ộtđơn v ị kháchđại diện n ào đ ó .
C âu h ỏ i:
1. X ác định tập F gồm tấ t c ả cá c phụ thuộc hàm suy ra t ừ tân t ừ c ủ a cá c lược đ ồ quan hệ. X ácđịnh c á c khóa cho
từn glược đ ồ quan hệ.
2. M ô t ả tấ t cả c á c ràng buộc toàn vẹn củ a lược đ ồ cơ s ở d ữ liệu C. Lập bảng tầm ả nh hưởngtổnghợp c ủ a cá c ràng
buộctoànvẹn.
3. D ùngngônn g ữSQL đ ể thực hiện nhữngyêu cầu sau :
a) Cho biết cá c thôngtin c ủ a c á c phòngc ó k h ảnăng chứatrên 3 người.
b) Cho biết cá c thôngtin c ủ a c á cphòngc ó trang bị m áylạnh (LOAITN=’ML’)
c) Cho biết c á c thôngtin củ a c á c phònghiện nay (02/01/96) c ó trang b ị m áylạnh.
d) G iả s ử hôm nay l à ngày 02/01/96. Tính tổng số tiền phảitrả (tiền thuê phòngv à tiền dịch vụ) củ a từn gkhách
đ ã thuê phòngX t ừ ngày21/12/95 v à trả phòngv ào hôm nay .
e) Cho biết doanh s ố thu được c ủ a từn gphòng(khôngtính tiền dịch vụ)
1. Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất) ?. H ãy dùng thuật toán phân rã đ ể nâng cấp lược đ ồ
cơ s ở d ữ liệu C.
Lưu ý : C ác thuộctính c ó m iền g iá trị là ngàydương lịch xem như thuộctính đơn.
----oOo----
Đ ề5
Cho m ộ tlược đ ồ cơ s ở d ữ liệu C dùngđ ể quản lý việc việc cho mượn sách tại m ột thư viện (xem tại ch ỗ hoặc mang v ề
nhà).Lược đ ồ cơ s ở d ữ liệu C gồm c á c lược đ ồ quan h ệ như sau :
Q1 : The_loai(MATL,TENTL)
T ân từ : S áchcủ a thư viện được phân chia theo thể loại đ ể bạn đọc d ễ dàngtra cứ u.MATL là m ã s ố c ủ a từ ngth ể loại v à
dùngđ ể phân biệt giữac á c thể loại. TENTL là tên gọi củ a thể loại.
Q2 : Sach(MASH,TENSH,NGUYEN_TAC,TAC_GIA,MATL)
T ân từ : MASH dùngđ ể phân biệt c á c quyển sách.TENSH l à tên (tựa) bằng tiếng V iệt củ a sáchv à
NGUYEN_TAC là tên nguyên tá c (tiếng V iệt hoặc tiếng nướcngoài).TAC_GIA l à tên tá c g iả (hay nhóm
c á c tá c giả)củ a sách.N ếu sáchc ó nhiều tập hay nhiều b ản thì cũngxem
như c á c đầu sáchkhácnhau v à c ó m ã s ố khácnhau. MATL là m ã thể loại củ a sách.
Q3 : phieu_muon(MADG,TENDG,DCHI,NGAYCAP,MASH,NGAYMUON,NGAYTRA,TAI_CHO)
T ân t ừ : M ỗi đ ộ c g iả c h ỉ c ó m ộ t phiếu mượn sách v ớ i m ã s ố là MADG đ ể phân biệt v ớ i c á c đ ộc g iả khác.C ác thuộc tính
TENDG, DCHI l à tên v à địa c h ỉ củ a đ ộ cgiả.NGAYCAP l à ngàycấp
th ẻ cho đ ộ c giả.MASH l à m ã s ố củ a sáchmượn. G iả s ử khôngc ó trườnghợp mượn rồ i trả
lại cùng1 quyển sáchtrong cùng1 ngày.N ếu sách mượn đọc tại ch ỗ thì thuộctính
TAI_CHO c ó g iá trị True v à NGAYMUON=NGAYTRA. N ếu sáchmượn v ề n h à thì thuộctính
TAI_CHO c ó g iá trị False v à NGAYTRA s ẽ c ó g iá trị trốngcho đến khi sáchđược mang trả
lại cho thư viện.M ỗiđ ộ cg iả c h ỉ được g iữ tại n h à tố i đa 3 quyển sáchv à m ỗiquyển sách
c h ỉđược g iữ tại n h à tố i đa 30 ngày(khôngcần lưu ý đến biện phápx ử lý nếu kháchvi phạm n ộ iqui)
Q4 : Le_phi(MADG,NAM,NGAY_NOP,SOTIEN)
T ân từ: Đ ộ cg iả phảiđónglệ phí hằng năm (NAM) đ ể gia hạn th ẻ m ớ iđược mượn sách.
NGAY_NOP,SOTIEN là ngàyv à số tiền nôp lệ phí cho NAM.
C âu h ỏ i:
1. X ác định tậ p F gồm tấ t c ả cá c phụ thuộc hàm suy ra t ừ tâ n t ừ củ a cá c lược đ ồ quan hệ. X ác định cá c khóa cho từ ng
lược đ ồ quan hệ.
2. M ô tả tấ t c á c ràng buộctoàn vẹn c ủ a lược đ ồ cơ s ở d ữ liệ C. L ập bảng tầm ả nh hưởngtổng hợp c ủ a cá c ràng buộctoàn
vẹn.
3. D ùngngônn g ữSQL đ ể thực hiện nhữngyêu cầu sau :
a) Cho biết danh sáchđ ộ cg iả v à nhữngquyểnsáchmượn q u á20 ngày(k ể t ừ ngày02/01/96).
b) Cho biết nhữngquyểnsáchc ó tên thể loại l à “Tin học” v à c ó sự tham gia biên soạn củ a tác g iả “X”.
c) Cho biết tổngs ố lần mượn củ a từ ngquyển sách.
d) Cho biết tổng s ố lần mượn c ủ a từn g thể loại sách.e) Cho
biết th ể loại sáchn ào được mượn nhiều nhất.
4. Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất) ? H ãy dùngthuật toán phân r ã đ ể nâng cấp lược đ ồ cơ s ở d ữ liệu
C.
Lưu ý : C ác thuộctính c ó m iền g iá trị là ngàydương lịch xem như thuộctính đơn.
T À ILIỆU THAM KHẢO
[1].Nhậpm ôn cơ s ở d ữ liệu
ĐồngThị Bích T hủy- NguyễnAn T ế
[3].Cơ s ở d ữ liệu
Đ ỗ Trung Tuấn
[5].Lýthuyếtthiết k ế cơ s ở d ữ liệu
JEFFREY D. ULLMAN