CHƯƠNG VI CHƯƠNG VI CHƯƠNG VI LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LiỆU Nguyễn Hồng Hạnh Bộ môn Công Nghệ Phần Mềm,Khoa Công Nghệ Thông Tin Trường Đại Học Xây Dựng 6 1 Một số vấn đề gặp phải khi tổ chức dữ liệ[.]
CHƯƠNG VI LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LiỆU Nguyễn Hồng Hạnh Bộ môn Công Nghệ Phần Mềm,Khoa Công Nghệ Thông Tin Trường Đại Học Xây Dựng 6.1 Một số vấn đề gặp phải tổ chức liệu Cho lược đồ quan hệ: Thi(MaSV, HotenSV, MonHoc, DiemThi) Xây dựng quan hệ lược đồ quan hệ Thi: MaSV HoTenSV MonHoc DiemThi 00DTH189 Nguyễn Văn Thành Mạng 00DTH189 Nguyễn Văn Thành CSDL 00DTH211 Trần Thu Hà Pascal 00DTH189 Nguyễn Văn Thành Pascal Một số vấn đề nảy sinh tổ chức liệu theo lược đồ trên: - Dư thừa - Bất thường sửa - Bất thường thêm - Bất thường xóa 6.1 Một số vấn đề gặp phải tổ chức liệu Hướng giải quyết: Phân rã lược đồ quan hệ Thi thành lược đồ quan hệ SinhVien( MaSV, HoTenSV) KetQua(MaSV,MonHoc,DiemThi) Mục đích nghiên cứu chương 6: Làm để đưa từ lược đồ sở liệu chưa tốt thành lược đồ sở liệu tốt nhằm - tránh dư thừa liệu - tránh bất thường thêm, sửa, xóa liệu đồng thời cho phép tìm kiếm thông tin cách dễ dàng ? 6.2 Phụ thuộc hàm ( Functional dependencies - FD) 6.2.1 Định nghĩa phụ thuộc hàm quan hệ Cho - R(U) lược đồ quan hệ, U tập thuộc tính - X, Y U Ta nói X xác định hàm Y hay Y phụ thuộc hàm vào X Nếu 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ụ: Phụ thuộc hàm thuộc tính HoTenSV MaSV biểu diễn sau: MaSV HoTenSV 6.2 Phụ thuộc hàm ( Functional dependencies - FD) 6.2.1 Định nghĩa phụ thuộc hàm quan hệ Phụ thuộc hàm X X: phụ thuộc hàm hiển nhiên Quy ước: F: tập phụ thuộc hàm định nghĩa R(U) Trong tập F, cần mô tả phụ thuộc hàm không hiển nhiên, phụ thuộc hiển nhiên ngầm hiểu có F Ví dụ : Cho R(U) t1 t2 t3 t4 t5 A B C D E a1 b1 c1 d1 e1 a1 b2 c2 d2 e1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c3 d1 e1 Những phụ thuộc hàm sau thỏa r? A D; AB D; E A; A E 6.2 Phụ thuộc hàm ( Functional dependencies - FD) 6.2.2 Một số tính chất phụ thuộc hàm Hệ tiên đề Amstrong: 1.Luật phản xạ (reflexivity) X Y XY 2.Luật tăng trưởng(augmentation) X Y XZ YZ 3.Luật bắc cầu(transitivity) X Y, Y Z X Z Hệ hệ tiên đề Amstrong: 4.Luật hợp (the union rule) Cho X Y, X Z X YZ 5.Luật tựa bắc cầu (the pseudotransitivity rule) Cho X Y,WY Z XW Z 6.Luật tách (the decomposition rule): Cho X Y, Z Y X Z 6.3 Bao đóng tập phụ thuộc hàm Định nghĩa : 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+ 6.4 Bao đóng tập thuộc tính Định nghĩa : 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+} Thuật tốn tính bao đóng tập thuộc tính Bước Bước i X0 = X Tính Xi từ Xi-1 Nếu Y Z F Y Xi-1 A Z A khơng thuộc Xi-1 Xi = Xi-1 A ngược lại , Xi = Xi-1 Nếu Xi ≠ Xi-1 lặp Bước i ngược lại, chuyển Bước n Bước n X+ = Xi Ví dụ minh họa tính bao đóng tập thuộc tính 6.5 Khóa tối thiểu lược đồ quan hệ Định nghĩa : Cho lược đồ quan hệ R(U), tập phụ thuộc hàm F, U tập thuộc tính; K U, K gọi khóa tối thiểu R nếu: - K U thuộc F+ - Với tập K’ K K’ U khơng thuộc F+ Nhận xét: Nếu K khóa tối thiểu - Bao đóng K+ =U ( từ K suy thuộc tính U) - K tập thuộc tính nhỏ có tính chất 6.5 Khóa tối thiểu lược đồ quan hệ Thuật toán tìm khóa tối thiểu Bước Bước i K0 = U Nếu (Ki-1 \ {Ai}) U Ki = Ki-1 \ {Ai}) ngược lại , Ki = Ki-1 Nếu Ki ≠ Ki-1 lặp Bước i ngược lại, chuyển Bước n Bước n K = Ki Ví dụ minh họa tìm khóa tối thiểu 6.7 Phép tách lược đồ quan hệ Mục đích Thay lược đồ quan hệ R(A1 , A2 ,…, An ) tập lược đồ {R1 , R2 , … , Rk } Ri ⊆ R R= R1 ∪ R2 ∪ … ∪ Rk u cầu phép tách - Bảo tồn thuộc tính, ràng buộc - Bảo toàn liệu 6.7 Phép tách lược đồ quan hệ 6.7.1 Phép tách không mát thông tin ( Lossless join) Định nghĩa: Cho lược đồ quan hệ R(U), phép tách R thành lược đồ {R1 , R2 , … , Rk } gọi phép tách không mát thông tin tập phụ thuộc hàm F với quan hệ r xác định R thỏa mãn F thì: r= ∏R1 (r) ⋈ ∏R2 (r) ⋈ … ⋈ ∏Rk (r) Ví dụ: Supplier (sid,sname,city,pid,pname,colour,quantity) ⤋ S1(sid, sname, city) SP1(pid,pname,colour,quantity) 6.7 Phép tách lược đồ quan hệ 6.7.2 Kiểm tra tính khơng mát thơng tin Vào: R(A1, A2, …, An), F, phép tách {R1, R2, …, Rk} Ra: phép tách mát thơng tin hay khơng? Thuật tốn B.1 Thiết lập bảng k hàng, n cột Nếu Aj thuộc tính Ri điền aj vào (i,j) Nếu khơng điền bij B.i Xét f = X⟶Y F Nếu hàng t1, t2 thuộc bảng : t1[X] = t2[X] t1[Y] = t2[Y], ưu tiên đồng giá trị a 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 tồn thơng tin 6.7 Phép tách lược đồ quan hệ 6.7.3 Phép tách bảo toàn tập phụ thuộc hàm 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 6.8 Các dạng chuẩn lược đồ quan hệ 6.8.1 Một số định nghĩa Định nghĩa 1: Cho R(U) lược đồ quan hệ với U tập thuộc tính, F tập phụ thuộc hàm R AU Chúng ta nói: A thuộc tính khóa( prime) A thuộc khóa tối thiểu R Ngược lại A gọi thuộc tính khơng khóa (nonprime) Ví dụ: R(ABCD) F= {AB ⟶ C , BC ⟶ A,B ⟶ D} Lược đồ có khóa tối thiểu AB, BC A, B, C : thuộc tính khóa; D : thuộc tính khơng khóa ... quyết: Phân rã lược đồ quan hệ Thi thành lược đồ quan hệ SinhVien( MaSV, HoTenSV) KetQua(MaSV,MonHoc,DiemThi) Mục đích nghiên cứu chương 6: Làm để đưa từ lược đồ sở liệu chưa tốt thành lược đồ... thuộc hàm Hệ tiên đề Amstrong: 1.Luật phản xạ (reflexivity) X Y XY 2.Luật tăng trưởng(augmentation) X Y XZ YZ 3.Luật bắc cầu(transitivity) X Y, Y Z X Z Hệ hệ tiên đề Amstrong:... Amstrong: 4.Luật hợp (the union rule) Cho X Y, X Z X YZ 5.Luật tựa bắc cầu (the pseudotransitivity rule) Cho X Y,WY Z XW Z 6.Luật tách (the decomposition rule): Cho X Y, Z Y X