Thuật toân tìm khoâ ổn định TTG

Một phần của tài liệu giới thiệu lý thuyết cơ bản trong lý thuyết CSDL (Trang 29 - 31)

RAØNG BUỘC ỔN ĐỊNH TTG

V.6Thuậ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

HoTenT HoTenT QuocGia HoTenT PhongBan HoTenT ChucVu BacLuong

HoTenT HoTenT 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 (adsbygoogle = window.adsbygoogle || []).push({});

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.

Một phần của tài liệu giới thiệu lý thuyết cơ bản trong lý thuyết CSDL (Trang 29 - 31)