3 SỞ LAO ĐỘNG THƢƠNG BINH VÀ XÃ HỘI TRƢỜNG CAO ĐẲNG NGHỀ HÀ NAM GIÁO TRÌNH MÔN HỌC CƠ SỞ DỮ LIỆU NGHỀ CNTT (ỨNG DỤNG PHẦN MỀM) TRÌNH ĐỘ TRUNG CẤP (Ban hành kèm theo Quyết định số 234QĐ CĐNHN ngày 05.giáo trình học tập, tài liệu cao đẳng đại học, luận văn tiến sỹ, thạc sỹ
SỞ LAO ĐỘNG THƢƠNG BINH VÀ XÃ HỘI TRƢỜNG CAO ĐẲNG NGHỀ HÀ NAM GIÁO TRÌNH MƠN HỌC: CƠ SỞ DỮ LIỆU NGHỀ: CNTT (ỨNG DỤNG PHẦN MỀM) TRÌNH ĐỘ: TRUNG CẤP (Ban hành kèm theo Quyết định số: 234/QĐ-CĐNHN ngày 05 tháng 08 năm 2020 Hiệu trưởng trường Cao đẳng Nghề Hà Nam) Hà Nam, năm 2020 TUYÊN BÓ BẢN QUYỀN: Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin đƣợc phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm MÃ TÀI LIỆU : MHCSDLMH10 LỜI GIỚI THIỆU Cơ sở liệu môn học sở chuyên ngành quan trọng chuyên ngành Công nghệ thông tin Mục đích giáo trình Cơ sở liệu nhằm chuẩn hóa tài liệu học tập cho sinh viên hệ cao đẳng nghề chuyên ngành CNTT, đồng thời tài liệu tham khảo chuyên ngành khác lĩnh vực Tin học Giáo trình giúp học viên tiếp cận vấn đề cốt lõi mặt lý thuyết: định nghĩa, khái niệm, hệ quả, định lý, giải thuật, từđó áp dụng vào tốn thực tế thiết kế chuẩn hóa sở liệu nói riêng nhƣ thiết kế hệ thống thơng tin nói chung Giáo trình khơng sâu vào việc chứng minh định lý mà trọng đến việc giải thích ý nghĩa thực tế cơng thức lý thuyết để từ hƣớng dẫn học viên cách tiếp cận tƣ logic, nắm vững kỹ thuật tính tốn nhƣ bƣớc triển khai giải tốn thực tế khía cạnh cơng nghệ Nội dung giáo trình đƣợc chia làm chƣơng: Chƣơng 1: Giới thiệu khái niệm mơ hình sở liệu Tìm hiểu mơ hình thực thể kết hợp Chƣơng II: Giới thiệu mơ hình liệu quan hệ, quy tắc chuyển đổi từ mơ hình ER sang mơ hình liệu quan hệ Ngồi chƣơng cịn trình bày quy tắc, phép tốn ngơn ngữ đại số quan hệ Chƣơng III: Trình bày ngơn ngữ truy vấn liệu quan hệ (SQL), chủ yếu câu lệnh truy vấn Select mệnh đề kết hợp với câu lệnh Chƣơng IV: Khái lƣợc ràng buộc toàn vẹn Chƣơng V: Đi sâu vào số khái niệm nhƣ: phụ thuộc hàm, khóa, bao đóng, dạng chuẩn, Tìm hiểu giới thiệu số thuật tốn liên quan đến tìm khóa hay cách xác định dạng chuẩn cho lƣợc đồ quan hệ Đây chƣơng đóng vai trò quan trọng việc tƣ logic, giúp q trình thiết kế chuẩn hóa sở liệu đƣợc rõ ràng xác Ngồi ra, giáo trình cịn trình bày thêm vấn đề thiết kế sở liệu kỹ thuật phân rã theo chuẩn chuẩn BC Sau chƣơng có tập hƣớng dẫn tập tự làm Hy vọng sách tài liệu tham khảo hữu ích cho đồng nghiệp giảng dạy, nghiên cứu lĩnh vực có liên quan Rất mong nhận đƣợc nhiều ý kiến đóng góp, trao đổi bạn đọc Xin chân thành cảm ơn! Hà Nam, ngày … tháng … năm 2020 “Ký ghi rõ họ tên” Biên soạn: Bùi Thị Thu Hằng MỤC LỤC LỜI GIỚI THIỆU CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 11 Một số khái niệm 11 1.1 Định nghĩa sở liệu 11 1.2 Ƣu điểm sở liệu 11 1.3 Những vấn đề mà CSDL cần phải giải 12 1.4 Các đối tƣợng sử dụng CSDL 12 1.5 Hệ quản trị CSDL 12 1.6 Các ứng dụng CSDL 13 Các mơ hình liệu 13 Mô hình thực thể kết hợp 14 3.1 Thực thể 14 3.2 Thuộc tính 14 3.3 Loại thực thể 14 3.4 Khoá 15 3.5 Mối kết hợp 16 BÀI TẬP THỰC HÀNH 17 Chƣơng 2: MÔ HÌNH DỮ LIỆU QUAN HỆ 21 1.1 Các khái niệm 21 Thuộc tính 21 1.2 Lƣợc đồ quan hệ 22 1.3 Quan hệ 22 1.4 Bộ 22 Chuyển mơ hình thực thể kết hợp sang mơ hình liệu quan hệ ………………………………………………………………………………………… ………………………………………………… 23 Ngôn ngữ đại số quan hệ 24 3.1 Phép hợp quan hệ 24 3.2 Phép giao quan hệ 25 3.3 Phép trừ quan hệ 25 3.4 Tích Decac quan hệ 25 3.5 Phép chia quan hệ 26 3.6 Phép chiếu 27 3.7 Phép chọn 27 3.8 Phép θ - kết 28 3.9 Phép kết tự nhiên 29 BÀI TẬP THỰC HÀNH 30 Chƣơng 3: NGÔN NGỮ TRUY VẤN DỮ LIỆU 32 Mở đầu 32 Tìm thơng tin từ cột bảng - Mệnh đề Select 35 Chọn dòng bảng - Mệnh đề Where 36 Sắp xếp dòng bảng - Mệnh đề Order by 38 Câu lệnh truy vấn lồng 39 Gom nhóm liệu - mệnh đề Group by 43 BÀI TẬP THỰC HÀNH 44 Chƣơng 4: RÀNG BUỘC TOÀN VẸN 49 Ràng buộc toàn vẹn 49 1.1 Khái niệm ràng buộc toàn vẹn 49 1.2 Các yếu tố ràng buộc toàn vẹn 49 Phân loại ràng buộc toàn vẹn 51 2.1 Ràng buộc tồn vẹn có bối cảnh quan hệ 52 2.2 Ràng buộc tồn vẹn có bối cảnh nhiều quan hệ 55 BÀI TẬP THỰC HÀNH 57 Chƣơng 5: LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU 58 Các vấn đề gặp phải tổ chức liệu 59 Các phụ thuộc hàm 59 2.1 Định nghĩa phụ thuộc hàm 59 2.2 Cách xác định phụ thuộc hàm cho lƣợc đồ quan hệ 60 2.3 Một số tính chất phụ thuộc hàm - hệ luật dẫn Armstrong 60 Bao đóng tập phụ thuộc hàm bao đóng tập thuộc tính 61 3.1 Bao đóng tập phụ thuộc hàm F 61 3.2 Bao đóng tập thuộc tính X 62 3.3 Bài toán thành viên 62 3.4 Thuật tốn tìm bao đóng tập thuộc tính 63 Khóa lƣợc đồ quan hệ - Một số thuật toán tìm khóa 64 4.1 Định nghĩa khóa quan hệ 64 4.2 Thuật tốn tìm khóa lƣợc đồ quan hệ Q 64 4.3 Thuật tốn tìm tất khóa lƣợc đồ quan hệ 65 Phủ tối thiếu 66 5.1 Tập phụ thuộc hàm tƣơng đƣơng 66 5.2 Phủ tối thiếu 67 5.3 Thuật tốn tìm phủ tối thiêu 68 Dạng chuẩn lƣợc đồ quan hệ 68 6.1 Một số khái niệm liên quan đến dạng chuẩn 68 6.2 Dạng chuẩn (First Normal Form) 69 6.3 Dạng chuẩn (Second Normal Form) 69 6.4 Dạng chuẩn (Third Normal Form) 70 6.5 Dạng chuẩn BC (Boyce codd Normal Form) 72 BÀI TẬP THỰC HÀNH 75 GIÁO TRÌNH MƠN HỌC Tên môn học: Cở sở liệu Mã số môn học: MH 10; Thời gian môn học: 60 giờ; (lý thuyết: 20 giờ; thực hành, thí nghiệm, thảo luận, tập: 37 giờ; kiểm tra: giờ) I Vị trí, tính chất mơn học - Vị trí : mơn học Cơ sở liệu đƣợc bố trí sau hoc xong mơn Tin học, lập trình bản, tốn ứng dụng - Tính chất : mơn học kỹ thuật sở, thuộc môn học, mô đun đào tạo sở II Mục tiêu môn học - Về kiến thức: + Hiểu đƣợc khái niệm, thuật ngữ sở liệu; + Sử dụng ngôn ngữ truy vấn liệu quan hệ thành thạo; + Biết đƣợc dạng chuẩn chuẩn hóa đƣợc toán sở liệu trƣớc cài đặt; - Về kỹ năng: + Thực đƣợc dạng chuẩn chuẩn hóa đƣợc tốn sở liệu trƣớc cài đặt; + Vận dụng đƣợc mơ hình liệu sở liệu quan hệ vào việc thiết kế sở liệu áp dụng cho toán cụ thể thực tế; - Về lực tự chủ trách nhiệm: + Có ý thức làm việc độc lập làm việc theo nhóm, giải cơng việc, vấn đề phức tạp đƣa toán truy vấn liệu; + Đánh giá chất lƣợng sản phẩm kết thực thành viên nhóm sau hồn thành tập + Có trách nhiệm việc ứng dụng kiến thức tảng môn học nhằm phục vụ cho môn học sở chuyên ngành III Nội dung môn học Nội dung tổng quát phân phối thời gian : Thời gian Số TT Tên chƣơng, mục Tổng số Lý thuyết Thực hành, thí nghiệm, thảo luận, tập Chƣơng 1: Tổng quan sở liệu Một số khái niệm Kiểm tra* (LT TH) Thời gian Số TT Tên chƣơng, mục Tổng số Lý thuyết Thực hành, thí nghiệm, thảo luận, tập Kiểm tra* (LT TH) 15 15 11 20 11 Các mơ hình liệu Mơ hình thực thể kết hợp Chƣơng 2: Mơ hình liệu quan hệ Các khái niệm Chuyển mơ hình thực thể kết hợp sang mơ hình liệu quan hệ Ngôn ngữ đại số quan hệ Chƣơng 3: Ngôn ngữ truy vấn liệu Mở đầu Tìm thơng tin từ cột – Mệnh đề Select Chọn dòng – Mệnh đề Where Sắp xếp dòng bảng – Mệnh đề Order by Câu lệnh truy vấn lồng Gom nhóm liệu – mệnh đề Group by Chƣơng 4: Ràng buộc toàn vẹn Ràng buộc toàn vẹn Phân loại ràng buộc toàn vẹn Chƣơng 5: Lý thuyết thiết kế sở liệu Các vấn đề gặp phải tổ chức liệu Các phụ thuộc hàm Bao đóng tập phụ thuộc hàm bao đóng tập thuộc tính Khóa lƣợc đồ quan hệ - Một 10 Thời gian Số TT Tên chƣơng, mục Tổng số Lý thuyết Thực hành, thí nghiệm, thảo luận, tập Kiểm tra* (LT TH) 60 20 37 số thuật tốn tìm khóa Phủ tối thiểu Dạng chuẩn lƣợc đồ quan hệ Cộng: CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Mã chƣơng: MHCSDL 10.01 Giới thiệu: Bài học giới thiệu khái qt mơ hình liệu bản, thuật ngữ, khái niệm liên quan sở liệu Thơng qua học ngƣời đọc hình dung đƣợc vấn đề cần tiếp cận, khai thác môn học sở liệu Mục tiêu: - Trình bày sơ lƣợc khái niệm sở liệu, mơ hình liệu - Trình bày chi tiết mơ hình thực thể kết hợp (ERD), phân tích liệu thiết kế đƣợc mơ hình thực thể kết hợp - Thực thao tác an tồn với máy tính Nội dung chính: Một số khái niệm Mục tiêu: Trình bày sơ lƣợc khái niệm sở liệu 1.1 Định nghĩa sở liệu Dữ liệu đƣợc lƣu trữ thiết bị lƣu trữ theo cấu trúc để phục vụ cho nhiều ngƣời dùng với nhiều mục đích khác gọi sở liệu 1.2 Ƣu điểm sở liệu - Giảm trùng lắp thông tin xuống mức thấp bảo đảm đƣợc tính qn toàn vẹn liệu - Đảm bảo liệu truy xuất theo nhiều cách khác - Khả chia sẻ thông tin cho nhiều ngƣời sử dụng 11 1.3 Những vấn đề mà CSDL cần phải giải - Tính chia sẻ liệu: liệu đƣợc chia sẻ nhiều ngƣời dùng hợp pháp - Tính giảm thiểu dƣ thừa liệu: Dữ liệu dùng chung cho nhiều phận đƣợc lƣu nơi theo cấu trúc thống - Tính tƣơng thích: Việc loại bỏ dƣ thừa kéo theo hệ tƣơng thích - Tính tồn vẹn liệu: Đảm bảo số ràng buộc tồn vẹn Khi ngƣời dùng chèn, xố, sửa ràng buộc phải đƣợc kiểm tra chặc chẽ - Tính bảo mật liệu: Đảm bảo an tồn liệu bảo mật thông tin quan trọng - Tính đồng liệu: Thơng thƣờng sở liệu đƣợc nhiều ngƣời dùng truy cập đồng thời Cần có chế bảo vệ chống khơng tƣơng thích - Tính độc lập liệu: Sự tách biệt cấu trúc mơ tả liệu khỏi chƣơng trình ứng dụng sử dụng liệu gọi độc lập liệu Điều cho phép phát triển tổ chức liệu mà khơng sửa đổi chƣơng trình ứng dụng 1.4 Các đối tƣợng sử dụng CSDL Đối tƣợng sử dụng ngƣời khai thác sở liệu thông qua hệ quản trị CSDL Có thể phân làm ba loại đối tƣợng: Ngƣời quản trị CSDL, ngƣời phát triển lập trình ứng dụng, ngƣời dùng cuối Ngƣời quản trị CSDL: Là ngƣời hàng ngày chịu trách nhiệm quản lí bảo trì CSDL nhƣ: + Sự xác, toàn vẹn bảo mật liệu ứng dụng CSDL + Lƣu trữ dự phòng phục hồi CSDL + Giữ liên lạc với ngƣời phát triển lập trình ứng dụng, ngƣời dùng cuối + Bảo đảm hoạt động hiệu CSDL hệ quản trị CSDL Ngƣời phát triển lập trình ứng dụng: ngƣời chuyên nghiệp lĩnh vực tin học có trách nhiệm thiết kế, tạo dựng bảo trì thơng tin cuối cho ngƣời dùng Ngƣời dùng cuối ngƣời không chuyên lĩnh vực tin học, họ chuyên gia lĩnh vực khác có trách nhiệm cụ thể cơng việc Họ khai thác CSDL thơng qua chƣơng trình (phần mềm ứng dụng) đƣợc xây dựng ngƣời phát triển ứng dụng hay công cụ truy vấn hệ quản trị CSDL 1.5 Hệ quản trị CSDL Để giải tốt vấn đề mà cách tổ chức CSDL đặt nhƣ nói trên, cần thiết phải có phần mềm chuyên dùng để khai thác chúng Những phần mềm đƣợc gọi hệ quản trị CSDL Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho nhà phân tích thiết kế CSDL nhƣ ngƣời khai thác CSDL Hiện thị trƣờng phần mềm có hệ quản trị CSDL hỗ trợ đƣợc nhiều tiện ích nhƣ: MS Access, Visual Foxpro, SQL Server, Oracle, 12 Loại AC D khỏi F Lặp bƣớc + Xét DA CE, có DA Í X+: X+ = X+ È CE = ACDE Loại DA CE khỏi F Lặp bƣớc + Xét D H, có D Í X+: X+ = X+ È H = ACDEH Loại D H khỏi F Lặp bƣớc Vì phụ thuộc hàm U^V cịn lại khơng thỏa điều kiện U Í X+ nên X+ = Temp Thuật tốn dừng Vậy X+ = {ACDEH} Khóa lƣợc đồ quan hệ - Một số thuật tốn tìm khóa Mục tiêu: Trình bày đƣợc định nghĩa khóa lƣợc đồ quan hệ giải thuật xác định khóa, xác định tập tất khóa lƣợc đồ quan hệ cho 4.1 Định nghĩa khóa quan hệ Cho quan hệ R(A1,A2,_,An) đƣợc xác định tập thuộc tính R+ tập phụ thuộc hàm F định nghĩa R, cho K Í R+ K khoá R thoả đồng thời hai điều kiện sau: K Í R + e F + (hay K+F = R+) (K thoả điều kiện đƣợc gọi siêu khố) Khơng tồn K' Ì K cho K'+ =R+ Tập Sì{A1, ,An} siêu khoá R S chứa khoá Một lƣợc đồ quan hệ có nhiều siêu khố, nhiều khố 4.2 Thuật tốn tìm khóa lƣợc đồ quan hệ Q K = Q+; While A e K if (K - A)+ = Q+ then K = K - A K cịn lại khố cần tìm Nếu muốn tìm khố khác (nếu có) lƣợc đồ quan hệ, ta thay đổi thứ tự loại bỏ phần tử K Ví dụ: Cho lƣợc đồ quan hệ R(ABC) tập phụ thuộc hàm F={ A B; A C; B A} Hãy tìm khóa R 64 Giải: K={A,B,C} Loại thuộc tính A, (K-A)+ = R+ nên K={B,C} thuộc tính B khơng loại đƣợc (K - B)+ R+ nên K={B,C} Loại thuộc tính C, (K-C)+ = R+ nên K={B} Vậy khóa R B 4.3 Thuật tốn tìm tất khóa lƣợc đồ quan hệ Một số khái niệm hỗ trợ cho thuật tốn tìm tất khóa sau đây: - Tập nguồn (TN): chứa tất thuộc tính xuất vế trái mà không xuất vế phải tập phụ thuộc hàm tập thuộc tính khơng tham gia vào tập phụ thuộc hàm F - Tập đích (TD): chứa tất thuộc tính xuất vế phải mà khơng xuất vế trái tập phụ thuộc hàm - Tập trung gian (TG): chứa tất thuộc tính tham gia vào vế tập phụ thuộc hàm Dữ liệu vào: Lƣợc đồ quan hệ R tập phụ thuộc hàm F Dữ liệu ra: Tất khóa K quan hệ Thuật tốn: Bước 0: Tìm tập thuộc tính nguồn (TN), tập thuộc tính trung gian (TG) Tìm tất tập tập trung gian gọi Xi (bằng phƣơng pháp duyệt nhị phân) if TG = then K = TN ; kết thúc Ngƣợc lại Qua bƣớc Bước Tìm tất tập TG: Xi S= f " Xi e TG if (TN È Xi)+ = R+ then S = S È {TN È Xi} {S tập siêu khố cần tìm} Bước 2: Tính TN È Xi 65 Bước 3: Tính (TN È Xi)+ Bước 4: Nếu X+ = R+ Xi siêu khố R Nếu tập TN È Xi có bao đóng R+ TN È Xi siêu khố Giả sử sau bƣớc có m siêu khoá: S = {SbS2, ,Sm} Bước : Xây dựng tập chứa tất khoá R từ tập S Xét Sj,Sj S (i j), Si Ì Sj ta loại Sj (i, j = m), kết cịn lại tập tất khố cần tìm Ví dụ: Cho lƣợc đồ quan hệ R(ABC) tập phụ thuộc hàm F={ A B; A C; B A} Hãy tìm tất khóa R Giải: Áp dụng thuật tìm tất khóa cho ta có: TN = {f} ;TG = {A, B} Gọi Xi tập tập trung gian Ta lập bảng nhƣ sau: Xi TN È X (TN È Xi)+ Siêu khóa Khóa - - A A ABC A A B B ABC B B AB AB ABC AB - Vậy lƣợc đồ quan hệ R có hai khóa K1 = {A}, K2 = {B} Phủ tối thiếu Mục tiêu: Trình bày giải thuật xác định phủ tối thiểu tập phụ thuộc hàm có sẵn, qua trình bày khái niệm cách xác định tập phụ thuộc hàm có vế phải thuộc tính, tập phụ thuộc hàm có vế trái khơng dƣ thừa tập phụ hàm đầy đủ 5.1 Tập phụ thuộc hàm tƣơng đƣơng Cho F G hai tập phụ thuộc hàm, ta nói F G tƣơng đƣơng (hay F phủ G G phủ F) ký hiệu F+ = G+ phụ thuộc hàm thuộc F thuộc G + phụ thuộc hàm thuộc G thuộc F + Ta nói F phủ G G+ Í F+ 66 Chẳng hạn cho lƣợc đồ quan hệ Q(ABCDEGH), hai tập phụ thuộc hàm F G (xác định Q) tƣơng đƣơng F = {B A; DA^ CE; D H; GH^ C; G={B^ A; DA^ CE; DA AH; AC DEH} AC^ D; DG C} D H; GH^ C; AC^ D ;BC AC; BC D; (Việc kiểm tra phụ thuộc hàm G có đƣợc suy diễn từ F ngƣợc lại xem nhƣ tập dành cho bạn đọc) 5.2 Phủ tối thiếu Ftt đƣợc gọi tập phụ thuộc hàm tối thiểu (hay phủ tối thiểu) F thỏa thời ba điều kiện sau: F tập phụ thuộc hàm có vế trái khơng dƣ thừa F tập phụ thuộc hàm có vế phải thuộc tính F tập phụ thuộc hàm khơng dƣ thừa 5.2.1 Phụ thuộc hàm có vế trái dƣ thừa: F tập phụ thuộc hàm lƣợc đồ quan hệ Q, Z tập thuộc tính, Z^-YEF Nói phụ thuộc hàm Z Y có vế trái dƣ thừa (phụ thuộc khơng đầy đủ) có AEZ cho: F = F-{Z Y}U{(Z-A) Y} Ngƣợc lại Z Y phụ hàm có vế trái khơng dƣ thừa hay Y phụ thuộc hàm đầy đủ vào Z (phụ thuộc hàm đầy đủ) Ta nói F tập phụ thuộc hàm có vế trái khơng dƣ thừa F khơng chứa phụ thuộc hàm có vế trái dƣ thừa Thuật toán loại khỏi F phụ thuộc hàm có vế trái dư thừa: Bƣớc 1: - Xét lần lƣợt phụ thuộc hàm X^Y F Bƣớc 2: - Với tập thực X‘# X - Nếu X'^Ye F+ thay X^Y F X'^Y - Lặp lại bƣớc 5.2.2 Tập phụ thuộc hàm có vế phải thuộc tính: Mỗi tập phụ thuộc hàm F tƣơng đƣơng với tập phụ thuộc hàm G mà vế phải phụ thuộc hàm G gồm thuộc tính G đƣợc gọi tập phụ thuộc hàm có vế phải thuộc tính Ví dụ: 67 F = {A BC,B C,AB D} ta suy F = {A B, A C ,B C,AB D} = G 5.2.3 Tập phụ thuộc hàm khơng dƣ thừa: Nói F tập phụ thuộc hàm không dƣ thừa không tồn F‘c F cho F‘= F Ngƣợc lại F tập phụ thuộc hàm dƣ thừa Thuật toán loại khỏi F phụ thuộc hàm dư thừa: Bƣớc 1: - Lần lƣợc xét phụ thuộc hàm X Y F Bƣớc 2: - Nếu X Y thành viên F - {X Y} loại X Bƣớc 3: - Lặp lại bƣớc cho phụ thuộc hàm F Y khỏi F 5.3 Thuật tốn tìm phủ tối thiêu Từ điều kiện xác định phủ tối thiểu, ta có thuật tốn tìm phủ tối thiểu nhƣ sau: Thuật toán: Bƣớc 1: - Loại khỏi F phụ thuộc hàm có vế trái dƣ thừa Bƣớc 2: - Tách phụ thuộc hàm có vế phải thuộc tính thành phụ thuộc hàm có vế phải thuộc tính Bƣớc 3: - Loại khỏi F phụ thuộc hàm dƣ thừa Chú ý: Theo thuật tốn trên, tìm đƣợc nhiều phủ tối thiểu Ftt để F=Ftt thứ tự loại phụ thuộc hàm khác thu đƣợc phủ tối thiểu khác Ví dụ: cho R(MSCD,MSSV,CD,HG) tập phụ thuộc hàm F: F = {MSCD CD; CD MSCD; CD,MSSV HG; MSCD,HG MSSV; CD,HG MSSV; MSCD,MSSV HG} Hãy tìm Ftt F? Kết ta có đƣợc phủ tối thiểu sau: Ftt = {MSCD CD; CD MSCD; CD,HG MSSV; MSCD,MSSV HG} Dạng chuẩn lƣợc đồ quan hệ Mục tiêu: Trình bày đƣợc định nghĩa liên quan đến dạng chuẩn lƣợc đồ quan hệ, cách kiểm tra dạng chuẩn cao lƣợc đồ quan hệ 6.1 Một số khái niệm liên quan đến dạng chuẩn Thuộc tính khóa/thuộc tính khơng khóa: A thuộc tính khóa A có tham gia vào khóa quan hệ Ngƣợc lại A gọi thuộc tính khơng khóa 68 Thuộc tính phụ thuộc đầy đủ/ Phụ thuộc hàm đầy đủ: A thuộc tính phụ thuộc đầy đủ vào tập thuộc tính X X A phụ thuộc hàm đầy đủ (tức không tồn X' Í X cho X A e F+) Chú ý phụ thuộc hàm mà vế trái có thuộc tính phụ thuộc hàm đầy đủ 6.2 Dạng chuẩn (First Normal Form) Định nghĩa: Lƣợc đồ quan hệ R đạt dạng chuẩn (1NF) toàn MASV HOVATEN KHOA TENMONHOC DIEMTHI 01234 Nguyễn Văn An CNTT Cơ sở liệu 01234 Nguyễn Văn An CNTT Toán rời rạc 01234 Nguyễn Văn An CNTT Lập trình web 02345 Lê Văn Thịnh CNTT Cơ sở liệu Chú ý xét dạng chuẩn, nêu không xét thêm mặc định quan hệ thuộc tính R mang giá trị đơn Ví dụ: Xét quan hệ KETQUA sau: MASV HOVATEN 01234 02345 Nguyễn Văn An Lê Văn Thịnh KHOA CNTT CNTT TENMONHOC DIEMTHI Cơ sở liệu Toán rời rạc Lập trình web Cơ sở liệu Quan hệ khơng đạt chuẩn 1N F thuộc tính TENMONHOC, DIEMTHI thứ khơng mang giá trị đơn Ta đƣa quan hệ quan hệ KETQUA1 đạt chuẩn nhƣ sau: xét đạt dạng chuẩn 6.3 Dạng chuẩn (Second Normal Form) Định nghĩa: Một lƣợc đồ quan hệ R dạng chuẩn (2NF) nêu R đạt dạng chuẩn thuộc tính khơng khóa R phụ thuộc đầy đủ vào khóa Hệ quả: Nêu R đạt dạng chuẩn tập thuộc tính khơng khóa R băng rỗng R đạt chuẩn 69 Nêu tất khóa quan hệ gồm thuộc tính quan hệ đạt chuẩn Thuật toán kiểm tra dạng chuẩn 2: Vào: lược đồ quan hệ R, tập phụ thuộc hàm F Ra: Khẳng định R đạt không đạt chuẩn Bƣớc 1: Tìm tất khóa R Bƣớc 2: Với khóa K, tìm bao đóng tất tập thực K Bƣớc 3: Nêu có bao đóng S+ chứa thuộc tính khơng khóa R khơng đạt chuẩn Ngƣợc lại đạt chuẩn Ví dụ: Cho lƣợc đồ quan hệ R(ABCD) BC—A} tập phụ thuộc hàmF=={AB ——C; B—D; Hỏi R có đạt chuẩn hay khơng? Giải: - Tìm tất khóa R: TN È Xi (TN È Xi)+ Siêu khóa Khóa B BD - - A BA BACD BA BA C BC BCAD BC BC AC BAC BACD BAC - Xi Tất khóa R K1 = {BA}, K2 = {BC} Gọi Z tập thuộc tính khóa, TN = {B}, TG = {AC} X tập thuộc tính khơng khóa, ta có: Z = K1 È K2 = {BAC} X = R+ \ Z = {ABCD} \ {BAC} = {D} Ta thấy BcK| B—D, mà D thuộc tính khơng khóa Vì thuộc tính khơng khóa D khơng phụ thuộc đầy đủ vào khóa nên R khơng đạt chuẩn 6.4 Dạng chuẩn (Third Normal Form) Định nghĩa: Một lƣợc đồ quan hệ R đạt chuẩn (3NF) phụ thuộc hàm X—A E F+ với A Ế X có 70 - Hoặc X siêu khóa - Hoặc A thuộc tính khóa Hệ quả: Nếu R đạt chuẩn R đạt chuẩn 2 Nếu R khơng có thuộc tính khơng khóa R đạt chuẩn Định lý: R lƣợc đồ quan hệ F tập phụ thuộc hàm có vế phải thuộc tính R đạt chuẩn phụ thuộc hàm X—A E F+ với A Ế X có - Hoặc X siêu khóa - Hoặc A thuộc tính khóa (Việc chứng minh định lý xem nhƣ tập nâng cao) Thuật toán kiểm tra dạng chuẩn 3: Vào: lược đồ quan hệ R, tập phụ thuộc hàm F Ra: Khẳng định R đạt không đạt chuẩn Bƣớc 1: Tìm tất khóa R Bƣớc 2: Từ F tạo tập phụ thuộc hàm tƣơng đƣơng Ftt có vế phải thuộc tính Bƣớc 3: Nếu phụ thuộc hàm A E Ftt với A Ế X có X siêu khóa A thuộc tính khóa R đạt chuẩn Ngƣợc lại R khơng đạt chuẩn Ví dụ: Cho lƣợc đồ quan hệ R(ABCD), F = {AB^C; D^B; C^ABD} Hỏi R có đạt chuẩn hay khơng? Giải: - Tìm tất khóa R: TN={0} TG={ABCD} TN È Xi Xi (TN È Xi)+ Siêu khóa Khóa - - A A A - - B B B - - C C CABD C C 71 ABD ABD ABDC ABD - ACD ACD ACDB ACD - BCD BCD BCDA BCD - ABCD ABCD ABCD ABCD - Tất khóa R K1 = {C}, K2 = {AB}, K3 = {AD} Gọi Z tập thuộc D D DB AB AB ABCD AB AB AC AC ACBD AC - AD AD ADBC AD AD BC BC BCAD BC - BD BD BD - - CD CD CDAB CD - ABC ABC ABCD ABC tính khóa, X tập thuộc tính khơng khóa, ta có: Z = K1 È K2 È K3 = {CABD} - X = R+ \ Z = {ABCD} \ { CABD } = { f } Vì tập thuộc tính khơng khóa X = { f } nên R đạt chuẩn (theo hệ 2) 6.5 Dạng chuẩn BC (Boyce codd Normal Form) Định nghĩa: Một lƣợc đồ quan hệ R đạt dạng chuẩn BC phụ thuộc hàm X^A e F+ với AẾX có X siêu khóa Hệ quả: Nếu R đạt chuẩn BC R đạt chuẩn (hiển nhiên định nghĩa) Mỗi lƣợc đồ có hai thuộc tính đạt chẩn BC (xét phụ thuộc hàm có R) Định lý: R lƣợc đồ quan hệ F tập phụ thuộc hàm có vế phải thuộc tính R đạt chuẩn BC phụ thuộc hàm X^A E F+ với AẾX có X siêu khóa (Việc chứng minh định lý xem nhƣ tập nâng cao) 72 Thuật toán kiểm tra dạng chuẩn BC: Vào: lược đồ quan hệ R, tập phụ thuộc hàm F Ra: Khẳng định R đạt không đạt chuẩn BC Bƣớc 1: Tìm tất khóa R Bƣớc 2: Từ F tạo tập phụ thuộc hàm tƣơng đƣơng Ftt có vế phải thuộc tính Bƣớc 3: Nếu phụ thuộc hàm X^A E Ftt với A Ế X có X siêu khóa R đạt chuẩn BC Ngƣợc lại R khơng đạt chuẩn BC Ví dụ: Cho lƣợc đồ quan hệ R(ABCDEI), F = {ACD^EBI; CE^AD} Hỏi R có đạt chuẩn BC hay khơng? Giải: - Tìm tất khóa R: TN={C} TG={ADE} TN È Xi Xi (TN È Xi)+ Siêu khóa Khóa C C - - A CA CA - - D CD CD - - E CE CEADBI CE CE AD CAD CADEBI CAD CAD AE CAE CAEDBI CAE - DE CDE CDEABI CDE - ADE CADE CADEBI CADE - Tất khóa R ' K1 = {CE}, K2 = {CAD} Gọi Z khóa, X tập thuộc tính khơng khóa, ta có: tập thuộc tính Z = K1 È K2 = {CEAD} X = R+ \ Z = { ABCDEI } \ { CEAD } = {BI} - Tìm Ftt có vế phải thuộc tính Ftt = { ACD^E; ACD^B; ACD^I; CE^A; CE^D } Ta nhận thấy phụ thuộc hàm Ftt có vế trái siêu khóa nên R đạt chuẩn BC 73 Thuật toán kiểm tra dạng chuẩn lược đồ quan hệ Vào : lược đồ quan hệ R, tập phụ thuộc hàm F Ra : khẳng định R đạt chuẩn gì? Bƣớc 1: Tìm tất khóa R Bƣớc 2: Kiểm tra chuẩn BC, R đạt chuẩn BC, kết thúc thuật toán Ngƣợc lại qua bƣớc Bƣớc 3: Kiểm tra chuẩn 3, R đạt chuẩn 3, kết thúc thuật toán, ngƣợc lại qua bƣớc Bƣớc 4: Kiểm tra dạng chuẩn 2, R đạt chuẩn 2, kết thúc thuật toán, ngƣợc lại R đạt chuẩn Định nghĩa: Dạng chuẩn lƣợc đồ sở liệu dạng chuẩn thấp dạng chuẩn lƣợc đồ quan hệ 74 BÀI TẬP THỰC HÀNH Bài 1: Câu 1: Định nghĩa phụ thuộc hàm? Cách xác định phụ thuộc hàm? Nêu tính chất phụ thuộc hàm? Câu 2: Trình bày thuật tốn tìm bao đóng tập thuộc tính? Câu 3: Định nghĩa khóa lƣợc đồ quan hệ? Trình bày giải thuật tìm tất khóa lƣợc đồ quan hệ? Câu 4: Nêu định nghĩa dạng chuẩn lƣợc đồ quan hệ? Trình bày giải thuật kiểm tra dạng chuẩn? Bài 2: Cho lƣợc đồ quan hệ R(B,C,D,E,F,G,I,J) tập phụ thuộc hàm P = { I^B; Dl^G.I; D^C; Cl'^.1; B^I; C^G; 1'^.1 } Tìm tất khố lƣợc đồ quan hệ R Tìm phủ tối thiểu tập phụ thuộc hàm P Bài 3: Cho lƣợc đồ quan hệ S(A,B,C,D,E,F,G) tập phụ thuộc hàm P = {B^FG; F^CE; G^BD;B^A} Chứng tỏ phụ thuộc hàm AB^D đƣợc suy diễn từ P nhờ hệ luật dẫn Amstrong? (Nêu rõ áp dụng luật gì) Bài 4: Cho lƣợc đồ quan hệ Q(A,B,C,D,E) tập phụ thuộc hàm F = {A^BC; C^DE} - Lƣợc đồ quan hệ Q đạt dạng chuẩn nào? - Nếu chƣa đạt dạng chuẩn (3NF) phân rã Q thành lƣợc đồ quan hệ đạt tối thiểu dạng chuẩn bảo tồn thơng tin 75 BÀI TẬP THAM KHẢO: Bài a Cho lƣợc đồ quan hệ Q(ABCD), r quan hệ Q r A B c D a1 b1 C1 d1 a1 b2 c1 d1 a1 b3 c2 d1 a2 b2 C2 d2 phụ thuộc hàm sau không thoả r D A; AC D; CD ^A; D B; b Cho lƣợc đồ quan hệ Q(ABCD), r quan Q đƣợc cho nhƣ sau: A B c D a1 b1 C1 d2 a3 b1 C2 d1 a1 b1 C2 d2 Những phụ thuộc hàm sau thoả r ? AB D; C B; B C; BC A; BD A c Cho lƣợc đồ quan hệ Q(ABCD),r quan hệ đƣợc cho nhƣ sau: A B c D X u X y y X z X y y y y z w z Những phụ thuộc hàm sau không thoả r ? A ^B; A C; B A; C D; D C; D A Bài a Cho lƣợc đồ quan hệ Q(ABCD) tập phụ thuộc hàm F = {A Những phụ thuộc hàm sau thuộc F+ ? C D; A D; AD C; AC D; BC A; B CD b Cho lƣợc đồ quan hệ Q(ABCDEGH) tập phụ thuộc hàm F ={ AB C; B ^D; CD E; CE GH; G A} Những phụ thuộc hàm sau không thuộc vào F+ ? AB E; AB GH; CGH E; CB E; GB E 76 B; BC^D} c Cho lƣợc đồ quan hệ Q,F nhƣ sau: với Q(ABCD) F={A B; A C} Trong phụ thuộc hàm sau, phụ thuộc hàm đƣợc suy từ F ? A D; C D; AB B; BC A; A BC Bài Cho lƣợc đồ quan hệ Q(ABCD) tập phụ thuộc hàm F={ A D; D A; AB^C} a Tính AC+ b Chứng minh BD Bài a Q(ABCDEG) Cho F={AB C; C A; BC D; ACD B; D EG; BE C ; CG BD; CE AG} X=[BD], X+=? Y=[CG], Y+=? b Cho lƣợc đồ quan hệ Q tập phụ thuộc hàm F F={ AB E; AG I; BE I; E G ; GI H } Chứng minh AB GH c Tƣơng tự cho tập phụ thuộc hàm F = { AB C; B D; CD E; CE GH; G A} Chứng minh AB E; AB G d Q(ABCDEGH) F = {B ^A; DA^CE; D H; GI 1^ C; AC^D } Hãy tìm khố Q ? Bài Hãy tìm tất khố cho lƣợc đồ quan hệ sau: Q(BROKER,OFFICE,STOCK,QUANTITY,INVESTOR,DIVIDENT) F={STOCK^DIVIDENT, INVESTOR BROKER, INVESTOR, STOCK ^QUANTITY, BROKER OFFICE } Bài Cho Q(A,B,C,D), F={AB C; D B; C ABD} Hãy tìm tất khố Q Bài Cho lƣợc đồ quan hệ Q(MSCD,MSSV,CD,HG) tập phụ thuộc F nhƣ sau: F={MSCD^CD; CD^MSCD; CD,MSSV^HG; MSCD,'HG^MSSV; CD,HG^MSSV; MSCD,MSSV^HG} Hãy tìm phủ tối thiểu F Bài Xác định phủ tối thiểu tập phụ thuộc hàm sau: Q(ABCDEG) F = {AB C; C A; BC D; ACD B; D EG; BE C; CG BD; CE AG} Bài Các nhận xét sau (Đ) hay sai (S) ? (kẻ bảng sau ghi Đ S cho câu 77 trên) a b c d e f g H a Cho Q F={AB C; A ^B} Q đạt dạng chuẩn b Một lƣợc đồ quan hệ Q ln tìm đƣợc khố c Nếu XY ^Z X Z Y Z d Các thuộc tính khơng tham gia vào vế phải phụ thuộc hàm phải thuộc tính tham gia vào khố e Nếu X Y YZ W XZ W f Nếu Q đạt dạng chuẩn khoá Q có thuộc tính Q đạt dạng chuẩn ba g Một tập phụ thuộc hàm F có nhiều tập phủ tối thiểu h Nếu X Y U XU YV Bài 10 a Cho Q(ABCD) F = {AB ^C; D ^B; C ^ABD} Hãy kiểm tra xem AB D có thuộc F+ hay khơng ? Hãy tìm tất khố lƣợc đồ quan hệ Q Xác định dạng chuẩn Q b Cho Q(A,B,C,D) F={C ^A; A ^C; AD ^B; BC ^D; AB ^D;CD^B } Hãy tìm phủ tối thiểu F Bài 11 Cho biết dạng chuẩn lƣợc đồ quan hệ sau: a Q(ABCDEG); F=[A ^BC, C ^DE, E ^G] b Q(ABCDEGH); F=[C AB, D ^E, B ^G] c Q(ABCDEGH); F=[A BC D E, H d Q(ABCDEG); F=[AB G] C; C B; ABD E;G A] e Q(ABCDEGHI);F=[AC^B; BI^ACD; ABC^D; H^I; ACE^BCG, CG^AE] TÀI LIỆU THAM KHẢO [1] Lê Tiến Vƣơng, Nhập môn sở liệu quan hệ, Nhà xuất Giáo dục, 2000 [2] Vũ Đức Thi, Cơ sở liệu kiến thức thực hành, Nhà xuất thống kê 1997 [3] Nguyễn An Tế, Giáo trình nhập mơn sở liệu, ĐHKHTN- ĐHQGTPHCM 1996 [4] Đỗ Trung Tuấn, Cơ sở liệu, Nhà xuất giáo dục, 1998 78