You are on page 1of 9

Bai oc them ve phu thuoc ham va khoa

Khai niem: Quan he R c nh ngha tren tap thuoc tnh U = { A1, A2, ..., An}. A, B U la 2 tap con cua tap thuoc tnh U. Neu ton tai mot anh xa f: A B th ta noi rang A xac nh ham B, hay B phu thuoc ham vao A, va ky hieu la A B. nh ngha hnh thc cua phu thuoc ham nh sau: Quan he Q (A, B, C) co phu thuoc ham A xac nh B (ky hieu la A B) neu: q, q Q, sao cho q.A = q.A th q.B = q.B (Ngha la: ng vi 1 gia tr cua A th co mot gia tr duy nhat cua B) A la ve trai cua phu thuoc ham, B la ve phai cua phu thuoc ham. A B c goi la phu thuoc ham hien nhien neu B A. Ngha la, mot tap A ln hn va bao tap con B th A xac nh c gia tr cua cac thuoc tnh trong tap B la ieu hien nhien. A B c goi la phu thuoc ham nguyen to, hoac noi cach khac, B c goi la phu thuoc ham ay u (fully functional dependence) vao A neu A A eu khong co A B. V du 1 : Quan he HOAN (So-hoa-n, So_chung_loai_mat_hang, Tong-tr-gia) co cac phu thuoc ham sau: f1: So-hoa-n So_chung_loai_mat_hang; f2: So-hoa-n Tong-tr-gia; bi v So-hoa-n la khoa cua lc o quan he HOAN. Neu biet so hoa n th ta co the xac nh c tat ca cac thong tin con lai lien quan en hoa n o, trong o co thong tin ve So_chung_loai_mat_hang va Tong-tr-gia tat ca cac mat hang cua hoa n. Cac phu thuoc ham tren eu la nguyen to. Quan he CHITIET_H (So-hoa-n, Ma-hang, So-lng-at, n-gia, Tr-gia) co cac phu thuoc ham sau: f1: So-hoa-n, Ma-hang So-lng-at.

f2: So-hoa-n, Ma-hang n-gia. f3: So-hoa-n, Ma-hang Tr-gia. f4: So-lng-at, n-gia Tr-gia. Thuoc tnh n-gia phu thuoc ham khong ay u vao khoa (So-hoa-n, Ma-hang), bi v no ch phu thuoc vao mat hang (thong qua Ma-hang). Qua v du va neu chung ta thay, tren mot lc o quan he co the ton tai nhieu phu thuoc ham. Tap cac phu thuoc ham thng c ky hieu bang ch F. Goi F la tap cac phu thuoc ham oi vi lc o quan he R nh ngha tren tap thuoc tnh U va X Y la mot phu thuoc ham; X,Y U. Ta noi rang X Y c suy dien logic t F neu R thoa cac phu thuoc ham cua F th cung thoa X Y va ky hieu la: F = X Y. V du .2: Vi F = { X Y, X Z, Y T } Th ta co cac phu thuoc ham X YZ va X T. Goi F+ la bao ong (Closure) cua F , tc la tap cac phu thuoc ham c suy dien logic t F. Neu F = F+ th ta noi F la ho ay u (full family) cua cac phu thuoc ham. Bai toan thanh vien (MemberShip) neu van e phu thuoc ham X Y co phai la c suy dien logc t F hay khong (tc la X Y F + ? ) la mot bai toan kho giai. No oi hoi chung ta phai co mot he luat dan e suy dien logic cac phu thuoc ham. Nam 1974, Amstrong a a ra he tien e (con goi la he luat dan Amstrong, hay cac tnh chat cua phu thuoc ham) (D.Maier - 1983 [2]) nh sau: X, Y, Z, W U. Phu thuoc ham co cac tnh chat sau ay: (i) Tnh phan xa: Neu Y X th X Y. (i) Tnh tang trng:

X Y th X Z YZ. (iii) Tnh bac cau: Neu X Y va Y Z th X Z. Va ngi ta a chng minh rang he tien e Amstrong la ung an va ay u thong qua 3 bo e: Bo e 1: He tien e Amstrong la ung, ngha la, vi F la tap phu thuoc ham ung tren quan he R, neu X Y la mot phu thuoc ham Bo e 2: T he tien e Amstrong suy ra mot so luat bo sung sau ay: (iv) Tnh phan ra (hoac luat tach): Neu X YZ th X Y va X Z. (v) Tnh hp (hoac luat hp): Neu X Y va X Z th X YZ. (vi) Tnh ta bac cau, hoac bac cau gia: Neu X Y va YZ W th XZ W. nh ngha: Bao ong (Closure) cua tap cac thuoc tnh X oi vi tap cac phu thuoc ham F (ky hieu la XF+ ) la tap tat ca cac thuoc tnh A co the suy dan t X nh tap bao ong cua cac phu thuoc ham F+: X+F = { A X A F+ } Va Bo e 3: X Y c suy dien logic t F nh he tien e Amstrong khi va ch khi Y X+F. nh ly: He tien e Amstrong la ung va ay u. ay la nen tang e chng minh cac ly thuyet CSDL quan he, ac biet la trong bai toan thanh vien - kiem tra xem mot phu thuoc ham f : X Y co thuoc bao ong cua tap F hay khong? ... V du .3:

Cho lc o quan he R (A,B,C,D,E,G,H) va tap cac phu thuoc ham F = {ABC, BD, CDE, CEGH, GA }. Ap dung he tien e Amstrong, tm mot chuoi suy dien ABE. Giai: 1. ABC 2. ABAB 3. ABB 4. BD 5. ABD 6. ABCD 7. CDE 8. ABE V du.4: Cho lc o quan he R (A,B,C,D,E,G,H,I,J) va tap cac phu thuoc ham F = {ABE, AGJ, BEI, EG, GIH }. Tm chuoi suy dien ABGH (Bai tap mau cua David Maier tr. 51) Giai: 1. ABE 2. ABAB 3. ABB 4. ABBE 5. BEI 6. ABI 7. EG 8. ABG (cho trc - phu thuoc ham f1) (phan xa) (luat tach) (hp cua 1 & 3) (cho trc - phu thuoc ham f3) (bac cau 4 & 5) (cho trc - phu thuoc ham f4) (bac cau 1 & 7) (cho trc - phu thuoc ham f1) (tnh chat phan xa) (luat tach) (cho trc - phu thuoc ham f2) (bac cau 3 & 4) (hp 1 & 5) (cho trc - phu thuoc ham f3) (bac cau 6 & 7). Ket thuc.

9. ABGI 10. GIH 11. ABH 12. ABGH

(hp 6 & 8) (cho trc - phu thuoc ham f5) (bac cau 9 & 10) (hp 8 & 11)

Thuat toan tm bao ong cua X da tren tap phu thuoc ham F oi vi quan he R c mo ta bang ngon ng ta Pascal nh sau :
Procedure Closure (X, F) Begin OldDep := ; NewDep := X; While NewDep <> OldDep Do Begin OldDep := NewDep; For every FD: WZ F Do If W NewDep Then NewDep := NewDep Z; End; Return NewDep; End;

ng dung e giai bai toan tm khoa cua quan he: R la lc o quan he nh ngha tren tap cac thuoc tnh U = { A1, A2, ... , An }, vi tap cac phu thuoc ham F = { f 1, f2, ..., fm } xac nh tren R. K U la khoa cua R neu thoa man hai ieu kien sau ay: (i) K U. (ii) K K ma K U. Bay gi chung ta hay bieu dien lc o quan he R (U) bang o th co hng nh sau: Moi nut cua o th la ten mot thuoc tnh cua R.

Cung noi 2 thuoc tnh A va B the hien phu thuoc ham A B Thuoc tnh ma ch co cac mui ten i ra (tc la ch nam trong ve trai cua cac phu thuoc ham) c goi la nut goc. Thuoc tnh ma ti no ch co cac cung i ti (tc la ch nam trong ve phai cua cac phu thuoc ham) c goi la nut la. Nh vay khoa cua lc o quan he phai bao phu tap cac nut goc, ong thi khong cha bat ky nut la nao cua o th. Xuat phat t tap cac nut goc (X), da tren tap cac phu thuoc ham F, chung ta tm bao ong XF+ . Neu XF+ = U th X la khoa, ngc lai th bo sung mot thuoc tnh khong thuoc nut la vao X roi tm bao ong. C nh the cho en khi tm c bao ong cua X bang U. V du.5:
Cho R (A, B, C, D, E, H) vi F = { ABC, CDE, ECA, CDH, HB }. Hay tm khoa cua R.

Trong o th tren chung ta thay ch co nut D la nut goc, cac nut con lai eu khong phai nut la. Khoa cua R phai cha thuoc tnh D.

D + = , bi v khong tm thay phu thuoc ham nao co ve trai ch co mot mnh D. F

V CD co mat trong ve trai cua 2 phu thuoc ham do o ghep them C vao tap cac nut goc e xet khoa.

Nh vay CD{C,D,E,H,B,A } do o CD la khoa cua R.

V du 6: Cho quan he GIANG-DAY (MS_CBGD, MS_MH, T_CBGD, HH_CBGD, ML, TSSV) vi tap phu thuoc ham: F={
MS_CBGD T_CBGD; MS_MH HH_CBGD, ML; HH_CBGD ML; MS_CBGD HH_CBGD; MS_CBGD, MS_MH TSSV

} ay MS_CBGD la ma so can bo giang day; MS_MH la ma so mon hoc; T_CBGD la ten can bo giang day; HH_CBGD la hoc ham cua can bo giang day; ML la ma so lp hoc; va TSSV la tong so sinh vien theo hoc mon MS_MH do giang vien MS_CBGD phu trach. Bai toan: Xac nh khoa cua quan he GIANG-DAY. Li giai: e cho n gian, chung ta hay ky hieu ten cac thuoc tnh cua quan he tren lan lt la A, B, C, D, E, G tng ng. Khi o quan he GIANG-DAY va tap phu thuoc ham F c viet ngan gon lai la: R (A, B, C, D, E, G) F = { AC; BD,E; DE; AED; ABG } o th bieu dien cac phu thuoc ham nh sau:

Chung ta nhan thay tren o th, hai thuoc tnh A va B la cac nut goc. E, C va G la cac nut la. Khoa cua quan he phai cha cac thuoc tnh cac nut goc. Xet X = { A } XF+ = { A, C, D, E } // Con thieu thuoc tnh B va G Xet X = { B } XF+ = { D, E } // Con thieu thuoc tnh A,B,C va G Lay X = { A,B }

Vay AB la khoa cua R. Tc la, khoa cua quan he giang-day la { MS_CBGD, MS_MH }

Bai tap thc hanh Cau 1: Van dung he tien e Amstrong e tm chuoi suy dien: Cho R(A,B,C,D,E,G,H) vi F = { AB C; B D; CD E; CE GH; G A } (a) Tm chuoi suy dien cho AB E.

(b) Tm chuoi suy dien cho BG C. (c) Tm chuoi suy dien cho AB G. Cau 2: Xac nh khoa cua cac lc o quan he sau: Q1 (A,B,C,D,E,H) vi F = { AB C; CD E; AH B; B D; A D } Q2 (A,B,C,D,M,N,P,Q) vi F = { AM NB; BN CM; A P; D M; PC A; DQ A } Q3 (M, N, P, Q, R, S, T, U, W) vi F = { M W; MR T; T R; QR T; M U; MT P; NP Q; UW R }

You might also like