Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
459 KB
Nội dung
Môn Học: Cơ Sở Dữ Liệu Số tiết môn học: đvht – (45 tiết lý thuyết – 30 tiết thực hành) III- III- IV1 Yêu cầu kiến thức: Sinh viên năm thứ – chuyên ngành công nghệ thông tin Mục đích môn học: Cung cấp cho học viên số kiến thức sở liệu, việc ứng dụng hiệu kiến thức vào thực tiển để xây dựng dự án thiết kế hệ thống CSDL Sinh viên thực tập với hệ quản trò CSDL phổ biến : Access , SQL-Server, Oracle, Nội dung: • Tổng quan CSDL: Khái niệm cấu trúc hệ CSDL • Mô tả khái quát hệ QTCSDL, mô hình CSDL có • Giới thiệu mô hình CSDL quan hệ: • Các khái niệm • Khóa • Hệ tiên đề Amstrong, quan hệ Amstrong khái niệm • Cách thức tổ chức vật lý mô hình CSDL • Mô hình tổ chức nhớ • Tập băm • Tập số • B-Cây_c • Giới thiệu ngôn ngữ thao tác liệu • Ngôn ngữ đại số quan hệ • Ngôn ngữ liệu SQL (structured Query Language) • Phương pháp thiết kế CSDLQH • Phụ thuộc hàm • Các dạng chuẩn 1NF, 2NF, 3NF, dạng Boyee-Codd • Phụ thuộc đa trò • Tối ưu hóa câu hỏi • Chiến lược tối ưu hóa bản, tổng quát • Tối ưu hóa lớp biểu thức quan hệ Tài liệu tham khảo: Nhập môn sở liệu Đồng Thò Bích Thủy – Nguyễn An Tế Cơ sở liệu – Lý thuyết thực hành Nguyễn Bá Tường Cơ sở liệu Đỗ Trung Tuấn Lý thuyết thiết kế sở liệu Jeffrey D Ullman The Theory of Relational Database David Maier Chương I: Tổng Quan Về CSDL Mở đầu: Nhu cầu tích lũy xử lý liệu nảy sinh công việc, hoạt động người Ví dụ: Quản lý nhân sự, tiền lương quan xí nghiệp Trước đây, người xử lý lưu trử khai thác liệu cách thủ công Với xuất máy tính điện tử, cho phép lưu trữ xử lý liệu cách tự động, nảy sinh nhu cầu xây dựng phần mềm ứng dụng phục vụ cho công tác quản lý máy tính điện tử Để thực vấn đề này, trước tiên người thiết kế cần biết cách phân tích tổ chức thông tin hệ thống quản lý để xử lý khai thác cách tốt CSDL chuyên ngành nghiên cứu cách tổ chức lưu trữ khai thác liệu Đây chuyên ngành quan tâm nhiều công nghệ thông tin I- Hệ sở liệu (Database System): 1- Khái niệm: Hệ thống CSDL tập hợp liệu tổ chức cách chọn lọc, ghi thiết bò trữ tin, nhằm phục vụ đồng thời cho nhiều người, với nhiều mục đích khác 2- Các mức biểu diễn CSDL: Khi phân tích thiết kế CSDL, Người ta khảo sác mô tả CSDL theo mức (Theo tiêu chuẩn nhóm ANSI/X3/SPARC) a- Mức lược đồ (External Schema Level): mức cùng, dành cho người sử dụng Mỗi người sử dụng, nhóm công tác yêu cầu xử lý liệu theo mục đích riêng nhóm Ví dụ: Bộ phận quản lý tiền lương cần lập bảng lương cho đơn vò gồm thông tin: STT, họ tên, bậc lương, phụ cấp, tiền lương đó, phụ cấp tính theo hệ số dựa bậc lương Bộ phận quản lý công trình cần lập danh sách phân công nhân viên theo công trình, với thông tin: STT, họ tên, chuyên môn, công trình đó, nhân viên phân công phải có chuyên môn phù hợp với yêu cầu chuyên môn công trình b- Mức quan niệm (Conceptial Schema Level): Là mức mô tả tổng thể CSDL, cho biết CSDL chứa đối tượng liệu nào, mối quan hệ đối tượng, yêu cầu ràng buộc đối tượng lưu trữ Ví dụ: Dựa yêu cầu nhóm công tác, CSDL cần chứa đối tượng như: Nhân viên: Họ tên, bậc lương, chuyên môn Chế độ phụ cấp: Bậc lương, hệ số phụ cấp Công trình: Tên Công trình, Yêu cầu Chuyên Môn c- Mức lược đồ vật lý (Physical Schema Level): Là mức cài đặt thật CSDL, liên quan đến cách tổ chức lưu trữ, cách truy xuất liệu lưu trữ Ví dụ: Mô tả thông qua tập tin chứa liệu gồm tên, cách tổ chức, cấu trúc mẫu tin, cách truy cập mẫu tin Lược đồ vật lý Mức Vật Lý Lược Đồ Quan Niệm Mức Quan Niệm Lược đồ Lược đồ Mức Ngoài 3- Đặc tính môi trường CSDL: Hình ảnh môi trường CSDL a) Dữ liệu chia cho nhiều người sử dụng khác nhau, để tiết kiệm không gian lưu trữ, tăng hiệu khai thác b) Làm giảm tình trạng lưu trữ trùng lắp liệu, bảo đảm tính quán việc truy xuất liệu tính toàn vẹn liệu c) Có Tính độc lập liệu chương trình: • Tính độc lập vật lý: Người dùng quan tâm đến nội dung liệu, không quan tâm đến tổ chức bên trong, cách thức truy xuất liệu (phụ thuộc vào chất lượng hệ quản trò CSDL) • Tính độc lập logic: Nếu ta sửa cấu trúc CSDL không cần viết lại chương trình ứng dụng sẵn có (phụ thuộc vào chất lượng thiết kế) Để xây dựng quản lý CSDL cần có phần mềm gọi Hệ Quản Trò CSDL ( DBMS - Data Base Management System) II- Hệ Quản Trò CSDL (Database Managerment System_DBMS) 1- Khái Niệm: Hệ QTCSDL môi trường phần mềm cho phép xây dựng khai thác CSDL đề án tin học hóa Ví dụ: Oracle, MS Access, Dbase, Foxpro Các DBMS có nhiệm vụ hỗ trợ tích cực cho nhà phân tích thiết kế CSDL người sử dụng khai thác CSDL Để thực nhiệm vụ đó, hệ QTCSDL cần phải có thành phần cho phép khai báo cấu trúc lưu liệu xây dựng thao tác xử lý chúng 2- Các thành phần DBMS: a- Ngôn ngữ đònh nghiã liệu (Data Definition Language): Là phương tiện cho phép khai báo cấu trúc lưu trữ liệu, khai báo mối liên hệ loại liệu, quy tắc quản lý áp đặt liệu lưu trữ Ngôn ngữ đònh nghiã liệu xây dựng dựa loại mô hình liệu Hiện nay, phần lớn hệ QTCSDL dựa mô hình quan hệ b- Ngôn ngữ thao tác liệu (Data Manipulation Language): Cho phép người sử dụng xây dựng thao tác cập nhật (Thêm, sửa, xóa) liệu; khai thác liệu với nhiều mục đích khác c- Tự điển liệu (Data Dictionary): Chứa thông tin thành phần cấu trúc CSDL (Các thuộc tính, mối liên hệ ), quan hệ, ràng buộc liệu Thông qua tự điển liệu, Các Hệ QTCSDL cung cấp thêm công cụ trợ giúp khai thác liệu, lập hồ sơ sưu liệu (documentation) cấu trúc CSDL, tạo lập CSDL Tự điển liệu tổ chức CSDL gọi meta-cơ sở Để mô tả liệu mức quan niệm, người ta đưa nhiều loại mô hình III- Các Loại Mô Hình Dữ Liệu: 1- Đònh nghiã: Mô hình liệu tập hợp khái niệm, quy ước biểu diễn liệu cần quản lý mức quan niệm Thông qua mô hình liệu, người thiết kế mô tả toàn cảnh CSDL thiết kế bao gồm: a) Các đối tượng, thực thể quản lý b) Các mối quan hệ đối tượng c) Các ràng buộc liệu thể quy tắc quản lý ảnh hưởng đến đối tượng quản lý Có nhiều mô hình đề nghò, khảo sát mô hình đặt trưng nhất: Mô hình Phân cấp, Mô hình Mạng, Mô hình quan hệ, Mô hình thực thể - kết hợp Trong đó, mô hình thực thể kết hợp thường sử dụng mô tả liệu mức quan niệm qui trình thiết kế CSDL 2- Mô hình thực thể kết hợp (ER _ Entity - Relatinship Model): Do Peter Chen đề xuất vào năm 1976 Đây mô hình sử dụng phổ biến để thiết kế CSDL mức quan niệm 2.1 Các khái niệm mô hình gồm: a) Thực thể (Entity): đối tượng cụ thể hay trừu tượng giới thực Ví dụ: Nhân viên Nguyễn Văn A Lớp CNTT1 Xe có biển số 60E4 1689 b) Thuộc tính (Attribute): Là yếu tố thông tin để nhận thực thể Ví dụ: Họ tên, ngày sinh, nơi sinh nhân viên c) Loại thực thể (Entity Type): Tập thực thể có chung thuộc tính Ví dụ: Loại thực thể Nhân viên d) Khóa loại thực thể: Là tập thuộc tính mà giá trò xác đònh thực thể Ví dụ: Mã số nhân viên (MSNV) , Mã số phòng ban (MSPB) Ký hiệu hình thức loại thực thể: Tên Loại Thực Thể • Thuộc tính1 • Thuộc tính • …… Ví dụ: • • • • • Nhân Viên MSNV Họ tên Ngày sinh Đòa Ngày vào làm • • Phòng Ban MSPB Tên Phòng Ban e) Loại mối kết hợp (Relationship): dùng diễn tả liên hệ ngữ nghiã loại thực thể Ví dụ: - Giữa thực thể Nhân viên thực thể Phòng Ban có mối liên hệ ngữ nghiã trình công tác nhân viên phòng ban - Giữa thực thể Sinh viên thực thể Lớp có mối liên hệ ngữ nghiã: Mỗi sinh viên thuộc vào Lớp học Tên MKH Ký hiệu hình thức mối kết hợp: Thuộc tính Thuộc tính Ví dụ : • • • • • Nhân Viên MSNV Họ tên Ngày sinh Đòa Ngày vào làm QTCT NgayCĐ • • Phòng Ban MSPB Tên Phòng Ban f) Thuộc tính mối kết hợp: thuộc tính chung loại thực thể tham gia mối kết hợp g) Bản số nhánh mối kết hợp: gồm thành phần (min, max), ràng buộc toàn vẹn số lượng tối thiểu tối đa thực thể nhánh tham gia vào thể mối kết hợp Chú ý: Cận tối thiểu hay Nếu toán không qui đònh Min mặc đònh =1 Nếu toán không qui đònh Max đặt max = n với (n >1) Thường xuất số:(0,1); (0, N); (1,1); (1,N) 2.2 Các Bước Thiết Lập Mô Hình Thực Thể Kết Hợp: B1: Phân tích yêu cầu toán, chọn thông tin cần quản lý hình thành Từ điển liệu B2: Tiến hành gôm nhóm thuộc tính theo thực thể thật B3: Xác đònh mối kết hợp thực thể B4: Xác đònh thuộc tính mối kết hợp B5: Xác đònh số mối kết hợp Ví dụ: Xây dựng mô hình liệu phục vụ cho việc quản lý điểm thi môn học để tính điểm trung bình học kỳ sinh viên lớp, với quy tắc quản lý sau: Mỗi môn học, sinh viên phép thi lần • • • • SINHVIEN MSSV Họ tên Ngày sinh Phái (1,1) THUỘC (1,n) (0,n) KQHT HọcKỳ ĐL1 ĐL2 (0,n) • • • • • • LỚP MSLớp Tên Lớp MÔN HỌC MSMH Tên MH Số Giờ LT Số Giờ TH 2.3 Một số Qui Đònh Của Mô Hình ER: • Không có thuộc tính trùng tên thực thể • Mọi thuộc tính thực thể phải phụ thuộc trực tiếp vào khóa thực thể • Thuộc tính có liên quan với thực thể MKH đặt mối kết hợp Ví dụ: Hãy lập mô hình ER cho toán quản lý siêu thò với quy tắc sau: a) Siêu thò chia thành nhiều khu vực, khu vực đánh mã số có tên, chuyên bán loại mặt hàng đó,có người quản lý nhiều nhân viên làm việc khu vực b) Mỗi mặt hàng siêu thò cung cấp nhiều nhà cung ứng Mỗi nhà cung ứng cần lưu tên công ty, đòa chỉ, số phone, số fax mặt hàng mà nhà cung ứng cung cấp c) Mỗi khách hàng mua hàng chọn lựa hàng sau đến quầy tính tiền Ở quầy tính tiền in bill gồm số hóa đơn, ngày lập hóa đơn, tên khách mua, danh sách mặt hàng mua kèm theo đơn giá bán d) Đối với khách hàng mua só phải lưu trữ lại họ tên khách, đòa chỉ, số phone, số fax e) Các nhân viên làm việc lưu trữ thành phần: Msnv, họ tên, ngày sinh, đòa chỉ, ngày vào làm việc, khu vực mà nhân viên trực thuộc 3- Mô hình Dữ liệu Mạng (Network Data Model): Mô hình mạng dùng khái niệm: a) Loại mẫu tin (Record Type): thay cho khái niệm loại thực thể, chứa mẫu tin mà mẫu tin thực thể b) Loại liên hệ (Set Type): quan hệ ngữ nghiã loại mẫu tin chủ loại mẫu tin thành viên Ví dụ: SINH VIEN 1:n LOP 1:n KHOA Ký hiệu 1:n: diển tả ý nghiã mẫu tin lớp gồm nhiều sinh viên Ngoài có số loại liên hệ khác: Kiểu 1:1 : mẫu tin chủ liên hệ với mẫu thành viên, Kiểu n:1 : Mỗi thể tập gồm nhiều mẫu tin chủ mẫu tin thành viên Cách chuyển từ mô hình ER sang mô hình mạng: qt1: Mỗi thực thể hình thành kiểu mẫu tin qt2: Mối kết hợp thuộc loại (?,1) - (?,n) hay (?,1) - (?,1) hình thành loại liên hệ chiều mũi tên từ (?,n) > (?,1) qt3: Mối kết hợp thuộc loại (?,n) - (?,n) hình thành kiểu mẫu tin mới, kiểu mẫu tin chứa thuộc tính khóa thực thể liên quan 4- Mô hình liệu Phân cấp: Giống mô hình mạng, với khái niệm Kiểu mẫu tin Loại liên hệ Nhưng kiểu mẫu tin thành viên phụ thuộc kiểu mẫu tin cha Nghiã có kiểu liên hệ: 1:1, 1:n Do đó, mô hình thể rừng Những kiểu mẫu tin Cha gốc Các kiểu mẫu tin cuối không tạo thành LOP SINHVIEN MONHOC KếtQủaHọcTập KếtQủaHọcTập 5- Mô hình liệu Quan hệ:(Relational Data Model) Là mô hình phát triển vào năm 1970 Codd E.F công ty IBM Sanjoe, Mỹ đề xuất Các đối tượng mô hình gồm bảng chiều gọi quan hệ (Relation Table) với khái niệm: Thuộc tính, khóa, Lược đồ Quan hệ, Mô hình có CS lý thuyết vững nên mô hình phát triển rộng rãi Cách chuyển từ mô hình ER sang mô hình quan hệ: qt1: Chuyển thực thể thành quan hệ qt2: Mối quan hệ (1,n) - (1, n) thành quan hệ có khóa khóa thực thể tham gia qt3: Mối kết hợp (1,1) - (1, n) hay (1,1) - (1, 1) tạo thêm thuộc tính khóa bên thực thề vào thực thể n Ví dụ: Lơp(MSLop, TenLop) SinhVien(MSSV, MSLop, HoTen, NgaySinh, Phai) MonHoc(MSMon,TenMon) KQHT(MSSV, MSMon, HocKy, DiemL1,DiemL2) 6- Mô hình liệu hướng đối tượng (Object Oriented Data Model) Mô hình dựa cách tiếp cận hướng đối tượng, với khái niệm như: Lớp (Class) , Sự Kế thứa (Inheritence), Tính đóng gói (Encapsulation) Nhưng chưa sử dụng rộng rãi phần chưa có nhiều hệ QTCSDL cài đặt theo kiểu Bài Tập: Thiết lập mô hình quan niệm dùng quản lý việc cho mượn sách thư viện (Xem chỗ mang nhà) với quy tắc quản lý sau: - Sách gồm mã sách, tên, nguyên tác (tiếng Việt nườc ngoài), tác giả Sách phân chia theo thể loại gồm MaTL tên thể loại - Đọc giả muốn mượn sách phải lập thẻ Đọc giả Thẻ ghi nhận thông tin gồm: MaDG, Ten DG, đòa chỉ, ngày cấp, thông tin sách mượn, ngày mượn, ngày trả Hàng năm, Đọc giả phải đóng lệ phí để gia hạn thẻ mượn sách, sổ có ghi thêm thông tin: Năm, Ngày nộp, Số tiền Lời gỉai đề nghị : (1,1) Sách • MSSH • TênSH • Nguyên Tác • Tác Giả (0,n) Mượn NgMượn NgTrả 1:n Thể Loại (1,n) THUỘC Thẻ ĐG (0,n) • MSDG • TenDG • DiaChi • Ngày Cấp Sách • • (1,n) Thể Loại MSTL Tên TL Lệ Phí NgàyNộp Số Tiền Thẻ ĐG 1:n Sách • MSSH • TênSH • Nguyên Tác • Tác Giả • MSTL n Năm • Nam Năm 1:n 1:n Mượn (1,n) 1:n Lệ Phí Thể Loại • MSTL • Tên TL Mượn n MSDG MSSH NgMượn NgTrả n Thẻ ĐG • MSDG • TenDG • DiaChi • Ngày Cấp Lệ Phí n MSDG Năm NgàyNộp Số Tiền Chương 2: Mô Hình Dữ Liệu Quan Hệ MHQH E.F Codd đề xuất vào năm 1970.Ưu điểm MHQH nhờ vào đặt tính : • Tính Đơn giản: nhờ vào việc biểu diễn DL dạng bảng, tự nhiên người sử dụng cán tin học, thuận lới việc mô tả thiết kế lược đồ quan niệm liệu • Tính chặt chẽ khái niệm: cho phép dùng công cụ toán học công cụ thuật toán biễu diễn thao tác truy xuất liệu ràng buộc liệu Ví dụ: Lơp(MSLop, TenLop) SinhVien(MSSV, MSLop, HoTen, NgaySinh, Phai) MonHoc(MSMon,TenMon) KQHT(MSSV, MSMon, HocKy, DiemL1,DiemL2) I- Các Khái Niệm Cơ Bản: 1- Thuộc tính (Attribute): Là đặc tính riêng biệt đối tượng quản lý Thuộc tính xác đònh bởi: a) Tên gọi: Thøng đặt cách gợi nhớ, không nên đặt trùng tên thuộc tính loại đối tượng khác Ví dụ: Loại đối tượng SinhVien, GiangVien có thuộc tính tên đặt TenSV, TenGV Qui ước: Trong lý thuyết, Dùng chữ in hoa đại diện cho tên thuộc tính b) Kiểu liệu: Vô hướng:Số, văn bản, Boolean; Có cấu trúc: Date/Time c) Miền giá trò (Domain): Ký hiệu Dom(A) Ví dụ: Điểm có miền giá trò 10 Dom(Ngày_Sinh) ⊂ [1,31]x[1,12]x[1900,2023] Qui ước: Miền giá trò chứa thêm giá trò Rỗng (NULL) đặt trưng cho ngữ nghiã : Chưa xác đònh thời điểm xét hay Không thể xác đònh Ví dụ: TinhTrạngGiình: chứa giá trò rỗng chưa xác đònh Ví dụ: Quan hệ Nhân viên, Quản Lý Bởi: Mỗi nhân viên báo cáo kết thực cho người tổ trưởng 2- Lược đồ quan hệ:(Relation Schema) Một lược đồ quan hệ biểu diễn đối tượng có chung thuộc tính Ví dụ: Loại đối tượng tồn khách quan: Sinh viên, giảng viên, đơn đặt hàng Loại đối tượng trưù tượng: Thời khóa biểu, công nợ khách hàng Một LĐQH gồm có: a) Một tên gọi Qui ước: Trong Lý thuyết, Dùng ký tự in hoa như: Q, R b) Một tập hợp hữu hạn thuộc tính A1, A2, ,An, ký hiệu:Q+ 10 III- Chuẩn hóa LĐCSDL PP Phân Rã: Khái Niệm Chuẩn Hóa: Xuất từ tập thuộc tính lược đồ quan hệ Q phân tích được, với tập pth FQ xác đònh Q thể qui tắc quản lý Q dạng chuẩn gọi quan hệ phổ quát Ta phân rã thành quan hệ {Q i} dựa tập pth FQ cho quan hệ đạt dạng chuẩn cao nhất, tối thiểu DC3, gọi trình chuẩn hoá Trong trình chuẩn hóa cần trọng đến tính chất sau: • Bảo toàn thông tin: Phân rả nhận phải bảo đảm tính kết không thông tin, nghiã là: + + + - Q1 ∪ Q = Q - • ∀TQ : TQ = TQ[Q1+] Bảo toàn PTH: - TQ[Q2+] ∪Qi+ = Q+ ∪FQi = FQ Đònh lý Delobel: (1973) Cho lđ quan hệ Q tập pth F Nếu f:XA ∈ F+ cho X∪A ⊂ Q+ {là thực Q+} phép phân rã Q thành lược đồ quan hệ con: • • bảo toàn thông tin Thuật toán phân rã: Ý tưởng: Dựa vào đònh lý Delobel, ta phân rã quan hệ Q thành quan hệ Q1 Q2 pth f thỏa điều kiện đònh lý Lặp lại phân rã Q1 Q2 không pth f Procedure PhanRa(Q, F); Input: Output: = { QI }nI=1 {tập lược đồ quan hệ phân rã} Begin b1 Loại bỏ pth có VT VP = Q+ khỏi F F* = F+ \ { f F+ : VT(f) VP(f) = Q+ } b2 Nếu F* = = { Q } kết thúc {Điểm dừng} ngược lại, thực phân rã b21 Chọn f:X Y F b22 Phân rã thành lđ con: h) - i) b23 Phân rã đệ qui Q1 Q2: PhanRa(Q1, F1); PhanRa(Q2, F2); end; Ví dụ: Xét LƯC ĐỒ QUAN HỆ Q(MsKH, TP, CTyVC, MsHH, SL) MsKH: Mã số Khách hàng TP: Thành phố nhà cung cấp CtyVC: 41 công ty vận chuyển hàng MsHH: mã hàng hóa SL: số lượng F = { f1: MsKH TP; f2: MsKH CTyVC; f3: MsKH, MsHH SL; f4: TP CtyVC} j) Khóa là: {MsKH, MsHH} k) Đạt dạng chuẩn 1không đạt dạng chuẩn vì: CtyVC không ptđđ vào khóa Sử dụng PP phân rã để nâng cấp lược đồ quan hệ Q: Q(MsKH, TP, CTyVC, MsHH, SL) f4 Q1(TP, CtyVC) Q2(MsKH, TP, MsHH, SL) F1 = {f4} F2 = {f1:MsKH TP; f2: MsKH, MsHH SL} f1 Q21(MsKH, TP) Q22(MsKH, MsHH, SL) F21 = {f1} F22 = {f3: MsKH, MsHH SL} Kết quả: C = { ; ; } lđcsdl dạt dạng chuẩn BCK, bảo toàn thông tin, bảo toàn pth; Nhận xét: l) Thuật toán phân rã bảo toàn thông tin theo đinh lý delobel m) Tất quan hệ kết đạt dạng chuẩn BCK n) Tùy theo thứ tự pth xét, trình phân rã, mà kết số lượng quan hệ khác Hậu quả: o) Thuật toán dẫn đến lđcsdl không bảo toàn phụ thuộc hàm p) Có thể chứa quan hệ mà ngữ nghóa ích cho ứng dụng Thông thường pth chọn ưu tiên pth không chứa khóa, pth gây chất lượng xấu lược đồ quan hệ (như pth không đầy đủ pth bắc cầu vào khóa) Ví dụ: Nếu thứ tự chọn pth là: f3 f4 f1 cho lđcsdl sau: Kết quả: C = { ; ; } T MSCD CD MSSV HG Vận dụng f2 cho dòng Q1 Q3 ta nhận Q1 a1 a2 b1 b2 Q2 a1 b3 b4 a4 Q3 b5 (a1) a2 a3 a4 Ví dụ: Xét phân rã: C = {Q1(CD, MSSV); Q2(CD,MSCD); Q3(MSSV,HG)} T MSCD CD MSSV HG T MSCD CD MSSV HG Q1 b1 a2 a3 b2 Q1 a1 a2 a3 b2 Q2 a1 a2 b3 b4 Q2 a1 a2 b3 b4 Q3 b5 b6 a3 a4 Q3 b5 b6 a3 a4 Vận dụng f2 cho dòng Q1 Q2 thay b1 a1 Và không vận dụng pth khác Do dòng chứa toàn aI nên C không BTTT Bài tập: Cho Q(ABCD) F = { AC; DC; BDA} Xét phân rã Q1(AB); Q2(ACD); Q3(BCD) 1) Tìm khóa Q 43 2) Tìm phụ thuộc hàm chiếu quan hệ, suy khóa quan hệ 3) Lược đồ dạng chuẩn mấy? 4) CM lượt đồ phân rã không bảo toàn thông tin Phương pháp Chứng minh Phân rã bảo toàn PTH: a) Giả sử C' = { } phân rã C= Ta nói phân rã C' bảo toàn phụ thuộc hàm thỏa điều kiện sau: (i) Q+I = Q+ (không sót thuộc tính) (ii) ( FI )+ = F+ (bảo toàn PTH) Nhận xét: để CM ( FI )+ = F+ ta đặt F' = ( FI ) CM: f' (F' \ F ) f' F+ f ( F \ F' ) f F'+ Bài tập NV(Msnv, HoTen, MsPB); PB(MsPB, TenPB); VB(MsVB, TenVB); VBNV(MsNV, MsVB, CN, Nam, NoiCap) Hiện danh sách nhân viên có "Cử nhân" chuyên ngành "Tin Học" cấp trước 1990 Hiện danh sách văn nhân viên "Nguyễn Anh Tuấn" Hiện danh sách nhân viên có văn "Cử nhân" sớm Select NV.* From NV, VBNV, VB Where NV.MsNV = VBNV.MsNV And VBNV.MsVB = VB.MSVB And VBNV.TenVB = "Cử Nhân" And VBNV.Nam In (Select Min(Nam) From VBNV) Bài 3: Phụ thuộc hàm đa trò Ngoài pth trình bày, người ta xét đến loại phụ thuộc hàm khác, pth đa trò Ví dụ: Xét lược đồ quan hệ LICHTHI(Ngay, Giờ, Phong, Mon) F = {Ngay,Gio,Phong Mon} Nếu có qui đònh: Một môn thi xếp nhiều phòng không phụ thuộc ngày, Khi đó, xuất loại phụ thuộc đa trò Mon phòng: Mon >>Phong Đònh nghóa Phụ thuộc đa trò: Cho LƯC ĐỒ QUAN HỆ Q(X,Y,Z) với XQ+,YQ+, X∩Y= Z = Q+ \ {X,Y} Ký hiệu X >> Y Phụ thuộc hàm đa trò đònh nghóa Q giá trò x X xác đònh tập giá trò {y1, y2,…} Y, tập giá trò không phụ thuộc vào giá trò Z có liên quan đến x, y1, y2,… Nghóa là: Với giá trò (x, z)∈ Q[X,Z] Q[X,Y] = (Q: X = x Z = z) Ví dụ: N 2 2 G 10 10 P 201 202 201 203 M CSDL ĐH ĐH CSDL X= {M} CSDL ĐH Y={P} {201,203} {202; 201} Z={N,G} {(2,8)} {(2,10)} 44 Bảng liệu thỏa mản đònh nghiã Nhưng thêm 203 CSDL CSDL {201,203} {(2,8);(3,8)} không thỏa mãn đònh nghiã Để thỏa mãn đònh nghóa cần phải bổ sung thêm 201 CSDL CSDL {201,203} {(2,8);(3,8)} Điều nói lên, dù thời điểm môn thi CSDL thi phòng {201,203} Ví dụ: GiangDay(MônHọc, Sách, GiảngViên) Với qui tắc: Mỗi môn học phải học giáo trình (gồm nhiều sách) không phụ thuộc vào Giảng viên giảng dạy: MH >> Sách Cụ thể: 'CSDL' ->> {S1, S2} q1 q2 q3 q4 CSDL CSDL CSDL CSDL S1 S2 S1 S2 Thủy Hoa Hoa Thủy Phụ thuộc hiển nhiên: Phụ thuộc hàm đa trò X >> Y Phụ thuộc hàm đa trò hiển nhiên Q X∪Y = Q+ (nghóa Z = ∅) Ví dụ: Trong quan hệ PhânCông(NV, ĐềÁn) Với qui tắc Mỗi nhân viên phụ trách nhiều đề án Suy ra, ta có phụ thuộc đa trò hiển nhiên: NV >> ĐềÁn ĐềÁn >> NV Nhận xét: Nếu X >> Y phụ thuộc đa trò Q[X,Y] Q[X,Z] = Q Cách Kiểm tra PT đa tri: Biến pt đa trò cấu trúc thành pt đa trò hiển nhiên cấu trúc khác Ví dụ: Từ Q(X,Y,Z) ta tạo cấu trúc: C = { Q1(X,Y); Q2(X,Z) } Nếu Q1 Q2 = Q X >> Y pt đa trò Nhận xét: Cố gắng hạn chế cho xuất phụ thuộc đa trò Nếu có xuất nên Hệ Luật dẫn PTH đa trò: a) Một số hệ luật dẫn bản: Cho lược đồ quan hệ Q X, Y, W, Z Q+ LD1: Luật bù: X >> Y X >> (Q+ - X - Y) Ví dụ: Từ M >> P suy M >> N, G LD2: Luật thêm vào: Nếu X >>Y Z ⊆ W X,W >> Y,Z LD3: Luật bắc cầu: Nếu X >> Y Y >> Z X >> (Z-Y) LD4: Nếu X Y X >> Y LD5: Nếu X >> Y W Z , với Z ⊆ Y; W ∩ Y = ∅ X Z Chú ý: Ba luật dẫn hệ tiên đề Amstrong luật dẫn tạo nên hệ luật dẫn đầy đủ để phát sinh luật dẫn khác Dạng chuẩn 4: Q đạt dạng chuẩn nếu: s) Q dạng chuẩn BCK 45 t) phụ thuộc đa trò không hiển nhiên X >>Y đònh nghóa Q vế trái X phải chứa khóa, nghóa AQ+, X A F+ Ví dụ: Xét cấu trúc TKBCoiThi phân rã thành quan hệ: C = { COITHI(GT, Ngay, Giờ, Phong) } có LICHTHI(Ngay, Giờ, Phong, Mon) F={ f3; d1:Mon >>Phong} Ta tách thành quan hệ: LT1(Mon, Phong) FLT1 = ∅ LT2(Ngay, Gio, Mon) FLT2 = ∅ Trong cấu trúc ta thêm thông tin ta không cần kiểm tra Tuy nhiên, pth N,G,P M phải đònh nghóa LT1 LT2 Vấn đề kiểm tra không thuận lợi 46 Chương 5: Tối Ưu Hóa Câu Hỏi HH(MSHH, TenHH, DVT, SoTon, ĐG) KH(MSKH, TenKH, DC, DT, Fax) DDH(SoDDH, NgayLap, MSKH) CTDDH(SoDDH, MSHH, SL, Dg, GiamGia) INguyên Tắc Tổng Quát Để Tối Ưu Hóa Câu Hỏi: Trong phần trước tìm hiểu cách thức tổ chức tốt liệu Phần nghiên cứu làm để truy vấn liệu nhanh Tương đương biểu thức: Hai biểu thức b1 b2 tương đương tình trạng CSDL, chúng cung cấp kết giống Ví dụ: Cho quan hệ Q1=DDH(MaHD,MaKH) Q2=CTDH(MaHD, MH) Câu hỏi: Cho danh sách MH mà khách hành MaKH = A mua Dùng NNĐSQH để trả lời cho câu hỏi ta xét cách sau: Cách 1: Q11= (Q1 Q2) Q12 = Q11:MaKH = "A" Q13 = Q12[MH] Cách 2: Q21 = Q1 : MaKH = "A" Q22 = Q21 Q2 Q23 = Q22[MH] Tuy cách cho kết thời giang thực cách không Thật vậy, Giả sử: u) Q1 Q2 chứa n1=n2 =10.000 v) Để giảm số lần đọc mẫu tin, Hệ QT thường đọc trang vào nhớ Giả sử, trang chứa p1= p2 = Số trang tối đa lưu trữ lúc nhớ m = 101 Chúng ta xét thời gian thực cách: VỚI CÁCH 1: Để thực phép kết: Q11=(Q1 Q2) cần phải: Đọc Q1 so sánh với Q2 xem có kết không Số lần đọc Q1 = n1 / p1 = 10000/5 = 2000 Sau đọc p1 mẫu tin Q1 vào trang đọc tiếp Q2 vào (m-1) trang lại: Số lần đọc Q2: (n2 / (p2 * (m-1)) * (số lần đọc Q1) = 20*2000= 40.000 Tổng số lần truy cập: 2000 + 40.000 = 42.000 lần Nếu tốc độ truy cập trang giây phép kết phải 35ph 1/2 VỚI CÁCH 2: Số lần truy cập Q21 = (Q1 : MaKH = "A") 2000 trang giả sử 100 Số lần truy cập Q2 : 20 * 100 = 2000 trang Tổng cộng 4000 trang phải ph 22 giây Với ví dụ, từ biểu thức cần xác đònh xem biểu thức tối ưu chưa, chưa tối ưu cần biết cách biến đổi để biểu thức tương đương tối ưu Nguyên Tắc Tổng Quát Để Tối Ưu Hóa Câu Hỏi: 47 Dựa theo ví dụ trên, để xây dựng biểu thức tối ưu cần ghi nhớ nguyên tắc sau: (1) Thực sớm tốt phép chọn chiếu để giới hạn khối lượng liệu cần phải xử lý (2) Trước thực phép kết hay tích Descartes chọn cách thích hợp tùy theo phương thức truy cập sẵn có Hệ QTCSDL như: Sắp xếp lại quan hệ hay xây dựng mục theo thành phần tham gia điều kiện kết (3) Trước thực phép chọn xem có sẳn mục thuộc tính liên quan đến điều kiện chọn hay không để tránh việc quét toàn quan hệ (4) Gom phép chọn phép chiếu quan hệ để thực lúc (5) Kết hợp phép chiếu với phép toán trước sau phép chiếu để giảm khối lượng lưu trữ quan hệ kết trung gian (6) Biến đổi phép tích Descartes thành phép kết Ví dụ: (((AB) x (CD)): B = C ∧ D = 99)[A] Biến đổi: (((AB) x ((CD):D = 99): B = C)[A] 'Theo nguyên tắc B=C II- ((AB) ((CD):D = 99))[A] 'Theo nguyên tắc Kỹ Thuật Tối Ưu Hóa Câu Hỏi Dựa Trên Ngôn Ngữ Đại Số: Các phép biến đổi tương đương: 1.1Tách phép chọn có biểu thức chọn giao nhiều điều kiện: Q : Đ1∧ Đ2 ∧ …∧ Đn ≡ (…((Q : Đ1) : Đ2)…) : Đn Ví dụ:Câu hỏi: Danh sách DDH khách hàng có mã số "GDN" lập năm 2000 DDH : MsKH="GDN" ∧ NgayLap >=#1/1/2000# ∧ NgayLap=#1/1/2000#): NgayLap100)[MsHH, TenHH] - p dụng 1.4 (iii): (((((DDH: MsKH="NMG") x CTDH):DDH.SODDH=CTDH.SODDH) x HH): CTDH.MSHH=HH.MSHH): CTDH.SL>100)[MsHH, TenHH] - p dụng 1.4 (i): (((((DDH: MsKH="NMG") x CTDH): DDH.SODDH=CTDH.SODDH ∧ CTDH.SL>100) x HH): CTDH.MSHH=HH.MSHH)[MsHH, TenHH] - p dụng 1.4 (iii): (((((DDH: MsKH="NMG") x (CTDH): SL>100): DDH.SODDH=CTDH.SODDH) x HH): CTDH.MSHH=HH.MSHH)[MsHH, TenHH] Bước 4: Không làm Bước 5: Nhóm tích chọn thành kết (((((DDH: MsKH="NMG") (CTDH): SL>100) HH))[MsHH,TenHH] Bài tập: Câu hỏi 1: Hiện danh sách điện thoại khách hàng (TenKH, DT) đặt hàng có mã 01 vào ngày 31/12/99 Biểu thức: ( (DDH KH) CTDDH): CTDDH.MSHH = "01" ∧ DDH.NgayLap=#31/12/99#) [TenKH, DT] Câu hỏi 2: Cho biết hàng mua DDH có mã số DDH 01 không đủ hàng để cung cấp (( HH CTDH DDH): SoDDH = "01" ∧ ctddh.SL >HH.soton) [TenHH,SoTon] Nhận xét: - Kỹ thuật tối ưu NNĐS tuân thủ quy tắc làm giảm thiểu khối lượng liệu cần phải xử lý, không quan tâm đến cách thức lưu trữ QH cách truy xuất liệu 50 III- Kỹ Thuật Tối Ưu Hóa Trên NN Mệnh Đề Bằng Cách Phân Rã Các Câu Hỏi: Nguyên tắc: Trong ngôn ngữ mệnh đề SQL, câu hỏi thường gặp câu hỏi kiểu giao có dạnh tổng quát: Select X1, X2,…, Xn From Q1 q1, Q2 q2, , Qn qn Where Đ1 And Đ2 And … And Đk; qI : biến nhận giá trò tương ứng số quan hệ Q i ĐI : biểu thức luận lý có dạng: qs.Asi = a qs.Asi θ qr.A ri Nguyên tắc tối ưu hóa ngôn ngữ thay câu hỏi phức tạp chuỗi câu hỏi đơn giản Để thực phân rã người ta dựa vào đồ thò biểu diễn điều kiện mệnh đề Where Đồ thò liên thông câu hỏi: Từ câu hỏi có dạng ta biểu diễn dạng đồ thò với quy tắc biểu diễn nút cạnh sau: a Nút: Có loại nút: - Nút biến: ứng với biến có câu hỏi - Nút Hằng: Ứng với có điều kiện b Cạnh: nối nút, biểu diễn điều kiện sơ cấp phát biểu biến biến Ví dụ: Danh sách khách hàng gồm: TênKH, DC, mua mặt hàng "Gạo" với số lượng mua >100 đvt Select q3.TenKH, q3.DC From DDH q1, CTDH q2; HH q3, KH q4 Where q1.Makh=q4.MaKH And q1.SODDH=q2.SODDH And q2.MSHH=q3.MSHH And q3.TenHH="Gạo" And q2.SL>100; q4 q4.Makh=q1.MaKH q1 q1.SODDH=q2.SODDH q2 q2.MSHH=q3.MSHH q2.SL>100 q3 q3.TenHH="Gạo" 100 NMG Giải thuật Phân rã đồ thò: Giải thuật: Phân rã câu hỏi thành câu hỏi không phân rã Input: Câu hỏi C OutPut: Các câu hỏi phân rã Bước 1: Xây dựng đồ thò cho câu hỏi C Bước 2: Loại bỏ nút hằng: - Với nút liên kết với nút biến, tiến hành phân rã với nút biến cách tạo câu hỏi chọn chiếu thuộc tính liên kết thuộc tính (nếu có) - Hủy nút vẽ nút biến với vòng tròn lồng 51 Bước 3: Tìm biến tách đồ thò thành đồ thò Nếu có, tạo thành câu hỏi tương ứng với phép tách Bước 4: p dụng bước cho câu hỏi tiếp tục câu hỏi không tách Ví dụ: Bước 2: Loại bỏ nút hằng: 100 "Gạo" PR1: q2.SL>100 q2 100 Gạo PR2: PR3: q4 q3.TenHH="Gạo" q4.Makh=q1.MaKH q3 q1 q1.SODDH=r1.SODDH r1 r2 r1.MSHH=r2.MSHH Và tạo câu hỏi chọn tương ứng: PR1: Select SoDDH, MsHH From CTDH q2 Where q2.SL>100; PR2: Select MsHH From HH q3 Where q3.TenHH="Gạo"; Bước 3: Chọn biến phân rã • Phân rã PR3 với biến phân rã q1: Tách đồ thò thành đồ thò con: PR4 PR5 PR4 PR5 q4 r4 q4.MaKH=q1.MaKH r4.SODDH=r1.SODDH q1 r1 r1.MSHH=r2.MSHH r2 PR4: Select q4.TenKH, q4.DC, q1.SoDDH From DDH q1, KH q4 Where q1.Makh=q4.MaKH; PR5: Select r4.TenKH, r4.DC From PR1 r1, PR2 r2, PR4 r4 Where r1.MaHH= r2.MaHH And q1.SODDH=r4.SODDH; • Phân rã PR5 với biến phân rã r1: Tách đồ thò thành đồ thò con: PR6 PR7 PR6 r4 PR7 r6 r4.SODDH=q2.SODDH r6.MSHH=r2.MSHH r1 r2 PR6: Select r4.TenKH, r4.DC, r1.MsHH From PR1 r1, PR4 r4 Where r1.SoDDH= r4.SoDDH; PR7: Select r6.TenKH, r6.DC From PR6 r6, PR2 r2 Where r6.MaHH=r2.MaHH ; 52 53 IV- Kỹ thuật lựa chọn tối ưu theo cách truy xuất: Với câu hỏi, xây dựng tất lời giải có để truy cập đến QH tham gia câu hỏi Với đường truy xuất, tính chi phí truy xuất dựa cách thức lưu trữ giữ lại cách truy xuất có chi phí tối thiểu Tối ưu hóa câu hỏi quan hệ: Các câu hỏi quan hệ thường yêu cầu chọn-chiếu Theo ngôn ngữ SQL thường có dạng: Select X1, X2,…, Xn From Q Where Đ; Điều kiện Đ chuyển thành dạng Đ1 ∧ Đ2 ∧ …∧ Đk; Trong đó, Mỗi ĐI phép so sánh đơn (X ~ a X~ Y) tuyển phép so sánh đơn Chiến lược thực dựa vào xây dựng mục (Index) quan hệ tính chất nó: Chỉ mục chánh (Primary Key) hay phụ Xác đònh chi phí truy xuất: Nếu mục Q việc truy xuất có quét trang đoạn chứa R Nếu có mục I xây dựng dựa tập thuộc tính X Q + Khi đó, điều kiện chọn viết dạng: Q : Đ(I) ∧ Đ' Đ(I) công thức nhóm tất Đj có thành phần liên hệ với I Chi phí truy xuất CA = SốTrang + UC * SốBộ (NBBO) Ký hiệu: Card(Q: Đ) số quan hệ R thỏa mãn điều kiện Đ (NBBON) Card(Q:Đ) = S(Đ) x Card(Q) Trong đó: S(Đ) gọi yếu tố chọn, xác suất để Q thỏa điều kiện Đ • S(X=a) = 1/ Card(X) • S(X>a) = Card({x ∈ X | x > a}) / Card(X) Nếu biết Xmax Xmin Card({x ∈ X | x > a}) = (Xmax-a)/(Xmax-Xmin) • S(X=Y) = / Max(Card(X), Card(Y)) • S(Đ1 ∧ Đ2) = S(Đ1) x S(Đ2) Nếu X thuộc kiểu số Đ có dạng (a