1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Hệ quản trị Cơ sở dữ liệu: Phần 1 - Nguyễn Vũ Duy

49 19 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

Giáo trình Hệ quản trị Cơ sở dữ liệu: Phần 1 Nhập môn cơ sở dữ liệu quan hệ, cung cấp cho người học những kiến thức như: Tổng quan về cơ sở dữ liệu; Mô hình cơ sở dữ liệu quan hệ; Ngôn ngữ thao tác dữ liệu; Lý thuyết thiết kế cơ sở dữ liệu. Mời các bạn cùng tham khảo!

Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy PHẦN I – NHẬP MÔN CƠ SỞ DỮ LIỆU QUAN HỆ (Tổng số: 15 tiết, Lý thuyết: 15 tiết) CHƯƠNG – TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU (Tổng số: tiết, Lý thuyết: tiết)  NHỮNG KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU I SỰ CẦN THIẾT CỦA CƠ SỞ DỮ LIỆU Trong năm gần đây, thuật ngữ “Cơ sở liệu” (CSDL - Database) trở nên quen thuộc không riêng với người làm Tin học mà người làm nhiều lĩnh vực khác Thống kê, Kinh tế, Quản lý Doanh nghiệp v.v… Các ứng dụng Tin học vào công tác quản lý ngày nhiều đa dạng Có thể nói hầu hết lĩnh vực kinh tế, xã hội, giáo dục, y tế v.v… ứng dụng thành tựu Tin học vào phục vụ cơng tác chun mơn Chính lẽ mà ngày nhiều người quan tâm đến lĩnh vực thiết kế xây dựng CSDL Mục đích Chương đơn giản cung cấp khái niệm CSDL để học viên có nhìn ban đầu CSDL hệ quản trị CSDL Trước hết tìm hiểu lý cần phải có CSDL Hệ thống tập tin cổ điển (File System): Cho đến số đơn vị kinh tế, hành nghiệp v.v… sử dụng mơ hình hệ thống tập tin cổ điển: Chúng tổ chức riêng rẽ, phục vụ cho mục đích đơn vị hay đơn vị trực thuộc cụ thể Chẳng hạn, ta xét ví dụ sau: Ví dụ: Tại cơng ty người ta trang bị máy vi tính cho tất phịng, ban nghiệp vụ Bộ phận Văn phòng sử dụng máy vi tính để soạn thảo văn Microsoft Word thủ trưởng yêu cầu tình hình hoạt động đơn vị, có tiêu tổng số cơng nhân viên chức chia theo trình độ chun mơn đào tạo Phịng Kế tốn sử dụng máy vi tính để tính lương in danh sách lương phận đơn vị dựa danh sách cán viên chức hệ số lương hệ số phụ cấp họ phòng Tổ chức cung cấp Thơng tin mà phịng Kế tốn quản lý khai thác là: Họ Tên, Hệ số lương, Hệ số phụ cấp, Phụ cấp khác cơng nhân viên chức (CNVC) xếp theo phịng ban sử dụng cơng cụ văn phịng Microsoft Excel Phịng Tổ chức quản lý thơng tin lý lịch CNVC chi tiết gồm: Họ, Tên (để riêng thành cột “Tên” để tiện xếp Alphabet), Giới tính, Ngày sinh, Ngày tuyển dụng, Hồn cảnh gia đình, Q trình đào tạo, Hệ số lương, Hệ số phụ cấp, Ngày xếp lương trên… thiếu thông tin Phụ cấp khác CNVC Phần mềm sử dụng để quản lý FoxPro for Windows Trong đó, Tổng cơng ty họ, phịng ban nghiệp vụ trang bị máy vi tính Phịng Tổ chức cán Tổng công ty sử dụng phần mềm Microsoft Access để quản lý CNVC gồm cán chủ chốt từ trường phó phịng, quản đốc phó quản đốc xí nghiệp trở lên cơng ty trực thuộc Thông tin quản lý giống thơng tin quản lý phịng tổ chức công ty Nhận xét: Ưu điểm: - Việc xây dựng hệ thống tập tin riêng đơn vị quản lý tốn thời gian khối lượng thông tin cần quản lý khai thác nhỏ, khơng địi hỏi đầu tư vật chất chất xám nhiều, triển khai ứng dụng nhanh - Thông tin khai thác phục vụ cho mục đích hẹp nên khả đáp ứng nhanh chóng, kịp thời -1- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Nhược điểm: - Do thông tin tổ chức phòng ban khác, phần mềm công cụ để triển khai nơi khác nên phối hợp tổ chức khai thác phịng ban khó khăn Thơng tin phịng ban khơng sử dụng cho phòng ban khác, đơn vị với đơn vị cấp Cùng thông tin nhập vào máy nhiều nơi khác gây lãng phí công sức nhập tin không gian lưu trữ vật mang tin Sự trùng lắp thơng tin dẫn đến tình trạng khơng qn liệu Chẳng hạn, nhân viên Nguyễn Văn Quang ghi đầy đủ phịng Tổ chức, phịng Kế tốn ghi tắt Nguyễn V Quang - Thông tin tổ chức nhiều nơi nên việc cập nhật dễ làm tính quán liệu Một cán chủ chốt cơng ty có thay đổi hồn cảnh gia đình (mới cưới vợ / lấy chồng, sinh thêm con…) cập nhật đơn vị sau thời gian cập nhật Tổng công ty - Do hệ thống tổ chức thành hệ thống tập tin riêng lẻ nên thiếu chia sẻ thông tin nơi Việc kết nối hệ thống hay việc nâng cấp ứng dụng khó khăn Qua phân tích nhận thấy việc tổ chức liệu theo hệ thống tập tin có nhiều nhược điểm Việc xây dựng hệ thống tin đảm bảo tính chất qn liệu, khơng trùng lặp thông tin mà đáp ứng nhu cầu khai thác đồng thời tất phòng ban công ty tổng công ty thực cần thiết II NHỮNG KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU Khái niệm sở liệu Cơ sở liệu (CSDL) tập hợp có tổ chức (có cấu trúc) liệu có liên quan luận lý với nhau, lưu trữ thiết bị lưu trữ thông tin (băng từ, đĩa từ…) để thỏa mãn u cầu khai thác thơng tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác Ví dụ: Để quản lý hoạt động học tập trường Đại học, quản lý liệu thông tin sinh viên, mơn học, điểm thi… Do đó, tổ chức liệu thành bảng lưu giữ chúng vào sổ sách sử dụng phần mềm máy tính để lưu giữ chúng máy tính Ta có tập hợp liệu có liên quan đến mang nhiều ý nghĩa, CSDL Hình: CSDL quản lý sinh viên Trước hết, cần nhấn mạnh CSDL phải tập hợp thơng tin mang tính hệ thống khơng phải thơng tin rời rạc, khơng có mối quan hệ với Các thơng tin phải có cấu trúc tập hợp thơng tin phải có khả đáp ứng nhu cầu khai thác nhiều người sử dụng cách đồng thời Đó đặc trưng CSDL Các tính chất sở liệu Một CSDL biểu thị khía cạnh giới thực hoạt động công ty, nhà trường, ngân hàng… Những thay đổi giới thực phải phản ánh -2- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy cách trung thực vào CSDL Những thông tin đưa vào CSDL tạo thành không gian CSDL “thế giới nhỏ” Một CSDL tập hợp liệu liên kết với cách logic mang ý nghĩa cố hữu Một CSDL tập hợp tuỳ tiện Một CSDL thiết kế phổ biến cho mục đích riêng Nó có nhóm người sử dụng có chủ định có số ứng dụng xác định phù hợp với mối quan tâm người sử dụng Nói cách khác, CSDL có nguồn cung cấp liệu, mức độ tương tác với kiện giới thực nhóm người quan tâm tích cực đến nội dung Một CSDL có cỡ tuỳ ý có độ phức tạp thay đổi Có CSDL gồm vài trăm ghi (như CSDL phục vụ việc quản lý lương quan nhỏ), có CSDL có dung lượng lớn (như CSDL phục vụ cho việc tính cước điện thoại, quản lý nhân phạm vi tổng công ty lớn) Các CSDL phải tổ chức quản lý cho người sử dụng tìm kiếm liệu, cập nhật liệu lấy liệu cần thiết Một CSDL tạo trì cách thủ cơng Tin học hóa CSDL tài ngun thơng tin dùng chung cho nhiều người Bất kỳ người sử dụng mạng máy tính, thiết bị đầu cuối, nguyên tắc có quyền truy nhập khai thác toàn hay phần liệu theo chế độ trực tuyến hay tương tác mà không phụ thuộc vào vị trí địa lý người sử dụng với tài nguyên CSDL hệ ứng dụng khai thác ngôn ngữ liệu chương trình ứng dụng để xử lý, tìm kiếm, tra cứu, sửa đổi, bổ sung hay loại bỏ liệu Tìm kiếm tra cứu thơng tin chức qua trọng phổ biến dịch vụ CSDL Hệ quản trị CSDL (Database Management System - DBMS) phần mềm điều khiển hoạt động truy nhập CSDL Khi người sử dụng đưa yêu cầu truy nhập ngôn ngữ liệu đó, HQTCSDL tiếp nhận thực thao tác CSDL lưu trữ Ưu điểm sở liệu Tổ chức lưu trữ liệu theo lý thuyết CSDL có ưu điểm sau: - Giảm bớt dư thừa liệu lưu trữ: Trong ứng dụng lập trình truyền thống, phương pháp tổ chức lưu trữ liệu vừa tốn kém, lãng phí nhớ thiết bị lưu trữ, vừa dư thừa thơng tin lưu trữ Nhiều chương trình ứng dụng khác xử lý liệu nhau, dẫn đến dư thừa đáng kể liệu - Tổ chức lưu trữ liệu theo lý thuyết CSDL tránh không quán lưu trữ liệu bảo đảm tính tồn vẹn liệu: Nếu thuộc tính mô tả nhiều tệp liệu khác lặp lại nhiều lần thực việc cập nhật, sửa đổi, bổ sung liệu không sửa hết nội dung mục Nếu liệu nhiều sai sót cập nhật, bổ sung lớn Khả xuất mâu thuẫn, không quán thông tin nhiều, dẫn đến không quán liệu lưu trữ Tất yếu kéo theo dị thường thông tin, thừa, thiếu mâu thuẫn thông tin - Tổ chức lưu trữ liệu theo lý thuyết CSDL triển khai đồng thời nhiều ứng dụng CSDL Điều có nghĩa ứng dụng không chia sẻ chung tài nguyên liệu mà cịn CSDL triển khai đồng thời nhiều ứng dụng khác thiết bị đầu cuối khác - Tổ chức liệu theo lý thuyết CSDL thống tiêu chuẩn, thủ tục biện pháp bảo vệ, an toàn liệu Các hệ CSDL quản lý tập trung người hay nhóm người quản trị CSDL, hệ quản trị CSDL Người quản trị CSDL áp dụng thống tiêu chuẩn, quy định, thủ tục chung quy định thống mẫu biểu báo cáo, thời gian bổ sung, cập nhật liệu Điều làm dễ dàng cho cơng việc bảo trì liệu -3- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Người quản trị CSDL bảo đảm việc truy nhập tới CSDL, kiểm tra, kiểm sốt quyền truy nhập người sử dụng Ngăn chặn truy nhập trái phép, sai quy định từ từ vào… Những vấn đề cần giải Để đạt hiệu sử dụng CSDL, ta cần giải vấn đề đặt sau đây: - Tính chủ quyền liệu: Do tính chia sẻ CSDL nên tính chủ quyền liệu bị lu mờ làm mờ nhạt tinh thần trách nhiệm, thể vấn đề an toàn liệu, khả biểu diễn mối liên hệ ngữ nghĩa liệu, tính xác liệu Điều có nghĩa người khai thác CSDL phải có nghĩa vụ cập nhật thơng tin CSDL - Tính bảo mật quyền khai thác thông tin người sử dụng: Do có nhiều người phép khai thác CSDL cách đồng thời nên cần phải có chế bảo mật phân quyền hạn khai thác CSDL Các hệ điều hành nhiều người sử dụng hay hệ điều hành mạng cục (Novell Netware, Windows for Workgroup, WinNT…) có cung cấp chế - Tranh chấp liệu: Nhiều người phép truy nhập vào tài nguyên liệu CSDL với mục đích khác xem, thêm, xóa sửa liệu, cần phải có chế ưu tiên truy nhập liệu Cơ chế ưu tiên thực việc cấp quyền ưu tiên cho người khai thác - người cấp quyền hạn ưu tiên cao ưu tiên truy nhập liệu trước; dựa thời điểm truy nhập - có yêu cầu truy xuất trước có quyền truy nhập liệu trước… - Đảm bảo liệu có cố: Việc quản lý liệu tập trung làm tăng khả mát sai lệch thông tin có cố điện đột xuất, phần đĩa lưu trữ CSDL bị hư hỏng v.v… Một số hệ điều hành mạng có cung cấp dịch vụ lưu ảnh đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động kiểm tra khắc phục lỗi có cố, Tuy nhiên, bên cạnh dịch vụ hệ điều hành, để đảm bảo CSDL ln ln ổn định, CSDL thiết phải có chế khôi phục liệu cố bất ngờ xảy Giá phải trả cho ứng dụng CSDL Như với định kinh doanh nào, ứng dụng theo hướng CSDL cần trả giá chịu vài rủi ro cần đến nhân chuyên sâu, chi phí quản lý thực hiện, giải va chạm tâm lý… - Nhu cầu nhân mới, chuyên môn: Cần phải thuê hay tự đào tạo chuyên gia công nghệ thông tin để phân tích, thiết kế, thực CSDL tổ chức Mặc khác, công nghệ ngày phát triển nhanh khiến hệ thống CSDL thường xuyên cập nhật tri thức cho cán - Chi phí quản lý, thực hiện: Hệ thống quản trị CSDL nhiều người dùng thường lớn phức tạp, đòi hỏi nhiều người tham gia bảo trì Người ta cần tính đến chi phí thiết bị máy tính, chi phí phần mềm, chi phí truyền thơng - Chi phí chuyển đổi hệ thống: Trước áp dụng CSDL, tổ chức xử lý liệu theo phương pháp thủ công, hay sử dụng hệ thống xử lý tập tin Để chuyển công nghệ xử lý liệu sang cách tiếp cận mới, tổ chức cần có kinh phí chuyển mơ hình cũ sang mơ hình mới, chuyển đổi liệu cho phù hợp với môi trường - Va chạm quan điểm sử dụng CSDL: Trước CSDL áp dụng tổ chức, người ta cần thống mô tả liệu, khuôn dạng thể liệu… Sau hình thành CSDL, việc sử dụng liệu CSDL cần đạt hiệu Cần khuyến khích phận phát huy tốt hệ thống CSDL số phận muốn độc quyền thông tin hay e ngại dùng hệ thống tự động hố, có xu hướng giảm hiệu CSDL -4- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Các đối tượng sử dụng CSDL - Người sử dụng CSDL không chuyên lĩnh vực tin học CSDL, CSDL cần có cơng cụ người sử dụng khơng chun sử dụng để khai thác CSDL cần thiết - Chuyên viên Tin học biết khai thác CSDL: Những người xây dựng ứng dụng khác phục vụ cho mục đích khác CSDL - Người quản trị CSDL: Đây người hiểu biết tin học, hệ quản trị CSDL hệ thống máy tính Họ người tổ chức CSDL (khai báo cấu trúc CSDL, ghi nhận yêu cầu bảo mật cho liệu cần bảo vệ…), họ phải nắm rõ vấn đề kỹ thuật CSDL để phục hồi liệu có cố Họ người cấp quyền hạn khai thác CSDL, họ giải vấn đề tranh chấp liệu, có Các ứng dụng sở liệu Hiện nay, CSDL gắn liền với ứng dụng Tin học; chẳng hạn việc quản lý hệ thống thông tin quan nhà nước, việc lưu trữ xử lý thông tin doanh nghiệp, lĩnh vực nghiên cứu khoa học, công tác giảng dạy, việc tổ chức thông tin đa phương tiện… -5- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy  KIẾN THỨC TỔNG QUÁT CỦA HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU I HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – HỆ CƠ SỞ DỮ LIỆU Khái niệm hệ quản trị sở liệu Như biết, kích thước độ phức tạp CSDL khác Ví dụ: - Danh bạ điện thoại quốc gia, thành phố… chứa tới hàng triệu số thông tin cần thiết khách hàng - Trong trường Đại học có tới hàng ngàn sinh viên Nhà trường phải quản lý tất thông tin liên quan đến sinh viên như: Tên, ngày sinh, quê quán, địa chỉ, kết học tập… Ta thấy, nhớ vấn đề cần phải giải Tuy nhiên, vấn đề quan trọng lại cách thức tổ chức liệu CSDL để phục vụ cho việc truy cập, tìm kiếm, cập nhật… nhanh chóng an toàn Để giải tốt tất vấn đề đặt cho CSDL nêu trên, cần phải có hệ thống phần mềm chuyên dụng gọi hệ quản trị CSDL (Database Management System - DBMS) Đó cơng cụ hỗ trợ tích cực cho nhà phân tích thiết kế CSDL người khai thác CSDL Các khái niệm: Một hệ quản trị CSDL tập hợp chương trình giúp cho người sử dụng quản lý cấu trúc liệu CSDL, điều khiển truy xuất liệu CSDL, trì khai thác CSDL Định nghĩa CSDL: Tạo cấu trúc liệu tương ứng với mơ hình liệu chọn, bao gồm việc đặc tả kiểu liệu, cấu trúc ràng buộc cho liệu lưu trữ CSDL Xây dựng CSDL: Là trình lưu trữ liệu phương tiện lưu trữ hệ quản trị CSDL kiểm soát Thao tác CSDL: Bao gồm chức truy vấn CSDL để lấy liệu cụ thể, cập nhật CSDL để phản ánh thay đổi giới nhỏ tạo báo cáo từ liệu Cho đến có nhiều hệ quản trị CSDL mạnh đưa thị trường như: Visual FoxPro, Microsoft Access, SQL Server, DB2, Sybase, Paradox, Informix, Oracle… với chất lượng khác Các chức hệ quản trị sở liệu Một hệ quản trị CSDL thực chức sau: a Cung cấp môi trường tạo lập CSDL Một hệ quản trị CSDL phải cung cấp môi trường cho người dùng dễ dàng khai báo kiểu liệu, cấu trúc liệu thể thông tin ràng buộc liệu Với hệ quản trị CSDL nay, người dùng tạo lập CSDL thông qua giao diện đồ hoạ Để thực chức này, hệ quản trị CSDL cung cấp cho người dùng ngôn ngữ định nghĩa liệu Ta hiểu ngơn ngữ định nghĩa liệu thực chất hệ thống ký hiệu để mô tả CSDL b Cung cấp môi trường cập nhật khai thác liệu -6- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Ngôn ngữ để người dùng diễn tả yêu cầu cập nhật hay tìm kiếm, kết xuất thơng tin gọi ngôn ngữ thao tác liệu Thao tác liệu gồm: - Cập nhật: Nhập thêm, sửa, xố liệu - Khai thác: Tìm kiếm, kết xuất liệu Trong thực tế, ngôn ngữ định nghĩa liệu ngôn ngữ thao tác liệu thành phần ngôn ngữ CSDL Ngôn ngữ CSDL sử dụng phổ biến SQL (Structured Query Language) c Cung cấp công cụ kiểm sốt, điều khiển truy cập vào CSDL Để góp phần đảm bảo yêu cầu đặt cho hệ CSDL, hệ quản trị CSDL phải có chương trình thực nhiệm vụ sau: - Phát ngăn chặn truy cập không phép: Chức góp phần đáp ứng yêu cầu an tồn bảo mật thơng tin - Duy trì tính quán liệu - Tổ chức điều khiển truy cập đồng thời để bảo vệ ràng buộc tồn vẹn tính qn - Khơi phục CSDL có cố phần cứng hay phần mềm - Quản lí mơ tả liệu Nói chung, hệ quản trị CSDL cung cấp chương trình nêu trên, hệ quản trị CSDL khác có chất lượng khả khác đáp ứng nhu cầu thực tế Chẳng hạn, hệ quản trị CSDL dùng máy tính cá nhân cung cấp phương tiện bảo vệ liệu, trì tính qn liệu, khôi phục liệu cách hạn chế Trong đó, hệ quản trị CSDL lớn, phục vụ lúc cho nhiều người dùng, phương tiện kể có thêm chức khác xử lí truy cập đồng thời… Các hệ quản trị CSDL phát triển theo hướng đáp ứng đòi hỏi ngày cao người dùng, chức hệ quản trị CSDL ngày mở rộng Các thành phần hệ quản trị sở liệu Các hệ CSDL có thành phần sau: - Ngôn ngữ giao tiếp người sử dụng CSDL, bao gồm: + Ngôn ngữ mô tả liệu (Data Definition Language - DDL): Cho phép khai báo cấu trúc CSDL, khai báo mối liên hệ liệu (Data RelationShip) quy tắc (Rules, Constraint) quản lý áp đặt lên liệu + Ngơn ngữ thao tác liệu (Data Manipulation Language - DML): Cho phép người sử dụng thêm (Insert), xóa (Delete), sửa (Update) liệu CSDL + Ngôn ngữ truy vấn liệu (Data Query Language - DQL): Cho phép người khai thác (chuyên nghiệp không chuyên) sử dụng để tìm kiếm thơng tin cần thiết CSDL + Ngôn ngữ quản lý liệu (Data Control Language - DCL): Cho phép người quản trị hệ thống khai báo bảo mật thông tin cấp quyền hạn khai thác CSDL cho người sử dụng - Từ điển liệu (Data Dictionary): Dùng để ghi nhận thành phần cấu trúc CSDL, mô tả ánh xạ liên kết, mật mã, quyền hạn sử dụng, chương trình ứng dụng… -7- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy - Có biện pháp phân quyền bảo mật tốt có yêu cầu bảo mật - Cơ chế giải vấn đề tranh chấp liệu Mỗi hệ quản trị CSDL cài đặt chế riêng để giải vấn đề Một số biện pháp sau sử dụng: + Cấp quyền ưu tiên cho người sử dụng (người quản trị CSDL thực hiện) + Đánh dấu yêu cầu truy xuất liệu, phân chia thời gian, người có u cầu trước có quyền truy xuất liệu trước - Hệ quản trị CSDL phải có chế lưu (Backup) phục hồi (Restore) liệu có cố xảy - Hệ quản trị CSDL phải cung cấp giao diện (Interface) tốt, dễ sử dụng, dễ hiểu cho người sử dụng không chuyên - Hệ quản trị CSDL phải bảo đảm tính độc lập liệu chương trình: Khi có thay đổi liệu (như sửa đổi cấu trúc lưu trữ bảng liệu…) chương trình ứng dụng chạy CSDL khơng cần phải viết lại, hay không làm ảnh hưởng đến người sử dụng khác Hệ sở liệu Người ta gọi CSDL hệ quản trị CSDL thuật ngữ chung hệ CSDL Môi trường hệ CSDL mơ tả hình vẽ đây: Hình: Hệ sở liệu Hệ CSDL hệ thống gồm người dùng, phần mềm ứng dụng, hệ quản trị CSDL CSDL Trong đó, người dùng cần thao tác trực tiếp với chương trình ứng dụng, chương trình ứng dụng thơng qua hệ quản trị CSDL để truy cập CSDL thực công việc bên dưới, đáp ứng yêu cầu người dùng II MƠ HÌNH CƠ SỞ DỮ LIỆU Khái niệm mơ hình sở liệu Các loại cấu trúc CSDL mối liên hệ chúng đóng vai trị lớn việc xác định tính hiệu hệ quản trị CSDL Vì vậy, thiết kế CSDL trở thành hoạt động mơi trường CSDL Việc thiết kế CSDL thực đơn giản nhiều ta sử dụng mơ hình Các mơ hình trừu tượng đơn giản kiện giới thực Các trừu tượng cho phép ta khảo sát đặc điểm thực thể mối liên hệ tạo thực thể Việc thiết kế mơ hình tốt đưa CSDL tốt sở có ứng dụng tốt Một mơ hình CSDL tập hợp khái niệm, luật hay quy tắc dùng để biểu diễn, mô tả cách trừu tượng cấu trúc CSDL Cấu trúc CSDL kiểu liệu, -8- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy mối liên kết ràng buộc phải tn theo liệu Nhiều mơ hình cịn có thêm tập hợp phép tốn để đặc tả thao tác CSDL 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: - Các đối tượng, thực thể quản lý - Các mối quan hệ đối tượng - 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ác mơ hình sở liệu Có nhiều mơ hình đề nghị, khảo sát mơ hình đặc trưng nhất: a Mơ hình phân cấp Mơ hình phân cấp hay mơ hình CSDL dạng tổ chức theo cấu trúc từ xuống giống lộn ngược Mỗi nút tương ứng với kiểu liệu, có nhiều trường, mô tả thực thể nhánh tạo nên liên kết kiểu liệu với kiểu liệu khác Mỗi nút có nút cha nhiều nút con, trừ nút gốc nút cha Ví dụ mơ hình phân cấp quản lý nhân Cơng ty: Phịng ban Nhân viên Kỹ Dự án Cấp Thiết bị Hình: Mơ hình phân cấp Tuy nhiên, mơ hình thể quan hệ 1-n (một-nhiều), tức mô tả trường hợp nút cha có nhiều nút phịng có nhiều nhân viên hay phịng có nhiều dự án, cịn trường hợp ngược lại khơng Chẳng hạn dự án mà thuộc nhiều phịng dự án phải lưu nhiều nơi khác Điều gây dư thừa liệu lãng phí khơng gian lưu trữ Điểm bật thủ tục truy xuất đến đối tượng mơ hình phân cấp đường dẫn từ gốc đến phần tử cần xét phân cấp b Mơ hình mạng Mơ hình mạng biểu diễn đồ thị có hướng Dữ liệu biểu diễn tập ghi, mối quan hệ biểu diễn mối nối (links) xem trỏ Xuất phát từ đối tượng (biểu diễn ghi), nối với nút để biểu diễn liên kết 1-n thông qua trỏ liên kết, có nhiều mối quan hệ đến đối tượng khác Sự khác hệ thống mạng hệ thống phân cấp mơ hình mạng khơng ràng buộc số hướng liên kết thiết lặp nút -9- Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Ví dụ 1: Mơ hình quản lý nhân Cơng ty Phịng ban Nhân viên Dự án Cấp Thiết bị Ví dụ 2: Người quản lý Công chức Quản lý Nơi làm Ngân hàng Tài khoản - Ngân hàng Khách hàng Tài khoản Chủ tài khoản Tài khoản - Khách hàng Đăng ký c Mơ hình quan hệ Cơ sở liệu quan hệ xây dựng theo lý thuyết E.F.Codd giới thiệu năm 1970 Thuật ngữ “quan hệ” bảng liệu chiều Codd gọi bảng quan hệ Mơ hình quan hệ từ năm 1980 trở thành mơ hình dùng rộng rãi để phát triển hệ quản trị CSDL Đặc điểm mơ hình liệu quan hệ: - Dữ liệu thể bảng Các bảng gọi “quan hệ” Mỗi bảng gồm dịng cột, cột có tên Các dòng gọi “bộ”, cột “thuộc tính” - Mỗi dịng cho thơng tin đối tượng cụ thể, bao gồm giá trị tương ứng với cột, giá trị thể thơng tin thuộc tính đối tượng đó, tên thuộc tính tên cột mà giá trị hiển thị - Mối liên kết đối tượng thể mối liên kết bảng nhờ vào xuất trùng lặp số thuộc tính bảng Ví dụ: Ta có bảng liệu CSDL sau: KHACH_HANG MaKH Khách hàng Khách hàng Khách hàng HoTen Nguyễn Văn Quang Hồ Hải Hà Dương Quốc Toản - 10 - Tuoi DiaChi 16 68, Nguyễn Du 18 23/10, Nguyễn Trãi 21 32/7, Nguyễn Trãi Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy BÀI TẬP NGÔN NGỮ SQL 1/- Cho lược đồ CSDL quản lý phân công nhân viên: Congtrinh(MACT, TENCT, DIAĐIEM, NGAYCAPGP, NGAYKC, NGAYHT) Nhanvien(MANV, HOTEN, NGAYSINH, PHAI, ĐIACHI, MAPB) Phongban(MAPB, TENPB) Phancong(MACT, MANV, SLNGAYCONG) Hãy thực câu hỏi sau SQL: a/- Danh sách nhân viên có tham gia vào cơng trình có mã cơng trình(MACT) X.u cầu thơng tin: MANV, HOTEN, SLNGAYCONG, MANV tăng dần b/- Đếm số lượng ngày cơng cơng trình u cầu thơng tin: MACT, TENCT, TONGNGAYCONG (TONGNGAYCONG thuộc tính tự đặt) c/- Danh sách nhân viên có sinh nhật tháng 08 yêu cầu thông tin: MANV, TENNV, NGAYSINH, DIACHI, TENPB, xếp quan hệ kết theo thứ tự tuổi giảm dần d/- Đếm số lượng nhân viên phịng ban u cầu thơng tin: MAPB, TENPB, SOLUONG (SOLUONG thuộc tính tự đặt) 2/- Cho lược đồ CSDL quản lý phân công giảng dạy: Giaovien(MAGV, HOTEN, MAKHOA) Monhoc(MAMH, TENMH) Phonghoc(PHONG, CHUCNANG) Khoa(MAKHOA, TENKHOA) Lop(MALOP, TENLOP, MAKHOA) Lichday(MAGV, MAMH, PHONG, MALOP, NGAYDAY, TUTIET, ĐENTIET, BAIDAY, LYTHUYET, GHICHU) Hãy thực câu hỏi sau SQL: a/- Xem lịch báo giảng tuần từ ngày 08/09/2003 đến ngày 14/09/2003 giáo viên có MAGV (mã giáo viên) TH3A040 Yêu cầu: MAGV, HOTEN, TENLOP, TENMH, PHONG, NGAYDAY, TUTIET, ĐENTIET, BAIDAY, GHICHU) b/- Xem lịch báo giảng ngày 08/09/2003 giáo viên có mã khoa CNTT Yêu cầu: MAGV, HOTEN, TENLOP, TENMH, PHONG, NGAYDAY, TUTIET, ĐENTIET, BAIDAY, GHICHU) c/- Cho biết số lượng giáo viên (SOLUONGGV) khoa, kết cần xếp tăng dần theo cột tên khoa yêu cầu: TENKHOA, SOLUONGGV SOLUONGGV thuộc tính tự đặt 3/- Cho lược đồ CSDL quản lý kỳ thi nghề sau: THISINH(MASV, HOTEN, NGAYSINH, MALOP) LOP(MALOP, TENLOP, MAKHOA) - 35 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy KHOA(MAKHOA, TENKHOA, DIENTHOAI) MONTHI(MAMT, TENMONTHI) KETQUA(MASV, MAMT, DIEMTHI) Phần giải thích thuộc tính: HOTEN (họ tên thí sinh), NGAYSINH (ngày sinh), MALOP (mã lớp), MASV (mã sinh viên), TENLOP(tên lớp), MAKHOA (mã khoa), TENKHOA (tên khoa), DIENTHOAI (số điện thoại khoa), MAMT (mã môn thi), TENMONTHI (tên môn thi), DIEMTHI (điểm thi) Dựa vào lược đồ CSDL trên, thực yêu cầu sau ngôn ngữ SQL: a/- Hãy cho biết số lượng thí sinh khoa đăng ký thi giỏi nghề, cần xếp kết theo chiều tăng dần cột TENKHOA b/- Lập danh sách thí sinh đạt danh hiệu giỏi nghề (Thí sinh đạt danh hiệu giỏi nghề thí sinh khơng có mơn thi điểm 8) c/- Lập danh sách thí sinh nhỏ tuổi có mã khoa "CNTT" dự thi giỏi nghề 4/- Cho lược đồ CSDL quản lý nhân viên công ty sau: Nhanvien(MANV, HOTEN, NU, NGAYSINH, LUONG, MAPB, MACV) Mỗi nhân viên có mã nhân viên (MANV) nhất, mã nhân viên xác định họ tên nhân viên (HOTEN), giới tính (NU), lương (LUONG), mã phịng ban (MAPB), mã chức vụ (MACV) Phongban(MAPB, TENPB, TRUSO, MANVPHUTRACH, KINHPHI, DOANHTHU) Mỗi phịng ban có tên gọi phịng ban (TENPB), địa điểm đặt trụ sở (TRUSO), mã nhân viên phụ trách (MANVPHUTRACH), kinh phí hoạt động (KINHPHI), doanh thu (DOANHTHU) Chucvu(MACV, TENCV, LUONGTHAPNHAT, LUONGCAONHAT) Mỗi chức vụ co tên gọi chức vụ (TENCV), mức lương tối thiểu (LUONGTHAPNHAT), mức lương tối đa (LUONGCAONHAT) Hãy biểu diễn câu hỏi sau SQL: a Lập danh sách gồm thông tin phịng ban cơng ty như: mã số phòng ban, tên phòng ban, địa điểm trụ sở, mã số người phụ trách, kinh phí hoạt động, doanh thu b Lập danh sách nhân viên sinh nhật tháng 10 c Lập danh sách gồm thông tin mã số nhân viên, họ tên lương năm nhân viên (giả sử luơng năm =12 * Lương) d Lập phòng ban có kinh phí hoạt động cao e Lập danh sách nhân viên phịng ban có mã số phịng ban 40 f Lập danh sách nhân viên phịng có mã số phịng ban 10,30,50 g Lập danh sách nhân viên có lương tháng từ 2.500.000 đến 4.000.000 h Lập danh sách nhân viên phòng 10,30,50 Kết in theo thứ tự tăng dần mã phịng trùng mã phịng xếp giảm dần theo mức lương i Lập danh sách nhân viên phòng 10,30,50 in người lãnh đạo phòng ban - 36 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy j Lập danh sách gồm mã phòng mà người có mức lương cao phịng lớn 4.000.000 k Lập mã phòng ban, tên phòng ban, họ tên lãnh đạo phòng tương ứng l Lập danh sách người làm việc phòng với ông Nguyễn Văn Thanh m Lập biết mã số nhân viên, họ tên, mức lương người lãnh đạo ông Nguyễn Văn Thanh n Lập danh sách nhân viên có mức lương lớn hay mức lương cao phịng ơng Nguyễn Văn Thanh o Cho biết mã số nhân viên, họ tên , tổng số nhân viên, mức lương cao nhất, mức lưong thấp nhất, mức lương trung bình phịng ban p Cho biết nhân viên có mức lương cao phòng ban q Cho biết số lượng nhân viên phòng ban - 37 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy CHƯƠNG – LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU (Tổng số: tiết, Lý thuyết: tiết)  PHỤ THUỘC HÀM I PHỤ THUỘC HÀM - HỆ LUẬT DẪN ARMSTRONG Định nghĩa Cho r quan hệ định nghĩa lượt đồ quan hệ R, X Y hai tập (khác rỗng) thuộc tính R Ta nói X xác định hàm Y (hay Y phụ thuộc hàm vào X), ký hiệu: X → Y phụ thuộc hàm (PTH) định nghĩa R nếu:  t1, t2  r(R): 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 Ví dụ: SINHVIEN(MaSV, HotenSV, Namsinh) Có phụ thuộc hàm: MaSV → HotenSV Qui ước: - Tập thuộc tính: (X, Y, Z) - Một thuộc tính: A, B, C - XY = X  Y - X → Y: X xác định hàm Y hay Y phụ thuộc hàm vào X - PTH phương tiện biểu diễn ràng buộc liệu, sở để xác định khố chuẩn hóa lược đồ CSDL Cách xác định phụ thuộc hàm cho lược đồ quan hệ Cách để xác định phụ thuộc thích hợp cho lược đồ quan hệ xem xét nội dung tân từ lược đồ quan hệ Chẳng hạn với lược đồ CSDL cho ví dụ trên: Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP) Lop(MALOP, TENLOP, MAKHOA) Khoa(MAKHOA, TENKHOA) Monhoc(MAMH, TENMH, DONVIHT) Giangvien(MAGV, HOTENGV, HOCVI, CHUYENNGANH, MAKHOA) Ketqua(MASV, MAMH, LANTHI, DIEMTHI) Phancong(MALOP, MAMH, MAGV) Như vậy, phụ thuộc hàm ứng với lược đồ quan hệ xác định sau: MASV → HOTENSV, NU, NGAYSINH, MALOP, TINH MALOP → TENLOP, MAKHOA MAKHOA → TENKHOA MAMH → TENMH, DONVIHT MASV, MAMH, LANTHI → DIEMTHI - 38 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Một số tính chất phụ thuộc hàm - Hệ luật dẫn Armstrong Để xác định phụ thuộc hàm khác từ tập phụ thuộc hàm có, ta dùng hệ tiên đề Armstrong (1974), gồm luật sau: Với X, Y, Z, W  R+ a Luật phản xạ Nếu X  R+ Y  X X→Y Quy tắc đưa phụ thuộc hàm hiển nhiên (phụ thuộc hàm tầm thường), phụ thuộc hàm mà vế trái bao hàm vế phải Những phụ thuộc hàm hiển nhiên quan hệ b Luật tăng trưởng Nếu X → Y Z  R+ XZ → YZ c Luật bắc cầu (transitivity) Nếu X → Y Y → Z X → Z d Luật hệ (Các quy tắc suy rộng) Luật hợp: Nếu X → Y X → Z X → YZ Luật phân rã: Nếu X → YZ X → Y X → Z Luật bắc cầu giả: Nếu X → Y WY→ Z XW → Z II BAO ĐĨNG Bao đóng tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm F (ký hiệu F+) tập hợp tất phụ thuộc hàm suy từ F dựa vào tiên đề Armstrong Rõ ràng F  F+ Ví dụ: Cho lược đồ quan hệ R(ABCDEGH) F cho sau: F = {B → A; DA→ CE; D → H; GH→ C; AC→ D} Khi F+ = { B→ A; DA→ CE; D → H; GH→ C; AC→ D; BC → AC; BC → D; DA → AH; DG → C;BC → AD;….} Lưu ý: Nếu thuộc tính biểu diễn ký tự danh sách thuộc tính có khơng có dấu phẩy được, cịn phụ thuộc hàm phải có dấu chấm phẩy) Các tính chất tập F+: - Tính phản xạ: Với tập phụ thuộc hàm F+ ta ln có F  F+ - Tính đơn điệu: Nếu F  G F+  G+ - Tính luỹ đẳng: Với tập phụ thuộc hàm F ta ln ln có F++ = F+ Bao đóng tập thuộc tính Cho lược đồ quan hệ R Giả sử F tập phụ thuộc hàm R, X  R+ Bao đóng tập thuộc tính X F ký hiệu X+ (hoặc X +F) tập tất thuộc tính A  R+ suy từ X dựa vào phụ thuộc hàm F hệ tiên đề Armstrong, nghĩa là: X+ = {A: A  R+ X → A  F+} Ví dụ: Cho lược đồ quan hệ R(ABCDEGH) tập phụ thuộc hàm F - 39 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy F = {B → A; DA→ CE; D → H; GH→ C; AC→ D } Hãy tính: B+; H+; BC+ Giải: Tao có B+ = BA ; (do có phụ thuộc hàm B → A) H+ = H; (do có phụ thuộc hàm H → H) BC+ = BCADEH; (do có phụ thuộc hàm B → A; AC→D; DA→ CE; D → H ) Tương tự tập bao đóng tập phụ thuộc hàm F+, tập bao đóng X+ chứa phần tử tập X, tức X  X+ Các tính chất bao đóng tập thuộc tính X+ Nếu X,Y tập tập thuộc tính Q ta có tính chất sau đây: - Tính phản xạ: X  X+ - Tính đơn điệu: Nếu X  Y X+  Y+ - Tính luỹ đẳng: X++ = X+ - (XY)+  X+Y+ - (X+Y)+ = (XY+)+ = (X+Y+)+ - X → Y  F+  Y  X+ - X → Y  Y+  X+ Phương pháp tìm bao đóng Tính tốn bao đóng tập phụ thuộc hàm F+ tốn thời gian F+ lớn thân F nhỏ Xét tập hợp: F = {A → B1, A → B2, … , A → Bn} Khi F+ bao gồm tất phụ thuộc hàm dạng A → Y, Y tập của: {B1, B2, … , Bn} Bởi có đến n tập nên danh sách F+ lớn n có nhỏ Nhưng việc tính bao đóng tập thuộc tính X+ khơng tốn lắm, thời gian tính tốn tỉ lệ thuận với độ dài tất phụ thuộc hàm F Theo kết luận từ định lý việc xác định X → Y  F+ tương đương với việc tính bao đóng X+ Ví dụ: Cho tập phụ thuộc hàm F: AB → C D → EG C→A BE → C BC → D CG → BD ACD → B CE → AG Đặt X = BD Áp dụng giải thuật để xác định bao đóng X+ - Đặt X(0) = X = BD, F0 = F - Tính X(1): Ta tìm phụ thuộc hàm có phía bên trái B, D, BD Ta có: D → EG, nên ta thêm E G vào X(0) để có: X(1) = BDEG Tương tự ta có: X(2) = BCDEG, X(3) = ABCDEG = U Kết thúc Vậy: (BD)+ = ABCDEG - 40 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy  PHÉP TÁCH CÁC LƯỢC ĐỒ QUAN HỆ I KHÁI NIỆM PHÉP TÁCH Khái niệm Phép tách lược đồ quan hệ R = {A1,…,An} việc thay lược đồ quan hệ R tập lược đồ {R1,…,Rk}, R1,…,Rk tập R, không bắt buộc phân biệt với nhau, thỏa: R = R1  …  Rk Mục đích phép tách loại bỏ dị thường liệu, nhằm chuẩn hoá lược đồ quan hệ Ví dụ a Ví dụ Xét lược đồ quan hệ NHACC(TenNCC, DiaChi, MatHang, DonGia) với phụ thuộc hàm: TenNCC → DiaChi TenNCC, MatHang → DonGia Từ tập phụ thuộc hàm thấy có dư thừa liệu quan hệ NHACC Giả sử TenNCC cung cấp nhiều mặt hàng DiaChi bị lặp lại nhiều lần cho TenNCC Tuy nhiên, thay NHACC hai lược đồ: CTY(TenNCC, DiaChi) HANG(TenNCC, MatHang, DonGia) Khi đó, loại bỏ thuộc tính DiaChi để liệu khơng bị lặp lại nhiều lần, liệu có giải vấn đề hay không? Giả sử quan hệ r giá trị thời lược đồ NHACC Ta ký hiệu r1 r2 hai thể ứng với lược đồ CTY HANG Ta trông đợi r1 phép chiếu r lên thuộc tính TenNCC, Diachi r2 chiếu r lên thuộc tính TenNCC, MatHang, DonGia: r1 = Ten, Diachi (r) & r2 = Ten, MatHang, DonGia (r) Bằng cách ta biết r1 r2 chứa thông tin giống r? Một hướng trả lời kiểm tra xem r phục hồi từ r1 r2 hay không Ta khẳng định phương pháp để phục hồi r tái tạo nối tự nhiên r1 r2 Nếu ta đặt: s = r1 * r2 Nếu r  s từ r1 r2 khơng có cách biết r hay s quan hệ gốc lược đồ NHACC b Ví dụ 2: Cho lược đồ R = (A, B, C) tập phụ thuộc hàm F = {A → B} Xét phân rã R thành lược đồ (A,B) (B,C) Cho quan hệ r = {a1b 1c1, a2b1c2}là thể lược đồ R r A a1 a2 Khi đó: AB(r) = {a1b1, a2b1}, BC(r) = {b 1c1, b1c2} - 41 - B b1 b1 C c1 c2 Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Như vậy: s = AB(r) * BC(r) = {a1b 1c1, a1b1c2, a2b1c1, a2b 1c2}  r Vậy phép tách không phục hồi thông tin ban đầu c Ví dụ Cho lược đồ: LOPHOC(Lop, Monhoc, Giaovien) với tập phụ thuộc hàm: {Giaovien → Monhoc, Lop; Monhoc → Giaovien} Xét phép tách thành: GV(Giaovien, Monhoc) LOP(Lop,Giaovien) Phép tách bảo tồn thông tin ban đầu: Giaovien, Monhoc (LOPHOC) * Lop, Giaovien (LOPHOC) = LOPHOC Tuy nhiên phụ thuộc hàm thứ khơng cịn tồn lược đồ con, không phục hồi phép nối tự nhiên Vấn đề đặt phải phân rã lược đồ cho phép nối tự nhiên quan hệ phân rã tương ứng phải thỏa mãn yêu cầu sau: (1): Phục hồi thông tin quan hệ ban đầu (2): Phục hồi phụ thuộc hàm quan hệ ban đầu Phép tách thoả mãn yêu cầu (1) gọi phép tách bảo tồn thơng tin, cịn phép tách thoả mãn yêu cầu (2) phép tách bảo tồn phụ thuộc hàm Chúng ta nghiên cứu phép tách phần sau: II PHÉP TÁCH KẾT NỐI KHÔNG MẤT THÔNG TIN Định nghĩa Nếu R sơ đồ quan hệ tách thành sơ đồ R1, R2,…, Rk F tập phụ thuộc hàm, ta nói phép tách có kết nối khơng thơng tin với quan hệ r R thoả F: r = R1(r) * R2(r) *…* Rk(r) Bổ đề: Cho R sơ đồ quan hệ,  = {R1, R2,…, Rk} phép tách R, r quan hệ R Đặt: m(r) = R1(r) * R2(r) *…* Rk(r) Ta có: (i): r  m(r) (ii): Nếu s = m(r) Ri(s) = ri (iii): m(s) = m(r) Kiểm tra kết nối không thông tin a Thuật toán: Input: Một sơ đồ quan hệ R = (A1,…,An), tập phụ thuộc hàm F phép tách  = (R1, R2,…, Rk) Output: Một định xem có phép tách với kết nối không thông tin - 42 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Phương pháp: - Ta xây dựng bảng k dòng n cột, cột j tương ứng thuộc tính thứ j dòng i tương ứng sơ đồ quan hệ Ri Tại vị trí giao dịng i cột j ta đặt ký hiệu aj Aj có Ri, ký hiệu bij ngược lại - Lặp lại việc xét phụ thuộc hàm X → Y F, khơng cịn thay đổi bảng Mỗi lần xét X → Y ta tìm dịng mang trị tập thuộc tính X Nếu tìm hai dịng vậy, làm cho ký hiệu hai dịng giống thuộc tính Y (nếu ký hiệu aj ta cho ký hiệu thứ hai aj; chúng bij blj ta cho chúng b ij blj - Nếu sau sửa bảng theo cách trên, ta thấy có dịng có dạng a1, a2,…, ak kết nối khơng thơng tin, ngược lại b Ví dụ: Ta xét phép tách SAIP thành SA SIP Các phụ thuộc hàm gồm S → A SI → P, bảng ban đầu là: SA SIP S a1 a1 A a2 b22 I b13 a3 P b14 a4 Xét S → A, ta thấy hai dòng có giá trị giống cột S, giá trị cột A cần thay đổi thành a2 SA SIP S a1 a1 A a2 a2 I b13 a3 P b14 a4 Vì bảng có dịng chứa tồn aj nên phép tách phép tách khơng thơng tin c Định lý 1: Thuật tốn xác định phép tách không mát thông tin d Định lý 2: * Phát biểu: Nếu  = (R1, R2) phép tách sơ đồ quan hệ R F tập phụ thuộc hàm, có phép tách khơng thơng tin thoả F nếu: (R1  R2) → (R1 – R2) (R1  R2) → (R2 – R1) Chú ý: Các PTH không cần thuộc F, cần thuộc F+ * Áp dụng: Trong giải thuật áp dụng cho phép tách thành số sơ đồ quan hệ, định lý cho cách kiểm tra đơn giản phép tách R thành hai sơ đồ quan hệ * Ví dụ: Giả thiết R = ABC F = {A→ B} Như vậy, phép tách R thành AB AC phép tách không thông tin AB  AC = A AB – AC = B Và ta có: A → B - 43 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy III PHÉP TÁCH BẢO TỒN PHỤ THUỘC HÀM Cho lược đồ quan hệ R với tập phụ thuộc hàm F phép tách  = {R1,…, Rk} Một tính chất quan trọng phép tách lược đồ quan hệ tập phụ thuộc hàm F phải suy từ chiếu F lên R1,…, Rk Ta định nghĩa chiếu F lên tập thuộc tính Q, ký hiệu Q(F), sau: Q(F) = {X → Y  F+ | X  Y  Q} Định nghĩa Ta nói phép tách  = {R1,…, Rk}của lược đồ R bảo tồn phụ thuộc hàm (đối với tập phụ thuộc hàm F) hợp chiếu F lên R1,…, Rk suy diễn logic tất phụ thuộc hàm F F  (R1(F)  R2(F)  …  Rk(F))+ Lý để phép tách phải bảo tồn phụ thuộc hàm phụ thuộc hàm coi ràng buộc toàn vẹn lược đồ R Nếu phụ thuộc hàm chiếu lên lược đồ khơng suy diễn F phân rã vi phạm phụ thuộc hàm F, chí phân rã bảo tồn thơng tin Ví dụ: - Cho sơ đồ quan hệ R(C, S, Z) tập phụ thuộc hàm F: CS → Z Z→C (1): Phép tách R thành SZ CZ phép tách khơng thơng tin vì: (SZ  CZ) → (CZ – SZ)  Z → C (2): Tuy nhiên, phép chiếu F = {CS → Z, Z → C} SZ cho phụ thuộc hàm tầm thường; Trong phép chiếu F CZ cho phụ thuộc hàm Z → C PTH tầm thường chúng không suy diễn CS → Z Do phép tách không bảo tồn phụ thuộc hàm - Chúng ta xét thể cụ thể cho phép tách trên: R1 S 12 LTT 12 LTT S Z 02138 02139 R2 C TP CT TP CT S 12 LTT 12 LTT C TP CT TP CT Z 02138 02139 Z 02138 02139 Ta thấy, S kết nối tự nhiên R1 R2 R1 thoả PTH tầm thường, R2 thoả PTH tầm thường Z → C, bảng S vi phạm PTH CS → Z Giải thuật Input: Lược đồ quan hệ R = {A1, A2,…, An}, tập phụ thuộc hàm F phép tách:  = {R1,…, Rk} Output: Kết luận tính bảo tồn phụ thuộc hàm phân rã  Phương pháp: - 44 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Ký hiệu: G = ki=1 Ri(F) Ta khơng tính G mà kiểm tra xem có phủ F hay không Cho X → Y  F, kiểm tra xem bao đóng X theo G, ký hiệu XG+, có chứa Y hay khơng Thủ thuật tính XG+ mà khơng cần có G xét tác dụng q trình tính bao đóng X chiếu F lên Ri Xuất phát từ X, ta tính XG+ sau: (1): Đặt X0 = X, t = 1; (2): Tính Xt sở Xt-1: (i): Đặt Xt = Xt-1 (ii):Với lược đồ Ri  F, Ri  Xt, ta thực phép toán: Xt = Xt  (( Xt  Ri)+  Ri) Trong q trình tính tốn Xt = R kết thúc, kết luận XG+ = R Ngược lại sang bước (3) (3): Nếu Xt = Xt-1 kết thúc, kết luận XG+ = Xt Ngược lại tăng t lên đơn vị quay bước (2) Nếu Y tập XG+ có từ việc thực bước trên, X → Y  G+ Nếu X → Y  F chứng minh thuộc G+ cách phép tách bảo tồn phụ thuộc hàm, ngược lại khơng Ví dụ Xét lược đồ R = (A,B,C,D) với phép tách {AB, BC, CD} Trong đó: AB = (A,B), BC = (B,C), CD = (C,D), tập phụ thuộc hàm F: {A → B; B → C; C → D; D → A} Ta thấy F+ thuộc tính xác định tất thuộc tính khác Ta có cảm giác chiếu F lên AB, BC CD ta bỏ phụ thuộc hàm D → A, nhận định khơng Khi tính chiếu F lên tập thuộc tính, ta thực chiếu F+ lên lược đồ quan hệ Như vậy, chiếu F lên AB ta có phụ thuộc hàm A → B, mà cịn nhận phụ thuộc hàm B → A Tương tự ta nhận C → B  BC(F) D → C  CD(F), chúng suy diễn logic D → A Như vậy, để kết luận phép tách bảo toàn phụ thuộc hàm, ta phải D → A suy diễn từ tập G = CD(F)  CD(F)  CD(F) Áp dụng thuật toán, đặt X = D tính XG+ theo giải thuật trên: (1): Đặt X0 = X = {D}, t = (2): Tính X1: Đặt X1 = X0 = {D} Xét lược đồ AB Vì AB  X1, ta thực phép tính X1 = {D}  (({D}  {A,B})+  {A,B}) = {D} Xét lược đồ BC Vì BC  X1, ta thực phép tính X1 = {D}  (({D}  {B,C})+  {B,C}) = {D} Xét lược đồ CD Vì CD  X1, ta thực phép tính - 45 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy X1 = {D}  (({D}  {C,D})+  {C,D}) = = {D}  ({A,B,C,D}  {C,D}) = {C,D} Đến ta có X1 = {C,D}  X0 = {D} Vậy ta tính tiếp X2 (2): Tính X2: Đặt X2 = X1 = {C,D} Xét lược đồ AB Vì AB  X2, ta thực phép tính X1 = {C,D}  (({C,D}  {A,B})+  {A,B}) = {C,D} Xét lược đồ BC Vì BC  X2, ta thực phép tính X1 = {C,D}  (({C,D}  {B,C})+  {B,C}) = {B,C,D} Ta bỏ qua lược đồ CD CD  X2 Đến ta có X2 = {B,C,D}  X1 = {C,D} Vậy ta tính tiếp X2: (3): Tính X3: Đặt X3 = X2 = {B,C,D} Xét lược đồ AB Vì AB  X2, ta thực phép tính X1 = {B,C,D}  (({B,C,D}  {A,B})+  {A,B}) = {B,C,D}  ({A,B,C,D}  {A,B}) = {A,B,C,D} Ta có X3 = R Q trình kết thúc ta có: XQ+ = (D)+ = R Từ suy D → A G+ Các phụ thuộc hàm khác hiển nhiên thuộc G+ (thậm chí chúng thuộc G) Ta kết luận phép tách bảo toàn phụ thuộc hàm F  CHUẨN HOÁ LƯỢC ĐỒ QUAN HỆ I CÁC DẠNG CHUẨN Dạng chuẩn thứ (1NF) a Định nghĩa: Một sơ đồ quan hệ R xem dạng chuẩn thứ (1NF - Normal Form) thuộc tính R khác trống, phụ thuộc hàm vào khố khơng thể chia thành thành phần nhỏ b Ví dụ Cho sơ đồ quan hệ: CUNG_UNG(MaNSX, MaH, SL, VonNSX, TP, Nuoc) Với phụ thuộc hàm: MaNSX, MaH → SL (a) MaNSX → VonNSX (b) MaNSX → TP (c) MaNSX → Nuoc (d) - 46 - Hệ quản trị Cơ sở liệu TP → Nuoc Biên soạn: Nguyễn Vũ Duy (e) Sơ đồ thoả dạng chuẩn thứ (1NF) Dạng chuẩn thứ hai (2NF) a Định nghĩa: Một sơ đồ quan hệ R xem thoả dạng chuẩn dạng chuẩn khơng có phụ thuộc hàm phần b Ví dụ 1: Sơ đồ quan hệ SAIP (khoá SI) với phụ thuộc hàm: SI → P S → A vi phạm dạng chuẩn thứ Do khoá SI, S → A phụ thuộc hàm phần c Ví dụ 2: Trong ví dụ trên, sơ đồ quan hệ CUNG_UNG khơng thỏa dạng chuẩn thứ phụ thuộc hàm (b), (c) (d) phụ thuộc hàm phần Ta tách CUNG_UNG thành sơ đồ quan hệ: CUNG_UNG2(MaNSX, MaH, SL) NSX(MaNSX, VonNSX, TP, Nuoc) Khi đó, hai sơ đồ thỏa 2NF Dạng chuẩn thứ ba (3NF) a Định nghĩa: Một sơ đồ quan hệ R xem thỏa dạng chuẩn dạng chuẩn khơng có phụ thuộc hàm truyền (bắc cầu) b Ví dụ: Sơ đồ quan hệ NSX ví dụ khơng thỏa dạng chuẩn có chứa phụ thuộc hàm truyền: TP → Nuoc Ta tách NSX thành sơ đồ quan hệ: NSX(MaNSX, VonNSX, TP) TP(TP, Nuoc) Khi đó, sơ đồ thỏa 3NF Dạng chuẩn Boyce – Codd (BCNF) a Định nghĩa: Một sơ đồ quan hệ R gọi thỏa dạng chuẩn Boyce – Codd với phụ thuộc hàm không tầm thường có vế trái siêu khố b Ví dụ 1: Sơ đồ quan hệ CSZ (khố CS SZ) với phụ thuộc hàm: CS → Z Z → C thỏa dạng chuẩn khơng thỏa Boyce – Codd phụ thuộc hàm Z → C, Z khơng siêu khố c Ví dụ 2: Xét lược đồ: LOPHOC(Lop, MonHoc, GiaoVien) với phụ thuộc hàm: GiaoVien → Monhoc Lop, MonHoc → GiaoVien - 47 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Lược đồ có khố: K1 = Lop, MonHoc K2 = Lop, GiaoVien Tất thuộc tính thuộc tính khố, lược đồ dạng chuẩn Tuy nhiên lược đồ khơng dạng chuẩn Boyce – Codd phụ thuộc hàm: GiaoVien → MonHoc không thỏa yêu cầu vế trái phải siêu khố II KẾT HỢP CHUẨN HỐ VỚI CÁC PHÉP TÁCH LƯỢC ĐỒ QUAN HỆ Dùng phép tách bảo tồn phụ thuộc hàm để đưa dạng chuẩn a Giải thuật: - Input: Lược đồ quan hệ R, tập phụ thuộc hàm F; không làm tính tổng qt giả sử phủ tổi thiểu - Output: Một phép tách  R có bảo tồn phụ thuộc hàm, cho sơ đồ quan hệ dạng chuẩn ba thỏa chiếu F sơ đồ quan hệ - Phương pháp: + Nếu có thuộc tính R khơng có mặt tất phụ thuộc hàm F nguyên tắc thân chúng tạo thành sơ đồ quan hệ ta xoá chúng khỏi R + Nếu có phụ thuộc hàm F chứa hết tất thuộc tính R kết cần tìm R + Ngược lại kết chứa sơ đồ quan hệ XA cho phụ thuộc hàm X → A F Tuy nhiên, X → A1, X → A2,…, X → An F, ta dùng sơ đồ X → A1A2 An thay n sơ đồ X → Ai (1 ≤ i ≤ n) Thực tế cách thay ưa thích b Ví dụ: Cho lược đồ quan hệ: HOC(Mon, GV, TG, Phong, SV, KQ) tập phụ thuộc hàm: Mon → GV; TG, SV → Phong; Mon, SV → KQ; TG, GV → Phong TG, Phong → Mon; Theo giải thuật ta tách HOC thành sơ đồ quan hệ: H1(Mon, GV) H4(Mon, SV, KQ) H2(TG, Phong, Mon) H5(TG, SV, Phong) H3(TG, GV, Phong) c Định lý: Giải thuật tạo phép tách bảo toàn phụ thuộc hàm để đưa dạng chuẩn Dùng phép tách kết nối không thông tin phép tách bảo tồn phụ thuộc hàm để đưa dạng chuẩn a Giải thuật: - Input: Một phép tách  R có bảo tồn phụ thuộc hàm cho sơ đồ quan hệ dạng chuẩn thứ ba thỏa chiếu F sơ đồ quan hệ - Output: Một phép tách  R với kết nối không thông tin bảo toàn phụ thuộc hàm cho quan hệ dạng chuẩn thứ ba thỏa chiếu F sơ đồ quan hệ - 48 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy - Phương pháp: Nếu  khơng có lược đồ chứa khoá R X khố R ta đơn giản thêm vào  sơ đồ quan hệ chứa X:  =   {X} b Ví dụ: Xét lại ví dụ trên, ta có kết quả: H1(Mon, GV) H4(Mon, SV, KQ) H2(TG, Phong, Mon) H5(TG, SV, Phong) H3(TG, GV, Phong) H6(TG, SV) Ta thấy H3 chứa TG, SV nên kết là: H1(Mon, GV) H4(Mon, SV, KQ) H2(TG, Phong, Mon) H5(TG, SV, Phong) H3(TG, GV, Phong) c Định lý: Gọi  phép tách đưa R dạng chuẩn thứ ba bảo toàn phụ thuộc hàm, gọi X khố R Ta có  =   {X} phép tách R thành sơ đồ quan hệ dạng chuẩn thứ ba, phép tách bảo tồn phụ thuộc hàm có kết nối không thông tin - 49 - ... phương tiện… -5 - Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy  KIẾN THỨC TỔNG QUÁT CỦA HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU I HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU – HỆ CƠ SỞ DỮ LIỆU Khái niệm hệ quản trị sở liệu Như... Cho quan hệ r = {a1b 1c1, a2b1c2}là thể lược đồ R r A a1 a2 Khi đó: AB(r) = {a1b1, a2b1}, BC(r) = {b 1c1, b1c2} - 41 - B b1 b1 C c1 c2 Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy Như vậy:... LICHTHI: KQ MaM 01 02 03 04 TenM Phân tích hệ thống Cơ sở liệu Lập trình C Lập trình Web - 27 - Ngay 12 /07 /19 94 14 /07 /19 94 16 /07 /19 94 17 /07 /19 94 Hệ quản trị Cơ sở liệu Biên soạn: Nguyễn Vũ Duy  NGÔN

Ngày đăng: 14/12/2021, 10:45

TỪ KHÓA LIÊN QUAN

w