Tổng kết và kiểm tra giữa kỳ
Trong bài 8 và 9 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ố ...
Trong bài 8 và 9 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ệ.
Trong phần 8.2 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 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 và chúng ta đã xét hai thuật toán tìm một khóa và tìm tất cả khóa của lược đồ quan hệ.
- 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ệ.
- 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ụ.
- Hãy trình bày vấn đề các bộ giả và làm thế nào để ngăn ngừa chúng?
- 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?
- 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ệ?
- 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ể?
- Vì sao các quy tắc suy diễn của Amstrong (Qt1 đến Qt3) là quan trọng?
- Tính đầy đủ và tính đúng đắn của các quy tắc suy diễn Amstrong là gì?
- Bao đóng của một tập phụ thuộc hàm là gì?
- 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?
- 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?
- Thuật ngữ quan hệ không chuẩn hóa ám chỉ cái gì?
- Đị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ì?
- Phụ thuộc hàm nào cần tránh khi một quan hệ là ở 3NF?
- Đị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?
- Điều kiện bảo toàn thuộc tính trên một phép tách là gì?
- 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?
- 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?
- 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ụ.
- 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?
- 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?
- 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:
- {W →Y, X →Z} |= {WX →Y}
- {X →Y} và Y ⊇Z |= {X →Z}
- {X →Y , X →W, WY →Z} |= {X →Z}
- {XY →Z, Y →W} |= {XW →Z}
- {X →Z, Y →Z} |= {X →Y}
- {X →Y, Z →W} |= {XZ →YW}
- {XY →Z , Z →X} |= {Z →Y}
- {X →Y, Y →Z} |= {X →YZ}
- {XY →Z, Z →W} |= {X →W}
- 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}
- Khóa của quan hệ là gì? Hãy tách quan hệ thành 2NF, sau đó thành 3NF.
- 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 }
- 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ó.
- Cho quan hệ sau:
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.
5) Xác định tất cả các khóa của lược đồ F1 và G1 trong bài 2