Thu t tốn 2.2: Chu n hĩa l p v 2FON F
Vào: L p đ i t ng m C(U) 1FONF, F: t p các ph thu c hàm m t i thi u,
khĩa K c a l p C.
Ra: Tách l p C thành các l p Ci 2FONF khơng m t mát thơng tin.
Ph ng pháp:
B c 1:
+ V i m i ph thu c hàm m Xi¾¾®fc
AjỴ F, XiÌ K và Aj là thu c tính khơng
khĩa (Aj ph thu c hàm m b ph n vào khĩa K), đ t Si = Xi È Aj. T o các l p
m i Ci v i t p thu c tính Si và khĩa t ng ng là Xi, các ph ng th c M ph thu c vào Siđ c đ a vào l p Ci.
+ t T = UCi ;
B c 2:
+ t U = U – {Ai} (Ai là các thu c tính ph thu c hàm m b ph n vào khĩa K, t o l p m i C(U).
+ Các ph ng th c M ph thu c vào Uđ c đ a vào l p C(U).
B c 3:
+ V i m i l p CiỴT, n u C(U) ch a t p thu c tính H mà H là khĩa chính c a Ci
thì thay t p thu c tính H trong C b i thu c tính h cĩ ki u l p Ci.
+ V i m i ph ng th c M trong các l p đ c vi t l i cho phù h p d a vào các thu c tính và ki u c a nĩ trong l p đĩ.
K t thúc;
Ví d 2.9: Cho l p NhanVien mơ t ng i làm vi c trong các d án nh sau:
Class NhanVien ATTRIBUTE:
- 47 -
tenN V: string with degree of 1.0;
maDA: integer with degree of 1.0;
gioLam: fuzzy domain {r t nhi u, nhi u, ít, r t ít} OR integer with degree of 1.0;
tenDA: string with degree of 1.0;
dcDA: string with degree of 1.0;
m: float; WEIGHT:
… METHODS:
NhapNV(maN V, tenN V);
NhapDA(maDA, tenDA, dcDA); NhapGioLam(gioLam)
END;
T p ph thu c hàm m trên l p NhanVien F =
{maN V ¾¾®fc tenN V;maDA¾¾®fc tenDA;maDA¾¾®fc dcDA;maN V,maDA¾¾®fc gioLam} Khĩa c a l p NhanVien là {maN V, maDA}
Theo đ nh ngh a 2.8, l p NhanVien đã 1FONF nh ng khơng 2FONF vì t n
t i các thu c tính khơng khĩa {tenN V, tenDA, dcDA} ph thu c hàm m b ph n vào khĩa. D th a d li u x y ra khi th c hi n l u tr thơng tin c a m t ng i làm vi c
trong nhi u d án khác nhau. Áp d ng thu t tốn chu n hĩa l p v 2FONF nh sau:
B c 1,2: ta cĩ các l p NhanVien(maN V, tenN V, N hapN V(…)), DuAn(maDA, tenDA, dcDA, N hapDA(…)), NV_DA(maN V, maDA, gioLam, N hapGioLam(…))
B c 3: l p NV_DA đ c chuy n đ i thành NV_DA(nhanVien: NhanVien,
duAn: DuAn, gioLam, N hapGioLam(…)).
Thu t tốn 2.2 là đúng đ n. Th t v y, t i b c 1, l p C cĩ th đ c tách t i đa đ c n - | K | l p, trong đĩ n là s thu c tính c a C, | K | là s thu c tính khĩa thu c K. T i b c 2, 3, l p ban đ u cĩ th c u trúc l i b ng R(C, T.X) v i T = r - {C},
r = {C, C1, C2, …, Cn - |K|}. Theo đ nh ngh a 2.7, r = (C, C1, C2, …, Cn - |K|) là phép tách n - | K | + 1 khơng m t thơng tin.
- 48 -
t ng. ph c t p c a thu t tốn 2.2 ph thu c vào s l p Ci đ c t o ra b c 1. Vì v y, đ ph c t p c a thu t tốn là O(n).
nh ngh a 2.14: M t l cđ CSDL h ng đ i t ng m đ c g i là 2FONF n u m i l p trong l c đ CSDL h ng đ i t ng m đ u 2FONF.