RAØNG BUỘC ỔN ĐỊNH TTG
V.6 Thuật toân tìm khoâ ổn định TTG
Nhập: lược đồ quan hệ TTG, RT, FT, G
Trong đó: RT ={A1, A2, . . ., An, T}lă tập câc thuộc tính trong đó có một thuộc tính thời gian T.
FT lă tập câc phụ thuộc hăm TTG. G lă tập câc răng buộc ổn định TTG.
Xuất: Khoâ ổn định TTG KT.
Nhận xĩt: Trong quâ trình xĩt câc phụ thuộc hăm vă câc răng buộc ổn định TTG, ta luôn
xĩt giâ trị của câc thuộc tính gắn với giâ trị thuộc tính thời gian. Thế nín trong quâ trình tìm khoâ ổn định TTG KT ta không xĩt thuộc tính thời gian T văo khoâ.
Phương phâp:
Bước 1: dựa văo tập FT tìm khoâ tối thiểu K của lược đồ RT.
Bước 2: gọi G0 =G + ⎨X−>Y:X< −>X’⊆K, X’−>Y}-{X−>Y: X⊆K}
Bước 3: lần lượt tính câc tập thuộc tính KT0, KT1,. . ., KTn, như sau: + −−
− ( Ti 1 { i})G0
T K A
R > KT0=RT\{T}(T: thuộc tính thời gian)
KTi= ⎩ ⎨ ⎧ − − − 1 1 { } Ti i Ti K A K ngược lại
nếu RT−> (KTi-1-{Ai})+ G0
Răng buộc ổn định TTG
Cuối cùng ta có KTn
Bước 4: KT=KTn∪K lă một khoâ ổn định TTG. Giải thích bước 2:
Những thuộc tính thuộc khoâ tối thiểu K lă những thuộc tính ổn định nhất nín trong tập câc răng buộc G ta không cần phải xĩt những thuộc tính đó bằng câch loại ra những răng buộc ổn định có vế trâi lă thuộc tính khoâ tối thiểu K.(*)
Tuy nhiín, nếu trong tập thuôc tính có những thuộc tính X ổn định ngang cấp với câc thuộc tính thuộc khoâ K, để trânh mất câc răng buộc ổn định trước thực hiện (*) ta thím văo trong tập răng buộc ổn định những răng buộc mới X−>Y sao cho X< −>X’⊆K vă X’−>Y
Ví dụ:
Cho RT={HoTen, GioiTinh, QuocGia, PhongBan, ChucVu, BacLuong, TG}
FT={ , , , ,
, }
GioiTinh
HoTen→T HoTen→T QuocGia HoTen→T PhongBan HoTen→T ChucVu BacLuong
HoTen→T HoTen→T TG
Cho G={K−>HoTen, HoTen< −>GioiTinh, HoTen< −>QuocGia, HoTen−>PhongBan, HoTen−>ChucVu, ChucVu−>BacLuong}
Bước 1: tìm khoâ tối thiểu K của lược đồ RT. Xĩt: (HoTen)+
FT=RT nín có khoâ tối thiểu K={HoTen}
Bước 2: gọi G0 =G + ⎨X−>Y:X< −>X’⊆K, X’−>Y}-{X−>Y: X⊆K} G0=G
Thím văo trong G0 răng buộc ổn định TTG: GioiTinh−>ChucVu, GioiTinh−>PhongBan, QuocGia−>ChucVu, QuocGia−>PhongBan.
Loại ra khỏi G0 những răng buộc ổn định TTG: HoTen PhongBan, HoTen ChucVu.
> − >
−
Răng buộc ổn định TTG
G0= ={GioiTinh−>HoTen, QuocGia−>HoTen,GioiTinh PhongBan,
GioiTinh ChucVu, QuocGia
> − >
− −>PhongBan, QuocGia−>ChucVu,
ChucVu−>BacLuong}
Bước 3: lần lượt tính câc tập thuộc tính KT0, KT1,. . ., KTn
KT0=RT
Xĩt (KT0 – {HoTen})+
G0={HoTen, GioiTinh, QuocGia, PhongBan, ChucVu, BacLuong}=RT, khi đó KT1=KT0– {HoTen}={GioiTinh, QuocGia, PhongBan, ChucVu, BacLuong}
Xĩt KT2=(KT1 – {GioiTinh})+
G0) ={HoTen, QuocGia, PhongBan, ChucVu, BacLuong}≠RT, khi đó KT2=KT1.
Xĩt KT3=(KT2 – {QuocGia})+
G0) ={HoTen, GioiTinh, PhongBan, ChucVu, BacLuong}≠RT, khi đó KT3=KT2.
Xĩt (KT3 – {PhongBan})+
G0={HoTen, GioiTinh, QuocGia, PhongBan, ChucVu, BacLuong}=RT, khi đó KT4=KT3– {PhongBan}={GioiTinh, QuocGia, ChucVu, BacLuong}
Xĩt (KT4 – {ChucVu})+
G0={HoTen, GioiTinh, QuocGia, PhongBan, ChucVu, BacLuong}=RT, khi đó KT5=KT4– {ChucVu}={GioiTinh, QuocGia, BacLuong}
Xĩt (KT5 – {BacLuong})+
G0={HoTen, GioiTinh, QuocGia, PhongBan, ChucVu, BacLuong}=RT, khi đó KT6=KT5– {BacLuong}={GioiTinh, QuocGia}
Đến đđy bước 3 kết thúc: KT6= GioiTinh, QuocGia}
Bước 4: KT=KT6∪K ={HoTen, GioiTinh, QuocGia}lă một khoâ ổn định TTG.