1. Trang chủ
  2. » Giáo án - Bài giảng

CÁC THUẬT TOÁN TÌM KHÓA (CƠ SỞ DỮ LIỆU)

14 433 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 740,46 KB

Nội dung

Thuật toán tìm tất cả khoá Ký hiệu: N: Tập thuộc tính nguồn, là tập chứa những thuộc tính chỉ xuất hiện ở vế trái, không nằm bên vế trái và vế phải của mọi phụ thuộc hàm (tương tự như nút gốc) TG: Tập thuộc tính trung gian, là tập chứa nhũng thuộc tính vừa xuất hiện ở vế trái và vừa xuất hiện ở vế phải trong các phụ thuộc hàm Ví dụ 1: Cho lược đồ quan hệ R(A, B, C, D, E, G, H) và tập phụ thuộc hàm F={ B → A , DA → CE, D → H, GH → C, AC → D} N = { B, G } TG = {A, C, D, H} Ví dụ 2: Cho lược đồ quan hệ R(A, B, C, D, E, G) và tập phụ thuộc hàm F={ AE → C , CG → A, BD → G, GA → E} N = { B, D } TG = {A, C, E, G} Khoa HTTT Đại học CNTT 2 Thuật toán tìm tất cả khoá (1) Bước 1: Tìm tập nguồn N. Nếu N+F = Q+ thì chỉ có 1 khoá là N, ngược lại qua bước 2 Bước 2: Tìm tập trung gian TG. Tìm tập tất cả các tập con Xi của tập TG. Bước 3: Tìm tập S chứa mọi siêu khoá Si Với mỗi Xi , nếu (N ∪ Xi)+F = Q+ thì Si = (N ∪ Xi) Nếu: (N ∪ Xi)+F = Q+ khi đó N ∪ Xi là một khoá. Do vậy loại bỏ các trường hợp Xj : Xi ⊂ Xj. VD: Xi = {AB}, Xj = {ABC}. Ta thấy Xi ⊂ Xj và Xi là khoá vì vậy không xét trường hợp Xj nữa.

Trang 1

Khoa HTTT - Đại học

Thuật toán tìm khoá

Trang 2

Thuật toán tìm tất cả khoá

Ký hiệu:

N: Tập thuộc tính nguồn, là tập chứa những thuộc tính chỉ xuất hiện

ở vế trái, không nằm bên vế trái và vế phải của mọi phụ thuộc

hàm (tương tự như nút gốc)

TG: Tập thuộc tính trung gian, là tập chứa nhũng thuộc tính vừa xuất

hiện ở vế trái và vừa xuất hiện ở vế phải trong các phụ thuộc hàm

Ví dụ 1: Cho lược đồ quan hệ R(A, B, C, D, E, G, H) và tập phụ thuộc hàm

F={ B → A , DA → CE, D → H, GH → C, AC → D}

N = { B, G }

TG = {A, C, D, H}

Ví dụ 2: Cho lược đồ quan hệ R(A, B, C, D, E, G) và tập phụ thuộc hàm

F={ AE → C , CG → A, BD → G, GA → E}

N = { B, D }

TG = {A, C, E, G}

Khoa HTTT - Đại học CNTT 2

Trang 3

Thuật toán tìm tất cả khoá (1)

Bước 1: Tìm tập nguồn N Nếu N+

F = Q+ thì chỉ có 1 khoá là N, ngược lại qua bước 2

Bước 2: Tìm tập trung gian TG Tìm tập tất cả các tập con Xi

của tập TG

Bước 3: Tìm tập S chứa mọi siêu khoá Si

Với mỗi Xi , nếu (N ∪ Xi)+F = Q+ thì Si = (N ∪ Xi)

Nếu: (N ∪ Xi)+

F = Q+ khi đó N ∪ Xi là một khoá Do vậy loại

bỏ các trường hợp Xj : Xi ⊂ Xj

VD: Xi = {AB}, Xj = {ABC} Ta thấy Xi ⊂ Xj và Xi là khoá vì

vậy không xét trường hợp Xj nữa.

Khoa HTTT - Đại học CNTT 3

Trang 4

Thuật toán tìm tất cả khoá (2)

Ví dụ Cho lược đồ quan hệ R(A, B, C) và tập phụ thuộc hàm

F={ AB → C, C → A}

Bước 1: N = {B} B+

F = B ≠ Q+

Bước 2: TG = {A, C}

Tất cả tập con của tập trung gian CTG = {A, C, AC}

Bước 3:

Kết luận: Tập Khoá S= {AB, BC}

Khoa HTTT - Đại học CNTT 4

N X i (N ∪ X i ) (N ∪ X i ) +

F (N ∪ X i ) +

F = Q +

B AC Không xét vì Xi = A ⊂ Xj = AC

Trang 5

Thuật toán tìm tất cả khoá (3)

Ví dụ: Cho lược đồ quan hệ R(A, B, C, D, E, G) và tập phụ thuộc

hàm

F={ AE → C , CG → A, BD → G, GA → E}

Tìm tất cả các khóa của R?

KQ: ABD, BDC

Khoa HTTT - Đại học CNTT 5

Trang 6

Bước 1: N = {BD} BD+

F = BDG ≠ Q+

Bước 2: TG = {A, C, E, G}

Tất cả tập con của tập trung gian CTG = {A, C, E, G, AC, AE, AG, CE, CG, EG, ACE, ACG,

CEG, ACEG}

Bước 3:

 Các tập không xét vì Xj : Xi ⊂ Xj : {AC, AE, AG, CE, CG,

ACE, ACG, CEG, ACEG}

Kết luận: Tập Khoá S= {ABD, BCD}

Khoa HTTT - Đại học CNTT 6

N X i (N ∪ X i ) (N ∪ X i ) +

F (N ∪ X i ) +

F = Q +

Trang 7

Thuật toán tìm một khóa

 Thuật toán tìm một khóa của một lược đồ quan hệ Q

Bước 1: gán K = Q+

Bước 2: A là một thuộc tính của K, đặt K’ = K - A.

Nếu K’+= Q+ thì gán K = K' thực hiện lại bước 2

 Nếu muố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ác phần tử của K

Trang 8

Thuật toán tìm một khóa

 Ví dụ: cho lược đồ quan hệ Q và tập phụ thuộc hàm

F như sau:

‒ Q(A,B,C,D,E)

‒ F={AB  C, AC  B, BC  DE} tìm khóa K

B1: K=Q+  K=ABCDE

B2:(K\A)+  (BCDE)+=BCDE ≠ Q+  K=ABCDE

B3:(K\B)+  (ACDE)+= ABCDE = Q+  K=ACDE

B4: (K\C)+  (ADE)+ = ADE ≠ Q+  K=ACDE

B5: (K\D)+  (ACE)+ = ACEBD=Q+  K=ACE

B6: (K\E)+  (AC)+ = ACBDE =Q+  K=AC

Trang 9

Thuật toán tìm một khóa

 Ví dụ: cho lược đồ quan hệQ(ABCDEGHI) và

tập thuộc tính F={AC  B;

Trang 10

BÀI TẬP

Ngày đăng: 28/03/2019, 14:54

TỪ KHÓA LIÊN QUAN

w