Giáo trình Cơ sở dữ liệu với mục tiêu giúp các bạn có thể trình bày được các khái niệm về các thực thể, bộ, quan hệ, khóa, phụ thuộc hàm,.. Trình bày được các mô hình cơ sở dữ liệu quan hệ. Trình bày được cú pháp của ngôn ngữ SQL Trình bày được các dạng chuẩn của lược đồ quan hệ.
UBND TỈNH HẢI PHỊNG TRƯỜNG CAO ĐẲNG CƠNG NGHIỆP HẢI PHỊNG GIÁO TRÌNH LẮP RÁP VÀ BẢO TRÌ MÁY TÍNH Chun ngành: Kỹ thuật lắp ráp, sửa chữa máy tính (Lưu hành nội bộ) HẢI PHÒNG LỜI GIỚI THIỆU Cơ sở liệu môn học sở chuyên ngành quan trọng tin học 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ọc sinh hệ cao đẳng trung cấp nghề chuyên ngành Quản trị mạng máy tính, đồ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 toán thực tế thiết kế chuẩn hóa sở liệu nói riêng 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 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 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 rang buộc toàn vẹn Chương V: 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 rõ rang 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 Giáo trình ngồi tài liệu tham khảo cịn có sử dụng tài liệu tham khảo nội đồng nghiệp khác Rất mong nhận nhiều ý kiến đóng góp, trao đổi bạn đọc Xin chân thành cảm ơn! TỔ BỘ MÔN TIN HỌC MỤC LỤC LỜI GIỚI THIỆU MỤC LỤC CHƯƠNG TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU Chương TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Chương MÔ HÌNH DỮ LIỆU QUAN HỆ 21 Chương NGÔN NGỮ TRUY VẤN DỮ LIỆU 35 Chương RÀNG BUỘC TOÀN VẸN 63 Chương LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU 75 TÀI LIỆU THAM KHẢO: 92 CHƯƠNG TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU Mã mơn học: MH10 I Vị trí, ý nghĩa, vai trị mơn học: Mơn học Cơ sở liệu bố trí sau học xong mơn Tin học đại cương, lập trình bản, tốn ứng dụng Là môn học kỹ thuật sở, thuộc môn học, mô đun đào tạo nghề II Mục tiêu mơn học: - Trình bày khái niệm, thuật ngữ sở liệu; - Vận dụng mơ hình liệu sở liệu quan hệ vào việc thiết kế sở liệu cho tốn cụ thể; - Sử dụng ngơn ngữ truy vấn liệu quan hệ thành thạo; - Mơ tả dạng chuẩn chuẩn hóa toán sở liệu trước cài đặt; - Rèn luyện cho sinh viên khả tự nghiên cứu tài liệu tự giác làm việc nhóm III U CẦU VỀ ĐÁNH GIÁ HỒN THÀNH MƠN HỌC Về kiến thức: Đánh giá thông qua kiểu tra viết, trắc nghiệm đạt yêu cầu sau: + Trình bày khái niệm thực thể, bộ, quan hệ, khóa, phụ thuộc hàm, + Trình bày mơ hình sở liệu quan hệ + Trình bày cú pháp ngơn ngữ SQL + Trình bày dạng chuẩn lược đồ quan hệ Về kỹ năng: Sau học xong môn học này học viên có khả năng: + Phân tích liệu vẽ mơ hình liệu thực thể - kết hợp (mơ hình E-R); chuyển đổi E-R sang lược đồ quan hệ Xác định khóa, chuẩn hóa lược đồ mức tốt + Sử dụng thành thạo ngơn ngữ truy vấn liệu SQL chuẩn cho việc truy vấn liệu cài đặt Về thái độ: Cẩn thận, tự tìm thêm tài liệu tham khảo, sưu tầm mơ hình sở liệu doanh nghiệp để tự học hỏi thêm Chương TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Giới thiệ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ế 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: Một số khái niệm 1.1 Định nghĩa sở liệu Dữ liệu 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 Hình dung: Cơ sở liệu bảng hai chiều Chiều ngang: tập hợp đặc điểm đối tượng cần quản lí gọi ghi hay Chiều dọc: gồm điểm đối tượng quản lý gọi trường 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 tính qn tồ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 1.3 Các đặc trưng phương pháp sở liệu - Tính chia sẻ liệu: Dữ liệu 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 lưu chỗ 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 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 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 (cả đặt chỗ ghế khơng trùng nhau) - 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 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) xây đự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ị Cơ Sở Dữ Liệu (Data Base Management System) Để giải tốt vấn đề mà cách tổ chức CSDL đặt 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 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 người khai thác CSDL Hiện thị trường phần mềm có hệ quản trị CSDL hỗ trợ nhiều tiện ích như: MS Access, Visual Foxpro, SQL Server Oracle, … Mỗi hệ quản trị CSDL cài đặt dựa mơ hình liệu cụ thể Dù dựa mơ hình liệu nào, hệ quản trị CSDL phải hội đủ yếu tố sau: - Ngôn ngữ giao tiếp người sử dụng CSDL, bao gồm: Ngôn ngữ mô tả liệu: Để cho phép khai báo cấu trúc CSDL, khai báo mối liên hệ liệu quy tắc quản lý áp đặt lên liệu Ngơn ngữ thao tác liệu: Cho phép người sử dụng cập nhật liệu (thêm/sửa/xố) Ngơn ngữ truy vấn liệu: Cho phép người khai thác sử dụng để truy vấn thông tin cần thiết CƠ Sở Dữ LIệU Ngôn ngữ quản lý liệu: Cho phép người quản trị hệ thống thay đổi cấu trúc bảng liệu, 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: Dùng để mô tả ánh xạ liên kết, ghi nhận thành phần cấu trúc CSDL, chương trình ứng dụng, mật mã, quyền hạn sử dụng,… -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 thường sử dụng: thứ nhất: cấp quyền ưu tiên cho người sử dụng; thứ hai: Đánh dấu yêu cầu truy xuất liệu, phân chia thời gian, người có yê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 Điều thực sau thời gian định hệ quản trị CSDL tự động tạo CSDL, cách tốn kém, CSDL lớn -Hệ quản trị CSDL phải cung cấp giao diện thân thiện, dễ sử dụng 1.6 Các Ứng Dụng Của Cơ Sở Dữ 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,… Các mơ hình liệu Mơ hình liệu trừu tượng hố mơi trường thực Mỗi loại mơ hình liệu đặc trưng cho cách tiếp cận liệu khác nhà phân tích thiết kế CSDL Mỗi loại mơ hình liệu có ưu điểm mặt hạn chế nó, có mơ hình liệu trội nhiều người quan tâm nghiên cứu Sau điểm qua lịch sử phát triển mơ hình liệu Vào năm sáu mươi, hệ CSDL đời dạng mơ hình thực thể kết hợp, mơ hình mạng mơ hình phân cấp Vào năm bảy mươi, hệ thứ hai CSDL đời Đó mơ hình liệu quan hệ EF Codd phát minh Mơ hình có cấu trúc logic chặt chẽ Đây mơ hình sử dụng rộng khắp công tác quản lý phạm vi tồn cầu Việc nghiên cứu mơ hình liệu quan hệ nhằm vào lý thuyết chuẩn hoá quan hệ công cụ quan trọng việc phân tích thiết kế hệ CSDL Mục đích nghiên cứu nhằm bỏ phần tử khơng bình thường quan hệ thực phép cập nhật, loại bỏ phần tử dư thừa Sang thập kỷ tám mươi, mơ hình CSDL thứ ba đời, mơ hình sở liệu hướng đối tượng, mơ hình sở liệu phân tán, mơ hình sở liệu suy diễn,… Trong phần sau đây, trình bày mơ hình liệu tiêu biểu để thiết kế (bước đầu) ứng dụng tin học mơ hình thực thể kết hợp Trong chương cịn lại giáo trình chúng tơi trình bày mơ hình liệu quan hệ Mơ hình thực thể kết hợp Hiện mơ hình liệu quan hệ thường dùng hệ quản trị CSDL, mơ hình liệu mức vật lý Để thành lập mơ hình này, thường phải dùng mơ hình liệu mức quan niệm để đặc tả, mơ hình dạng mơ hình thực thể kết hợp (sau dùng số quy tắc để chuyển hệ thống từ mơ hình mơ hình liệu quan hệ – quy tắc nói đến mục 2.2) Sau khái niệm mơ hình thực thể kết hợp 3.1 Thực Thể (entity) Thực thể vật tồn phân biệt được, chẳng hạn sinh viên Nguyễn Văn Thành, lớp Cao Đẳng Tin Học 2A, môn học Cơ Sở Dữ Liệu, xe máy có biển số đăng ký 52-0549,… ví dụ thực thể 3.2 Thuộc tính (attribute) Các đặc điểm riêng thực thể gọi thuộc tính Chẳng hạn thuộc tính sinh viên Nguyễn Văn Thành là:mã số, sinh viên, giới tính, ngày sinh, hộ thường trú, lớp theo học, … (Trong giáo trình này, tên thuộc tính viết chữ in hoa) 3.3.Loại thực thể (entity type) Là tập hợp thực thể có thuộc tính Mỗi loại thực thể phải đặt tên cho có ý nghĩa Một loại thực thể biểu diễn hình chữ nhật Ví dụ sinh viên có mã sinh viên ““02CĐTH019”, “02CĐTH519”, “02TCTH465”,… nhóm lại thành loại thực thể, đặt tên Sinhvien chẳng hạn Tương tự ứng dụng quản lý điểm sinh viên (sẽ trình bày sau đây) ta có loại thực thể Monhoc, Lop, Khoa,…(Trong giáo trình này, tên loại thực thể in hoa ký tự đầu tiên, ký tự cịn lại viết thường) 3.4.Khố (key) Khố loại thực thể E hay tập thuộc tính E dùng để phân biệt hai thực thể E Ví dụ khố loại thực thể Sinhvien MASV, Lớp MALOP, Khoa MAKHOA, Monhoc MAMH,… Cần ý biểu diễn hệ thống mơ hình thực thể kết hợp tên loại thực thể phải khác Trong danh sách thuộc tính loại thực thể tập thuộc tính khố thường gạch liền nét Nếu hệ thống có nhiều loại thực thể, để đơn giản hố mơ hình, người ta nêu tên loại thực thể; cịn thuộc tính loại thực thể liệt kê riêng Ví dụ 1.1: Bài tốn quản lý điểm sinh viên phát biểu sơ sau: Mỗi sinh viên cần quản lý thông tin như: họ tên (HOTENSV),ngày tháng 10 năm sinh(NGAYSINH), giới tính (NU), nơi sinh(NƠISINH), hộ thường trú (TINH) Mỗi sinh viên cấp mã số sinh viên (MASV) để phân biệt với sinh viên khác trường, sinh viên thuộc lớp Mỗi lớp học có mã số lớp (MALOP) để phân biệt với tất lớp học khác trường: có tên gọi (TENLOP) lớp, lớp thuộc khoa Mỗi khoa có tên gọi (TENKHOA) mã số (MAKHOA) phân biệt với khoa khác Mỗi mơn học có tên gọi (TENMH) cụ thể, học số đơn vị học trình (DONVIHT) )và ứng với môn học mã số (MAMH) để phân biệt với môn học khác Mỗi giảng viên cần quản lý thông tin: họ tên(HOTENGV), cấp học vị (HOCVI), thuộc chuyên ngành (CHUYENNGANH) gán cho mã số gọi mã giảng viên(MAGV) để phân biệt với giảng viên khác Mỗi giảng viên dạy nhiều môn nhiều khoa, thuộc quản lý hành khoa Mỗi sinh viên với môn học phép thi tối đa lần, lần thi (LANTHI), điểm thi (DIEMTHI) Mỗi môn học lớp học phân công cho giảng viên dạy (tất nhiên giảng viên dạy nhiều mơn lớp) Với tốn loại thực thể cần quản lý như: Sinhviên, Mơnhọc, Khoa, Lớp, Giảngviên Ví dụ với loại thực thể Sinhviên cần quản lý thuộc tính như: MASV,HOTENSV, NGAYSINH,… ta biểu diễn sau: 11 3.5.Mối kết hợp (relationship) Mối kết hợp diễn tả liên hệ loại thực thể ứng dụng tin học Ví dụ mối kết hợp hai loại thực thể Sinhviên Lop, mối kết hợp Sinhviên với Mônhọc, Mối kết hợp biểu diễn hình elip hai bên hai nhánh gắn kết với loại thực thể (hoặc mối kết hợp) liên quan, tên mối kết hợp thường là: thuộc, gồm , chứa, Chẳng hạn hai loại thực thể Lớp Khoa có mối kết hợp “thuộc” sau: Bản số mối kết hợp: Bản số nhánh R mối kết hợp thể số lượng thực thể thuộc thực thể nhánh “bên kia” có liên hệ với thực thể nhánh R Mỗi số cặp số (min,max), số lượng tối thiểu số lượng tối đa thực thể tham gia vào mối kết hợp Ví dụ: Có nghĩa là: “mỗi sinh viên thuộc lớp nên số bên nhánh Sinhviên (1,1), lớp có đến n sinh viên nên số bên nhánh Lop (1,n)” Trong số trường hợp đặc biệt, mối kết hợp có thuộc tính kèm chúng thường đặt tên ý với nghĩa đầy đủ Ví dụ hai loại thực thể Monhoc Sinhvien có mối kết hợp ketqua với ý nghĩa: “mỗi sinh viên ứng với lần thi môn học có 12 kết điểm thi nhất” Khoá mối kết hợp: hợp khoá loại thực thể liên quan Chẳng hạn thuộc tính MAGV khố loại thực thể Giangvien, MALOP thuộc tính khố loại thực thể Lop, MAMH thuộc tính khố loại thực thể Monhoc, mối kết hợp phancong (giữa loại thực thể Giangvien,Lop,Monhoc) có khố {MAGV,MAMH,MALOP} - phancong mối kết hợp ngơi (Trong giáo trình này, tên mối kết hợp viết toàn chữ thường) Việc thành lập mơ hình thực thể kết hợp cho ứng dụng tin học tiến hành theo bước sau: b1.Xác định danh sách loại thực thể b2.Xác định mối kết hợp loại thực thể để phác thảo mơ hình b3.Lập số mối kết hợp Để kết thúc chương này, chúng tơi lập mơ hình thực thể kết hợp cho toán quản lý điểm sinh viên nêu ví dụ 1.1 13 Ví dụ 1.2: BÀI TẬP Dựa vào phân tích sơ đây, lập mơ hình thực thể kết hợp (gồm loại thực thể, mối kết hợp, số, thuộc tính loại thực thể, khoá loại thực thể ) cho toán quản lý sau: Bài QUẢN LÝ SỐ LƯỢNG NGÀY CÔNG CỦA CÁC NHÂN VIÊN Để quản lý việc phân công nhân viên tham gia vào xây dựng cơng trình Cơng ty xây dựng ABC tổ chức quản lý sau: Cùng lúc công ty tham gia xây dựng nhiều cơng trình, cơng trình có mã số cơng trình (MACT), mã số cơng trình xác định thơng tin như: Tên gọi cơng trình (TENCT), địa điểm(ĐIAĐIEM), ngày cơng trình cấp giấy phép xây dựng (NGAYCAPGP), ngày khởi cơng (NGAYKC), ngày hồn thành (NGAYHT) Mỗi nhân viên cơng ty ABC có mã số nhân viên(MANV) nhất, mã số nhân viên xác định thông tin như: Họ tên (HOTEN), ngày sinh(NGSINH), phái (PHAI), địa (ĐIACHI), phịng ban, … Cơng ty phân cơng nhân viên tham gia vào cơng trình, cơng trình phân cho nhiều nhân viên nhân viên lúc tham 14 gia vào nhiều cơng trình Với cơng trình nhân viên có số lượng ngày cơng (SLNGAYCONG) tham gia vào cơng trình Cơng ty có nhiều phịng ban(Phịng kế tốn, phịng kinh doanh, phịng kỹ thuật, phịng tổ chức, phịng chun mơn, Phịng phục vụ,…) Mỗi phịng ban có mã số phịng ban(MAPB) nhất, phòng ban ứng với tên phòng ban(TENPB) Bài QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN Một thư viện tổ chức việc cho mượn sách sau: Mỗi sách đánh mã sách (MASH) dùng để phân biệt với sách khác (giả sử tác phẩm có nhiều giống có nhiều tập xem có mã sách khác nhau), mã sách xác định thông tin khác : tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất (NHAXB), năm xuất (NAMXB) Mỗi độc giả thư viện cấp cho thẻ thư viện, có ghi rõ mã độc giả (MAĐG), với thông tin khác như: họ tên (HOTEN), ngày sinh (NGAYSINH), địa (ĐIACHI), nghề nghiệp(NGHENGHIEP) Cứ lượt mượn sách, độc giả phải đăng ký sách cần mượn vào phiếu mượn, phiếu mượn có số phiếu mượn (SOPM) khác nhau, phiếu mượn xác định thông tin như: ngày mượn sách (NGAYMUON), mã độc giả Các sách phiếu mượn không thiết phải trả lần Mỗi sách thuộc nhiều phiếu mượn khác (tất nhiên thời điểm khác nhau) Bài QUẢN LÝ LỊCH DẠY CỦA GIÁO VIÊN Để quản lý lịch dạy giáo viên lịch học lớp, trường tổ chức sau: Mỗi giáo viên có mã số giáo viên (MAGV) nhất, MAGV xác định thông tin như: họ tên giáo viên (HOTEN), số điện thoại (DTGV) Mỗi giáo viên dạy nhiều mơn cho nhiều khoa thuộc 15 quản lý hành chánh khoa Mỗi mơn học có mã số mơn học (MAMH) nhất, môn học xác định tên môn học(TENMH) Ứng với lớp mơn học phân cho giáo viên Mỗi phịng học có số phịng học (PHONG) nhất, phịng có chức (CHUCNANG); chẳng hạn phòng lý thuyết, phòng thực hành máy tính, phịng nghe nhìn, xưởng thực tập khí,… Mỗi khoa có mã khoa (MAKHOA) nhất, khoa xác định thông tin như: tên khoa (TENKHOA), điện thoại khoa(DTKHOA) Mỗi lớp có mã lớp (MALOP) nhất, lớp có tên lớp (TENLOP), sĩ số lớp (SISO) Mỗi lớp học nhiều mơn nhiều khoa thuộc quản lý hành khoa Hàng tuần, giáo viên phải lập lịch báo giảng cho biết giáo viên dạy lớp nào, ngày (NGAYDAY), mơn gì?, phòng nào, từ tiết (TUTIET) đến tiết (ĐENTIET),tựa đề dạy (BAIDAY), ghi (GHICHU) tiết dạy này, dạy lý thuyết (LYTHUYET) hay thực hành - giả sử LYTHUYET=1 dạy thực hành LYTHUYET=2 lý thuyết, ngày có 16 tiết, sáng từ tiết đến tiết 6, chiều từ tiết đến tiết 12, tối từ tiết 13 đến 16 Một số yêu cầu hệ thống như:: Lập lịch dạy tuần giáo viên Tổng số dạy giáo viên theo môn cho lớp, … Bài QUẢN LÝ HỌC VIÊN Ở MỘT TRUNG TÂM TIN HỌC Trung tâm tin học KTCT thường xuyên mở lớp tin học ngắn hạn dài hạn Mỗi lớp ngắn hạn có nhiều mơn học (chẳng hạn lớp Tin học văn phịng có mơn : Word, Power Point, Excel, cịn lớp lập trình Pascal học mơn Pascal) Các lớp dài hạn (chẳng hạn lớp kỹ thuật viên đồ hoạ đa truyền thông, lớp kỹ thuật viên lập trình, lớp kỹ thuật viên phần cứng mạng,… ) học nhiều học phần học phần có nhiều mơn học Mỗi học viên có mã học viên(MAHV) thuộc lớp (nếu học viên lúc học nhiều lớp ứng với lớp, học viên có MAHV khác nhau) Mỗi học viên xác định họ tên 16 (HOTEN), ngày sinh (NGAYSINH),nơi sinh (NOISINH), phái nam hay nữ (PHAI), nghề nghiệp (NGHENGHIEP) - nghề nghiệp SINH VIÊN, GIÁO VIÊN, KỸ SƯ, HỌC SINH, BN BÁN,…Trung tâm KTCT có nhiều lớp, lớp có mã lớp (MALOP), lớp xác định thơng tin: tên lớp (TENLOP), thời khố biểu, ngày khai giảng (NGAYKG), học phí (HOCPHI) Chú ý thời điểm, trung tâm mở nhiều lớp cho chương trình học Với lớp dài hạn ngày khai giảng xem ngày bắt đầu học phần HỌC PHÍ học phí học phần, với lớp ngắn hạn HỌC PHÍ học phí tồn khố học Trung tâm có nhiều mơn học, mơn học có mã môn học (MAMH) nhất, môn học xác định tên môn học(TENMH), số tiết lý thuyết (SOTIETLT), số tiết thực hành (SOTIETTH) Mỗi học viên ứng với mơn học có điểm thi(DIEMTHI) Mỗi lần đóng học phí, học viên trung tâm giao cho phiếu biên lai thu tiền, biên lai có số biên lai để quản lý Một số yêu cầu hệ thống như::Lập danh sách học viên khai giảng khố ngày Lập danh sách học viên lớp ? Cho biết số lượng học viên lớp khai giảng khố ngày ? Bài QUẢN LÝ COI THI TUYỂN SINH Một hội đồng coi thi tuyển sinh có nhiều điểm thi, điểm thi đặt trường Các điểm thi (DIEMTHISO) đánh số điểm thi số 1, điểm thi số 2, điểm thi số 3,…Mỗi điểm thi xác định địa (DIACHIDIEMTHI) Ví dụ: điểm thi số 1, đặt trường PTTH Nguyễn Thị Minh Khai, điểm thi số đặt trường PTTH Bùi Thị Xn,…Mỗi thí sinh có số báo danh (SOBD) nhất, số báo danh xác định thông tin: họ tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), hộ thường trú (TINH), đối tượng dự thi (DOITUONG), ngành đăng ký thi, khu vực thí sinh (KHUVUC), số hiệu phịng thi Ví dụ: thí sinh Vũ Mạnh Cường, có số báo danh 17 02978, sinh ngày 12/12/1984, phái nam, hộ thường trú Chợ Gạo Tiền Giang, thuộc khu vực 1, đối tượng 5B, đăng ký dự thi vào ngành có mã ngành 01, thi phịng thi 0178, điểm thi số Mỗi ngành có mã ngành (MANGANH) nhất, mã ngành xác định tên ngành (TENNGANH) Mỗi điểm thi có nhiều phịng thi – phòng thi (PHONGTHI) đánh số khác tất điểm thi Trong phòng thi, danh sách thí sinh xếp theo thứ tự alphabet (do phịng thi có thí sinh nhiều ngành khác nhau) Mỗi phịng thi có thêm cột ghi (GHICHU) - ghi thêm thơng tin cần thiết phịng thi nằm dãy nhà Ví dụ phịng thi 0060 nằm dãy nhà H lầu - điểm thi số - trường PTTH Bùi Thị Xn Mỗi mơn thi có mã môn thi (MAMT), mã môn thi biết thông tin : tên môn thi (TENMT), ngày thi (NGAYTHI), buổi thi (BUOITHI), thời gian làm thi tính phút (PHUT) Thời gian làm thi môn tối thiểu 90 phút tối đa 180 phút (tuỳ theo kỳ tuyển sinh công nhân, trung cấp, cao đẳng hay đại học) Mỗi ngành có mã ngành, chẳng hạn ngành Cơng Nghệ Thơng Tin có mã ngành 1, ngành Cơng Nghệ Hố Thực Phẩm có mã ngành 10,… Mỗi đơn vị có cán tham gia vào kỳ thi có mã đơn vị (MADONVI), mã đơn vị xác định tên đơn vị (TENDONVI) Nếu cán bộ, cơng nhân viên trường đơn vị khoa/phịng quản lý cán đó, giáo viên từ trường khác ghi rõ tên đơn vị Chẳng hạn cán Nguyễn Thanh Liêm đơn vị Khoa Công Nghệ Thông Tin, cán coi thi Nguyễn Thị Tuyết Mai, đơn vị trường PTTH Ngôi Sao - Quận 1,… Mỗi cán coi thi làm việc điểm thi Mỗi cán có mã số (MACANBO), MACANBO xác định thông tin khác : họ tên (HOTENCB), đơn vị công tác, chức vụ (CHUCVU) phân công điểm thi, chẳng hạn chức vụ điểm trưởng, điểm phó, giám sát, thư ký, cán coi thi, phục vụ,… Ví dụ cán Nguyen Van Thanh đơn vị Khoa Công Nghệ Thông Tin, làm nhiệm vụ thi điểm thi số 1, chức vụ giám sát phòng 18 thi 19 ĐÁNH GIÁ KẾT QUẢ HỌC TẬP Kết TT Cách thức Tiêu chí đánh giá phương pháp đánh giá I Kiến thức II III Kỹ Thái độ Điểm tối đa thực người học 0,5 Cộng: KẾT QUẢ HỌC TẬP Kết thực Tiêu chí đánh giá Kiến thức Kỹ Thái độ 10 đ Hệ số 0,3 0,5 0,2 Cộn g: 20 Kết qủa học tập Chương MƠ HÌNH DỮ LIỆU QUAN HỆ Mã chương MH16-02 Giới thiệu: Mục tiêu: Trình bày cụ thể mơ hình liệu quan hệ, khái niệm, sở lý thuyết mơ hình liệu quan hệ (đại số quan hệ); Áp dụng quy tắc chuyển đổi từ mô hình ERD sang mơ hình liệu quan hệ (ở dạng lược đồ) Thực thao tác an toàn với máy tính Nội dung: Một số khái niệm 1.1 Thuộc tính Thuộc tính đặc điểm riêng đối tượng (đối tượng hiểu loại thực thể mơ hình thực thể kết hợp), thuộc tính có tên gọi phải thuộc kiểu liệu định Kiểu liệu (data type): Các thuộc tính phân biệt qua tên gọi phải thuộc kiểu liệu định (số, chuỗi, ngày tháng, logic, hình ảnh, …) Kiểu liệu kiểu vơ hướng kiểu có cấu trúc Nếu thuộc tính có kiểu liệu vơ hướng gọi thuộc tính đơn hay thuộc tính nguyên tố, thuộc tính có kiểu liệu có cấu trúc ta nói khơng phải thuộc tính nguyên tố Chẳng hạn với sinh viên Nguyễn Văn Thành thuộc tính họ tên, mã số sinh viên thuộc kiểu chuỗi, thuộc tính ngày sinh thuộc kiểu ngày tháng, hộ thường trú kiểu chuỗi, thuộc tính hình ảnh kiểu hình ảnh,… Miền giá trị (domain of values): Thơng thường thuộc tính chọn lấy giá trị tập kiểu liệu tập hợp gọi miền 21 giá trị thuộc tính Chẳng hạn thuộc tính NỮ có miền giá trị {nam,nữ}, thuộc tính màu da có miền giá trị {da trắng, da vàng, da đen, da đỏ}, thuộc tính điểm thi số thuộc tập {0; 1; 2;…,10] Lưu ý không lưu ý đến ngữ nghĩa tên thuộc tính thường ký hiệu chữ in hoa bảng chữ la tinh: A,B,C,D,… Những chữ in hoa X,Y,Z,W,… thường dùng thay cho nhóm nhiều thuộc tính Đơi cịn dùng ký hiệu chữ với số A1,A2,…,An để thuộc tính trường hợp tổng quát hay muốn đề cập đến số lượng thuộc tính Tên thuộc tính phải đặt cách gợi nhớ, khơng nên đặt tên thuộc tính q dài (vì làm cho việc viết câu lệnh truy vấn trở nên vất vả hơn), không nên đặt tên thuộc tính q ngắn (vì khơng cho thấy ngữ nghĩa thuộc tính), đặc biệt khơng đặt trùng tên hai thuộc tính mang ngữ nghĩa khác thuộc hai đối tượng khác Trong nhiều hệ quản trị sở liệu, người ta thường đưa thêm vào miền giá trị thuộc tính giá trị đặc biệt gọi giá trị rỗng (NULL) Tuỳ theo ngữ cảnh mà giá trị đặc trưng cho giá trị xác định giá trị chưa xác định vào thời điểm nhập tin xác định vào thời điểm khác 1.2 Lược Đồ Quan Hệ (relation schema) Tập tất thuộc tính cần quản lý đối tượng với mối liên hệ chúng gọi lược đồ quan hệ Lược đồ quan hệ Q với tập thuộc tính {A1,A2, ,An} viết Q(A1,A2, ,An), ký hiệu: + Q ={A ,A , ,A } n Chẳng hạn lược đồ quan hệ Sinhviên với thuộc tính liệt kê ví dụ 1.1 viết sau: Sinhvien(MASV, HOTENSV, NU, 22 NGAYSINH, NOISINH,TINH, MALOP) Thường thành lập lược đồ quan hệ, người thiết kế gắn cho ý nghĩa định, gọi tân từ lược đồ quan hệ chẳng hạn tân từ lược đồ quan hệ Sinhvien là: ”Mỗi sinh viên có MASV Mỗi MASV xác định thuộc tính cịn lại sinh viên HOTENSV,NU, NGAYSINH, NOISINH,TINH,MALOP” Khi phát biểu tân từ cho lược đồ quan hệ, người thiết kế cần phải mô tả đầy đủ ý nghĩa để người khác tránh hiểu nhầm Dựa vào tân từ này, người ta xác định tập khoá, siêu khoá lược đồ quan hệ (sẽ trình bày mục kế tiếp) Nhiều lược đồ quan hệ nằm hệ thống thông tin gọi lược đồ sở liệu Khái niệm lược đồ quan hệ ứng với khái niệm loại thực thể mơ hình thực thể kết hợp 1.3.Quan Hệ (relation) Sự thể lược đồ quan hệ thời điểm gọi quan hệ, rõ ràng lược đồ quan hệ xác định nhiều quan hệ Thường ta dùng ký hiệu R,S,Q để lược đồ quan hệ, quan hệ thường dùng ký hiệu r, s,q,… Về trực quan quan hệ (hay bảng quan hệ) bảng hai chiều gồm dòng cột Một quan hệ có n thuộc tính gọi quan hệ n Để quan hệ r xác định lược đồ quan hệ Q ta viết r(Q) 1.4 Bộ (Tuple) Mỗi thông tin đối tượng thuộc quan hệ, gọi mẫu tin Thường người ta dùng chữ thường (như t,…) để biểu diễn quan hệ 23 Chuyển mô hình thực thể kết hợp sang mơ hình liệu quan hệ Sau số quy tắc sử dụng việc chuyển đổi mơ hình thực thể kết hợp sang mơ hình liệu quan hệ Quy tắc 1: Chuyển đổi loại thực thể thành lược đồ quan hệ, thuộc tính loại thực thể thành thuộc tính lược đồ quan hệ, thuộc tính khố loại thực thể thuộc tính khoá lược đồ quan hệ Chẳng hạn loại thực thể Sinhvien ví dụ 1.2 áp dụng quy tắc chuyển thành lược đồ quan hệ Sinhvien sau: Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH,….) Quy tắc 2: Nếu mối kết hợp mà hai nhánh có số max n mối kết hợp chuyển thành lược đồ quan hệ K’ gồm thuộc tính mối kết hợp K, cộng thêm thuộc tính khố hai lược đồ quan hệ A, B tương ứng với hai thực thể tham gia vào mối kết hợp Khoá lược đồ quan hệ K’ gồm hai khoá hai lược đồ quan hệ A B Chẳng hạn mối kết hợp Phancong ba loại thực thể Giangvien, Monhoc Lop chuyển thành lược đồ quan hệ Phancong có tập khố {MAGV,MAMH,MALOP} sau: Phancong(MAGV,MAMH,MAL OP) Quy tắc 3: Mối kết hợp mà nhánh có số n (nhánh B) nhánh cịn lại có số max (nhánh A) loại bỏ mối kết hợp khỏi mơ hình thực thể kết hợp thêm thuộc tính khố lược đồ tương ứng với loại thực thể nhánh B vào lược đồ tương ứng với loại thực thể nhánh A (khoá B thành khoá ngoại A) Nếu mối kết hợp có thuộc tính thuộc tính thêm vào lược đồ quan hệ tương ứng với loại thực thể 24 nhánh A Chẳng hạn mối kết hợp thuộc hai loại thực thể Sinhvien Lop nên lược đồ quan hệ Sinhvien sửa thành sau: Sinhvien(MASV,HOTENSV,NU,NGAYSINH, TINH,MALOP) Quy tắc 4: Nếu mối kết hợp mà hai nhánh có số max áp dụng quy tắc cho hai nhánh tuỳ chọn Ví dụ 2.1: Sau mơ hình liệu quan hệ chuyển từ mơ hình thực thể kết hợp ví dụ 1.2 Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP) Lop(MALOP,TENLOP,MAKHOA) Khoa(MAKHOA,TENKHOA) Monhoc(MA MH,TENMH,DONVIHT) Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) Ketqua(MASV, MAMH, LANTHI,DIEMTHI) Phancong(MALOP,MAMH, MAGV) Ngôn ngữ đại số quan hệ 3.1 Phép Hợp quan hệ(Union) Ta nói hai quan hệ r1 r2 tương thích chúng định nghĩa lược đồ quan hệ Cho hai quan hệ tương thích r r Hợp hai quan hệ r r 2 ký hiệu r1 + r2 quan hệ lược đồ quan hệ Q gồm phần tử thuộc r thuộc r , tức là: r + r = {t / t ¿ r t ¿ r} 2 25 Ví dụ 2.2 Khi đó, nội dung quan hệ r1 + r2 là: Do thứ tự trước/sau quan hệ khơng quan trọng nên ta có: - r , r r + r = r + r 2 r r + r = r Một cách tổng quát lấy hợp n quan hệ tương thích: cho n quan hệ tương thích r1,r2,…,rn Hợp n quan hệ r1,r2,…,rn quan hệ r1 + r2+ …+ rn gồm phần tử thuộc r1 thuộc r2 … thuộc rn 3.2 Phép Giao quan hệ (Intersection) Cho lược đồ quan hệ Q(A1,A2, ,An ) r1 r2 hai quan hệ tương thích Q Giao hai quan hệ r1 r2 ký hiệu r1 * r2 quan hệ Q gồm phần tử vừa thuộc r1 vừa thuộc r2 Vậy: r * r = { t / t ¿ r t ¿ r } 2 Chẳng hạn với ví dụ 2.2 r1 * r2 là: 26 3.3.Phép Trừ quan hệ (Minus) Cho hai quan hệ tương thích r1 r2 có tập thuộc tính Q(A1,A2, ,An) Hiệu r1 cho r2 ký hiệu r1 – r2 quan hệ Q gồm phần tử thuộc r1 mà không thuộc r2, nghĩa r1 - r2 = {t ¿ r1 t ¿ r2} Chẳng hạn với ví dụ 2.2 r1 - r2 là: 3.4.Tích Decac quan hệ (Cartesian Product) Cho hai lược đồ quan hệ Q1(A1,A2, ,An), Q2(B1,B2, ,Bm) Giả sử r1, r2 hai quan hệ Q1,Q2 tương ứng Tích Descartes (decac) r r ký hiệu r x r quan hệ lược đồ quan hệ có tập thuộc tính Q= Q1 ∪ Q2 Vậy quan hệ r x r quan hệ lược đồ: Q = Q 1 {A1,A2, ,An,B1,B2, ,Bm } với r1 x r2 = {(t1,t2) : t1 Ví dụ 2.3 cho r1 r2 27 ¿ ∪ Q2 = r1 ,t2 ¿ r2 } Thì kết r1 x r2 sau: 3.5.phép chia quan hệ: Cho lược đồ quan hệ Q1(A1,A2, ,An), Q2(B1,B2, ,Bm), r quan hệ xác định Q1; s quan hệ xác định Q2 (n>m s khác rỗng), có m thuộc tính chung (giống mặt ngữ nghĩa, thuộc tính so sánh được) r s phép chia quan hệ r s ký hiệu r ÷ s , quan hệ q có n - m thuộc tính định nghĩa sau: q= r ÷ s={t/ ∀ u ¿ s, (t,u) r} ¿ Ví dụ 2.4: 3.6.Phép Chiếu (projection) Cho lược đồ quan hệ Q(A1,A2, ,An), r quan hệ Q X 28 ¿ + Q Phép chiếu r lên tập thuộc tính X, ký hiệu r[X] (hoặc r.X) tạo thành lược đồ quan hệ r’, tập thuộc tính r’ X quan hệ r’ trích từ r cách lấy thuộc tính có X Phép chiếu phép rút trích liệu theo cột Chẳng hạn với r1 ví dụ 2.2 ta có quan hệ r1 chiếu lên X={A,C} là: 3.7.Phép Chọn (Selection) Cho lược đồ quan hệ Q(A1,A2, ,An), r quan hệ lược đồ quan hệ Q X tập Q + E mệnh đề logic phát biểu tập X Phần tử t ¿ r thoả mãn điều kiện E ký hiệu t(E) Phép chọn từ quan hệ r theo điều kiện E (ký hiệu r : E )sẽ tạo thành quan hệ ký hiệu r(E), r(E) = {t: t ¿ r t(E)} Phép chọn phép rút trích liệu theo dịng Chẳng hạn với r2 ví dụ 2.3 điều kiện E là: “F >= 6” kết r2(E) hay r2: “F >= 6” có nội dung 3.8 Phép - kết Cho hai lược đồ quan hệ Q Q sau: Q (A A ,A ) 1, 2, n Q (B B ,B ); r s hai quan hệ Q Q 1, 2, m Ai Bj thuộc tính Q1, Q2 cho MGT(AI)= MGT(BJ) θ 29 phép so sánh (=, , ≤ , ≥, ≠ ) MGT(AI) Ai θ Bj kết r s theo Phép θ điều kiện Ai Bj ký hiệu r |>=” Ta 3.9.Phép Kết Tự Nhiên (natural join) Nếu θ sử dụng phép kết phép so sánh (=) gọi phép kết Hơn AI ≡ Bj phép kết gọi phép kết tự nhiên Phép kết tự nhiên phép kết thường dùng thực tế 30 Ngơn ngữ với phép tốn gọi ngôn ngữ đại số quan hệ Sau ví dụ ngơn ngữ đại số quan hệ Ví dụ 2.6 Cho lược đồ CSDL dùng để quản lý điểm sinh viên mơ tả ví dụ 2.1 Hãy thực yêu cầu sau ngôn ngữ đại số quan hệ: 1.Lập danh sách sinh viên lớp có mã lớp CDTH2A, danh sách cần MASV,HOTENSV 2.Lập danh sách sinh viên nữ có mã khoa “CNTT”, danh sách cần MASV, HOTENSV 3.Lập bảng điểm thi lần tất môn cho sinh viên lớp CDTH2A, danh sách cần MASV, HOTENSV, TENMH, DIEMTHI 4.Lập phiếu điểm thi lần môn cho sinh viên có MASV=”00CDTH189” danh sách cần MAMH,TENMH, DONVIHT, DIEMTHI Giải: 31 BÀI TẬP Hãy lập mơ hình liệu quan hệ cho toán quản lý 1.1, 1.2, 2.1 1.3,1.4, 1.5 Hãy xác định khoá cho lược đồ cho toán Cho lược đồ sở liệu 2.2 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) Thực yêu cầu sau ngôn ngữ đại số quan hệ: a.Lập danh sách sinh viên có hộ thường trú tỉnh “LONG AN”, danh sách cần thông tin: MASV, HOTENSV, NGAYSINH, TENLOP b.Lập danh sách sinh viên lớp có MALOP CDTH2A, danh sách cần thông tin: MASV, HOTENSV, NGAYSINH, TINH c.Lập danh sách giảng viên có cấp học vị THAC SY khoa có MAKHOA “CNTT”, danh sách cần: MAGV,HOTENGV, CHUYENNGANH d.Lập bảng điểm thi lần môn học “869” cho tất sinh viên thuộc hai lớp có MALOP “CĐTH2A” “CĐTH2B”, danh sách cần: MASV,HOTENSV,DIEMTHI e.Lập danh sách giảng viên dạy lớp CĐTH2A, danh sách cần thông tin: MAGV, HOTENGV,TENKHOA,HOCVI,TENMH f.Lập danh sách môn mà lớp CDTH2A học, danh sách cần thông tin: MAMH,TENMH,DONVIHT,HOTENGV 32 g.Lập danh sách giảng viên dạy sinh viên có MASV “00CDTH189“, danh sách cần MAGV,HOTENGV,HOCVI,CHUYENNGANH,TENKHOA,TENMH h.Lập danh sách sinh viên có mã khoa “CNTT” có điểm thi lần mơn học “869” lớn 8, danh sách cần MASV, HOTENSV, DIEMTHI, TENLOP 33 ĐÁNH GIÁ KẾT QUẢ HỌC TẬP Kết TT Cách thức Tiêu chí đánh giá phương pháp đánh giá I Kiến thức II III Kỹ Thái độ Điểm tối đa thực người học 0,5 Cộng: KẾT QUẢ HỌC TẬP Kết thực Tiêu chí đánh giá Kiến thức Kỹ Thái độ 10 đ Hệ số 0,3 0,5 0,2 Cộn g: 34 Kết qủa học tập Chương NGÔN NGỮ TRUY VẤN DỮ LIỆU Giới thiệu: SQL( STRUCTURE QUERY LANGUAGE) ngôn ngữ truy vấn dựa đại số quan hệ Ngơn ngữ truy vấn SQL có tập lệnh phong phú dùng để thao tác sở liệu Chẳng hạn lệnh create để tạo bảng quan hệ, lệnh update để cập nhật liệu, lệnh delete để xoá liệu, lệnh insert để thêm liệu,… Trong chương này, nghiên cứu câu lệnh quan trọng SQL câu lệnh truy vấn liệu SELECT Kết lệnh select quan hệ, quan hệ kết kết xuất hình, máy in, thiết bị lưu trữ thông tin khác Mục tiêu: - Bài giúp sinh viên hiểu cách thức truy vấn liệu quan hệ, điển hình ngôn ngữ truy vấn SQL chuẩn, thực truy vấn liệu cài đặt - Thực thao tác an tồn với máy tính Nội dung: Mở đầu Vào năm 1970, SQL( STRUCTURE QUERY LANGUAGE ) lần đầu hãng IBM phát triển phận hệ quản trị CSDL mô hình quan hệ có tên SYSTEM R Sau vào năm 1980 IBM tiếp tục phát triển SQL cho hệ quản trị sở liệu tiếng SQL/DS hệ điều hành VM, DB2 hệ điều hành MVS, Hệ quản trị sở liệu mở rộng hệ điều hành IBM OS/2, Hệ quản trị sở liệu cho hệ thống IBM AS/400 Năm 1986 , Viện tiêu chuẩn quốc gia Hoa kỳ (ANSI – American National Standards Institute) Tổ chức Tiêu chuẩn Quốc tế (ISO – International Standards Organization) thừa nhận SQL ngôn ngữ chuẩn xử lý liệu Ngôn ngữ chuẩn ANSI SQL tiếp tục cập nhật vào 35 năm 1989 1992 sau Hiện phiên SQL3 phát triển SQL cài đặt cho hệ thống máy tính lớn (mainframe) máy tính cá nhân Bên cạnh sản phẩm hãng IBM, cần phải kể đến hệ quản trị sở liệu tiếng khác ORACLE Công ty Oracle, SQL Server hãng Microsoft, SQLBase hãng Sybase, Ingres hãng Relational Technologies, Mục đích chuẩn SQL Xác định cú pháp ngữ nghĩa ngôn ngữ SQL định nghĩa thao tác liệu Định nghĩa cấu trúc liệu phép toán để thiết kế, truy cập, lưu trữ, kiểm soát bảo vệ sở liệu SQL Cung cấp cơng cụ đảm bảo tính tương thích cấu trúc liệu modul ứng dụng hệ quản trị sở liệu Xác định chuẩn tối thiểu (Mức 1) chuẩn hoàn chỉnh (Mức 2), cho phép cấp độ sử dụng SQL khác sản phẩm Cung cấp chuẩn ban đầu, chưa hồn chỉnh, cho phép mở rộng chức xử lý vấn đề toàn vẹn tham chiếu, giao thức chuyển đổi, hàm người dùng, toán tử nối phép đẳng nối, hệ thống ký tự quốc gia, Một ngôn ngữ quan hệ chuẩn SQL mang lại lợi ích sau đây: Giảm thiểu chi phí đào tạo Các hệ quản trị sở liệu có chung ngơn ngữ chuẩn SQL làm giảm chi phí chuyển đổi từ hệ sang hệ khác. Nâng cao hiệu công việc Các chuyên gia hệ thống thông tin với kiến thức sâu sắc SQL nhanh chóng nắm bắt chương trình ứng dụng hệ quản trị sở liệu, họ quen thuộc với ngơn ngữ chương trình này. Tính khả chuyển ứng dụng Các ứng dụng dễ dàng sử dụng hệ thống khác nhau, sử dụng SQL. 36 Tăng tuổi thọ ứng dụng Một ngơn ngữ chuẩn có xu hướng tồn thời gian dài, điều làm giảm áp lực viết lại chương trình. Làm giảm phụ thuộc vào nhà cung cấp Vì SQL ngôn ngữ chung nên người dùng dễ dàng sử dụng nhiều sản phẩm nhà cung ứng khác nhau, với giá cạnh tranh. Khả giao tiếp hệ thống chéo hệ quản trị sở liệu quan hệ chương trình ứng dụng khác dễ dàng giao tiếp hợp tác để xử lý liệu thực chương trình người dùng. SQL ngơn ngữ có cấu trúc Trong câu lệnh SQL có số mệnh đề tuân theo cú pháp riêng Có loại lệnh SQL : - Các lệnh truy vấn liệu - Các lệnh định nghĩa liệu (DDL) - Các lệnh xử lý cập nhật liệu (DML) - Các lệnh kiểm soát liệu Kiểu liệu SQL có kiểu liệu sau INTEGER : Kiểu số nguyên byte -2 147 483 648 147 483 647 SMALLINT : Kiểu số nguyên byte - 32 768 32 767 DECIMAL(n,d) : Kiểu số thực độ dài n (kể dấu), số chữ số thập phân d FLOAT(n,d) : Kiểu số thực khoa học độ dài n, số chữ số thập phân d CHAR(n): Kiểu chuỗi ký tự độ dài n DATE : Kiểu ngày tháng (ngày/tháng/năm) LOGICAL : Kiểu lôgic, nhận giá trị true false VARCHAR(n) : Kiểu chuỗi ký tự độ dài thay đổi, tối đa n ký tự 37 LONGVARCHAR : Kiểu chuỗi ký tự độ dài thay đổi (chứa liệu ghi chú, ) Kiểu tiền tệ Kiểu hình ảnh Kiểu âm thanh… Cú pháp tổng quát: SELECT [DISTINCT] [AS ] [, ] | * FROM [] [, ] [INTO ] [WHERE [AND | OR ]] [GROUP BY [, ] [HAVING ]] [ORDER BY [ASC | DESC] [, ]] [UNION | INTERSECT | MINUS < câu truy vấn khác>] Các thành phần câu lệnh: + Biểu thức sau SELECT bao gồm : - Danh sách cột, kể biểu thức chứa cột, bảng khung nhìn khai báo sau FROM Các biểu thức ngăn cách dấu phảy (,) đổi tên tuỳ chọn AS - * ký tự đại diện tất thuộc tính bảng sau FROM - Các hàm tính tốn : COUNT, SUM, AVG, MIN, MAX + Biểu thức sau FROM gồm danh sách bảng quan hệ (có thể đặt bí danh) + INTO : Lưu bảng kết vào đĩa + Biểu thức sau WHERE bao gồm : - Các thuộc tính bảng quan hệ sau FROM - Các toán tử số học : +, - , * , / 38 - Các tốn tử so sánh, so sánh với ANY (giá trị tập hợp) ALL (tất giá trị tập hợp) - Các toán tử Boolean : AND, OR, NOT - Các toán tử tập hợp : UNION (hợp), INTERSECT (giao), MINUS (hiệu) - Các quan hệ bao hàm : IN ( ), NOT IN ( ), CONTAINS (chứa), DOES NOT CONTAIN (không chứa) - Điều kiện tồn : EXISTS (tồn tại), NOT EXIST (không tồn tại) - Câu vấn tin kiểu SELECT FROM WHERE Tìm thơng tin từ cột bảng – Mệnh đề Select Cú pháp: SELECT [DISTINCT] [AS ] [, ] | * FROM Công dụng: Xác định nội dung kết gồm cột liệt kê sau SELECT tất cột lấy từ Từ khoá DISTINCT dùng liệt kê giá trị tránh trùng lặp Từ khố AS dùng đặt bí danh + Ví dụ Cho lược đồ sở liệu khách hàng KHACH(TenKH, DiaChi, SoDu) HOPDONG(SoHD, TenKH, Hang, SoLuong) CUNGUNG(Ten, DiaChi, Hang, DonGia) - Trả ghi gồm tất cột bảng CUNGUNG SELECT * FROM CUNGUNG - Trả ghi gồm cột Hang, DonGia bảng CUNGUNG SELECT Hang, DonGia FROM CUNGUNG 39 SELECT DISTINCT Hang, DonGia FROM CUNGUNG - Trả ghi gồm cột Hang với giá trị bảng CUNGUNG SELECT DISTINCT Hang FROM CUNGUNG - Có thể cho hiển thị giá trị hằng, chẳng hạn SELECT “Mặt hàng”, Hang, “có đơn giá là”, DonGia FROM CUNGUNG Chọn dòng bảng – Mệnh đề Where Cú pháp: SELECT [DISTINCT] [AS ] [, ] | * FROM WHERE Công dụng: Trả ghi gồm cột liệt kê sau SELECT tất cột lấy từ gồm thoả mãn Ghi : Sau WHERE dùng mệnh đề : - BETWEEN AND : biểu diễn điều kiện - NOT BETWEEN AND : biểu diễn điều kiện < > - IN (, , ) : biểu diễn điều kiện giá trị , , - NOT IN (, , ) : biểu diễn điều kiện khác giá trị , , - [NOT] LIKE : biểu diễn điều kiện [không] giống 40 Trong dùng dấu % (dấu phần trăm) đại diện cho chuỗi ký tự _(dấu nối) đại diện cho ký tự - IS [NOT] NULL: biểu diễn điều kiện giá trị [khác] NULL + Ví dụ - Trả ghi gồm cột Ten, DiaChi có giá trị từ bảng CUNGUNG nhà cung ứng Đường Sữa SELECT DISTINCT Ten, DiaChi FROM CUNGUNG WHERE (Hang = ‘Đường’) OR (Hang = ‘Sữa’) SELECT DISTINCT Ten, DiaChi FROM CUNGUNG WHERE Hang IN (‘Đường’, ‘Sữa’ ) - Trả ghi gồm Ten, DiaChi khách hàng có SoDu khơng âm từ bảng KHACH SELECT Ten, DiaChi FROM KHACH WHERE SoDu >= - Trả ghi gồm hợp đồng có SoLuong từ 100 đến 200 từ bảng HOPDONG SELECT * FROM HOPDONG WHERE SoLuong BETWEEN 100 AND 200 - Trả ghi gồm nhà cung ứng có tên bắt đầu ‘Cty’ từ bảng CUNGUNG SELECT * FROM CUNGUNG 41 WHERE Ten LIKE ‘Cty %’ - Trả ghi gồm nhà cung ứng có mặt hàng ‘Bia’ từ bảng CUNGUNG SELECT * FROM CUNGUNG WHERE Hang LIKE ‘Bia %’ - Chọn khách hàng chưa có địa SELECT * FROM KHACH WHERE DiaChi IS NULL - Chọn khách hàng có số dư xác định : SELECT * FROM KHACH WHERE SoDu IS NOT NULL Sắp xếp dòng bảng – Mệnh đề Order by Cú pháp: SELECT [DISTINCT] [AS ] [, ] | * FROM ORDER BY [ASC | DESC] [, ] Công dụng: Trả ghi gồm cột liệt kê sau SELECT tất cột lấy từ gồm xếp theo biểu thức sau ORDER BY Ý nghĩa tham số : ASC : tăng dần (ngầm định) DESC: giảm dần + Ví dụ : - Cho biết danh sách khách hàng xếp theo TEN tăng dần : 42 SELECT * FROM KHACH ORDER BY Ten - Cho biết danh sách nhà cung ứng ‘Sữa’ xếp theo thứ tự DonGia giảm dần : SELECT * FROM CUNGUNG WHERE Hang = ‘Sữa’ ORDER BY DonGia DESC - Cho biết danh sách nhà cung ứng xếp theo thứ tự Ten Hang : SELECT * FROM CUNGUNG ORDER BY Ten, Hang Câu lệnh truy vấn lồng Cú pháp: SELECT [DISTINCT] [AS ] [, ] / * FROM [] [, ] [WHERE ] [ORDER BY [ASC / DESC] [, ]] Công dụng: Cho phép tạo điều kiện chứa quan hệ tập hợp số liệu tổng hợp Trong quan hệ tập hợp, câu truy vấn đặt ngoặc đơn Sử dụng toán tử so sánh : =, - Liệt kê khách hàng có số dư lớn nhất: SELECT Ten FROM KHACH WHERE Sodu = (SELECT MAX(Sodu) FROM KHACH) 43 - Liệt kê hãng cung ứng gạo có DonGia =200000 SELECT * FROM NHANVIEN WHERE Luong >= 200000 61 c) Cho xem danh sách gồm cột Mã đơn vị, họ tên, nhiệm vụ từ bảng nhân viên xếp theo mã đơn vị, đơn vị theo nhiệm vụ: SELECT MaDV, Hoten, NHVu FROM NHANVIEN ORDER BY MaDV, NHVu 62 Chương RÀNG BUỘC TOÀN VẸN Mã chương MH16-04 Giới thiệu: Ràng buộc toàn vẹn quy định, điều kiện từ ứng dụng thực tế Các điều kiện bất biến Vì vậy, ln phải đảm bảo sở liệu thỏa ràng buộc toàn vẹn sau thao tác làm thay đổi tình trạng sở liệu Mục tiêu: - Trình bày thuật ngữ ràng buộc, ràng buộc toàn vẹn, hiểu khái niệm ràng buộc toàn vẹn Nội dung: Ràng buộc toàn vẹn 1.1 Khái niệm ràng buộc toàn vẹn Trong CSDL tồn nhiều mối liên hệ thuộc tính, bộ; liên hệ xảy quan hệ quan hệ lược đồ CSDL Các mối liên hệ điều kiện bất biến mà tất quan hệ có liên quan CSDL phải thoả mãn thời điểm Những điều kiện bất biến gọi ràng buộc toàn vẹn Trong thực tế ràng buộc toàn vẹn quy tắc quản lý áp đặt đối tượng giới thực Chẳng hạn sinh viên phải có mã sinh viên nhất, hai thí sinh dự thi vào trường phải có số báo danh khác nhau, sinh viên dự thi môn học không lần,… Ràng buộc toàn vẹn điều kiện bất biến không vi phạm CSDL 1.2 Các yếu tố ràng buộc toàn vẹn: Mỗi ràng buộc tồn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng hành động phải cần thực phát có ràng buộc tồn vẹn bị vi phạm: 1.2.1 Điều kiện: 63 Điều kiện ràng buộc tồn vẹn mơ tả, biểu diễn hình thức nội dung Điều kiện ràng buộc tồn vẹn R biểu diễn ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn SQL,… điều kiện ràng buộc toàn vẹn biểu diễn phụ thuộc hàm Ví dụ sau số ràng buộc toàn vẹn lược đồ CSDL quản lý sinh viên - Mỗi lớp học phải có mã số để phân biệt với lớp học khác trường - Mỗi lớp học phải thuộc khoa trường - Mỗi sinh viên có mã số sinh viên nhất, không trùng với sinh viên trường - Mỗi học viên phải đăng ký vào lớp học trường Mỗi học viên thi tối đa lần cho môn học - Tổng số học viên lớp phải lớn số lượng đếm lớp thời điểm 1.2.2 Bối cảnh: Bối cảnh ràng buộc toàn vẹn quan hệ mà ràng buộc có hiệu lực hay nói cách khác, quan hệ cần phải kiểm tra tiến hành cập nhật liệu Bối cảnh ràng buộc tồn vẹn nhiều quan hệ Chẳng hạn với ràng buộc tồn vẹn R bối cảnh quan hệ Sinhvien 1.2.3 Bảng tầm ảnh hưởng Trong trình phân tích thiết kế CSDL, người phân tích cần lập bảng tầm ảnh hưởng cho ràng buộc toàn vẹn nhằm xác định thời điểm cần phải tiến hành kiểm tra tiến hành cập nhật liệu Thời điểm cần phải kiểm tra ràng buộc toàn vẹn thời điểm cập nhật liệu 64 Một bảng tầm ảnh hưởng ràng buộc toàn vẹn có dạng sau: Bảng chứa tồn ký hiệu + , – -(*) - Dấu + (dòng r1, cột Thêm) có nghĩa thêm vào quan hệ r1 RBTV bị vi phạm - Dấu - (dịng r2, cột Sửa) có nghĩa sửa quan hệ r2 RBTV khơng bị vi phạm Quy ước: - Khơng sửa thuộc tính khố - Nếu khơng bị vi phạm khơng phép sửa đổi ký hiệu -(*) 1.2.4 Hành động cần phải có phát có RBTV bị vi phạm: Khi ràng buộc tồn vẹn bị vi phạm, cần có hành động thích hợp Thơng thường có giải pháp: - Thứ nhất: Đưa thông báo yêu cầu sửa chữa liệu thuộc tính cho phù hợp với quy tắc đảm bảo tính quán liệu Thông báo phải đầy đủ phải thân thiện với người sử dụng Giải pháp phù hợp cho việc xử lý thời gian thực - Thứ hai:Từ chối thao tác cập nhật Giải pháp phù hợp việc xử lý theo lô Việc từ chối phải lưu lại thông báo đầy đủ, rõ ràng thao tác bị từ chối cần phải sửa lại liệu nào? Khóa nội, khoá ngoại, giá trị NOT NULL ràng buộc tồn vẹn miền giá trị thuộc tính Những ràng buộc toàn vẹn ràng buộc toàn vẹn đơn giản CSDL Các hệ quản trị sở liệu thường có chế tự động kiểm tra ràng buộc toàn vẹn miền giá trị khóa nội, khố ngoại, giá trị NOT NULL 65 Việc kiểm tra ràng buộc tồn vẹn tiến hành vào thời điểm sau đây: - Thứ nhất: Kiểm tra sau thực thao tác cặp nhật CSDL Thao tác cặp nhật xem hợp lệ khơng vi phạm ràng buộc toàn vẹn nào, nghĩa khơng làm tính tồn vẹn CSDL Nếu vi phạm ràng buộc toàn vẹn, thao tác cặp nhật bị coi không hợp lệ bị hệ thống huỷ bỏ (hoặc có xử lý thích hợp đó) - Thứ hai: Kiểm tra định kỳ hay đột xuất, nghĩa việc kiểm tra ràng buộc toàn vẹn tiến hành độc lập với thao tác cặp nhật liệu Đối với trường hợp vi phạm ràng buộc tồn vẹn, hệ thống có xử lý ngầm định yêu cầu người sử dụng xử lý sai sót cách tường minh Phân loại ràng buộc tồn vẹn: Xét ví dụ sau đây: Cho CSDL C dùng để quản lý việc đặt hàng giao hàng công ty Lược đồ CSDL C gồm lược đồ quan hệ sau: Q1: Khach (MAKH, TENKH, DIACHIKH, DIENTHOAI) Tân từ: Mỗi khách hàng có mã khách hàng (MAKH) nhất, MAKH xác định tên khách hàng (TENKH), địa (DIACHIKH), số điện thoại (DIENTHOAI) Q2: Hang(MAHANG,TENHANG,QUYCACH, DVTINH) Tân từ: Mỗi mặt hàng có mã hàng (MAHANG) nhất, MAHANG xác định tên hàng (TENHANG), quy cách hàng (QUYCACH), đơn vị tính (DVTINH) Q3: Dathang(SODH,MAHANG, SLDAT, NGAYDH, MAKH) Tân từ: Mỗi mã số đặt hàng (SODH) xác định ngày đặt hàng (NGAYDH) mã khách hàng tương ứng (MAKH) Biết mã số đặt hàng mã mặt hàng 66 biết số lượng đặt hàng(SLDAT) Mõi khách hàng ngày có nhiều lần đặt hàng Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT) Tân từ: Mỗi hố đơn tổng hợp có mã số SOHD, hố đơn bán hàng gồm nhiều mặt hàng Mỗi hoá đơn xác định ngày lập hoá đơn (NGAYLAP), ứng với số đặt hàng (SODH) Giả sử hoá đơn bán hàng theo yêu cầu đơn đặt hàng có mã số SỌDH ngược lại , đơn đặt hàng giải hoá đơn Do điều kiện khách quan cơng ty khơng giao đầy đủ mặt hàng số lượng mặt hàng yêu cầu đơn đặt hàng khơng giao vượt ngồi u cầu Mỗi hóa đơn xác định trị giá mặt hàng hoá đơn (TRIGIAHD) ngày xuất kho giao hàng cho khách (NGAYXUAT) Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN) Tân từ: Mỗi SOHD, MAHANG xác định giá bán (GIABAN) số lượng bán (SLBAN) mặt hàng hoá đơn Q6: Phieuthu(SOPT, NGAYTHU, MAKH, SOTIEN) Tân từ: Mỗi phiếu thu có số phiếu thu (SOPT) nhất, SOPT xác định ngày thu (NGAYTHU) khách hàng có mã khách hàng MAKH số tiền thu SOTIEN Mỗi khách hàng ngày có nhiều số phiếu thu 2.1 Ràng buộc tồn vẹn có bối cảnh quan hệ 2.1.1 Ràng buộc toàn vẹn liên bộ: + Ràng buộc tồn vẹn khố chính: Đây trường hợp dặc biệt Ràng Buộc toàn Vẹn liên bộ, RBTV phổ biến thường hệ quản trị CSDL tự động kiểm tra Ví dụ: Với r quan hệ lược đồ quan hệ Khach ta có RBTV sau: 67 + Ràng buộc tồn vẹn tính Ví dụ: phịng ban phải có tên gọi + Ngồi nhiều ta gặp RBTV khác chẳng hạn RBTV quan hệ sau Ví dụ: KETQUA(MASV,MAMH,LANTHI,DIEM) Mỗi sinh viên đăng thi môn tối đa lần 2.1.2 Ràng buộc toàn vẹn miền giá trị: Ràng buộc tồn vẹn có liên quan đến miền giá trị thuộc tính quan hệ Ràng buộc thường gặp Thông thường hệ quản trị CSDL tự động kiểm tra (một số) ràng buộc loại Ví dụ: Với r quan hệ Hoadon ta có ràng buộc toàn vẹn sau 2.1.3 Ràng buộc toàn vẹn liên thuộc tính: Ràng buộc tồn vẹn liên thuộc tính (một quan hệ) mối liên hệ thuộc tính lược đồ quan hệ Ví dụ: Với r quan hệ Hoadon ta có ràng buộc tồn vẹn sau: 68 2.2 Ràng buộc tồn vẹn có bối cảnh nhiều quan hệ: 2.2.1 Ràng buộc toàn vẹn khóa ngoại: Ràng buộc tồn vẹn khố ngoại cịn gọi ràng buộc tồn vẹn phụ thuộc tồn Cũng giống ràng buộc toàn vẹn khố nội, loại ràng buộc tồn vẹn phổ biến CSDL Ví dụ: 2.2.2 Ràng buộc tồn vẹn liên thuộc tính liên quan hệ: Ràng buộc loại mối liên hệ thuộc tính nhiều lược đồ quan hệ Ví dụ: Với r,s quan hệ Dathang Hoadon Ta có RBTV R sau: 2.2.3 Ràng buộc toàn vẹn liên liên quan hệ: Ràng buộc loại mối liên hệ lược đồ sở liệu Chẳng hạn tổng số tiền phải trả hoá đơn (chitiethd) phải TRỊ GIÁ HỐ ĐƠN hố đơn quan hệ Hoadon Hoặc số lượng học viên lớp phải SOHOCVIEN lớp Ngồi cịn có số loại RBTV khác :RBTV thuộc tính tổng hợp, RBTV tồn chu trình ,RBTV giá trị thuộc tính theo thời gian 69 Bài tập sản phẩm thực hành 4.1 I Kiến thức: Câu 1: Ràng buộc tồn vẹn gì? Các yếu tố ràng buộc toàn vẹn? Câu 2: Phân loại cho ví dụ minh họa ràng buộc tồn vẹn II Kỹ năng: Bài 1: Việc tổ chức kỳ thi tốt nghiệp khoa sau: Mỗi thí sinh có Mã số sinh viên (MASV), MASV xác định thông tin: họ tên (HOTEN), ngày sinh (NGAYSINH), nơi sinh, phái, dân tộc Mỗi lớp có mã lớp (MALOP) nhất, mã lớp xác định thông tin: tên lớp (TENLOP), lớp thuộc quản lý khoa Mỗi khoa có mã khoa (MAKHOA), mã khoa xác định tên khoa (TENKHOA) Mỗi thí sinh phải dự thi tốt nghiệp ba mơn Mỗi mơn thi có mã mơn thi (MAMT) nhất, mã môn thi xác định thông tin: tên môn thi (TENMT), thời gian làm – tính phút (PHUT), ngày thi (NGAYTHI), buổi thi (BUOITHI), môn thi môn lý thuyết hay thực hành (LYTHUYET) Chú ý rằng, môn học cho thi nhiều hệ đặt MAMT khác (chẳng hạn trung cấp cao đẳng ngành công nghệ thông tin thi môn Cơ Sở Dữ Liệu), để diễn tả điều này, mã môn học cần phải ghi (GHICHU) biết môn thi dành cho khối trung cấp, hay cao đẳng) Mỗi thí sinh ứng với mơn thi có điểm thi (DIEMTHI) nhất, điểm thi chấm theo thang điểm 10 có lấy điểm lẻ đến 0.5 Một thí sinh coi đậu tốt nghiệp điểm thi tất mơn thí sinh lớn Trong phịng thi có thí sinh nhiều lớp Trong kỳ thi, thí sinh thi phịng thi (PHONGTHI) khác nhau, chẳng hạn thí sinh thi tốt nghiệp ba môn Cơ sở liệu, Lập trình C Visual Basic 70 mơn Cơ Sở Dữ Liệu Lập Trình C thi phịng A3.4, cịn mơn thực hành Visual Basic thi phịng máy H6.1 Qua phân tích sơ trên, ta lập lược đồ sở liệu sau: THISINH (MASV, HOTEN, NGAYSINH, MALOP) LOP (MALOP, TENLOP) MONTHI (MAMT, TENMT, LYTHUYET, PHUT, NGAYTHI, BUOITHI, GHICHU) KETQUA (MASV, MAMT, DIEMTHI) a Tìm khố cho lược đồ quan hệ b.Hãy phát biểu ràng buộc tồn có sở liệu Đánh giá kết học tập Kết TT Tiêu chí đánh giá Cách thức Điểm phương pháp tối đa đánh giá thực người học I Kiến thức Ràng buộc toàn vẹn 1.1 Khái niệm RBTV 1.2 Các yếu tố RBTV Các loại RBTV Vấn đáp, đối chiếu với nội dung học 2 Vấn đáp, đối Phân loại: liệt kê, trình bày 2.1 chiếu với nội đặc điểm loại RBTV dung học Ví dụ Minh họa cho loại 2.2 RBTV Cộng: 10 đ 71 II Kỹ + Phân tích u cầu tốn + Xác định khóa Làm tập đối chiếu với nội cho quan hệ dung học lược đồ 10 + Phát biểu RBTV có sở liệu Cộng: 10đ III Thái độ Tác phong công nghiệp Theo dõi 1.1 Đi học đầy đủ, thực hiện, đối 1,5 1.2 Không vi phạm nội quy lớp chiếu nội học quy trường Tính cẩn thận, tỉ mỉ Quan sát 1.3 với việc 1,5 việc thực tập Đảm bảo thời gian thực Theo dõi thời tập gian thực tập, đối chiếu với thời gian quy định Đảm bảo an toàn lao động vệ sinh công nghiệp Theo dõi thực hiện, việc đối 3.1 Tuân thủ quy định an toàn chiếu với quy 3.3 Vệ sinh phòng học quy định an tồn định vệ sinh cơng nghiệp Cộng: 10 đ 72 KẾT QỦA HỌC TẬP Tiêu chí đánh giá Kếtquả thực Kiến thức Kỹ Thái độ Hệ số Kết qủa học tập 0,3 0.4 0,3 Cộng: BÀI TẬP TỰ GIẢI: Bài 2: Quản lý đăng ký chuyên đề Phòng giáo vụ trường đại học muốn tin học hóa việc quản lý học chuyên đề sinh viên Sau kết việc phân tích thiết kế ứng dụng Mỗi sinh viên có mã số nhất, họ tên, thuộc phái, có ngày sinh, địa học ngành Mỗi ngành có mã ngành nhất, có tên ngành Ngoài cần lưu lại số cho biết số chuyên đề mà sinh viên theo học ngành cụ thể phải học, cần lưu lại tổng số sinh viên theo học ngành Sinh viên phải học chuyên đề khác Mỗi chuyên đề có mã có tên Cần lưu lại tên số sinh viên tối đa chấp nhận có lớp mở cho chuyên đề cụ thể Mỗi chuyên đề học sinh viên thuộc nhiều ngành sinh viên thuộc ngành phải học nhiều chuyên đề Mỗi ngành học tối đa chuyên đề Vào học kỳ năm học, ta cần lưu lại chuyên đề mở cho học kỳ năm để sinh viên đăng ký Sinh viên đăng ký chuyên đề có mở 73 Khi sinh viên đăng ký học, lưu lại việc đăng ký học chuyên đề sinh viên vào năm học kỳ Một sinh viên đăng ký vào chuyên đề thuộc ngành học sinh viên mà thơi Mỗi năm có học kỳ Sinh viên đăng ký tối đa chuyên đề học kỳ mà Hãy thiết kế mơ hình ER cho ứng dụng Chuyển mơ hình ER sang mơ hình quan hệ Xác định khóa chính, khóa ngoại liệt kê có phân loại tất ràng buộc toàn vẹn nhận diện 74 Chương LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU Mã chương MH16-05 Giới thiệu: Trong chương trình bày khái niệm mơ hình liệu quan hệ E.F.Codd Những khái niệm gồm khái niệm quan hệ, phụ thuộc hàm, hệ tiên đề Armstrong, bao đóng, khố, dạng chuẩn quan hệ, Những khái niệm đóng vai trị quan trọng mơ hình liệu quan hệ Chúng dùng nhiều việc thiết kế hệ quản trị sở liệu (CSDL) Mục tiêu: - Mô tả khái niệm sở lý thuyết sở liệu khóa, phụ thuộc hàm, bao đóng, dạng chuẩn, - Trình bày thiết kế liệu mức tốt (có thể ứng dụng ) phép tách, giải thuật chuẩn hóa lược đồ Nội dung: Các vấn đề gặp phải tổ chức liệu: Khi thiết kế, tổ chức sở liệu quan hệ ta thường đứng trước vấn đề lựa chọn lược đồ quan hệ: lược đồ tốt hơn? Tại sao? Mục nghiên cứu số tiêu chuẩn đánh giá lược đồ quan hệ thuật toán giúp xây dựng lược đồ sở liệu quan hệ có cấu trúc tốt Có thể nói tổng quảt, lược đồ quan hệ có cấu trúc tốt lược đồ khơng chứa dư thừa liệu dị thường liệu - Dư liệu trùng lặp thông tin sở liệu - Dị thường liệu cố xảy cập nhật liệu (lặp, dị thường chèn bộ, dị thường xóa bộ, dị thường sửa bộ) làm cho liệu không tương thích, bất định mát + Dị thường liệu lặp: số thơng tin bị lặp lại cách vơ ích 75 + Dị thường chèn bộ: chèn vào quan hệ, khơng có đầy đủ liệu + Dị thường xóa bộ: ngược lại với dị thường chèn bộ, việc xóa dẫn đến thơng tin + Dị thường sửa bộ: việc sửa đổi liệu dư thừa dẫn đến khơng tương thích liệu Cơ sở lý thuyết việc thiết kế lược đồ sở liệu quan hệ tốt khái niệm phụ thuộc liệu Phụ thuộc liệu biễu diễn quan hệ nhân thuộc tính quan hệ Cũng dựa khái niệm phụ thuộc liệu người ta định nghĩa dạng chuẩn lược đồ quan hệ Cịn q trình biến đổi lược đồ thành lược đồ tương đương thỏa mãn dạng chuẩn gọi q trình chuẩn hóa lược đồ quan hệ Phụ thuộc hàm 2.1 Định nghĩa phụ thuộc hàm + Cho lược đồ quan hệ R=(A1, A2, , An) X, Y tập R = {A1, A2, , An} Ta nói X xác định hàm Y hay Y phụ thuộc hàm X, ký hiệu X Y, quan hệ r lược đồ R thoả mãn: u, v r : u(X) = v(X) u(Y) = v(Y) Phụ thuộc hàm X Y gọi phụ thuộc hàm tầm thường Y X (hiển nhiên Y X theo định nghĩa ta có X Y) Phụ thuộc hàm X Y gọi phụ thuộc hàm ngun tố khơng có tập thực Z X thoả Z Y Tập thuộc tính K R gọi khố xác định hàm tất thuộc tính K R phụ thuộc hàm nguyên tố 2.2 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ệ Ví dụ số phụ thuộc hàm ứng với lược đồ quan hệ xác định sau: 76 MASV → HOTENSV, NGAYSINH, MALOP, GIOITINH MALOP → TENLOP, MAKHOA 2.3 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 sử dụng quy tắc suy diễn đơn giản để kiểm tra xem phụ thuộc hàm có suy diễn logic từ F hay không Một quy tắc suy diễn gọi hệ tiên đề Armstrong(1974), gồm luật sau: 1.Luật phản xạ (reflexivity) X → Y => X→Y 2.Luật tăng trưởng(augmentation) X → Y => XZ → YZ 3.Luật bắc cầu(transitivity) X → Y, Y → Z => X → Z Các quy tắc suy rộng: 4.Luật hợp (the union rule) Cho X → Y, X → Z => X → YZ 5.Luật bắc cầu giả (the pseudotransitivity rule) Cho X → Y,WY→ Z => XW → Z 6.Luật phân rã (the decomposition rule) Cho X → Y, Z → Y => X → Z Với X, Y, Z, W Ví dụ: + ¿ R Cho lược đồ R(ABC) F={AB C, C A} Dùng quy tắc Armstrong ta chứng minh (B,C) (A,B,C) Thật vậy, ta có => C A (theo giả thiết) BC AB (theo luật tăng trưởng) C C (theo luật phản xạ) BC ABC (đccm) (theo luật hợp) Bao đóng tập phụ thuộc hàm bao đóng tập thuộc tính 3.1 Bao đóng tập phụ thuộc hàm F 77 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 diễn lôgic từ F: + F ={X Y F╞═X Y} Hay nói cách khác: Bao đóng (closure) 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 R=(A,B,C) F = {A B, B C} Khi bao đóng F+ gồm phụ thuộc hàm X Y thoả (i) X chứa A, Y bất kỳ: A,B,C A,B,C; A,B,C A,B;A,B,C A,C; A,B,C B,C; A,B,C A; A,B,C B; A,B,C B; A,B,C C; A,B A,B,C; A,B A,B; A,B A,C; A,B B,C; A,B A; A,B B; A,B B; A,B C; A,C A,B,C; A,C A,B; A,C A,C; A,C B,C; A,C A; A,C B; A,C B; A,C C; A A,B,C; A A,B; A A,C; A B,C; A A; A B; A B; A C; (ii) X chứa B không chứa A, Y không chứa A: BC BC; BC B; B BC; BC C B B; B C (iii) C C Về mặt lý thuyết ta hoàn tồn xây dựng thủ tục tính bao đóng F+ tập phụ thuộc hàm F, thực tế tốn xác định F+ khơng khả thi với số thuộc tính phụ thuộc hàm lớn dẫn đến bùng nổ tổ hợp Thay vào xem xét toán khác: "Kiểm tra xem phụ thuộc hàm có thuộc bao đóng F+ hay khơng ?" Bài tốn gọi toán 78 thành viên Bài toán thành viên thiết thực tốn tính bao đóng thực tế phải tìm tất phụ thuộc hàm suy diễn lơ-gic từ F Bài tốn thành viên liên quan mật thiết với khái niệm bao đóng tập thuộc tính 3.2 Bao đóng tập thuộc tính X Bao đóng tập thuộc tính X R (đối với tập phụ thuộc hàm F), ký hiệu XF+ (X+), tập hợp tất thuộc tính phụ thuộc hàm vào X: X+={A X A F+} Từ định nghĩa dễ dàng suy ra: X X+ X Y Y X+ Nghĩa X+ tập thuộc tính lớn phụ thuộc hàm vào X Ví dụ: Cho R(ABC) F = {A B, B C} Khi ta dễ dàng thấy bao đóng thuộc tính B B+ = {B,C} B {B,C} B khơng xác định A 3.3 Bài toán thành viên + + Qua phần ta nhận thấy X định nghĩa thông qua F Vấn đề nảy sinh nghiên cứu lý thuyết CSDL là: Cho trước tập phụ thuộc hàm F phụ thuộc hàm f, toán kiểm tra có hay khơng f tốn thành viên + ¿ F gọi Để giải toán tốn thành viên thật khơng đơn giản; F nhỏ F + + lớn Tuy nhiên ta giải cách + tính X so sánh X với tập Y Dựa vào tính chất X → Y ¿ F ⇔ + Y¿X + + , ta có câu trả lời X → Y ¿ F hay khơng ? Như thay giải tốn thành viên ta đưa giải tốn tìm bao đóng tập thuộc tính 3.4 Thuật tốn tìm bao đóng tập thuộc tính Thuật tốn tìm bao đóng với độ phức tạp O(N ), với N số lượng thuộc tính lược đồ quan hệ Q 79 Dữ Liệu Vào Dữ Q, F, X Liệu Ra X + Q ¿ + Ví dụ: Cho lược đồ quan hệ Q(ABCDEGH) tập phụ thuộc hàm F={B→A,DA →CE,D→H,GH→C,AC→D} Tìm bao đóng tập X = {AC} dựa F Giải: -X+=AC - Đặt Temp = X+ + Xét AC → D, có AC + + + X :X =X ¿ D = ACD ¿ 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 80 ¿ X+ nên X+ = Temp Thuật tốn dừng Vậy X+ = {ACDEH} Khóa lược đồ quan hệ - số thuật tốn tìm khóa 4.1 Định nghĩa khóa quan hệ + Cho quan hệ R(A1,A2,…,An) xác định tập thuộc tính R + R tập phụ thuộc hàm F định nghĩa R, cho K ¿ K khoá R thoả đồng thời hai điều kiện sau: K ¿ R + ¿ F + (hay K+F = R+) (K thoả điều kiện gọi siêu khố) + + =R Không tồn K' ¿ K cho K' Tập S {A1, ,An} siêu khoá R S chứa khố 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ệ + K=Q ; While A ¿ 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 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 (K - B) ≠ R nên K={B,C} 81 + + 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 ơhuj 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= ∀ if Xi ¿ TG + (TN ¿ S=S + Xi) = R then ¿ {TN ¿ {S tập siêu khố cần tìm} Bước 2: Tính TN ¿ Xi 82 Xi} Bước 3: Bước 4: Tính (TN Nếu X i + ¿ Xi) + + = R Xi siêu khố + ¿ Xi có bao đóng R TN Nếu tập TN ¿ siêu khoá R Giả sử sau bước có m siêu khoá: S = {S ,S ,…,S } m Bước : Xây dựng tập chứa tất khoá R từ tập S Xét S ,S j S (i j), S S j ta loại S i i ¿ Xi (i, j = 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 = { φ };TG = {A,B} Gọi Xi tập tập trung gian Ta lập bảng sau: Xi TN ¿ φ φ A B AB A B AB Xi (TN ¿ Xi) + Siêu khóa A B AB φ ABC ABC ABC Khóa A B - Vậy lược đồ quan hệ R có hai khóa K1 = {A}, K2 = {B} Phủ tối thiểu 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 hàm thuộc F thuộc G + + =G + phụ thuộc phụ thuộc hàm thuộc G thuộc F + + + Ta nói F phủ G G ¿ F 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 83 F={B→A; DA→CE; D→H;GH→C; AC→D;DG→C} G={B→ A; DA→ CE; D → H; GH→ C; AC→ D ;BC → AC; BC → D; DA → AH; AC → DEH} (Việc kiểm tra phụ thuộc hàm G có suy diễn từ F ngược lại xem tập dành cho bạn đọc) 5.2 Phủ tối thiểu Ftt 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→Y∈F Nói phụ thuộc hàm Z → Y có vế trái dư thừa (phụ thuộc khơng đầy đủ) có A∈Z cho: F ≡ F-{Z → Y}∪{(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 tốn loại khỏi F phụ thuộc hàm có vế trái dư thừa: Bước 1: - Xét phụ thuộc hàm X→Y F Bước 2: - Với tập∈con thực X’≠ - Nếu X'→Y ∅ X 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 gọi tập phụ thuộc hàm có vế phải thuộc tính 84 Ví dụ: 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’⊂ 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 → Y khỏi F Bước 3: - lặp lại bước cho phụ thuộc hàm 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 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 toán trên, tìm nhiều phủ tối thiểu F tt để F≡Ftt thứ tự loại phụ thuộc hàm khác thu 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ó 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ệ 85 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 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 ¿ 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 thuộc tính R mang giá trị đơn Ví dụ: Xét quan hệ KETQUA sau: MASV 01234 HOVATEN Nguyễn Văn An KHOA CNTT TENMONHOC Cơ sở liệu DIEMTHI Tốn rời rạc Lập trình web 02345 Lê Văn Thịnh CNTT Cơ sở liệu Quan hệ khơng đạt chuẩn 1NF thuộc tính TENMONHOC, DIEMTHI thứ khơng mang giá trị đơn Ta đưa quan hệ quan hệ KETQUA1 đạt chuẩn sau: MASV 01234 01234 01234 02345 HOVATEN Nguyễn Văn An Nguyễn Văn An Nguyễn Văn An Lê Văn Thịnh KHOA CNTT CNTT CNTT CNTT TENMONHOC Cơ sở liệu Toán rời rạc Lập trình web Cơ sở liệu DIEMTHI 7 Chú ý xét dạng chuẩn, khơng xét thêm mặc định quan hệ xét đạt dạnh chuẩn 6.3 Dạng chuẩn (Second Normal Form) 86 Định nghĩa: Một lược đồ quan hệ R dạng chuẩn (2NF) 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ạnh chuẩn tập thuộc tính khơng khóa R rỗng R đạt chuẩn 2 Nếu tất khóa quan hệ gồm thuộc tính quan hệ đạt chuẩn Thuật tố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) tập phụ thuộc hàm F={AB→C; B→D; BC→A} Hỏi R có đạt chuẩn hay khơng? Giải: - Tìm tất khóa R: TN = {B}, TG = {AC} Xi TN ¿ B BA BC BAC φ A C AC Xi (TN ¿ Xi) BD BACD BCAD BACD + Siêu khóa BA BC BAC Khóa BA BC - Tất khóa R K1 = {BA}, K2 = {BC} Gọi Z tập thuộc tính khóa, X tập thuộc tính khơng khóa, ta có: ¿ Z=K1 K2 = {BAC} X = R+ \ Z = {ABCD} \ {BAC} = {D} 87 Ta thấy B⊂K1, 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 ∈ F+ với A ∉ X có - 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 ∈ 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 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 X→A ∈ 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? 88 Giải: - Tìm tất khóa R: TN={∅} TG={ABCD} ¿ Xi TN Xi (TN Xi) ¿ φ φ φ A B C D AB AC AD BC BD CD ABC ABD ACD BCD ABCD A B C D AB AC AD BC BD CD ABC ABD ACD BCD ABCD A B CABD DB ABCD ACBD ADBC BCAD BD CDAB ABCD ABDC ACDB BCDA ABCD + Siêu khóa C AB AC AD BC CD ABC ABD ACD BCD ABCD Khóa C AB AD - Tất khóa R K1 = {C}, K2 = {AB}, K3 = {AD} Gọi Z tập thuộc 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}={ } Vì tập thuộc tính khơng khóa X = { φ } 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 ∈ 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ý: 89 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 ∈ F+ với A∉X có X siêu khóa (Việc chứng minh định lý xem tập nâng cao) 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 ∈ 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} ¿ Xi TN Xi C φ A CA D CD E CE AD CAD AE CAE DE CDE ADE CADE Tất khóa R (TN ¿ Xi) + C CA CD CEADBI CADEBI CAEDBI CDEABI CADEBI ¿ Khóa CE CAD - K1 = {CE}, K2 = {CAD} Gọi Z tập thuộc tính khóa, X tập thuộc tính khơng khóa, ta có: Z=K1 Siêu khóa CE CAD CAE CDE CADE K2 = {CEAD} 90 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 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ệ 91 Bài tập sản phẩm thực hành 5.1 I Kiến thức: Câu 1: Phụ thuộc hàm: Định nghĩa? 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 ? II Kỹ năng: Bài 1: Cho lược đồ quan hệ R(B,C,D,E,F,G,I,J) tập phụ thuộc hàm P = { I→B; DE→GJ; D→C; CF→J; B→I; C→G; F→J } a Tìm tất khố lược đồ quan hệ R b Tìm phủ tối thiểu tập phụ thuộc hàm P Bài 2: 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 suy diễn từ P nhờ hệ luật dẫn Amstrong? (Nêu rõ áp dụng luật gì) Câu 3: 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 Đánh giá kết học tập TT Tiêu chí đánh giá Cách thức phương đánh giá Điểm pháp tối đa Kết thực người 92 học I Kiến thức Phụ thuộc hàm 1.1 Định nghĩa 1.2 Cách xác định phụ thuộc hàm dung học 1.3 Tính chất phụ thuộc hàm Vấn đáp, đối chiếu với nội Thuật tốn tìm bao đóng Vấn đáp, đối tập thuộc tính chiếu với nội Khóa lược đồ Vấn đáp, đối 3.1 Định nghĩa khóa chiếu với nội 3.2 Giải thuật tìm tất khóa dung học Các dạng chuẩn 4.1 Định nghĩa dạng chuẩn Vấn đáp, đối chiếu với nội dung học Giải thuật kiểm tra dạng 4.2 chuẩn Cộng: 10 đ II Kỹ + Phân tích yêu cầu Làm tập đối 10 chiếu với nội toán dung học + Xác định khóa cho quan hệ lược đồ + Xác định phủ tối thiểu 93 + Xác định dạng chuẩn lược đồ quan hệ + Chuẩn hóa cách phân rã (nâng cao) Cộng: 10đ III Thái độ Tác phong công nghiệp Theo dõi 1.1 Đi học đầy đủ, thực hiện, 1.2 Không vi phạm nội quy 1.3 lớp chiếu việc đối 1,5 với nội học quy trường Tính cẩn thận, tỉ mỉ Quan sát 1,5 việc thực tập Đảm bảo thời gian thực Theo dõi thời tập gian thực tập, đối chiếu với thời gian quy định Đảm bảo an toàn lao động vệ sinh công nghiệp Theo dõi việc thực hiện, đối 3.1 Tuân thủ quy định an toàn chiếu với 3.3 Vệ sinh phòng học quy định an tồn định vệ sinh cơng quy 2 nghiệp Cộng: 10 đ KẾT QỦA HỌC TẬP Tiêu chí đánh giá Kiến thức Kết Hệ số thực 0,3 94 Kết qủa học tập Kỹ Thái độ 0.4 0,3 Cộng: BÀI TẬP TỰ GIẢI: 5.1 a) Cho lược đồ quan hệ Q(ABCD), r quan hệ Q phụ thuộc hàm sau không thoả r a) D → A; b) AC → D; c) CD →A; d) D → B; b.Cho lược đồ quan hệ Q(ABCD), r quan Q cho sau: 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ệ cho sau: Những phụ thuộc hàm sau không thoả r ? 95 A→B; A→C; B→A; C→D;D→C;D→A 5.2 a.Cho lược đồ quan hệ Q(ABCD) tập phụ thuộc hàm F = {A → B; BC→D} 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 c)Cho lược đồ quan hệ Q,F sau: với Q(ABCD) F={A → B; A → C} Trong phụ thuộc hàm sau, phụ thuộc hàm suy từ F ? A→D;C→D;AB→B; 5.3 BC→A; A→BC 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 →C 5.4 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} 96 Chứng minh AB → E; AB → G d Q(ABCDEGH) F = {B →A; DA→CE; D → H; GH→ C; AC→D } Hãy tìm khố Q ? 5.5 Hãy tìm tất khoá cho lược đồ quan hệ sau: Q(BROKER,OFFICE,STOCK,QUANTITY,INVESTOR,DIVIDENT) F={STOCK→DIVIDENT, INVESTOR → BROKER, INVESTOR, STOCK → QUANTITY, BROKER → OFFICE } 5.6 Cho Q(A,B,C,D), F={AB → C; D → B; C → ABD} Hãy tìm tất khố Q 5.7 Cho lược đồ quan hệ Q(MSCD,MSSV,CD,HG) tập phụ thuộc F 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 5.8 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} 5.9 Các nhận xét sau (Đ) hay sai (S) ? (kẻ bảng sau ghi Đ S cho câu trên) 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 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ố 97 e.Nếu X → Y YZ → W XZ → W f.Nếu Q đạt dạng chuẩn khố 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 →V XU → YV 5.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 5.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→G] d.Q(ABCDEG); F=[AB → C; C → B; ABD → E;G → A] e.Q(ABCDEGHI);F=[AC→B; BI→ACD; ABC→D; H→I; ACE→BCG, CG→AE] 98 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 99 PHỤ LỤC 100 ... LỤC CHƯƠNG TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU Chương TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Chương MƠ HÌNH DỮ LIỆU QUAN HỆ 21 Chương NGÔN NGỮ TRUY VẤN DỮ LIỆU 35 Chương RÀNG... LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU 75 TÀI LIỆU THAM KHẢO: 92 CHƯƠNG TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU Mã mơn học: MH10 I Vị trí, ý nghĩa, vai trị mơn học: Mơn học Cơ sở liệu bố trí sau học... gia vào cơng trình, cơng trình phân cho nhiều nhân viên nhân viên lúc tham 14 gia vào nhiều cơng trình Với cơng trình nhân viên có số lượng ngày cơng (SLNGAYCONG) tham gia vào cơng trình Cơng ty