1. Trang chủ
  2. » Tất cả

Bài giảng hệ cơ sở dữ liệu chương 5 2 ts lê thị tú kiên

20 0 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

CHƢƠN V THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ Ở MỨC KHÁI NIỆM TS Nguyễn Thị Kim Ngân Nội dung  Dư thừa và dị thường dữ liệu  Phụ thuộc hàm  Hệ tiên đề Armstrong  Bao đóng của tập thuộc tính  Phủ của một[.]

CHƢƠN V THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ Ở MỨC KHÁI NIỆM TS Nguyễn Thị Kim Ngân Nội dung          Dư thừa dị thường liệu Phụ thuộc hàm Hệ tiên đề Armstrong Bao đóng tập thuộc tính Phủ tập PTH Xác định khóa lược đồ quan hệ Chuẩn hóa lược đồ quan hệ Các phép tách lược đồ quan hệ Chuyển đổi mơ hình thực thể liên kết sang mơ hình quan hệ Các phép tách lược đồ quan hệ    Định nghĩa phép tách lược đồ quan hệ Phép tách kết nối khơng tổn thất BCNF Phép tách bảo tồn phụ thuộc 3NF Các phép tách lược đồ quan hệ    Định nghĩa phép tách lược đồ quan hệ Phép tách kết nối không tổn thất chuẩn BCNF Phép tách bảo toàn phụ thuộc chuẩn 3NF Định nghĩa phép tách lược đồ quan hệ Cho lược đồ quan hệ R= U1, U2, …, Uk tập U cho U1  U2 …  Uk=U Fi= Ui(F)={{XY| XY F+, XYUi}, i=1, ,k Phép tách lược đồ R việc thay R= lược đồ R1 =, R2 =, …, Rk= Kí hiệu phép tách: =(R1, R2, …, Rk) =(U1, U2, …, Uk) Phép tách kết nối không tổn thất Cho lược đồ quan hệ R= r quan hệ R thỏa mãn F U1, U2, …, Uk tập U cho U=U1  U2 …  Uk Fi= Ui(F)={XY| XY F+, XYUi}, i=1, ,k Ri=, i=1, ,k ri=Ui(r), i=1, ,k Phép tách R thành {R1, R2, …, Rk} gọi tách kết nối không tổn thất (Lossless Join Decomposition) tập phụ thuộc hàm F r=r1 * r2 *…* rk Phép tách kết nối không tổn thất Bổ đề Cho, R= lược đồ quan hệ, r quan hệ R thỏa F U1, U2, …, Uk tập U cho U=U1  U2 …  Uk Fi= Ui(F)={XY| XY F+, XYUi}, i=1, ,k Ri=, i=1, ,k =(R1, R2, …, Rk) phép tách R ri=Ui(r), i=1, ,k m(r)=r1 * r2 *…* rk Khi i) r m(r) ii) Nếu s=m(r) Ui(s)=ri, i=1, ,k iii) m(m(r))=m(r) Kiểm tra tính kết nối không tổn thất phép tách Bài tốn Cho lược đồ R , đó, U={A1, A2, …, An} tập thuộc tính, F tập phụ thuộc hàm, U1, U2, …, Uk tập U cho U1  U2 …  Uk=U Kiểm tra phép tách =(U1, U2, …, Uk) có phải phép tách kết nối khơng tổn thất hay khơng? Kiểm tra tính kết nối khơng tổn thất phép tách Thuật toán Vào: U={A1, A2, …, An}, F, =(U1, U2, …, Uk) Ra: Kết luận  có phải phép tách kết nối khơng tổn thất hay không? Phƣơng pháp: Bước 1: Lập bảng kxn, Tại dịng i, cột j ta kí hiệu aj AjUi, ngược lại, ta kí hiệu bij Bước 2: Với XY  F, xét dịng có kí hiệu tập X Các dịng thay đổi kí hiệu để chúng mang giá trị tập Y, theo quy tắc: - Nếu tồn kí hiệu có dạng aj kí hiệu cịn lại đổi thành aj - Nếu khơng có giá trị có dạng aj lấy tùy ý ký hiệu bij để làm Bước lặp lại khơng có thay đổi bảng Nếu bước kết thúc, bảng có dịng gồm tồn ký hiệu dạng aj  phép tách kết nối khơng tổn thất, ngược lại  phép tách kết nối tổn thất Kiểm tra tính kết nối khơng tổn thất phép tách Ví dụ Cho R=, U={S, A, I, P} F={SA, SI  P} Kiểm tra =(SA, SIP) có phép tách khơng tổn thất hay không? Bảng khởi tạo SA S A I a1 a2 b13 b14 SIP a1 b22 a3 P a4 Kiểm tra tính kết nối khơng tổn thất phép tách Ví dụ 1: Cho U={S, A, I, P} F={SA, SI  P} Kiểm tra =(SA, SIP) có phép tách không tổn thất hay không? Xét SA SA S A I a1 a2 b13 b14 SIP a1 b22 a3 P a4  SA S A I a1 a2 b13 b14 SIP a1 a2 a3 P a4 Kiểm tra tính kết nối khơng tổn thất phép tách Ví dụ 1: Cho U={S, A, I, P} F={SA, SI  P} Kiểm tra =(SA, SIP) có phép tách không tổn thất hay không? Xét SI  P SA S A I a1 a2 b13 b14 SIP a1 b22 a3 P a4  SA S A I a1 a2 b13 b14 SIP a1 a2 a3 P a4  SA S A I a1 a2 b13 b14 SIP a1 a2 a3 P a4 Kiểm tra tính kết nối khơng tổn thất phép tách Ví dụ 1: Cho U={S, A, I, P} F={SA, SI  P} Kiểm tra =(SA, SIP) có phép tách khơng tổn thất hay không? Xét SI  P SA S A I a1 a2 b13 b14 SIP a1 b22 a3 P a4  SA S A I a1 a2 b13 b14 SIP a1 a2 a3 P a4 =(SA, SIP) phép tách kết nối không tổn thất  SA S A I a1 a2 b13 b14 SIP a1 a2 a3 P a4 Kiểm tra tính kết nối khơng tổn thất phép tách Định lý Giả sử =(U1, U2) phép tách lược đồ quan hệ R= Khi đó,  phép tách kết nối không tổn thất U1  U   U1 \ U   F    U1  U   U \ U1  F  Kiểm tra tính kết nối khơng tổn thất phép tách Chứng minh định lý Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An} U1={A1, A2, …, Ai-1, Ai …, Aj} U2={Ai , …, Aj,Aj+1 …, An} Bảng khởi tạo A1 A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj b1j+1 … b1n U2 b21 b22 … bi-1 … aj aj+1 U a1 a2 … an Kiểm tra tính kết nối khơng tổn thất phép tách Chứng minh định lý Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An} U1={A1, A2, …, Ai-1, Ai …, Aj} U2={Ai , …, Aj,Aj+1 …, An} Nếu U1U2 U1\U2 F+ => Ai, Ai+1 …, Aj A1, A2, …, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj b1j+1 … b1n  U1 a1 a2 … ai-1 … aj b1j+1 … b1n U2 b21 b22 … bi-1 … aj aj+1 a2 … ai-1 … aj aj+1 U a1 a2 … an U a1 … an Kiểm tra tính kết nối không tổn thất phép tách Chứng minh định lý Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An} U1={A1, A2, …, Ai-1, Ai …, Aj} U2={Ai , …, Aj,Aj+1 …, An} Nếu U1U2 U1\U2 F+ => Ai, Ai+1 …, Aj A1, A2, …, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj b1j+1 … b1n  U1 a1 a2 … ai-1 … aj b1j+1 … b1n U2 b21 b22 … bi-1 … aj aj+1 a2 … ai-1 … aj aj+1 U a1 a2 … an U a1 =(U1, U2) phép tách kết nối khơng tổn thất … an Kiểm tra tính kết nối không tổn thất phép tách Chứng minh định lý Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An} U1={A1, A2, …, Ai-1, Ai …, Aj} U2={Ai , …, Aj,Aj+1 …, An} Nếu U1U2 U2\U1 F+ => Ai, Ai+1 …, Aj Aj+1,…, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 … ai-1 … aj b1j+1 … b1n  U1 a1 U2 b21 b22 … bi-1 … aj aj+1 U a1 a2 … an A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj aj+1 … an U2 b21 b22 … bi-1 … aj aj+1 … an a2 Kiểm tra tính kết nối khơng tổn thất phép tách Chứng minh định lý Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An} U1={A1, A2, …, Ai-1, Ai …, Aj} U2={Ai , …, Aj,Aj+1 …, An} Nếu U1U2 U2\U1 F+ => Ai, Ai+1 …, Aj Aj+1,…, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 … ai-1 … aj b1j+1 … b1n  U1 a1 U2 b21 b22 … bi-1 … aj aj+1 U a1 a2 … an A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj aj+1 … an U2 b21 b22 … bi-1 … aj aj+1 … an a2 =(U1, U2) phép tách kết nối không tổn thất Kiểm tra tính kết nối khơng tổn thất phép tách Định lý Giả sử =(U1, U2) phép tách lược đồ quan hệ R= Khi đó,  phép tách kết nối khơng tổn thất U1  U   U1 \ U   F    U1  U   U \ U1   F U1  U   U1 \ U   F  =>  phép tách kết nối tổn thất   U1  U   U \ U1   F  ... U1U2 U1\U2 F+ => Ai, Ai+1 …, Aj A1, A2, …, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj b1j+1 … b1n  U1 a1 a2 … ai-1 … aj b1j+1 … b1n U2 b21 b 22 … bi-1... U1U2 U1\U2 F+ => Ai, Ai+1 …, Aj A1, A2, …, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 A2 … Ai-1 Ai … Aj Aj+1 … An … ai-1 … aj b1j+1 … b1n  U1 a1 a2 … ai-1 … aj b1j+1 … b1n U2 b21 b 22 … bi-1... U1={A1, A2, …, Ai-1, Ai …, Aj} U2={Ai , …, Aj,Aj+1 …, An} Nếu U1U2 U2\U1 F+ => Ai, Ai+1 …, Aj Aj+1,…, Ai-1 F+ A1 A2 … Ai-1 Ai … Aj Aj+1 … An A1 … ai-1 … aj b1j+1 … b1n  U1 a1 U2 b21 b 22 … bi-1

Ngày đăng: 24/02/2023, 09:43