Khóa của lượcđồ quan hệ

Một phần của tài liệu Giáo trình cơ sở dữ liệu (Trang 52 - 53)

a. Định nghĩa

Q(A1,A2,…,An)là lược đồ quan hệ. Q+là tập thuộc tính của Q. F là tập phụ thuộc hàm trên Q. K là tập con của Q+

Nói rằng K là một khóa của Q nếu:

1. K+ = Q+ và

2. Không tồn tại K'  Ksao cho K’+= Q+

Tập thuộc tính S được gọi là siêu khóa nếu S  K

Thuộc tính A được gọi là thuộc tính khóa nếu AKvới K là khóa bất kỳ của Q. Ngược lại A được gọi là thuộc tính không khóa.

Một lược đồ quan hệ có thể có nhiều khóa và tập thuộc tính không khóa cũng có thể bằng rỗng. (Khi thiết kế một hệ thống thông tin, thì việc lập lược đồ cơ sở dữ liệu đạt đến một tiêu chuẩn nào đó là một việc làm quan trọng. Việc xác định chuẩn cho một lược đồ quan hệ có liên quan mật thiết với thuật toán tìm 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 đổithứ tự loại bỏ các phần tử của K.

Ví dụ 7:

Q(A,B,C,D,E,G,H,I)F={ACB;BIACD;ABCD;HI;ACEBCG;CGAE }

Tìm K

Lần lượt loại các thuộc tính trong K theo thứ tự sau: A, B, D, E, I

Ta được một khóa là của lược đồ quan hệ là {C,G,H}

(Lưu ý là thuật toán này chỉ nên sử dụng trong trường hợp chỉ cần tìm một khóa). b. Thuật toán tìm tất cả các khóa

Bước 1: Xác định tất cả các tập con khác rỗng của Q+. Kết quả tìm được giả sử là các tập

thuộc tính X1, X2, …,X2n-1

Bước 2: Tìm bao đóng của các Xi

Bước 3: Siêu khóa là các Xi có bao đóng đúng bằng Q+. Giả sử ta đã có các siêu

khóa là S=(S1,S2,…,Sm}

Bước 4: Xây dựng tập chứa tất cả các khóa của Q từ tập S bằng cách xét mọi Si, Sj

con của S (i j), nếu SiSjthì ta loại Sj (i,j=1..n), kết quả còn lại của S chính là tập tất cả các khóa cần tìm.

c. Thực hành

Tìm tất cả các khóa của lược đồ quan hệ và tập phụ thuộc hàm như sau: Q(C,S,Z); F = {f1:CS Z; f2:Z C}

Vậy lược đồquan hệ Q có hai khóa là: {C,S}và {S,Z}

Thuật toán trên thì dễ hiểu, dễ cài đặt, tuy nhiên nếu với n khá lớn thì phép duyệt để tìm ra tập tất cả các tập con của tập Q+ là không hiệu quả. Do vậy cần thu hẹp không gian duyệt. Chúng ta sẽ nghiên cứu thuật toán cải tiến theo hướng giảm số thuộctính của tập cần duyệt tất cả các tập con.

Một phần của tài liệu Giáo trình cơ sở dữ liệu (Trang 52 - 53)

Tải bản đầy đủ (PDF)

(77 trang)