Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
452,17 KB
Nội dung
Thiết kế CSDL quan hệ Đặt vấn đề Mục đích chuẩn hoá gi? Thế chuẩn? Có chuẩn? Ví dụ CSDL hãng cung ứng Suppliers(sid, sname, city, NOE, product,quantity) Sid Sname City NOE Product quantity S1 Smith London 100 Screw 50 S1 Smith London 100 Nut 100 S2 J&J Paris 100 Screw 78 S3 Blake Tokyo 75 Bolt 100 Các vấn đề đặt ra: dư thừa liệu, không quán, dị thường thêm bộ, dị thường xóa Đề xuất giải pháp Mục đích chuẩn hoá Xác định tập lược đồ quan hệ cho phép tìm kiếm thông tin cách dễ dàng, đồng thời tránh dư thừa liệu Hướng tiếp cận: Tách lược đồ quan hệ “có vấn đề” thành lược đồ quan hệ “chuẩn hơn” Nội dung Phụ thuộc hàm Phép tách sơ đồ quan hệ Các dạng chuẩn Kết luận Phụ thuộc hàm (Functional dependencies - FD) Đ/N: Phụ thuộc hàm quan hệ Cho R(U) sơ đồ quan hệ, U tập thuộc tính X, Y U X xác định hàm Y hay Y phụ thuộc hàm vào X với quan hệ r xác định R(U) với t1 t2 mà t1[X] = t2[X] t1[Y] = t2[Y] Ký hiệu: XY Ví dụ Suppliers(sid, sname, city, NOE, product,quantity) Supp(sid, sname, city, NOE) sidsname sidcity sidNOE Supply(sid, product,quantity) sid, productquantity Hệ tiên đề Amstrong Cho R(U) sơ đồ quan hệ, U tập thuộc tính X,Y,Z,W U (Ký hiệu: XY = X Y) Phản xạ (reflexivity) Nếu Y X XY Tăng trưởng (augmentation) Nếu XY XZYZ Bắc cầu (transitivity) Nếu XY, YZ XZ Hệ Luật hợp (union) Nếu XY, XZ XYZ Luật tựa bắc cầu (pseudotransitivity) Nếu XY, WYZ XWZ Luật tách (decomposition) Nếu XY, Z Y XZ Bao đóng tập phụ thuộc hàm Đ/N : Bao đóng tập phụ thuộc hàm F tập lớn phụ thuộc hàm suy diễn logic từ F Ký hiệu F+ Suy diễn logic X Y suy diễn logic từ F với quan hệ r xác định R(U) thoả phụ thuộc hàm F thoả X Y F họ đầy đủ (full family) F = F+ 10 Các dạng chuẩn Vấn đề đặt Có cần phải tinh chỉnh thiết kế hay không? Thiết kế tốt hay chưa? Định nghĩa dạng chuẩn Mục đích: Mỗi dạng chuẩn đảm bảo ngăn ngừa (giảm thiểu) số dạng dư thừa hay dị thường liệu Các dạng chuẩn hay sử dụng Dạng chuẩn (1NF) Dạng chuẩn (2NF) Dạng chuẩn (3NF) Dạng chuẩn Boye-Code (BCNF) Dạng chuẩn (4NF) 34 Dạng chuẩn (1NF) Đ/N: Một sơ đồ quan hệ R gọi dạng chuẩn tất miền giá trị thuộc tính R chứa giá trị nguyên tố sname Blake Smith Giá trị nguyên tố giá trị mà chia nhỏ Ví dụ: Quan hệ không 1NF quan hệ sau chuẩn hóa 1NF city London Paris product name price Nut 100 Bolt 120 Screw 75 sname city item price Blake London Nut 100 Blake London Bolt 120 Smith Paris Screw 75 35 Dạng chuẩn (2NF) Đ/N: Một sơ đồ quan hệ R coi dạng chuẩn Sơ đồ quan hệ 1NF Tất thuộc tính không khóa phụ thuộc hàm đầy đủ vào khóa (Lưu ý, A thuộc tính khóa A thuộc khóa tối thiểu R Ngược lại A thuộc tính không khóa) 36 Phụ thuộc hàm đầy đủ Đ/N: Cho lược đồ quan hệ R(U), F tập phụ thuộc hàm R X, Y U Y gọi phụ thuộc đầy đủ vào X nếu: - XY thuộc F+ - ! X’ X : X’Y F+ Các phụ thuộc hàm không đầy đủ gọi phụ thuộc phận 37 Ví dụ Sales(sid, sname, city, item, price) F = {sid (sname,city), (sid, item) price} Khóa (sid,item) sname, city không phụ thuộc hàm đầy đủ vào khóa Sales không thuộc 2NF Chuẩn hoá S(sid, sname, city) Sales (sid, item, price) 38 Dạng chuẩn (3NF) Đ/N: Một sơ đồ quan hệ R coi dạng chuẩn Sơ đồ quan hệ 2NF Mọi thuộc tính không khóa không phụ thuộc bắc cầu vào khóa 39 Ví dụ S (sid, sname, city) Sales(sid, item, price) F = {sid sname, city} S, Sales thuộc dạng chuẩn ItemInfo(item, price, discount) F = {itemprice, pricediscount} thuộc tính không khóa discount phụ thuộc bắc cầu vào khóa item Vậy quan hệ không 3NF Chuẩn hoá ItemInfo(item, price) Discount(price, discount) 40 Dạng chuẩn Boye-Codd Đ/N: Một sơ đồ quan hệ R(U) với tập phụ thuộc hàm F gọi dạng chuẩn Boye-Codd (BCNF) với XA F+ Ví dụ A thuộc tính xuất X X chứa khóa quan hệ R R = {A,B,C} ; F = {ABC , CB} R BCNF CB, C khóa Chú ý: Một quan hệ thuộc 3NF chưa thuộc BCNF Nhưng quan hệ thuộc BCNF thuộc 3NF 41 Tách bảo toàn tập phụ thuộc hàm 3NF Vào: R(U), F (giả thiết F phủ tối thiểu) Ra: Phép tách bảo toàn tập phụ thuộc hàm 3NF Thuật toán B1 Với Ai U, Ai F loại Ai khỏi R lập quan hệ cho Ai B2 Nếu f F, f chứa tất thuộc tính R kết R B3 Ngược lại, với X A F, xác định quan hệ Ri(XA) Nếu XAi, XAj tạo quan hệ chung R’(XAiAj) 42 Ví dụ U = {A,B,C,D,E,F,G} F = {AB, ACDE, EFG} Xác định phép tách bảo toàn tập phụ thuộc hàm 3NF Cho B1 không lập quan hệ B2 ! f F: f chứa tất thuộc tính R B3 AB ACDE EFG R1(AB) R2(ACDE) R3(EFG) 43 Tách không mát thông tin bảo toàn tập phụ thuộc hàm 3NF Yêu cầu: Bảo toàn tập phụ thuộc hàm (như thuật toán trên) Đảm bảo có lược đồ chứa khóa lược đồ tách Các bước tiến hành B1 Tìm khóa tối thiểu lược đồ quan hệ R cho B2 Tách lược đồ quan hệ R theo phép tách bảo toàn tập phụ thuộc B3 Nếu sơ đồ có chứa khóa tối thiểu kết B2 kết cuối Ngược lại, thêm vào kết sơ đồ quan hệ tạo khóa tối thiểu tìm 44 Ví dụ Cho R(A,B,C,D,E,F,G) F = {AB, ACDE, EFG} B1 Khóa tối thiểu cần tìm ACDF (xem slide 17) B2 Phép tách bảo toàn tập phụ thuộc hàm R cho sơ đồ R1(AB), R2(ACDE), R3(EFG) (xem slide 43) B3 Do khóa ACDF không nằm sơ đồ sơ đồ trên, ta lập sơ đồ R4(ACDF) Kết cuối ta có phép tách R thành sơ đồ {R1, R2, R3, R4} phép tách không mát thông tin bảo toàn tập phụ thuộc hàm 45 Tách không mát thông tin BCNF Vào: Sơ đồ quan hệ R, tập phụ thuộc hàm F Ra: phép tách không mát thông tin bao gồm tập sơ đồ BCNF với phụ thuộc hàm hình chiếu F lên sơ đồ Cách tiến hành B1 KQ = {R}, B2 Với S KQ, S không BCNF, xét XA FS, với điều kiện X không chứa khóa S A X Thay S S1, S2 với S1=A X, S2 = S \ A B3 Lặp (B2) S KQ BCNF KQ gồm sơ đồ phép tách yêu cầu 46 Kết luận Tầm quan trọng thiết kế CSDL Mục đích thiết kế CSDL: tránh ảnh hưởng đến chất lượng liệu lưu trữ Hiểu việc khai thác liệu Dư thừa liệu Dị thường liệu thêm/xoá/sửa đổi Hiểu tìm kiếm Đưa dạng chuẩn 2NF: giản ước thừa để tránh dị thuờng cập nhật 3NF: tránh dị thường thêm/xoá 47 48 [...]... thừa: AC là thừa Vậy Fc = {AB, BC} 23 Mục đích của thiết kế CSDL – nhắc lại Xác định được 1 tập các lược đồ quan hệ cho phép tìm kiếm thông tin một cách dễ dàng, đồng thời tránh được dư thừa dữ liệu (cf slide 7) Phát biểu lại mục đích này sử dụng các khái niệm vừa học ? 24 Phép tách các lược đồ quan hệ Mục đích Thay thế một sơ đồ quan hệ R(A1, A2, …, An) bằng một tập các sơ đồ con {R1, R2,... là giá trị mà không thể chia nhỏ ra được nữa Ví dụ: Quan hệ không ở 1NF và quan hệ sau khi chuẩn hóa về 1NF city London Paris product name price Nut 100 Bolt 120 Screw 75 sname city item price Blake London Nut 100 Blake London Bolt 120 Smith Paris Screw 75 35 Dạng chuẩn 2 (2NF) Đ/N: Một sơ đồ quan hệ R được coi là ở dạng chuẩn 2 nếu Sơ đồ quan hệ này ở 1NF Tất cả các thuộc tính không khóa đều phụ... phải tinh chỉnh thiết kế nữa hay không? Thiết kế đã là tốt hay chưa? Định nghĩa về các dạng chuẩn Mục đích: Mỗi dạng chuẩn đảm bảo ngăn ngừa (giảm thiểu) một số các dạng dư thừa hay dị thường dữ liệu Các dạng chuẩn hay sử dụng Dạng chuẩn 1 (1NF) Dạng chuẩn 2 (2NF) Dạng chuẩn 3 (3NF) Dạng chuẩn Boye-Code (BCNF) Dạng chuẩn 4 (4NF) 34 Dạng chuẩn 1 (1NF) Đ/N: Một sơ đồ quan hệ R được gọi là... (Lossless join) Đ/N: Cho lược đồ quan hệ R(U) phép tách R thành các sơ đồ con {R1, R2, …, Rk} được gọi là phép tách không mất mát thông tin đ/v một tập phụ thuộc hàm F nếu với mọi quan hệ r xác định trên R thỏa mãn F thì: r = R1(r) R2(r) … Rk (r) Ví dụ: Supplier(sid, sname,city,NOE, pname,colour,quantity) S1(sid, sname, city, NOE) SP1(sid,pname,colour,quantity) 26 Kiểm tra tính không mất mát... đóng của tập thuộc tính X là tập tất cả các thuộc tính được xác định hàm bởi X thông qua tập F ký hiệu là X+ X+ = {A U| X A F+} 12 Nhận xét Hệ tiên đề Amstrong là đúng đắn và đầy đủ XY được suy diễn từ hệ tiên đề Amstrong Y X+ Thiết kế CSDL ? Các khái niệm Phụ thuộc hàm Bao đóng của tập phụ thuộc hàm Khoá Bao đóng của 1 tập các thuộc tính 13 Tính bao đóng của 1 tập thuộc tính... tách đã cho là không mất mát thông tin 30 Phép tách bảo toàn tập phụ thuộc hàm Hình chiếu của tập phụ thuộc hàm Cho sơ đồ quan hệ R, tập phụ thuộc hàm F, phép tách {R1, R2, … , Rk} của R trên F Hình chiếu Fi của F trên Ri là tập tất cả XY F+ : XY Ri Phép tách sơ đồ quan hệ R thành {R1, R2, … , Rk} là một phép tách bảo toàn tập phụ thuộc hàm F nếu (F1 F2 … Fk)+ = F+ hay hợp của tất cả các...Khoá Đ/N: Cho lược đồ quan hệ R(U), tập các phụ thuộc hàm F K U, K được gọi là khóa tối thiểu của R nếu như KU F+ với K’ K thì K’U F+ Nhận xét: Nếu K là một khóa tổi thiểu thì K+ = U K là tập thuộc tính... city, NOE) SP1(sid,pname,colour,quantity) 26 Kiểm tra tính không mất mát thông tin Vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk} Ra: phép tách là mất mát thông tin hay không Thuật toán B.1 Thiết lập một bảng k hàng, n cột Nếu Aj là thuộc tính của Ri thì điền aj vào ô (i,j) Nếu không thì điền bij B.i Xét f = XY F Nếu 2 hàng t1, t2 thuộc bảng : t1[X] = t2[X] thì t1[Y] = t2[Y], ưu tiên ... thiểu lược đồ quan hệ R cho B2 Tách lược đồ quan hệ R theo phép tách bảo toàn tập phụ thuộc B3 Nếu sơ đồ có chứa khóa tối thiểu kết B2 kết cuối Ngược lại, thêm vào kết sơ đồ quan hệ tạo khóa tối... S A B3 Lặp (B2) S KQ BCNF KQ gồm sơ đồ phép tách yêu cầu 46 Kết luận Tầm quan trọng thiết kế CSDL Mục đích thiết kế CSDL: tránh ảnh hưởng đến chất lượng liệu lưu trữ Hiểu việc... Phụ thuộc hàm Phép tách sơ đồ quan hệ Các dạng chuẩn Kết luận Phụ thuộc hàm (Functional dependencies - FD) Đ/N: Phụ thuộc hàm quan hệ Cho R(U) sơ đồ quan hệ, U tập thuộc tính X, Y U