1. Định nghĩa các thuật ngữ: cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, hệ cơ sở dữ
13.3.1. Kiểm tra một tập cho trước có phải là khoá hay không?
Cho K⊆U hỏi rằng K có phải là khoá hay không?
Cách làm: tính K+, nếu K+≠U thì K không là khoá của lược đồ.
nếu K+= U chứng tỏ K là một siêu khoá, để kiểm tra K có phải là khoá không ta lấy mọi tập con thực sự của K, nếu tất cả các tập con thực sự của K đều không là siêu khoá thì chứng tỏ K là khoá, nếu tồn tại một tập con thực sự của K là siêu khoá thì chứng tỏ K không là khoá.
13.3.2.Tìm một khoá của lược đồ quan hệ
Cho một lược đồα= (U, F), hãy tìm một khoá K. Tư tưởngchung:
b1)Trướchết chọn một siêu khoá K
b2) Từ siêu khoá đó kiểm tra xem nó có phải là khoá không
b3) Nếu K là khoá thì dừng thuật toán,ngược lại chuyển bướctiếp theo.
b4) Nếu K cha phải là khoá thì có K1 là tập con thực sự của và lớn nhất của K và K1là siêu khoá, thay K bằng K1và quay trở lại bướcb2.
* Thuật toán tìm một khóa của lược đồ quan hệ:
Input:Lược đồ quan hệ α=(U, F)
Output: Một khoá K của lược đồ Method
- Chọn một siêu khoá K của lược đồ chẳng hạn có thể chọn K=U hoặc K= U\ R∪L với L=∪Li|∀LiRi∈F, R=∪ Ri|∀LiRi∈F - For each attribute A in K Do
If (K-A)+= U Then K:=K-{A} EndIf
EndFor - Return K
Ví dụ: Cho lược đồα=(U,F) Với U=ABCDEGH
F={ABCDE, ACBCG, BDG, ACHHE, CG BDE } và K = ACGH hỏi rằng K có là khoá của lược đồ hay không? K+= ACGH ∪BCG∪HE∪ BDE = U suy ra K là siêu khoá
Các tập con thực sự lớn nhất của U là ACG, CGH, ACH, AGH dễ dàng kiểm tra các tập ACG có (ACH)+= U vậy K không là khoá.
Ví dụ: Cholược đồ quan hệα=(U, F) với U=ABCDEGHK
F={ ADH→BC, GH→BE, D→CG, CH→K} Hãy tìm một khoá của lợc đồ
Chọn siêu khoá K=ACDGH
Loại A ta có (K-A)+ = (CDGH)+ = BCDEGHK ≠ U nên A không thể loại được
Loại C ta có (K-C)+= (ADGH)+= ABCDEGHK=U Nên gán K:=K–{C}= ADGH
Loại D ta có (K-D)+ = (AGH)+=ABEGH≠U nên không loại được D Loại G ta có (K-G)+ = (ADH)+= ABCDEGHK=U
Nên gán K=K- {G} = ADH
Loại H ta có (K-H)+=(AD)+=ACDG≠U nên không loại đượcH Vậy khoá K=ADH
Nhận xét : Ta cha có một thuật toán nào để tìm tất cả các khoá của lược đồ, do vậy ta phải tìm cách tiếp cận khác nhau đối với khoá.