Professional Documents
Culture Documents
LT 8
LT 8
VŨ TIẾN DŨNG
Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên
e-mail: duzngvt@gmail.com
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Outline
1 Đặt vấn đề
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Ví dụ
Cho cơ sở dữ liệu về các hãng cung ứng gồm lược đồ quan hệ
α = (U, F )
U={SH_HSX, Ten_hang, Dia_chi, Von_dieu_le,SH_MH,
Ten_MH,SL}
SH_HSX: Số hiệu hãng sản xuất
Ten_hang: Tên hãng sản xuất
Dia_chi: Địa chỉ hãng sản xuất
Von_dieu_le: Vốn điều lệ
SH_MH: Số hiệu mặt hàng
Ten_MH: Tên mặt hàng
SL: Số lượng hàng hóa được sản suất
Tập các phụ thuộc hàm F={SH_HSX → (Ten_hang, Dia_chi,
Von); SH_MH → Ten_MH; (SH_HSX, SH_MH) → SL; Dia_chi
→Von}
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Giải pháp
Để đánh giá một cơ sở dữ liệu là đáp ứng được yêu cầu thực tế
người ta dựa vào các chuẩn của chuẩn lược đồ.
Các chuẩn của lược đồ quan hệ dựa trên khóa của lược đồ quan hệ,
vì vậy thuật toán tìm khóa của lược đồ quan hệ đóng vai trò quan
trong trong quá trình thiết kế cơ sở dữ liệu.
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Một số ký hiệu
Ký hiệu
Kα là tập tất cả các khóa của lược đồ α = (U, F ).
Iα là tập các thuộc tính tham gia vào tất cả các khóa của lược đồ.
Nα là tập các thuộc tính không tham gia vào khóa nào của lược đồ.
Tính chất 1
Cho X là một siêu khóa thì ∀Y ⊃ X cũng là một siêu khóa.
Cho X và Y là hai siêu khóa thì X ∪ Y cũng là một siêu khóa. Tuy
nhiên đối với phép toán giao thì tính chất này không đúng.
Cho X là khóa thì Y ⊃ X không là một khóa.
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Tính chất 2
\ [
Iα = K =U− (Ri − Li )
K ∈Kα Li →Ri ∈F
Tính chất 3
[
N := ( Ri − L i ) ⊆ N α
Li →Ri ∈F ;Li ⊆Iα
Tính chất 4
N ⊆ (NIα )+ − Iα ⊆ Nα
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Bài toán
Input: Cho lược đồ quan hệ α = (U, F )
Output: Tìm một khóa của lược đồ quan hệ α = (U, F )
Thuật toán
Bước 1: K := U = {A1 , A2 , ..., An }; i = 1;
Bước 2: Nếu (K − Ai )+ = U thì K = K − Ai ; i=i+1;
Nếu i > n thì xuống Bước 3, ngược lại thì tiếp tục Bước 2.
Bước 3: Hiển thị K là khóa cần tìm
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Ví dụ
Cho lược đồ quan hệ α = (U, F ), U = ABCDEFG
F = {B → A, D → C , D → BE , DF → G }
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Bước 1: K = ABCDEFG
Bước 2:
Lặp 1:(BCDEFG )+ = BCDEFGA = U → K = BCDEFG
Lặp 2:(CDEFG )+ = CDEFGBA = U → K = CDEFG
Lặp 3:(DEFG )+ = DEFGCBA = U → K = DEFG
Lặp 4:(EFG )+ = EFG
Lặp 5:(DFG )+ = DFGCBEA = U → K = DFG
Lặp 6:(DG )+ = DGCBEA
Lặp 7:(DF )+ = DFCBEAG → K = DF
Khóa K = DF
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Nhận xét
Với K ∈ Kα , T := U − Iα − N ta luôn có:
Iα ⊆ K ⊆ (Iα ∪ T ).
Bước 1: K = ADF
Bước 2:
Lặp 1: (DF )+ = U → K = DF
Lặp 2: (F )+ = F → K = DF
Lăp 3: (D )+ = ABCE → K = DF
Khóa K = DF .
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Bài toán
Input: Cho lược đồ quan hệ α = (U, F )
Output: Tìm các khóa của lược đồ quan hệ α = (U, F )
Thuật toán
Bước 1: Xây dựng 2n tập con của U = {A1 , . . . , An };
S={}
Bước 2: Với mỗi tập con X ⊆ U. Nếu X + = U thì S = S ∪ X
Bước 3: ∀X , Y ∈ S, nếu X ⊂ Y thì S = S − Y .
Bước 4: S là tập các khóa của lược đồ quan hệ α = (U, F )
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Ví dụ
Cho lược đồ quan hệ α = (U, F ); U = ABCDEF
F = {AE → C , CF → A, BD → F , AF → E }.
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Đồ thị
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Thuật toán
K =U− (Ri − Li )
T S
Bước 1: Tìm Iα =
K ∈Kα L i → Ri ∈ F
Bước 2: Tính (Iα )+ .
Nếu (Iα )+ = U thì kết luận lược đồ có duy nhất khóa và chuyển về
bước 5. Ngược lại thì kết luận lược đồ có nhiều hơn một khóa và
chuyển về bước 3
Bước 3: Tìm tập các thuộc tính không tham gia khóa
(Ri − Li )
S
Tìm N :=
Li →Ri ∈F ;Li ⊆Iα
Lặp lại quá trình tính N := (NIα )+ − Iα tới N cực đại thì chuyển
sang bước 4
Bước 4: Tìm tập các thuộc tính có thể tham gia khóa
B = U − Iα − N
Bước 5: Kết hợp Iα với các phần tử trong B để thu được khóa cần
tìm.
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
B = U − Iα − N = ACE
Kết hợp Iα với các phần tử trong B và kiểm tra điều kiện khóa ta
thu được 2 khóa là ABD, BCD
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ
Đặt vấn đề
Khóa và một số tính chất
Các thuật toán tìm khóa của lược đồ quan hệ
Kết luận
Khóa và các tính chất của khóa
Thuật toán tìm khóa của lược đồ quan hệ
VŨ TIẾN DŨNG Khoa Toán Cơ Tin học - Trường Đại học Khoa học Tự nhiên e-mail:
Khóa và duzngvt@gmail.com
Thuật toán tìm khóa của lược đồ quan hệ