Bài giảng cơ sở dữ liệu thiết kế

10 348 0
Bài giảng cơ sở dữ liệu  thiết kế

Đang tải... (xem toàn văn)

Thông tin tài liệu

Nhập môn sở liệu Các cách tiếp cận •  Trên xuống (Top-down), nhắc lại –  design by synthesis Thiết kế CSDL quan hệ •  Dưới lên (bottom-up) –  design by analysis –  Biểu diễn liệu người dùng (biểu mẫu, báo cáo) dạng quan hệ –  Chuẩn hoá quan hệ –  Ghép quan hệ có khoá Trần Việt Trung Vũ Tuyết Trinh trungtv@soict.hust.edu.vn Bộ môn Hệ thống thông tin, Viện CNTT&TT Đại học Bách Khoa Hà Nội Đặ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 S1 Smith London 100 Screw quantity 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 Ø  Đề 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 Phụ thuộc đa trị Kết luận Nhập môn sở liệu 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] Ví dụ Suppliers(sid, sname, city, NOE) •  sid→sname •  sid→city •  sid→NOE Supply(sid, product,quantity) •  sid, product→quantity •  Ký hiệu: X→Y 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 X→Y •  Tăng trưởng (augmentation) Nếu X→Y XZ→YZ •  Bắc cầu (transitivity) Nếu X→Y, Y→Z X→Z 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 Hệ •  Luật hợp (union) Nếu X→Y, X→Z X→YZ •  Luật tựa bắc cầu (pseudotransitivity) Nếu X→Y, WY→Z XW→Z •  Luật tách (decomposition) Nếu X→Y, Z ⊆ Y X→Z Bao đóng tập thuộc tính •  Đ/N Bao đóng tập thuộc tính X tập tất thuộc tính xác định hàm X thông qua tập F –  ký hiệu X+ X+ = {A ∈ U| X → A ∈F+} •  F họ đầy đủ (full family) F = F+ Nhập môn sở liệu Khoá Nhận xét •  Đ/N: Cho lược đồ quan hệ R(U), tập phụ thuộc hàm F •  Hệ tiên đề Amstrong đắn đầy đủ •  X→Y suy diễn từ hệ tiên đề Amstrong ⇔ Y ⊆ X+ •  Thiết kế CSDL ? Các khái niệm K ⊆ U, K gọi khóa tối thiểu R –  KàU ∈ F+ –  với ∀ K’ ⊂ K K’àU ∉ F+ •  Nhận xét: Nếu K khóa tổi thiểu –  K+ = U –  K tập thuộc tính nhỏ có tính chất –  Phụ thuộc hàm –  Bao đóng tập phụ thuộc hàm –  Khoá –  Bao đóng tập thuộc tính Tìm khoá tối thiểu Tính bao đóng tập thuộc tính •  Vào: Tập hữu hạn thuộc tính U tập phụ thuộc hàm F U X⊆U •  Ra: X+ •  Thuật toán B0 X0 = X Bi Tính Xi từ Xi-1 Bn Nếu ∃ Y→Z ∈ F ^ Y ⊆ Xi-1 ^ A ∈ Z ^ A ∉ Xi-1 Xi = Xi-1 ∪ A ngược lại, Xi = Xi-1 Nếu Xi ≠ Xi-1 thực Bi ngược lai, thực Bn X+ = Xi Ví dụ •  Cho R(U) U = {A,B,C,D,E,F,G} F = {AàB, ACDàE, EFàG} 1.  Tìm khóa tối thiểu R K0 = ABCDEFG K1 = K0 loại A BCDEFG à U không thuộc F+ K2 = K1 \{B} = ACDEFG ACDEFG à U thuộc F+ K3 = K2 loại C ADEFG à U không thuộc F+ K4 = K3 loại D ACEFG à U không thuộc F+ K5 = K4 \{E} = ACDFG ACDFG à U thuộc F+ K6 = K5 loại F ACDG à U không thuộc F+ K7 = K6 \{G} = ACDF ACDF à U thuộc F+ Vậy khóa tối thiểu cần tìm ACDF •  Vào: U = {A1, A2, …, An} , F •  Ra: khóa tối thiểu K xác định U F •  Thuật toán B0 K0= U, n = |U| Bi Nếu (Ki-1\{Ai})àU Ki= Ki-1\ {Ai} ngược lại, Ki= Ki-1 Nếu Ki≠ Ki-1 v iA5,A2->A3} •  Phép tách A1   A2   A3   A4   A5   R1   a1   a2   b13   a4   b15   R2   b21   a2   a3   b24   b25   R3   a1   b32   b33   a4   a5   –  R1{A1,A2,A4} –  R2{A2,A3} –  R3{A1,A4,A5} •  ? Sử dụngA1->A2A3 A2A4->A5 A1   A2   A3   A4   A5   A1   A2   A3   A4   A5   R1   a1   a2   b13   a4   b15   R1   a1   a2   b13   a4   b15a5   R2   b21   a2   a3   b24   b25   R2   b21   a2   a3   b24   b25   R3   a1   b32a2   b33b13     a4   a5   R3   a1   a2   b13     a4   a5   Nhập môn sở liệu Phép tách bảo toàn tập phụ thuộc hàm A2->A3 A1   A2   A3   A4   A5   R1   a1   a2   b13a3   a4   a5   R2   b21   a2   a3   b24   b25   R3   a1   a2   b13a3   a4   a5   •  Hình chiếu 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} R F –  Hình chiếu Fi F Ri tập tất XàY ∈ F+ : XY ⊆ Ri •  Phép tách sơ đồ quan hệ R thành {R1, R2, … , Rk} phép tách bảo toàn tập phụ thuộc hàm F (F1 ∪ F2 … ∪ Fk)+ = F+ hay hợp tất phụ thuộc hàm hình chiếu F lên sơ đồ suy diễn phụ thuộc hàm F Bài tập Các dạng chuẩn •  Kiểm tra xem phép tách có bảo toàn tập phụ thuộc hàm không •  Kiểm tra xem phép tách có mát thông tin không •  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) Dạng chuẩn (1NF) Dạng chuẩn (2NF) •  Đ/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ố –  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 sname Blake Smith 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 •  Đ/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 chính) khoá tối thiểu –  Với khoá tối thiểu bất kỳ, thuộc tính không thuộc khoá phài phụ thuộc đầy đủ vào khoá Nhập môn sở liệu 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: - XàY thuộc F+ - !∃ X’ ⊂ X : X’àY ∈ F+ 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) •  Các phụ thuộc hàm không đầy đủ gọi phụ thuộc phận Dạng chuẩn (3NF) Ví dụ S (sid, sname, city) Sales(sid, item, price) F = {sid à sname, city} •  Đ/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 chính) khoá tối thiểu Ø  S, Sales thuộc dạng chuẩn ItemInfo(item, price, discount) F = {itemàprice, priceàdiscount} •  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) 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 ∀ XàA ∈ F+ –  A thuộc tính xuất X –  X chứa khóa quan hệ R •  Ví dụ –  R = {A,B,C} ; F = {ABàC , CàB} –  R BCNF ∃ CàB, 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 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 ∃ XàAi, XàAj tạo quan hệ chung R’(XAiAj) Nhập môn sở liệu Ví dụ Cho R = {A,B,C,D,E,F,G} F = {AàB, ACDàE, EFàG} •  Xác định phép tách bảo toàn tập phụ thuộc hàm 3NF 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 B1 không lập quan hệ B2 !∃ f ∈ F: f chứa tất thuộc tính R B3 AàB ð R1(AB) ACDàE ð R2(ACDE) EFàG ð R3(EFG) Tách không mát thông tin BCNF Ví dụ Cho R(A,B,C,D,E,F,G) F = {AàB, ACDàE, EFàG} B1 Khóa tối thiểu cần tìm ACDF (xem slide 16) 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 42) 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 •  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 X→A ∈ S, 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 VD Phụ thuộc đa trị •  Đ/N: Cho R(U), X, Y ∈U X xác định đa trị Y hay Y phụ thuộc đa trị vào X với ∀ r xác định R với hai t1 t2 mà t1[X] = t2[X] ∃ t3 : t3[X] = t1[X], t3[Y] = t1[Y] t3[Z] = t2[Z] với Z = U \XY Drinker   Beer   Bar   An   Ken   A15   Binh   Ken   Song  Hong   An   Ken   Song  Hong   Hoang   Ken   A15   –  Ký hiệu X→→Y Nhập môn sở liệu Hệ tiên đề phụ thuộc hàm phụ thuộc đa trị Cho R(U), X, Y, Z, W ⊆ U (XY = X ∪ Y) •  A1: Phản xạ FD (reflexivity): Nếu Y ⊆ X X→Y •  A2: Tăng trưởng FD (augmentation): Nếu X→Y XZ→YZ •  A3: Bắc cầu FD (transitivity): Nếu X→Y, Y→Z X→Z •  A4: Luật bù MVD (complementation): Nếu X→→Y X→→U \ XY Hệ tiên đề phụ thuộc hàm phụ thuộc đa trị (2) Cho R(U), X, Y, Z, W ⊆ U (XY = X ∪ Y) •  A5: Tăng trưởng MVD (augmentation): Nếu X→→Y V⊆W WX→→VY •  A6: Bắc cầu MVD (transitivity): Nếu X→→Y, Y→→Z X→→Z \Y •  A7: Nếu X→Y X→→Y •  A8: Nếu X→→Y, W→Z với Z ⊆ Y W∩Y=∅ X→Z Các luật suy diễn bổ sung phụ thuộc đa trị Bao đóng tập phụ thuộc hàm phụ thuộc đa trị •  Luật hợp (union): Nếu X→→Y, X→→Z X→→YZ •  Luật tựa bắc cầu (pseudotransitivity): Nếu X→→Y, WY→→Z WX→→Z \ WY •  Luật tựa bắc cầu hỗn hợp (mixed pseudotransitivity): Nếu X→→Y, XY→Z X→Z \ Y •  Luật tách (decomposition): Nếu X→→Y, X→→Z X→→Y∩Z, X→→Y \ Z, X→→Z \ Y •  Đ/N: bao đóng tập phụ thuộc hàm phụ thuộc đa trị D tập tất phụ thuộc hàm phụ thuộc đa trị suy diễn logic từ D Tính sở phụ thuộc •  Vào: Tập phụ thuộc đa trị M tập thuộc tính U tập thuộc tính X ⊆ U •  Ra: Cơ sở phụ thuộc X M •  Cách tiến hành: B1 Đặt T tập tập Z U: với W→→Y ∈ M mà W⊆X Z Y \ X U \ XY B2 T thiết lập tập tập rời nhau, có cặp Z1, Z2 không tách rời thay chúng Z1\ Z2, Z2 \ Z1, Z1∩ Z2 với điều kiện không ghi nhận tập rỗng Gọi S tập thu sau bước B3 Tìm phụ thuộc có dạng V→→W M tập Y S : Y ∩ W ≠ ∅, Y ∩ V = ∅ Thay Y Y∩W Y \ W không thay đổi S B4 Tập S thu sau bước sở phụ thuộc X –  Ký hiệu: D+ Phép tách không thông tin •  Vào: R(A1, A2, …, An), F, M, phép tách {R1, R2, …, Rk} •  Ra: phép tách mát thông tin hay không •  Thuật toán (tổng quát hoá thuật toán trình bày slide 28) B.1 Thiết lập bảng k hàng, n cột (xem B1 slide 28) B.i Xét f = XàY ∈F: thực đồng bảng (xem B2 slide 28) Xét X→→Y: ∃ hàng t1, t2 thuộc bảng : t1[X] = t2[X] thêm vào bảng hàng u u[X]=t1[X], u[Y]=t1[Y], u[R \ XY] = t2[R \ XY] Lặp thay đổi giá trị bảng B.n Nếu bảng có hàng gồm kí hiệu a1, a2, … , an phép tách không mát thông tin ngược lại, phép tách không bảo toàn thông tin Nhập môn sở liệu Dạng chuẩn (4NF) •  Đ/N: Một quan hệ R dạng chuẩn bốn có phụ thuộc đa trị X→→Y với Y≠∅, Y ⊄ X XY ⊂ R X chứa khóa R •  Chú ý: R có phụ thuộc hàm dạng chuẩn bốn dạng chuẩn BoyeCodd X→→Y phải có nghĩa X→Y Kết luận •  Tầm quan trọng thiết kế CSDL –  ảnh hưởng đến chất lượng liệu lưu trữ –  Hiểu việc khai thác liệu •  Mục đích thiết kế CSDL: tránh –  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á 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 chính) khoá tối thiểu –  Với khoá tối thiểu bất kỳ, thuộc tính không thuộc khoá phài phụ thuộc đầy đủ vào khoá “ a 1NF table is in 2NF if and only if, given any candidate key K and any attribute A that is not a constituent of a candidate key, A depends upon the whole of K rather than just a part of it” [ Codd, E.F "Further Normalization of the Data Base Relational Model.“ IBM Research Report RJ909 (August 31st, 1971) Republished in Randall J Rustin (ed.), Data Base Systems: Courant Computer Science Symposia Series Prentice-Hall, 1972.] 10

Ngày đăng: 11/01/2016, 17:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan