Giáo trình Hệ cơ sở dữ liệu (Phần 2)
Tóm tắt Giáo trình Hệ cơ sở dữ liệu (Phần 2): ...thì trước khi nối phải áp dụng phép toán đặt lại tên. Ví dụ, ta cần nối tự nhiên hai quan hệ R(A1,A2,A3) và S(B1,B2,B3) như trong ví dụ trên. Để có thể thực hiện được phép nối tự nhiên với điều kiện so sánh bằng, ta phải đổi tên thuộc tính B1 thành A3, nghĩa là ta phải viết: R * ρ(A3, B2,B3)... Ngược lại, một quan hệ tương ứng với một hỗn hợp các thực thể và liên kết thì ý nghĩa trở nên không rõ ràng. I.2- Thông tin dư thừa trong các bộ và sự dị thường cập nhật Một mục tiêu của thiết kế lược đồ là làm tối thiểu không gian lưu trữ các quan hệ cơ sở. Các thuộc tính được nhóm vào t...ở đây có những thuộc tính không khoá phụ thuộc vào một bộ phận của khoá chính, như vậy nó không thoả mãn điều kiên 2NF. Áp dụng phương pháp chuẩn hoá trên, lược đồ được tách thành các lược đồ như sau: N_D1(MãsốDA, TênDA, ĐịađiểmDA) N_D2(MãsốNV , HọtênNV) N_D3(MãsốNV, MãsốDA, Sốgiờ) 10...
định được Q có ở BCNF hay không. Ví dụ áp dụng: Xét lược đồ quan hệ R = { A, B, C, D, E, F) Với các phụ thuộc hàm: A → BCDEF, BC → ADEF, B→ F, D→ E, D→ B Lược đồ quan hệ này có hai khóa dự tuyển là A và BC. Ta có B → F vi phạm BCNF vì B không phải là siêu khóa, R được tách thành: R1(B,F) với phụ thuộc hàm B→ F R2(A,B,C,D,E) với các phụ thuộc hàm A→SCDE, BC→ADF, D→E, D→B Do D→ E vi phạm BCNF ( D là một thuộc tính không khóa ), R2 được tách thành: R21(D,E) với phụ thuộc hàm D → E R22(ABCD) với các phụ thuộc hàm A → BCD, BC→ AD, D→ B Do D B vi phạm BCNF (Dkhông phải là thuộc tính khóa), R22 được tách thành: R221(D,B) R222(A,B,D) với phụ thuộc hàm A → BD (phụ thuộc hàm BC → AD bị mất) Tóm lại, ta có phép tách D = {R1, R21, R221, R222}. Phép tách này có tính chất nối không mất thông tin nhưng không bảo toàn phụ thuộc. 117 Nếu chúng ta muốn có một phép tách có tính chất nối không mất mát và bảo toàn phụ thuộc thì ta phải hài lòng với các lược đồ quan hệ ở dạng 3NF. Thuật toán sau đây là cải tiến của thuật toán 5.1, tạo ra một phép tách thỏa mãn : - Bảo toàn phụ thuộc. - Có tính chất nối không mất mát. - Mỗi lược đồ quan hệ kết quả là ở dạng 3NF. Thuật toán 5.4: Thuật toán tổng hợp quan hệ với tính chất bảo toàn phụ thuộc và nối không mất mát. Input: Một quan hệ vũ trụ R và một tập các phụ thuộc hàm F trên các thuộc tính của R. 1) Tìm phủ tối thiểu G cho F. 2) Với mỗi vế trái X của một phụ thuộc hàm xuất hiện trong G hãy tạo ra một lược đồ quan hệ trong D với các thuộc tính {X∪{A1}∪{A2}∪∪ {Ak}}, trong đó X →A1, X→A2,, X→ Ak chỉ là các phụ thuộc hàm ở trong G với X là vế trái (X là khóa của quan hệ này). 3) Nếu không có lược đồ quan hệ nào trong D chứa một khóa của R thì hãy tạo ra thêm một lược đồ quan hệ trong D chứa các thuộc tính tạo nên một khóa của R. Bước 3 của thuật toán 5.4 đòi hỏi phải xác định một khóa K của R. Để xác định một khóa K của R, ta sử dụng thuật toán sau Thuật toán xác định khóa: Tìm một khóa K của R dựa trên tập F các phụ thuộc hàm. 1) Đặt K := R; 2) Với mỗi thuộc tính A trong K {tính (K-A)+ đối với F; Nếu (K-A)+ chứa tất cả các thuộc tính trong R thì đặt K := K-{A}}; *Chú ý: Chúng ta có nhận xét sau: Nếu quan hệ có khóa thì các thuộc tính khóa của quan hệ phải là các tập con của tập hợp các thuộc tính ở vế phải các phụ thuộc hàm trong F. Vì vậy, để tìm được các khóa nhanh hơn, trước tiên chúng ta tính RF là hợp của các thuộc tính ở các vế trái của các phụ thuộc hàm trong F, sau 118 đó đi tính bao đóng của tất cả các tập con của RF. Nếu bao đóng của tập con nào chứa tất cả các thuộc tính của R thì tập đó là một siêu khóa. Để kiểm tra nó là một khóa ta thực hiện như bước 2) của thuật toán trên. Không phải lúc nào cũng có khả năng tìm được một phép tách thành các lược đồ quan hệ bảo toàn phụ thuộc và mỗi lược đồ trong phép tách là ở BCNF. Các lược đồ quan hệ trong phép tách theo thuật toán ở trên thường là 3NF. Để có các lược đồ BCNF, chúng ta có thể kiểm tra các lược đồ quan hệ 3NF trong phép tách một cách riêng rẽ để xem nó có thỏa mãn BCNF không. Nếu có lược đồ quan hệ Ri không ở BCNF thì ta có thể tách tiếp hoặc để nguyên nó là 3NF. IV.3- Các phụ thuộc hàm đa trị và dạng chuẩn 4 Trong phần này chúng ta thảo luận khái niệm phụ thuộc hàm đa trị và định nghĩa dạng chuẩn 4. Các phụ thuộc đa trị hệ quả của dạng chuẩn 1 không cho phép một thuộc tính của một bộ có một tập giá trị (nghĩa là các thuộc tính đa trị). Nếu chúng ta có hai hoặc nhiều hơn các thuộc tính độc lập và đa trị trong cùng một lược đồ quan hệ thì chúng ta phải lặp lại mỗi một giá trị của một trong các thuộc tính với mỗi giá trị của thuộc tính khác để giữ cho trạng thái quan hệ nhất quán và duy trì tính độc lập giữa các thuộc tính. Ràng buộc đó được chỉ ra bằng một phụ thuộc đa trị. IV.3.1- Định nghĩa phụ thuộc đa trị Giả thiết có một lược đồ quan hệ R, X và Y là hai tập con của R. Một phụ thuộc đa trị (MVD), ký hiệu là X →→ Y , chỉ ra ràng buộc sau đây trên một trạng thái quan hệ bất kỳ của R: Nếu hai bộ t1 và t2 tồn tại trong R sao cho t1[X] = t2[X] thì hai bộ t3 và t4 cũng tồn tại trong R với các tính chất sau: . t3[X] = t4[X] = t1[X] = t2[X] . t3[Y] = t1[Y] và t4[Y] = t2[Y] . t3[Z] = t2[Z] và t4[Z] = t1[Z] với Z = (R- (X ∪ Y)) Khi X→→Y thỏa mãn, ta nói rằng X đa xác định Y. Bởi vì tính đối xứng trong định nghĩa, khi X →→ Y thỏa mãn trong R, X→→Z cũng thỏa mãn trong R. Như vậy X→→Y kéo theo X→→Z và vì thế đôi khi nó được viết là X→→Y|Z Định nghĩa hình thức chỉ ra rằng, cho trước một giá trị cụ thể của X, tập hợp các giá trị của Y được xác định bởi giá trị này của X là được xác định hoàn toàn bởi 119 một mình X và không phụ thuộc vào các giá trị của các thuộc tính còn lại Z của R. Như vậy, mỗi khi hai bộ tồn tại có các giá trị khác nhau của Y nhưng cùng một giá trị X thì các giá trị này của Y phải được lặp lại trong các bộ riêng rẽ với mỗi giá trị khác nhau của Z có mặt với cùng giá trị của X. Điều đó tương ứng một cách không hình thức với Y là một thuộc tính đa trị của các thực thể được biểu diễn bằng các bộ trong R. Ví dụ về phụ thuộc đa trị: NHÂNVIÊN TênNV TênDA TênconNV Nam DA01 Lan Nam DA02 Hoa Nam DA01 Hoa Nam DA02 Lan Trong bảng trên có hai phụ thuộc đa trị là: TênNV→→TênDA, TênNV→→TênconNV Một MVD X→→Y được gọi phụ thuộc đa trị tầm thường nếu: a) Y là một tập con của X b) hoặc X ∪ Y = R Một MVD không thỏa mãn a) hoặc b) được gọi là một MVD không tầm thường. Nếu chúng ta có một phụ thuộc đa trị không tầm thường trong một quan hệ, chúng ta có thể phải lặp các giá trị một cách dư thừa trong các bộ. Trong quan hệ NHÂNVIÊN ở ví dụ trên, các giá trị ‘DA01’, ‘DA02’ của TênDA được lặp lại với mỗi giá trị của TênconNV (một cách đối xứng, các giá trị ‘Lan’, ‘Hoa’ được lặp lại với mỗi giá trị của TênDA). Rõ ràng ta không mong muốn có sự dư thừa đó. Tuy nhiên, lược đồ quan hệ trên là ở BCNF bởi vì không có phụ thuộc hàm nào thỏa mãn trong quan hệ đó. Vì vậy, chúng ta phải định nghĩa một dạng chuẩn thứ tư mạnh hơn BCNF và ngăn cấm các lược đồ quan hệ như quan hệ NHÂNVIÊN. 120 IV.3.2- Các quy tắc suy diễn đối với các phụ thuộc hàm và phụ thuộc đa trị Các quy tắc từ Qt1 đến Qt8 sau đây tạo nên một tập hợp đúng đắn và đầy đủ cho việc suy diễn các phụ thuộc hàm và phụ thuộc đa trị từ một tập các phụ thuộc cho trước. Giả thiết rằng tất cả các thuộc tính được chứa trong một lược đồ quan hệ “vũ trụ” R = {A1, A2, ,An} và X, Y, Z, W là các tập con của R. Qt1) (quy tắc phản xạ cho FD): Nếu X ⊇ Y thì X → Y Qt2) (quy tắc tăng cho FD): {X →Y} |= XZ → YZ Qt3) (quy tắc bắc cầu cho FD): { X → Y, Y→ Z } |= X→ Z Qt4) (quy tắc bù cho MVD): {X →→Y } |= {X→→ (R-(X∪ Y))} Qt5) (quy tắc tăng cho MVD): Nếu X →→Y và W ⊇ Z thì WX →→ YZ Qt6) (quy tắc bắc cầu cho MVD): {X→→ Y, Y→→ Z } |= X→→ (Z – Y) Qt7) (quy tắc tái tạo cho FD và MVD): {X →Y} |= X→→ Y Qt8) (quy tắc liên hợp cho FD và MVD): Nếu X →→ Y và có tồn tại W với các tính chất a) W ∩Y = ∅, b) W →Z và c) Y ⊇ Z thì X → Z. Qt1 đến Qt3 là các quy tắc suy diễn Amstrong đối với các phụ thuộc hàm. Qt4 đến Qt6 là các quy tắc suy diễn chỉ liên quan đến các phụ thuộc đa trị. Qt7 và Qt8 liên kết các phụ thuộc hàm và các phụ thuộc đa trị. Đặc biệt, Qt7 nói rằng một phụ thuộc hàm là một trường hợp đặc biệt của một phụ thuộc đa trị. Điều đó có nghĩa là mỗi phụ thuộc hàm cũng là một phụ thuộc đa trị bởi vì nó thỏa mãn định nghĩa hình thức của phụ thuộc đa trị. Về cơ bản, một phụ thuộc hàm X →Y là một phụ thuộc đa trị X →→ Y với một hạn chế phụ rằng có nhiều nhất là một giá trị của Y được kết hợp với mỗi giá trị của X. Cho trước một tập hợp các phụ thuộc hàm và phụ thuộc đa trị chỉ ra trên R = {A1, A2, , An}, chúng ta có thể sử dụng các quy tắc từ Qt1 đến Qt8 để suy ra tập hợp đầy đủ các phụ thuộc (hàm và đa trị) F+ đúng trong mọi trạng thái quan hệ r của R thỏa mãn F. Chúng ta lại gọi F+ là bao đóng của F. 121 IV.3.3- Dạng chuẩn 4 Định nghĩa: Một lược đồ quan hệ R là ở dạng chuẩn 4 (4NF) đối với một tập hợp các phụ thuộc F (gồm các phụ thuộc hàm và phụ thuộc đa trị) nếu với mỗi phụ thuộc đa trị không tầm thường X→→Y trong F+ , X là một siêu khóa của R. Như vậy, một lược đồ quan hệ vi phạm 4NF nếu nó chứa các phụ thuộc hàm đa trị không mong muốn. Ví dụ, lược đồ quan hệ NHÂNVIÊN ở ví dụ trên là vi phạm 4NF bởi vì trong các phụ thuộc hàm đa trị TênNV→→TênDA và TênNV→→ Têncon, TênNV không phải là một siêu khóa . Giả sử chúng ta tách bảng NHÂNVIÊN thành hai bảng như sau: NV_DA TênNV TênDA NV_CON TênNV TênconNV Nam DA01 Nam Lan Nam DA02 Nam Hoa Hai bảng này là ở 4NF bởi vì các phụ thuộc đa trị TênNV→→TênDA và TênNV→→TênconNV là các phụ thuộc đa trị tầm thường. Trong hai bảng này không có các phụ thuộc đa trị không tầm thường cũng như không có các phụ thuộc hàm. IV.3.4- Tách có tính chất nối không mất mát thành các quan hệ 4NF Khi chúng ta tách một lược đồ quan hệ R thành R1 = (X∪Y) và R2 = (R-Y) dựa trên phụ thuộc hàm đa trị X→→Y đúng trong R, phép tách có tính chất nối không mất mát. Đó cũng là điều kiện cần và đủ cho một phép tách một lược đồ thành hai lược đồ có tính chất nối không mất mát. Ta có tính chất sau: Tính chất 1’: Các lược đồ quan hệ R1 và R2 tạo thành một phép tách có tính chất nối không mất mát của R khi và chỉ khi (R1∩ R2)→→ (R1 –R2) (hoặc (R1∩R2) →→(R1 –R2)). Áp dụng tính chất trên chúng ta có thuật toán tạo một phép tách có tính chất nối không mất mát thành các lược đồ quan hệ ở dạng 4NF. Thuật toán 5.5: Tách quan hệ thành các quan hệ 4NF với tính chất nối không mất mát. Input: Một quan hệ vũ trụ R và một tập phụ thuộc hàm và phụ thuộc đa trị F. 122 1. Đặt D := {R}; 2. Khi có một lược đồ quan hệ Q trong D không ở 4NF, thực hiện: {Chọn một lược đồ quan hệ Q trong D không ở 4NF; Tìm một phụ thuộc đa trị không tầm thường X→→Y trong Q vi phạm 4NF; Thay thế Q trong D bằng hai lược đồ quan hệ (Q – Y) và (X ∪ Y)}; Ví dụ áp dụng: Xét lược đồ NHÂNVIÊN(TênNV, TênDA, TênconNV). Ta có phụ thuộc hàm đa trị TênNV→→TênDA trong đó TênNV không phải là một siêu khóa, vậy nó vi phạm 4NF. Ta tách thành NV_DA(TênNV, TênDA), NV_CON(TênNV, TênconNV). IV.4- Các phụ thuộc nối và dạng chuẩn 5 Như chúng ta đã thấy, các tính chất 1 và tính chất 1’ cho điều kiện để một lược đồ quan hệ R được tách thành hai lược đồ quan hệ R1 và R2 và phép tách có tính chất nối không mất mát. Tuy nhiên, trong một số trường hợp, có thể không có phép tách có tính chất nối không mất mát của R thành hai lược đồ quan hệ nhưng có thể có phép tách có tính chất nối không mất mát thành nhiều hơn hai quan hệ. Hơn nữa, có thể không có phụ thuộc hàm nào trong R các chuẩn cho đến BCNF và có thể không có phụ thuộc đa trị nào có trong R vi phạm 4NF. Khi đó chúng ta phải sử dụng đến một phụ thuộc khác gọi là phụ thuộc nối và nếu có phụ thuộc nối thì thực hiện một phép tách đa chiều thành dạng chuẩn 5 (5NF). Một phụ thuộc nối (JD), ký hiệu là JD(R1, R2, , Rn) trên lược đồ quan hệ R chỉ ra một ràng buộc trên các trạng thái r của R. Ràng buộc đó tuyên bố rằng mỗi trạng thái hợp pháp r của R phải có phép tách có tính chất nối không mất mát thành R1, R2, , Rn. Điều đó nghĩa là: *( πR1(r), πR2(r), , πRn(r)) = r Một phụ thuộc nối JD(R1, R2, , Rn) là một phụ thuộc nối tầm thường nếu một trong các lược đồ quan hệ Ri ở trong JD(R1, R2, , Rn) là bằng R. Một lược đồ quan hệ R là ở dạng chuẩn 5 (5NF) (hoặc dạng chuẩn nối chiếu PJNF – Project-Join normal form) đối với một tấp F các phụ thuộc hàm, phụ thuộc 123 đa trị và phụ thuộc nối nếu với mỗi phụ thuộc nối không tầm thường JD(R1, R2, , Rn) trong F+, mỗi Ri là một siêu khóa của R. Ví dụ: Xét quan hệ CUNGCẤP gồm toàn các thuộc tính khóa CUNGCẤP Tênnhàcungcấp Tênhàng TênDựán Ncc1 Bulong Dựán1 Ncc1 Đaiốc Dựán2 Ncc2 Bulong Dựán2 Ncc3 Đaiốc Dựán3 Ncc2 Đinh Dựán1 Ncc2 Bulong Dựán1 Ncc1 Bulong Dựán2 Giả thiết rằng ràng buộc phụ thêm sau đây luôn đúng: Khi một nhà cung cấp S cung cấp hàng P VÀ một dự án J sử dụng hàng P VÀ nhà cung cấp S cung cấp ít nhất là một hàng cho dự án J THÌ nhà cung cấp S cũng sẽ cung cấp hàng P cho dự án J. Ràng buộc này chỉ ra một phụ thuộc nối JD(R1,R2,R3) giữa ba phép chiếu R1(Tênnhàcungcấp,Tênhàng), R2(Tênnhàcungcấp,Têndựán),R3(Tênhàng,TênDựán) của quan hệ CUNGCẤP. Quan hệ CUNGCẤP được tách thành ba quan hệ R1, R2, R3 ở dạng chuẩn 5. Chú ý rằng nếu ta áp dụng phép nối tự nhiên cho từng đôi quan hệ một thì sẽ sinh ra các bộ giả, nhưng nếu áp dụng phép nối tự nhiên cho cả ba quan hệ thì không sinh ra các bộ giả. R1 R2 R3 Tênnhàcungcấp Tênhàng Tênnhàcungcấp Têndựán Tênhàng Têndựán Ncc1 Bulong Ncc1 Dựán1 Bulong Dựán1 Ncc1 Đaiốc Ncc1 Dựán2 Đaiốc Dựán2 Ncc2 Bulong Ncc2 Dựán2 Bulong Dựán2 Ncc3 Đaiốc Ncc3 Dựán3 Đaiốc Dựán3 Ncc2 Đinh Ncc2 Dựán1 Đinh Dựán1 124 Việc phát hiện các phụ thuộc nối trong các cơ sở dữ liệu thực tế với hàng trăm thuộc tính là một điều rất khó khăn. Vì vậy, thực tiễn thiết kế cơ sở dữ liệu hiện nay thường không chú ý đến nó. Nói chung, trong thực tế thiết kế cơ sở dữ liệu, người ta chỉ chuẩn hóa các bảng đến 3NF, BCNF là đủ V- Tổng kết chương và câu hỏi ôn tập V.1- Tổng kết chương Trong chương này chúng ta đã nói đến các nguy hiểm có thể xảy ra trong việc thiết kế cơ sở dữ liệu, xác định một cách không hình thức một số chuẩn mực để chỉ ra một lược đồ quan hệ là “tốt” hay “tồi” và đưa ra một số nguyên tắc không hình thức cho một thiết kế tốt. Sau đó chúng ta đã trình bày một vài khái niệm cho phép ta thiết kế quan hệ theo cách trên-xuống bằng cách phân tích các quan hệ một cách riêng rẽ. Chúng ta đã định nghĩa quá trình thiết kế này bằng phân tích và tách bằng cách giới thiệu quá trình chuẩn hóa. Những vấn đề về các bất thường cập nhật xảy ra khi có sự dư thừa xảy ra trong các quan hệ cũng đã được đề cập đến. Các chuẩn mực không hình thức của các lược đồ quan hệ tốt bao gồm ngữ nghĩa của thuộc tính rõ ràng và đơn giản, ít giá trị null trong các mở rộng của quan hệ. Một phép tách tốt phải tránh được việc sinh ra các bộ giả khi thực hiện phép nối. Chúng ta đã định nghĩa khái niệm phụ thuộc hàm và thảo luận một số tính chất của nó. Các phụ thuộc hàm là các nguồn thông tin ngữ nghĩa cơ bản về các thuộc tính của lược đồ quan hệ. Chúng ta đã chỉ ra cách suy diễn các phụ thuộc phụ thêm dựa trên một tập các phụ thuộc hàm cho trước và một tập các quy tắc suy diễn. Chúng ta đã định nghĩa các khái niệm bao đóng và phủ tối thiểu của một tập phụ thuộc hàm và cung cấp thuật toán tính phủ tối thiểu. Ta cũng đã chỉ ra làm thế nào để kiểm tra xem hai tập phụ thuộc hàm có tương đương nhau hay không. Tiếp theo, chúng ta đã mô tả quá trình chuẩn hóa để đạt đến các thiết kế tốt bằng cách kiểm tra các quan hệ đối với các kiểu phụ thuộc hàm không mong muốn. Chúng ta đã cung cấp cách chuẩn hóa liên tiếp dựa trên khóa chính được định nghĩa trước trong mỗi quan hệ và sau đó giảm nhẹ đòi hỏi này và đưa ra các định nghĩa tổng quát của các dạng chuẩn có tính đến tất cả các khóa dự tuyển của một quan hệ. 125 Trong phần IV chúng ta đã trình bày nhiều thuật toán chuẩn hóa. Đó là thuật toán tổng hợp quan hệ tạo ra các quan hệ 3NF từ một lược đồ quan hệ vũ trụ dựa trên một tập các phụ thuộc hàm do người thiết kế cơ sở dữ liệu xác định. Các thuật toán tạo ra các quan hệ BCNF (hoặc 4NF) bằng cách tách không mất mát liên tiếp các quan hệ không chuẩn hóa thành hai quan hệ thành phần tại một thời điểm. Chúng ta đã thảo luận về hai tính chất quan trọng của phép tách: tính chất nối không mất mát (hoặc không phụ thêm) và tính chất bảo toàn phụ thuộc. Một thuật toán kiểm tra phép tách không mất mát và một thuật toán kiểm tra tính không mất mát của một phép tách thành hai quan hệ cúng đã được trình bày. Chúng ta cũng đã thấy rằng việc tổng hợp các quan hệ ở dạng 3NF đảm bảo cả hai tính chất trên là có khả năng còn việc tổng hợp các quan hệ BCNF chỉ có khả năng đảm bảo tính không mất mát, không thể đảm bảo tính bảo toàn phụ thuộc. Cuối cùng, chúng ta đã nghiên cứu các loại phụ thuộc khác: phụ thuộc đa trị và phụ thuộc nối, đưa ra định nghĩa các dạng chuẩn 4, dạng chuẩn 5 và thuật toán tách các quan hệ vi phạm thành quan hệ 4NF, 5NF. Việc phát hiện các phụ thuộc nối rất khó khăn nên trong thiết kế thực tiễn người ta thường bỏ qua nó. V.2- Câu hỏi ôn tập 1) Hãy giải thích ngữ nghĩa của thuộc tính như là một độ đo không hình thức về tính tốt đối với một lược đồ quan hệ. 2) Hãy thảo luận về các bất thường chèn, xóa và sửa đổi. Vì sao chúng được xem là không tốt? Hãy minh họa bằng ví dụ. 3) Hãy trình bày vấn đề các bộ giả và làm thế nào để ngăn ngừa chúng? 4) Trình bày các nguyên tắc đối với việc thiết kế lược đồ quan hệ. Hãy minh họa việc vi phạm các nguyên tắc đó sẽ có hại như thế nào? 5) Phụ thuộc hàm là gì? Ai là người chỉ ra các phụ thuộc hàm giữa các thuộc tính của một lược đồ quan hệ? 6) Vì sao chúng ta không thể suy ra một phụ thuộc hàm từ một trạng thái quan hệ cụ thể? 7) Vì sao các quy tắc suy diễn của Amstrong (Qt1 đến Qt3) là quan trọng? 8) Tính đầy đủ và tính đúng đắn của các quy tắc suy diễn Amstrong là gì? 9) Bao đóng của một tập phụ thuộc hàm là gì? 126 10) Khi nào thì hai tập phụ thuộc hàm là tương đương? Làm thế nào để kiểm tra tính tương đương của chúng? 11) Tập tối thiểu các phụ thuộc hàm là gì? Có phải mỗi tập tối thiểu phụ thuộc hàm có một tập tối thiểu tương đương hay không? 12) Thuật ngữ quan hệ không chuẩn hóa ám chỉ cái gì? 13) Định nghĩa các dạng chuẩn 1NF, 2NF, 3NF, BCNF dựa trên khóa chính và các dạng chuẩn dưới dạng tổng quát. Sự khác nhau của hai định nghĩa là gì? 14) Phụ thuộc hàm nào cần tránh khi một quan hệ là ở 3NF? 15) Định nghĩa dạng chuẩn Boyce-Codd. Nó khác gì với 3NF? Vì sao nó được xem là mạnh hơn 3NF? 16) Điều kiện bảo toàn thuộc tính trên một phép tách là gì? 17) Vì sao các dạng chuẩn tự nó là chưa đủ như là một điều kiện cho một thiết kế lược đồ tốt? 18) Tính chất bảo toàn phụ thuộc đối với một phép tách là gì? Vì sao nó là quan trọng? 19) Vì sao chúng ta không thể đảm bảo rằng một phép tách các lược đồ quan hệ không BCNF thành BCNF là bảo toàn phụ thuộc? Hãy cho một phản ví dụ. 20) Tính chất nối không mất mát (không phụ thêm) của một phép tách là gì? Vì sao nó là quan trọng? 21) Giữa các tính chất bảo toàn phụ thuộc và nối không mất mát cái nào là nhất thiết phải thỏa mãn? Vì sao? Phụ thuộc hàm đa trị là gì? Nó chỉ ra ràng buộc gì? Khi nào nó sinh ra? 22) Hãy minh họa quá trình tạo ra các quan hệ ở dạng chuẩn 1? Làm thế nào để có dạng chuẩn 1 một cách đúng đắn, tránh được phụ thuộc đa trị? 23) Định nghĩa dạng chuẩn 4. Nó có lợi gì? 24) Định nghĩa phụ thuộc nối và dạng chuẩn 5. V.3- Bài tập 1) Hãy kiểm tra các quy tắc suy diễn đối với các phụ thuộc hàm sau đây là đúng hay sai: 127 a) {W →Y, X →Z} |= {WX →Y} b) {X →Y} và Y ⊇Z |= {X →Z} c) {X →Y , X →W, WY →Z} |= {X →Z} d) {XY →Z, Y →W} |= {XW →Z} e) {X →Z, Y →Z} |= {X →Y} f) {X →Y, Z →W} |= {XZ →YW} g) {XY →Z , Z →X} |= {Z →Y} h) {X →Y, Y →Z} |= {X →YZ} i) {XY →Z, Z →W} |= {X →W} 2) Cho lược đồ quan hệ R(A,B,C,D,E,F,G,H,I,J) và tập phụ thuộc hàm sau đây: F1 = {AB → C, A → DE, B → F, F → GH, D→ IJ} a) Khóa của quan hệ là gì? Hãy tách quan hệ thành 2NF, sau đó thành 3NF. b) Làm lại câu a) với tập phụ thuộc hàm sau: G1= { AB → C, BD → EF, AD→ GH, A → I , H → J } 3) Xét quan hệ R(A,B,C,D,E) và các phụ thuộc hàm sau: AB →C, CD →E, DE → B. AB có phải là khóa dự tuyển của quan hệ không? Vì sao? Hãy tìm một khóa của nó. 4) Cho quan hệ sau: A B C BộID 10 b1 c1 #1 10 b2 c2 #2 11 b4 c1 #3 12 b3 c4 #4 13 b1 c1 #5 14 b3 c4 #6 128 Những phụ thuộc hàm nào sau đây là đúng: A → B , B → C, C → B, B → A, C → A. Nếu có những phụ thuộc hàm sai, hãy giải thích vì sao.
File đính kèm:
- giao_trinh_he_co_so_du_lieu_phan_2.pdf