Khố của quan hệ

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu nâng cao MS SQL SERVER (Trang 79 - 80)

- DEFAULT IDENTITY

74REFERENCES Reservation)

7.2.1.5 Khố của quan hệ

Cho quan hệ R(U), tập KU được gọi là khĩa của quan hệ R nếu: K+=U và nếu bớt một phần tử khỏi K thì bao đĩng của nĩ sẽ khác U.

Như thế tập KU là khố của quan hệ nếu K+=U và ( K \A )+≠U , AU.

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

F = {A,BF; AC,D; BE}

Ta cĩ {A,B}+ = (A, B, C, D, E, F), A+ = {A, C, D} , B+ = {B, E} Vậy K={A, B} là khố của quan hệ.

Ví dụ: Cho R = { A, B, C, D, E, G } và tập phụ thuộc hàm:

F= { AB → C , D → EG , BE → C , BC → D , CG → BD, ACD → B, CE → AG} Ta sẽ thấy các tập thuộc tính:

K1 = { A, B } , K2 = {B,E} , K3={C,G} , K4={C,E} , K5 = {C,D}, K6={B,C} đều là khĩa của quan hệ.

Như vậy, một quan hệ cĩ thể cĩ nhiều khĩa.

Thuật tốn tìm khố: Tìm một khĩa K của R(U) dựa trên tập F các phụ thuộc hàm.

Ý tưởng: Bắt đầu từ tập U vì Closure(U+,F) = U. Sau đĩ ta bớt dần các phần tử của U để nhận được tập bé nhất mà bao đĩng của nĩ vẫn bằng U.

Thuật tốn:

Input: Lược đồ quan hệ R(U), tập phụ thuộc hàm F.

Output: Khố K Bước 1: Gán K = U

Buớc 2: Lặp lại các bước sau với mỗi thuộc tính A trong K. - Tính (K-A)+ đối với F

- Nếu (K-A)+ =U thì loại A ra khỏi K tức K:= K-A

Nhận xét:

- Thuật tốn trên chỉ tìm được một khĩa. Nếu cần tìm nhiều khĩa, ta thay đổi trật tự loại bỏ các phần tử của K.

- Chúng ta cĩ thể cải thiện tốc độ thực hiện thuật tốn trên bằng cách: Trong bước 1 ta chỉ gán K=Left (là tập các phần tử cĩ bên tay trái của các phụ thuộc hàm)

80

Cho lược đồ quan hệ R = { A,B,C,D,E,G,H,I} và tập phụ thuộc hàm:

F= { AC → B, BI → ACD, ABC → D , H → I , ACE → BCG , CG → AE } Tìm khố K? Ta cĩ Left={A,B,C,H,E,G} Bước 1: K=Left={A,B,C,H,E,G} Bước 2: Tập thuộc tính A B C D E G H I Ghi chú ABCHEG x x x x x x x x BCHEG x x x x x x x x Loại A CHEG x x x x x x x x Loại B CHG x x x x x x x x Loại E Như vậy, {C,H,G} là một khố của R.

Nếu muốn tìm tất cả các khố của R, ta cần thay đổi trật tự loại bỏ phần tử của khố K.

Một phần của tài liệu Giáo trình quản trị cơ sở dữ liệu nâng cao MS SQL SERVER (Trang 79 - 80)

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

(121 trang)