Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 89 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
89
Dung lượng
660 KB
Nội dung
Chương Lý thuyết thiết kế CSDL 5.1 CÁC VẤN ĐỀ GẶP PHẢI KHI TỔ CHỨC CSDL 5.2 PHỤ THUỘC HÀM 5.3 BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM VÀ BAO ĐÓNG CỦA TẬP THUỘC TÍNH 5.4 KHOÁ CỦA LƯỢC ĐỒ QUAN HỆ - MỘT SỐ THUẬT TOÁN TÌM KHOÁ 5.5 PHỦ TỐI THIỂU (minimal cover) 5.6.DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ Chương Lý thuyết thiết kế CSDL 5.1 CÁC VẤN ĐỀ GẶP PHẢI KHI TỔ CHỨC CSDL 5.2 PHỤ THUỘC HÀM 5.3 BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM VÀ BAO ĐÓNG CỦA TẬP THUỘC TÍNH 5.4 KHOÁ CỦA LƯỢC ĐỒ QUAN HỆ - MỘT SỐ THUẬT TOÁN TÌM KHOÁ 5.5 PHỦ TỐI THIỂU (minimal cover) 5.6.DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ Các vấn đề gặp phải tổ chức CSDL Trước bàn cách thiết kế sở liệu tốt, phân tích xem số lược đồ quan hệ lại tồn vấn đề rắc rối Chẳng hạn cho lược đồ quan hệ: Thi(MASV,HOTEN,MONHỌC,DIEMTHI) sau quan hệ lược đồ quan hệ Thi Các vấn đề gặp phải tổ chức CSDL 1)Dư thừa (redundancy): Họ tên sinh viên lặp lại lần cho môn thi 2)Mưu thuẫn tiềm ẩn (potentia inconsistancyl hay bất thường cập nhật Do hậu dư thừa, cập nhật họ tên sinh viên để lại họ tên cũ khác Vì họ tên sinh viên mong muốn 3)Bất thường chèn (insertion anomaly) Chúng ta biết họ tên sinh viên sinh viên không dự thi môn 4)Bất thường xoá (deletion anomaly) Ngược lại với vấn đề 3) vấn đề xoá tất môn thi sinh viên, vô ý làm dấu vết để tìm họ tên sinh viên Các vấn đề gặp phải tổ chức CSDL Những vấn đề nêu giải phân rã lược đồ quan hệ Diemthi thành ba lược đồ quan hệ: Sinhvien(MASV,HOTEN) MonHoc(MAMH, TENMON) Ketqua(MASV,MAMH,DIEMTHI) MASV HOTEN 00CDTH189 Nguyễn Văn Thành 00CDTH211 Trần Thu Hà MAMH TENMON M1 Cơ sở liệu M2 Cấu trúc liệu M3 Kỹ thuật lập trình MASV MAMH DIEMTHI 00CDTH189 M2 00CDTH189 M2 00CDTH211 M3 00CDTH189 M3 Các vấn đề gặp phải tổ chức CSDL Ưu điểm: Lược đồ quan hệ Sinhvien cho biết họ tên sinh viên xuất lần; dư thừa Ngoài nhập họ tên sinh viên dù sinh viên chưa có kết thi môn Nhược điểm: Tuy nhiên lúc ta nhận thấy để tìm danh sách họ tên sinh viên ứng với môn thi sở liệu phải thực phép kết nối, với quan hệ Thi dễ dàng trả lời cách thực phép chọn phép chiếu Làm để đưa lược đồ sở liệu chưa tốt lược đồ sở liệu tốt hơn? chương chương tới nhằm giải vấn đề Chương Lý thuyết thiết kế CSDL 5.1 CÁC VẤN ĐỀ GẶO PHẢI KHI TỔ CHỨC CSDL 5.2 PHỤ THUỘC HÀM 5.3 BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM VÀ BAO ĐÓNG CỦA TẬP THUỘC TÍNH 5.4 KHOÁ CỦA LƯỢC ĐỒ QUAN HỆ - MỘT SỐ THUẬT TOÁN TÌM KHOÁ 5.5 PHỦ TỐI THIỂU (minimal cover) 5.6.DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ 5.2 PHỤ THUỘC HÀM Phụ thuộc hàm (functional dependancy) công cụ dùng để biểu diễn cách hình thức ràng buộc toàn vẹn Phương pháp biểu diễn có nhiều ưu điểm, công cụ quan trọng, gắn chặt với lý thuyết thiết kế sở liệu Định nghĩa phụ thuộc hàm Cho lược đồ quan hệ Q(U), U={A1,A2,…,An} X,Y hai tập khác rỗng U Ta nói X xác định Y (hay Y phụ thuộc hàm vào X) với r quan hệ Q, ∀ t1,t2 ∈ r mà t1.X = t2.X ⇒ t1.Y = t2.Y (nghĩa tồn hai r giống thuộc tính tập X mà lại khác hay nhiều thuộc tính tập Y) Khi ta ký hiệu X → Y Chẳng hạn phụ thuộc hàm thuộc tính họ tên sinh viên (HOTENSV) vào mã số sinh viên (MASV) ta diễn tả phụ thuộc hàm: MASV→ HOTENSV Chương Lý thuyết thiết kế CSDL 5.1 CÁC VẤN ĐỀ GẶO PHẢI KHI TỔ CHỨC CSDL 5.2 PHỤ THUỘC HÀM 5.3 BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM VÀ BAO ĐÓNG CỦA TẬP THUỘC TÍNH 5.4 KHOÁ CỦA LƯỢC ĐỒ QUAN HỆ - MỘT SỐ THUẬT TOÁN TÌM KHOÁ 5.5 PHỦ TỐI THIỂU (minimal cover) 5.6.DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ 5.7 PHÉP TÁCH KẾT NỐI BẢO TOÀN Phép tách kết nối bảo toàn thông tin Cho LĐQH Q(TênNCC, DIACHI, SANPHAM, ĐONGIA) có quan hệ tương ứng r Đặt r1 quan hệ có cách chiếu r lên Q1(TENNCC, SANPHAM, DONGIA) Đặt r2 quan hệ có cách chiếu r lên Q2(TENNCC, DIACHI) Kết r ≠r’ hay r ≠ r.Q1* r.Q2 Với kết ta nói phép tách ρ(Q1, Q2) tách Q thành Q1, Q2 tách kết nối mát thông tin Nếu r = r.Q1* r.Q2 Với kết ta nói phép tách ρ(Q1, Q2) tách Q thành Q1, Q2 tách kết nối không mát thông tin (Tách kết nối bảo toàn thông tin hay phân rã bảo toàn thông tin) Vậy với điều kiện phép tách trở thành tách-kết nối không mát thông tin Thuật toán kiểm tra phép tách không thông tin Input: Cho quan hệ vũ trụ R(A1, A2, …, An), phép tách D= Input: Cho quan hệ vũ trụ R(A1, A2, …, An), phép tách D= {R1, R2, …, Rm} R tập phụ thuộc hàm F Output: Kết luận D có thông tin không? Phương pháp: Tạo ma trận S có m hàng, n cột Mỗi cột ma trận ứng với thuộc tính, hàng ứng với quan hệ Ri Đặt S(i,j)=a thuộc tính Aj ∈ Ri bij ngược lại Lặp lại vòng lặp sau việc thực vòng lặp không làm thay đổi S: Với phụ thuộc hàm X->Y F, xác định hàng S có ký hiệu a cột ứng với thuộc tính X Nếu có hàng có chứa a cột ứng với thuộc tính Y, làm cho cột cột tương ứng hàng khác chứa a Nếu có hàng toàn chứa kí hiệu a pháp tách có tính chât nối không mát thông tin; ngược lại phép tách tính chất Ví dụ Cho lược đồ CSDL R(ABCDE), với tập phụ thuộc hàm F={AB- >CD, A->B, C->E, E->DC} Khi tách R thành quan hệ R1(ABC), R2 (CE), R3 (DE) có bị thông tin không? Lập bảng gồm dòng, cột A B C D E R1(ABC) a1 a2 a3 b14 b15 R2(CE) b21 b22 a3 b24 a5 R3(DE) b31 b32 b33 a4 a5 Xét phụ thuộc hàm AB->CD không thay đổi Xét phụ thuộc hàm A->B không thay đổi Xét phụ thuộc hàm C->E, thay b15 thành a5 A B C D E R1(ABC) a1 a2 a3 b14 a5 R2(CE) b21 b22 a3 b24 a5 R3(DE) b31 b32 b33 a4 a5 Xét phụ thuộc hàm E->DC, biến đổi b14 thành a4, b24 thành a4 A B C D E R1(ABC) a1 a2 a3 a4 a5 R2(CE) b21 b22 a3 a4 a5 R3(DE) b31 b32 b33 a4 a5 Nhận thấy dòng toàn kí hiệu a1 dến a5 phép tách không mát thông tin, hay gọi phép tách bảo toàn thông tin Tính chất - Một phép tách D={R1, R2} R có tính chất không mát thông tin phụ thuộc hàm F R khi: Hoặc phụ thuộc hàm R1∩ R2→ (R1-R2) Hoặc phụ thuộc hàm R1∩ R2→ (R2-R1) BÀI TẬP Cho lược đồ quan hệ R(ABCDE) tập phụ thuộc hàm: G1= {AB->D, C->B, CB->E, E->DC} Kiểm tra phép tách lược đồ thành lược đồ có thông tin không: R1(ABC), R2(CBE), R3(DE) BÀI TẬP Cho lược đồ quan hệ R(U,F), U={BOISQD} tập phụ thuộc hàm: F= {S->D, I->B, IS->Q, B->O} Kiểm tra phép tách lược đồ thành lược đồ có thông tin không: R1(SD), R2(IB), R3(ISQ), R4(BO) Thuật toán tách quan hệ thành quan hệ BCNF với tính chất nối không mát thông tin Đặt D:={R}; Khi có lược đồ quan hệ Q D BCNF, ta thực vòng lặp: Với lược đồ quan hệ Q D không BCNF tìm phụ thuộc hàm X>Y Q vi phạm BCNF thay Q D lược đồ quan hệ (Q-Y) (X∪ Y) Quá trình lặp dừng không quan hệ D vi phạm BCNF BÀI TẬP Cho lược đồ quan hệ R(ABCDEFGHIJ) tập phụ thuộc hàm: F1= {AB->C, A->DE, B->F, F->GH, D->IJ} a Tìm F tối thiểu? b.Kiểm tra tính mát thông tin tách lược đồ quan hệ cho thành lược đồ con: R1(AGHI), R2(CEFGH), R3(ABDIJ) BÀI TẬP Cho lược đồ quan hệ R(ABCDEFGHIJ) tập phụ thuộc hàm: G1= {AB->C, BD->EF, AD->GH, A->I, H->J} Khóa quan hệ gì? Chuẩn hóa quan hệ thành NF BÀI TẬP Cho quan hệ R(U, F), U={ABCDE} tập phụ thuộc hàm: F={AB-> DE, D->EB, BD->C, B->D} a b c Tìm bao đóng tập thuộc tính {AB} Kiểm tra tính bảo toàn thông tin phép tách tách R thành lược đồ quan hệ R1(ACD), R2(CE), R3(BE) Chuẩn hóa R NF BÀI TẬP Cho quan hệ R(U, F), U={ABCDE} tập phụ thuộc hàm: F={AB-> CD, A->B, C->E, E->DC} a b c Tìm bao đóng tập thuộc tính {AB} Kiểm tra tính bảo toàn thông tin phép tách tách R thành lược đồ quan hệ R1(ABC), R2(CE), R3(DE) Chuẩn hóa R NF BÀI TẬP Cho quan hệ R(U, F), U={ABCDEFGHIJ} tập phụ thuộc hàm: F1={AB-> C, BD->EF, AD->GH, A->I, H->J} a {AB} có phải khóa R không? Vì sao? b Tìm tất khóa R? c Chuẩn hóa R NF d Kiểm tra tính bảo toàn thông tin phép tách tách R thành lược đồ quan hệ R1(ABC), R2(CE), R3(DE)