Giáo trình Cơ sở dữ liệu - Vũ Anh Hùng
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Cơ sở dữ liệu - Vũ Anh Hùng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_co_so_du_lieu_vu_anh_hung.pdf
Nội dung text: Giáo trình Cơ sở dữ liệu - Vũ Anh Hùng
- TrườngTRƯỜNG Đại học Khoa ĐẠI học HỌC Tự nhiên DÂN LẬP HẢI PHÒNG Khoa Công nghệKHOA thông CÔNG tin NGHỆ THÔNG TIN Bộ môn Tin học cơ sở ISO 9001:2008 CƠ SỞ DỮ LiỆU Vũ Anh Hùng,Đặng vnhung@hpu.edu.vn Bình Phương dbphuong@fit.hcmuns.edu.vn GIỚI THIỆU MÔN HỌC 1
- & VC Giới thiệu chung BB Vũ Anh Hùng, vnhung@hpu.edu.vn Đối tượng: Sinh viên ngành Công nghệ thông tin Thời lượng: 3 Tín chỉ (52 tiết LT + 9 tiết TH) Môn học tiên quyết: Cấu trúc dữ liệu và giải thuật Hình thức đánh giá: Điểm QT: 30% và Điểm thi: 70% Mục đích môn học: + Cung cấp cho sinh viên 2 phương pháp cơ bản để thiết kế CSDL quan hệ. + Các khái niệm cơ bản về CSDL phân tán và CSDL hướng đối tượng. + Thao tác trực tiếp với CSDL quan hệ trên máy tính. 2
- & VC Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn LÝ THUYẾT: 52 tiết CHƯƠNG 1: CÁC KHÁI NIỆM VỀ HỆ CSDL 1.1. Các khái niệm về CSDL 1.2. Các đặc trưng của giải pháp CSDL 1.3. Mô hình CSDL 1.4. Con người trong hệ CSDL 1.5. Ngôn ngữ CSDL và giao diện CHƯƠNG 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER 2.1. Các khái niệm 2.2. Các bước xây dựng mô hình ER 3
- & VC Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn CHƯƠNG 3: MÔ HÌNH QUAN HỆ 3.1. Một số khái niệm 3.2. CSDL quan hệ và cách tạo lập quan hệ 3.3. Chuyển đổi từ mô hình ER thành quan hệ 3.4. Các phép toán trên CSDL quan hệ CHƯƠNG 4: ĐẠI SỐ QUAN HỆ 4.1. Các phép toán tập hợp: Phép hợp, giao, hiệu, tích đề các 4.2. Các phép toán: Phép chọn, chiếu, nối, đổi lại tên, chia 4.3. Các phép toán quan hệ bổ sung: Phép toán nhóm, phép nối ngoài và hợp ngoài 4
- & VC Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn CHƯƠNG 5: NGÔN NGỮ SQL 5.1. Giới thiệu SQL 5.2. Các thao tác đối với bảng 5.3. Kết xuất dữ liệu bằng lệnh SELECT CHƯƠNG 6: PHỤ THUỘC HÀM 6.1. Định nghĩa 6.2. Các tính chất 6.3. Bao đóng của tập phụ thuộc hàm 6.4. Bao đóng của tập thuộc tính 6.5. Phủ tối thiểu 6.6. Tập phụ thuộc hàm tương đương 5
- & VC Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn CHƯƠNG 7: KHOÁ CỦA LƯỢC ĐỒ QUAN HỆ 7.1. Định nghĩa 7.2. Các thuật toán tìm khoá CHƯƠNG 8: CHUẨN HOÁ 8.1. Định nghĩa 8.2. Các dạng chuẩn và thuật toán tách 8.3. Một số dạng chuẩn nâng cao 8.4. Thuật toán kiểm tra phép tách và phép nối không mất thông tin 8.5. Một số định lý và hệ quả 6
- & VC Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn CHƯƠNG 9: MỘT SỐ KHÁI NIỆM VỀ CSDL PHÂN TÁN 9.1. Nhu cầu phải phát triển CSDL phân tán 9.2. Ưu điểm/Nhược điểm của CSDL phân tán 9.3. Xử lý phân tán và cơ sở dữ liệu phân tán 9.4. Các thành phần của hệ QTCSDL phân tán 9.5. Các mức phân tán dữ liệu và xử lý 9.6. Các đặc trưng trong suốt của CSDL phân tán 9.7. Xây dựng CSDL phân tán 7
- & VC Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn CHƯƠNG 10 : MỘT SỐ KHÁI NIỆM VỀ CSDL HƯỚNG ĐỐI TƯỢNG 10.1. Các khái niệm về hướng đối tượng 10.2. Các lớp đối tượng 10.3. Biểu diễn đồ thị của CSDL hướng đối tượng THỰC HÀNH: 9 tiết tại phòng máy Bài 1: Sử dụng phần mềm Power Designer để vẽ mô hình ER rồi chuyển đổi sang quan hệ. Bài 2: Tạo CSDL bằng SQL Server 2008. Bài 3: Thực thi câu lệnh SELECT của SQL. 8
- & CHƯƠNGVC 1: CÁC KHÁI NIỆM VỀ HỆ CSDL (1 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 1.1. Các khái niệm về CSDL + Dữ liệu (Data) + Cơ sở dữ liệu (DB: Database) + Tính chất của CSDL: 3 tính chất cơ bản + Hệ quản trị CSDL (DMS: Database Menagement System) + Hệ CSDL (DS: Database System) DS = DB + DMS + Ví dụ: CSDL quan hệ: Quản lý hàng hóa 9
- & CHƯƠNGVC 1: CÁC KHÁI NIỆM VỀ HỆ CSDL BB Vũ Anh Hùng, vnhung@hpu.edu.vn 10
- & CHƯƠNGVC 1: CÁC KHÁI NIỆM VỀ HỆ CSDL BB Vũ Anh Hùng, vnhung@hpu.edu.vn 1.2. Các đặc trưng của giải pháp CSDL + Bản chất tự mô tả của hệ CSDL + Sự độc lập giữa chương trình và dữ liệu + Hỗ trợ các khung nhìn dữ liệu nhiều thành phần + Chia sẻ dữ liệu và nhiều người sử dụng. 1.3. Mô hình CSDL + Mô hình dữ liệu bậc cao (mô hình dữ liệu mức quan niệm) + Mô hình dữ liệu bậc thấp (mô hình dữ liệu vật lý) + Mô hình dữ liệu thể hiện (mô hình dữ liệu mức logic): bao gồm 3 mô hình: mô hình quan hệ (RM: Relation Model), mô hình mạng và mô hình phân cấp. 11
- & CHƯƠNGVC 1: CÁC KHÁI NIỆM VỀ HỆ CSDL Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn 1.4. Con người trong hệ CSDL + Người quản trị hệ CSDL (DBA: Database Administrator) + Người thiết kế CSDL (Database Designer) + Người thiết kế và cài đặt hệ quản trị dữ liệu + Người phân tích hệ thống và lập trình ứng dụng + Người sử dụng (User) + Các thao tác viên và những người bảo trì + Người phát triển công cụ 1.5. Ngôn ngữ CSDL và giao diện + Ngôn ngữ định nghĩa dữ liệu và ngôn ngữ thao tác dữ liệu + Giao diện dựa trên bảng chọn/dựa trên mẫu biểu + Giao diện lệnh + Giao diện đồ họa (Graphic User Interface) 12
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER (7 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 2.1. Các khái niệm a. Các kiểu thực thể, tập thực thể, thuộc tính, khóa + Thực thể (Entity): là vật cụ thể hay trừu tượng tồn tại trong thế giới thực Vd: Bàn học, Sinh viên, Giáo viên Phòng Đào tạo, Ban Công tác sinh viên + Tập thực thể: bao gồm nhiều thực thể có tính chất giống nhau + Thuộc tính (Property): là các tính chất cụ thể để mô tả thực thể Vd: Bàn học: Chiều cao, rộng, dài, chất liệu gỗ, số ngăn,. Sinh viên: Mã số SV, họ tên, ngày sinh, lớp, địa chỉ, 13
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn Phòng Đào tạo: Địa điểm, Chức năng nhiệm vụ, Số lượng nhân viên, điện thoại, họ tên người phụ trách Mỗi thực thể sẽ có 1 giá trị cụ thể cho 1 thuộc tính của nó Vd: Sinh viên (001,Nguyễn Văn Hoàng,20/12/1987,CT1201,Hải Phòng) b. Các loại thuộc tính và ký hiệu tên thuộc + Thuộc tính đơn: tính đơn tên thuộc Mã số SV + Thuộc tính khóa (Key): tính khóa tên thuộc Ngoại ngữ +Thuộc tính đa trị: tính đa trị 14
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Thuộc tính phức hợp: tên thuộc Họ đệm tính đơn 1 tên thuộc tên thuộc Tên tính phức tính đơn 2 Họ tên hợp + Thuộc tính suy diễn được: Vd: Điểm thi = Đm1 + Đm2 + Đm3 + Thuộc tính không xác định (Null): không có giá trị hoặc có giá trị không xác định. Vd: Điện thoại liên hệ 15
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER Nội dung môn học BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Kiểu thực thể: xác định 1 tập thực thể có cùng 1 số thuộc tính Vd: SINH VIÊN (Mã số SV, họ tên, ngày sinh, lớp, địa chỉ) Ký hiệu: TÊN KiỂU SINH VIÊN MÔN HỌC THỰC THỂ + Kiểu thực thể yếu (phụ thuộc): là kiểu thực thể tồn tại nhờ vào sự tồn tại của kiểu thực thể khác. TÊN KiỂU Phụ TÊN KiỂU THỰC THỂ thuộc THỰC THỂ YẾU NGƯỜI PHỤ NHÂN VIÊN Có THUỘC 16
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn c. Các liên kết, kiểu liên kết, các ràng buộc cấu trúc + Liên kết: là mối liên quan giữa các thực thể Vd: 1 Sinh viên “học” nhiều Môn học 1 Giáo viên “dạy” nhiều Sinh viên 1 Nhân viên “làm việc” cho 1 Phòng + Kiểu liên kết: là liên kết chung TÊN KiỂU Tên kiểu TÊN KiỂU THỰC THỂ 1 liên kết THỰC THỂ 2 17
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd: SINH VIÊN Học MÔN HỌC GIÁO VIÊN Dạy SINH VIÊN SINH VIÊN Thuộc LỚP Làm NHÂN VIÊN PHÒNG BAN việc 18
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Các ràng buộc cấu trúc: • Cấp liên kết: Số các kiểu thực thể tham gia vào liên kết (thường là cấp 1, cấp 2). Vd: Cấp 1 Quản SINH VIÊN lý Cấp 2 SINH VIÊN Học MÔN HỌC DỰ ÁN Cấp 3 NHÀ CUNG CẤP Cung cấp VẬT TƯ 19
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn • Tỷ số lực lượng tham gia vào liên kết: 1 1 * Kiểu liên kết 1 – 1: A Liên B kết 1 1 NHÂN VIÊN Bán CỬA HÀNG hàng 1 n * Kiểu liên kết 1 – n: A Liên B kết 1 n LỚP Có SINH VIÊN n m A Liên B * Kiểu liên kết n – m: kết n m SINH VIÊN Học MÔN HỌC 20
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn • Lực lượng tham gia vào liên kết: chỉ ra số thực thể của mỗi kiểu thực thể tham gia vào liên kết, ký hiệu (p,q) 1 n PHÒNG Làm NHÂN VIÊN (10,25) việc (1,1) 2.2. Các bước xây dựng mô hình ER a) Mô tả bài toán: phải dựa vào các yêu cầu công việc thực tế và các hồ sơ tài liệu có liên quan đến công việc. b) Xác định các kiểu thực thể, các thuộc tính của kiểu thực thể và các kiểu liên kết giữa các kiểu thực thể. c) Sử dụng các ký hiệu hình vẽ để thể hiện các thành phần xác định được ở trên (phần b). d) Dựa vào các thành phần đã vẽ được ở trên (phần c) vẽ 21 mô hình ER).
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd: Bài toán quản lý mượn trả sách tại thư viện trường ĐHDL HP. a) Mô tả bài toán: + Tìm hiểu công việc thực tế tại thư viện: phải gặp Thủ thư để hỏi cụ thể về công việc + Thu thập các hồ sơ tài liệu liên quan: danh mục sách, phiếu mượn sách, phiếu trả sách, Mô tả bài toán (dưới ngôn ngữ của người thiết kế CSDL) 22
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn Trong thư viện có rất nhiều sách khác nhau, thông tin để mô tả sách gồm: Số ký hiệu, tên sách, tác giả, nhà xuất bản, năm xuất bản. Số ký hiệu xác định duy nhất mỗi sách. Các sinh viên (đọc giả) khi mượn sách phải khai báo các thông tin: Mã số SV, họ tên, ngày sinh, lớp, địa chỉ. Mã số SV xác định duy nhất sinh viên. Khi sinh viên mượn sách thì thông tin được lưu lại: Số phiếu mượn, ngày mượn, số lượng, ngày sẽ trả, tình trạng mượn. Số phiếu mượn xác định duy nhất. Khi sinh viên trả sách thì thông tin được lưu lại: Số phiếu trả, ngày trả, số lượng, tình trạng trả. Số phiếu trả xác định duy nhất. 23
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Xác định các thành phần: + Kiểu thực thể: SÁCH => Số ký hiệu, tên sách, tác giả, nhà xuất bản, năm xuất bản SINH VIÊN => Mã số SV, họ tên,ngày sinh,lớp, địa chỉ + Kiểu liên kết: SINH VIÊN “mượn” SÁCH Thông tin riêng của “mượn”: Số phiếu mượn, ngày mượn, số lượng, ngày sẽ trả, tình trạng mượn SINH VIÊN “trả” SÁCH TT riêng:Số phiếu trả, ngày trả, số lượng, tình trạng24 trả
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn c) Ký hiệu Số ký Mã số sv hiệu Năm xuất Địa chỉ SINH VIÊN bản SÁCH Nhà xuất Lớp bản Họ tên Tên sách Ngày Tác giả sinh Số phiếu mượn Ngày mượn 1 n SINH VIÊN Mượn SÁCH Ngày sẽ trả Số lượng Tình trạng mượn 25
- & CHƯƠNGVC 2: MÔ HÌNH LIÊN KẾT THỰC THỂ ER BB Vũ Anh Hùng, vnhung@hpu.edu.vn Ngày Năm xuất d) Vẽ mô hình ER mượn bản Số phiếu Mã số sv mượn Ngày Số ký sẽ trả hiệu Nhà xuất bản Địa chỉ 1 SINH VIÊN Mượn n SÁCH Lớp 1 n Số Tên sách Ngày Họ lượng tên Tác sinh Tình trạng giả mượn Số phiếu Trả trả Ngày trả Tình trạng trả Số lượng 26
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 3.1. Một số khái niệm a) Miền (domain):là 1 tập các giá trị Vd: tập các số nguyên là 1 miền tập các ký tự {a,b,c} là 1 miền b) Tích đề các của các miền Gọi D1, D2, , Dn là n miền giá trị. Tích đề các của n miền là D1 D2 Dn là tập tất các m bộ (v1,v2, ,vn) sao cho vi € Di với i = 1, 2, , n Vd: D1 = {1,2}, D2 = {a,b,c}, khi đó: D1 D2 = {(1,a), (1,b), (1,c), (2,a), (2,b), (2,c)} c) Định nghĩa quan hệ * Đ/n 1: Quan hệ là một tập con của tích đề các của 1 hoặc27 nhiều miền.
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Mỗi quan hệ có thể là vô hạn nhưng ở đây luôn giả thiết rằng quan hệ là 1 tập hữu hạn. Mỗi hàng của quan hệ gọi là 1 bộ. Mỗi bộ của quan hệ có n thành phần (n cột). Các cột của quan hệ gọi là các thuộc tính. Tập thuộc tính: là 1 tập U hữu hạn các thuộc tính và khác rỗng nào đó. Vd: U = {Mã số SV, Họ tên, Ngày sinh, Giới tính,Lớp,Địa chỉ} * Đ/n 2: Quan hệ R trên tập thuộc tính U là 1 tập nào đó ánh xạ t: U → D thỏa mãn điều kiện: t(Ai) € di. Trong đó: di là miền giá trị của thuộc tính Ai (di = dom(Ai)) D là tích đề các của n miền: D = d1 d2 dn 28 U là tập n thuôc tính Ai: U = {A1, A2, , An}
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Mỗi phần tử t € R gọi là 1 bộ của quan hệ. Quan hệ R là 1 bảng chữ nhật bao gồm các hàng và các cột. Các cột ứng với các thuộc tính (mỗi thuộc tính ứng với 1 cột) và các hàng ứng với các bộ (mỗi hàng ứng với 1 bộ) Quan hệ R xác định trên tập thuộc tính U = {A1, A2, , An} được ký hiêu R(A1, A2, , An) hoặc R(U). Vd: Xét quan hệ R là SINH VIÊN xác định trên tập thuộc tính U = {Mã số SV, Họ tên, Ngày sinh, Lớp, Địa chỉ} như sau: 29
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 30
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn d) Khóa (Key) *Đ/n 1: Khóa của quan hệ R xác định trên tập thuộc tính U = {A1, A2, , An} là tập con K nằm trong U thỏa mãn: Với 2 bộ bất kỳ nào đó t1, t2 € R đều tồn tại thuộc tính A € K sao cho t1(A) ≠ t2(A) hay nói cách khác không tồn tại 2 bộ bất kỳ có giá trị bằng nhau trên mọi thuộc tính của K tức T1(K) ≠ t2(K). Do vậy mỗi giá trị của K là xác định duy nhất. Trong quan hệ có thể có rất nhiều khóa. *Đ/n 2: Khóa của quan hệ R xác định trên tập thuộc tính U = {A1, A2, , An} là tập con K nằm trong U sao cho với 2 bộ bất kỳ nào đó t1, t2 € R luôn thỏa mãn t1(K) ≠ t2(K) và bất kỳ tập con thực sự nào K‟ nằm trong K đều không có tính chất trên. 31
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 3.2. CSDL quan hệ và cách tạo lập quan hệ a)Đ/n: CSDL quan hệ là một tập các quan hệ biến thiên theo thời gian, nghĩa là: mỗi quan hệ trong CSDL đó khi thời gian thay đổi thì số các bộ trong quan hệ cũng bị thay đổi đi (tăng lên, giảm đi) đồng thời nội dung của một số bộ cũng thay đổi đi. Sự thay đổi đó là cần thiết vì dữ liệu được lưu trữ nhằm phản ánh quản lý các đối tượng nào đó trong thực tiễn. Vd: 32
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Cách tạo lập quan hệ: + Tên quan hệ + Tên các thuộc tính và kiểu của mỗi thuộc tính + Xác định khóa của quan hệ (nếu có) + Mối ràng buộc dữ liệu đối với các quan hệ đó. Ràng buộc dữ liệu nhằm đảm bảo cho dữ liệu được lưu trữ phù hợp với các đối tượng trong thực tế, gồm: ràng buộc về kiểu, ràng buộc về giải tích, ràng buộc về logic. 3.3. Chuyển đổi từ mô hình ER thành quan hệ 33
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 34
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Số ký SÁCH: hiệu Năm xuất Số ký Tên sách Tác giả Nhà xuất Năm xuất hiệu bản bản bản SÁCH Nhà xuất bản Tên sách Tác giả SINH VIÊN: Mã số sv Mã số sv Họ tên Ngày sinh Lớp Địa chỉ Địa chỉ SINH VIÊN Lớp Họ tên Ngày sinh 35
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Số phiếu mượn Ngày mượn m n SÁCH SINH VIÊN Mượn Ngày sẽ trả Số lượng Tình trạng mượn SV_MƯỢN_SÁCH: Mã số sv Số ký hiệu Số phiếu Ngày Số lượng Tình trạng Ngày sẽ mượn mượn mượn trả 36
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Số phiếu trả Ngày trả m n SINH VIÊN Trả SÁCH Tình trạng Số lượng trả SV_TRẢ_SÁCH: Mã số sv Số ký hiệu Số phiếu Ngày trả Số lượng Tình trạng trả trả 37
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 38
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Năm học Điều kiện tiên quyết Học kỳ Mã số sv Số tiền Mã học môn Tên môn Đăng Họ tên n SINH VIÊN ký m MÔN HỌC học Ngày n n sinh Số tín Điểm thi 2 Điểm thi 1 chỉ Địa chỉ Thuộc 1 Có Mã Chuyên ngành ngành 1 m Mã lớp n 1 LỚP Thuộc 2 NGÀNH HỌC Tên lớp Tên Khóa Sĩ số ngành Mục tiêu Tổng số học đào tạo tín chỉ 39
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 3.4. Các phép toán trên CSDL quan hệ CSDL thường xuyên thay đổi là nhờ các phép toán chèn (INSERT), loại bỏ (DELETE) và thay đổi (CHANGE). Xét quan hệ R xác định trên tập thuộc tính U = {A1,A2, ,An} a) Phép chèn (INSERT): + Thêm một bộ mới vào quan hệ cho trước. + Cú pháp: INSERT (R; A1=d1, A2=d2, , An=dn) trong đó: t=(d1,d2, ,dn) là giá trị của bộ cần chèn và di€dom(Ai), i = 1 n b) Phép loại bỏ (DELETE): + Xóa một bộ ra khỏi quan hệ + Cú pháp: DEL (R; A1=d1, A2=d2, , An=dn) 40
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn trong đó: t=(d1,d2, ,dn) là giá trị của bộ cần xóa và di€dom(Ai), i = 1 n Nếu K = {B1, B2, , Bm} thuộc U là khóa của R , khi đó: DEL (R; B1=e1, B2=e2, , Bm=em) Trong đó t(K)=(e1, e2, , em) là giá trị khóa của bộ t cần loại trên khóa K. c) Phép thay đổi (CHANGE) + Sửa đổi một số giá trị nào đó tại một số thuộc tính của bộ trong quan hệ. CH (R; A1=d1, A2=d2, , An=dn; C1=e1, C2=e2, , Cp=ep) Trong đó: C = {C1,C2, ,Cp} là tập thuộc tính thuộc U t(C) = {e1,e2, ,ep} là giá trị mới cần sửa tại bộ 41t
- & CHƯƠNGVC 3: MÔ HÌNH QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Nếu K = {B1, B2, , Bm} thuộc U là khóa của R , khi đó: CH (R; B1=d1, B2=d2, , Bm=dm;C1=e1, C2=e2, , Cp=ep) 42
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Là 1 trong những ngôn ngữ con dùng để truy nhập dữ liệu Tập thuộc tính U = {A1, A2, , An} R1, R2, Rn là các quan hệ thành phần có cùng một lược đồ (phải xác định trên cùng tập thuộc tính U) 4.1. Các phép toán tập hợp: Hợp, Giao, Hiệu, Tích đề các a) Phép hợp (Union) Hợp của các quan hệ thành phần R1, R2, Rn là 1 quan hệ R có: + Tập thuộc tính: U + Các bộ: bao gồm tất cả các bộ của các quan hệ thành phần + Ký hiệu: R = R U R U U R = {t│t € R hoặc t € R 1 2 n 1 2 43 hoặc hoặc t € Rn }
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Phép giao Giao của các quan hệ thành phần R1, R2, Rn là 1 quan hệ R có: + Tập thuộc tính: U + Các bộ: bao gồm tất cả các bộ thuộc các quan hệ thành phần + Ký hiệu: R = R1 ∩ R2 ∩ ∩ Rn = {t│t € R1 và t € R2 và và t € Rn } c) Phép hiệu Hiệu của quan hệ R1 (quan hệ bị trừ) cho các quan hệ R2, R3 Rn (quan hệ trừ) là 1 quan hệ R có: + Tập thuộc tính: U 44
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Các bộ: bao gồm tất cả các bộ thuộc R1 và không thuộc các quan hệ còn lại R2, R3 Rn + Ký hiệu: R = R1 - R2 - R3 - Rn = {t│t € R1 và t € R2 và t € R3 và và t € Rn } 4.2. Các phép toán: chọn, chiếu, nối, đổi lại tên, chia a) Phép chọn (SELECT) + Biểu thức điều kiện chọn E: là một biểu thức logic được tạo bởi: Các thuộc tính trong U Các phép toán so sánh: ,>=,=,<> Các liên kết logic: AND, OR, NOT Các hằng giá trị cụ thể: số, „xâu‟, ngày tháng năm, 45 TRUE,FALSE
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Phép chọn quan hệ R theo điều kiện chọn E là một quan hệ + Tập thuộc tính: U + Các bộ: bao gồm các bộ t thuộc R và thỏa mãn điều kiện E + Ký hiệu: Rkq = ={t│t € R và t thỏa mãn điều kiện chọn} Vd: SINH VIÊN (Mã số SV ,Họ tên,Ngày sinh,Lớp,Địa chỉ) Y/c: hãy đưa ra danh sách các sinh viên học ở lớp CT1201 và có địa chỉ ở Hải Phòng. Rkq = 46
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn ĐiỂM THI ( Mã số SV,Mã số MH ,Học kỳ,Năm học, Điểm QT,Điểm thi 1, Điểm thi 2) a) Hãy đưa ra danh sách các điểm thi có Điểm quá trình từ 7 trở lên và Điểm thi 1 trên 5. Rkq = =7 AND Điểm thi 1>5 > b) Hãy đưa ra danh sách các điểm thi lần 1 đạt yêu cầu trong học kỳ 2 năm học 2009 – 2010. Rkq = =5> 47
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Phép chiếu (Projection) Mục đích: Đưa ra giá trị tại một số thuộc tính của quan hệ R theo yêu cầu người dùng. Quan hệ R xác định trên tập thuộc tính U = {A1, A2, , An} X là tập thuộc tính trong U Phép chiếu quan hệ R trên tập thuộc tính X là 1 quan hệ: + Tập thuộc tính: X + Các bộ: bao gồm tất cả giá trị của các bộ t trong R xác định trên tập X (R) + Ký hiệu: Rkq = = {t(X) với t R} Vd: SINH VIÊN (Mã số SV ,Họ tên,Ngày sinh,Lớp,Địa chỉ) 48
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Y/c: a) Hãy đưa ra Mã SV, Họ tên, Lớp của các sinh viên Rkq = ∏(SINH VIÊN) b) Hãy đưa ra Mã SV, Họ tên, Lớp của các sinh viên học ở lớp CT1301 và có địa chỉ ở Hải Phòng. R1 = Rkq = ∏(R1) c) Phép nối (JOIN) Quan hệ R1 xác định trên U1 = {A1, A2, , An} 49 Quan hệ R2 xác định trên U2 = {B1, B2, , Bm}
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn X = {X1, X2, , Xk } = U1 ∩ U2 ≠ Ø là tập thuộc tính chung giữa U1 và U2 Khi đó phép nối quan hệ R1 với R2 là 1 quan hệ có: + Tập thuộc tính: U1U2 + Các bộ: bao gồm các bộ t là kết quả của bộ t1 (t1 R1) nối với bộ t2 (t2 R2), điều kiện: t1(X) = t2(X) + Ký hiệu: Rkq = R1 R2 Trong đó: được viết như sau: R1.X1=R2.X1 AND R1.X2=R2.X2 AND AND R1.Xk=R2.Xk 50
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd: SINH VIÊN (Mã số SV ,Họ tên ,Ngày sinh,Lớp,Địa chỉ) ĐIỂM THI (Mã số SV,Mã số MH ,Học kỳ,Năm học, Điểm QT,Điểm thi 1, Điểm thi 2) MÔN HỌC (Mã số MH, Tên MH, Số tín chỉ, ĐK tiên quyết) Y/c: Hãy đưa ra Mã số SV, Họ tên, Lớp, Tên MH, Số tín chỉ, Học kỳ, Năm học, Điểm QT,Điểm thi 1 của các sinh viên. R1 = SINH VIÊN ĐIỂM THI R2 = R1 MÔN HỌC (R2) Rkq = 51
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Ngoài ra còn có một số phép nối ngoài khác: + Nối ngoài trái (left outer join): + Nối ngoài phải (right outer join): + Nối ngoài đầy đủ (full outer join): Nếu không có khi đó phép nối trở thành tích đề các: Rkq = R1 R2 4.3. Các phép toán quan hệ bổ sung: các phép nhóm và hàm nhóm Mục đích: Nhóm các hàng dữ liệu trong bảng quan hệ thành từng nhóm theo một cột cụ thể, sau đó thực hiện 52 việc thống kê dữ liệu theo từng nhóm vừa nhóm
- & CHƯƠNGVC 4: ĐẠI SỐ QUAN HỆ (5 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Sử dụng một số hàm để thống kê: SUM(thuộc tính): tính tổng AVERAGE(thuộc tính): tính trung bình MAX(thuộc tính): tìm giá trị lớn nhất MIN(thuộc tính): tìm giá trị nhỏ nhất COUNT(thuộc tính): đếm số phần tử 53
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 5.1. Giới thiệu SQL SQL (Structured Query Language) là 1 kiểu ngôn ngữ CSDL quan hệ (Relational Database Languague). SQL chia ra làm 2 nhóm chính: DDL (Data Definition Languague) & DML (Data Manipulation Languague) SQL có 2 dạng sử dụng: tương tác (Interactive SQL) và được nhúng (Embeded SQL) 5.2. Các thao tác đối với bảng a) Các kiểu dữ liệu SMALL INT, INT, DECIMAL(n,p), FLOAT, CHAR(n), VAR CHAR(n), LONG VAR CHAR, DATE, NULL 54
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Các toán tử + Số học: +, -, *, / + So sánh: >, >=, hoặc != + Logic: AND, OR, NOT c) Các lệnh Các lệnh của SQL có dạng cấu trúc cú pháp như nhau: Mỗi lệnh đều bắt đầu bằng động từ nêu yêu cầu thực hiện. Trong 1 lệnh thường bao gồm một số mệnh đề ,trong đó mỗi mệnh đề thường là 1 tổ hợp bao gồm các từ khóa, các hằng giá trị, tên các quan hệ, tên các thuộc tính. Mỗi mệnh đề đều nhằm nêu nên 1 ý nào đó liên quan đến các câu hỏi: làm gì? (SELECT), ở đâu? (FROM), khi nào? 55 (WHERE)
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Các lệnh của SQL thường chia làm 4 loại: + Xác định dữ liệu (Data Defination Language): tạo bảng, thay đổi cấu trúc bảng, tạo ra bảng chỉ số Index + Cập nhật dữ liệu (Data Update Language): thêm, sửa, xóa các bản ghi dữ liệu trong bảng. + Tìm kiếm dữ liệu (Query): tìm kiếm dữ liệu từ nhiều bảng trong CSDL thỏa mãn yêu cầu người dùng. + Kiểm tra, kiểm soát dữ liệu. d) Các đối tượng cơ bản của SQL + Bảng (table) Quan hệ + Cột (Column) Thuộc tính + Hàng (Row) Bộ 56 + Khóa chính, khóa ngoài, khóa dự phòng
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn e) Tạo sửa cấu trúc bảng Tạo CSDL CREATE DATABASE CREATE DATABASE QLSVIEN; Mở CSDL đã tồn tại để làm việc OPEN DATABASE OPEN DATABASE QLSVIEN; Tạo bảng trong CSDL CREATE TABLE ( [Primary key]); CREATE TABLE LOP(malop CHAR(6) Primary key,tenlop CHAR(10),siso INT,khoahoc INT); 57
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn CREATE TABLE SINHVIEN(MaSV CHAR(6) Primary key,hoten CHAR(35),ngaysinh DATETIME,diachi CHAR(5),lop CHAR(6)); CREATE TABLE MONHOC(Mamh CHAR(10) Primary key,tenmh char(45),sotinchi INT,dktienquyet VARCHAR(70)); CREATE TABLE DIEM(Mamh CHAR(10),masv CHAR(6),hocky INT,namhoc CHAR(15),diemqt FLOAT,diemthi1 FLOAT,diemthi2 FLOAT); Thay đổi cấu trúc bảng • Thêm cột mới vào bảng ALTER TABLE ADD ; ALTER TABLE DIEM ADD diemthi2 FLOAT; 58
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn • Xóa cột khỏi bảng ALTER TABLE DROP COLUMN ; ALTER TABLE DIEM DROP COLUMN diemthi2; Xóa bảng khỏi CSDL DROP TABLE ; DROP TABLE DIEM; f) Cập nhật các hàng trong bảng Thêm hàng mới INSERT INTO ( , , , ) VALUES( , , , ); INSERT INTO LOP(malop,tenlop,siso,khoahoc) VALUES('CT1301','L?p CT1301',60,13); 59
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Sửa giá trị hàng trong bảng UPDATE SET = [WHERE ]; UPDATE LOP SET siso=65; UPDATE LOP SET siso=65 WHERE malop=„CT1301‟; Xóa hàng khỏi bảng DELETE FROM [WHERE ] DELETE FROM lop; DELETE FROM lop WHERE siso<30; 60
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 5.3. Kết xuất dữ liệu bằng lệnh SELECT a) Mục đích: + Đưa ra các dữ liệu từ 1 hay nhiều bảng có liên quan trong CSDL thỏa mãn 1 hay nhiều điều kiện của người dùng, kết quả đưa ra dưới dạng 1 bảng được sắp xếp tăng dần hoặc giảm dần theo một số cột nào đó trong bảng. + Phân nhóm dữ liệu trong bảng theo một số cột nào đó, từ đó thực hiện việc thống kê dữ liệu trên từng nhóm vừa phân nhóm. + Kết quả câu lệnh trả lại là 1 bảng ảo (view) 61
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Cú pháp SELECT [DISTINCT] * FROM [ALIAS ] [WHERE ] [GROUP BY [HAVING ]] [ORDER BY [ASC DESC]] Trong đó: *: đại diện cho tất cả các cột trong bảng cần đưa ra dữ liệu : là tên các cột trong bảng cần đưa ra dữ liệu : là biểu thức tính toán giữa các cột 62
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn : là tên các bảng trong CSDL cần lấy dữ liệu : có 2 dạng + : nếu sau thành phần FROM mà lấy dữ liệu từ nhiều bảng , , , thì phải có biểu thức điều kiện để nối các bảng: . = . AND . + : để lọc ra các dữ liệu từ các bảng thỏa mãn điều kiện người dùng. : là tên các cột trong bảng dùng để phân nhóm dữ liệu (nếu cần), khi đó có thể chọn lọc các nhóm để hiển thị thỏa mãn sau HAVING 63
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Nếu muốn kết quả đưa ra được sắp xếp tăng dần (ASC) hoặc giảm dần (DESC) theo cột nào đó thì sử dụng thành phần ORDER BY Vd: a) Hãy đưa ra danh sách các sinh viên. SELECT * FROM SINHVIEN; b) Hãy đưa ra danh sách các sinh viên học ở lớp CT1301 và có địa chỉ ở Hải Phòng. SELECT * FROM SINHVIEN WHERE malop=„CT1301‟ AND diachi=„Hải Phòng‟; 64
- & CHƯƠNGVC 5: NGÔN NGỮ SQL (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn SINH VIÊN (Mã số SV ,Họ tên ,Ngày sinh,Lớp,Địa chỉ) ĐIỂM THI (Mã số SV,Mã số MH ,Học kỳ,Năm học, Điểm QT,Điểm thi 1, Điểm thi 2) MÔN HỌC (Mã số MH, Tên MH, Số tín chỉ, ĐK tiên quyết) Y/c: Hãy đưa ra Mã số SV, Họ tên, Lớp, Tên MH, Số tín chỉ, Học kỳ, Năm học, Điểm QT,Điểm thi 1, Điểm thi 2, Kết quả 1 của các sinh viên thi. SELECT MasoSv,Hoten,Lop,TenMH,Sotinchi,Hocky, Namhoc, DiemQT,Diemthi1,(DiemQT*30/100+Diemthi1*70/100) AS Ketqua1 FROM SINHVIEN,DIEMTHI,MONHOC 65 WHERE SINHVIEN.MasoSV=DIEMTHI.MasoSV AND DIEMTHI.MasoMH=MONHOC.MasoMH
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 6.1. Định nghĩa Lược đồ quan hệ (LĐQH) R là tập hữu hạn các thuộc tính U={A1, A2, . . . , An} với Ai là thuộc tính, mỗi thuộc tính Ai có miền giá trị Di = dom(Ai) và dom(Ai) là hữu hạn Bộ (tuple) t được định nghĩa trên R là một ánh xạ từ U vào D sao cho t(Ai) ∈D Quan hệ r là tập các bộ {t1,t2, ,tp}. Cho U là tập các thuộc tính. Một lược đồ CSDL R trên U là họ các LĐQH {U1,U2, . . ., Up} sao cho: Một CSDL r trên lược đồ CSDL R = {U1,U2, . . ., Up} là họ các quan hệ r = {r1,r2, . . .,rp} sao 66 cho ri(Ui) là quan hệ.
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Cho r(U),với r là quan hệ và U là tập thuộc tính Cho A,B ⊆U, phụ thuộc hàm A → B (đọc là A xác định B) được định nghĩa là: ∀t, t‟ ∈ r nếu t.A = t‟.A thì t.B = t‟.B Ýnghĩa: Nếu hai bộ có cùng trị A thì có cùng trị B. Cho lược đồ quan hệ r(U), U là tập thuộc tính, F là tập các phụ thuộc hàm được định nghĩa trên quan hệ r.Phụ thuộc hàm A → B Ta có phụ thuộc hàm A → B được suy logic từ F nếu: quan hệ r trên U thỏa các phụ thuộc hàm trong F thì cũng thỏa phụ thuộc hàm A → B. Ví dụ: F = { A → B , B → C } Ta có phụ thuộc hàm A → C là phụ thuộc hàm được suy từ F. 67
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 2: Xét quan hệ DIEMTHI sau: Các điều kiện ràng buộc quy định như sau : + Mỗi thí sinh có một MaTS duy nhất + Mỗi bài thi có một Số phách duy nhất, mỗi thí sinh có thể có nhiều bài thi + Khi biết MaTS thì ta xác định được HoTen, NgaySinh của thí sinh + Khi biết MaTS và SoPhach của bài thi thì ta xác định được 68 Diem của thí sinh
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn {MaTS} xác định hàm {HoTen, NgaySinh} {MaTS, SoPhach} xác định hàm {Diem} Hay là : {HoTen, NgaySinh} phụ thuộc hàm vào {MaTS} {Diem} phụ thuộc hàm vào {MaTS, SoPhach} Và ta ký hiệu như sau F = {MaTS → (HoTen, NgaySinh),(MaTS,SoPhach) → Diem} 69
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 6.2. Các tính chất Hệ tiên đề Armstrong bao gồm 3 tính chất: a) Phản xạ:Nếu Y ⊂ X thì X → Y b) Tăng trưởng: Nếu Z ⊂U và X → Y thì XZ → YZ (ký hiệu XZ là X ∪ Z) c) Bắc cầu: Nếu X → Y và Y → Z thì X → Z Từ hệ tiên đề Armstrong suy ra các tính chất sau: d) Bắc cầu giả: Nếu X → Y và WY → Z thì XW → Z e) Luật hợp: Nếu X → Y và X → Z thì X → YZ f) Luật phân rã: Nếu X → Y và Z ⊂Y thì X → Z 70
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 6.3. Bao đóng của tập phụ thuộc hàm Ta gọi f là một phụ thuộc hàm được suy dẫn từ F,ký hiệu là F ├ f nếu tồn tại một chuỗi phụ thuộc hàm: f1, f2, ., fn sao cho fj=f và mỗi fi là một thành viên của F hay được suy dẫn từ những phụ thuộc hàm j=1, ,i-1 trước đó nhờ vào luật dẫn. Ký hiệu F+ là tập những phụ thuộc hàm được suy dẫn từ F nhờ vào hệ tiên đề Armstrong. Bao đóng của F: Ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy từ F: F+ = { f | f |= F } Để ấn định F ╞ X →Y, cần kiểm tra X →Y ∈F+ Vd: F = { A → B, B → C} F+ = { A → B, B → C, A → C, A → AB, } Ta luôn có: F F+ . Nếu F = F+ thì F được gọi là họ đầy đủ của các phụ thuộc hàm 71
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 6.4. Bao đóng của tập thuộc tính a) Đ/n: Cho F là tập PTH xác định trên U F = { Xi → Yi}, i = 1,n U = {A1, A2, , .An} X U Khi đó: Bao đóng của tập thuộc tính X theo tập PTH F (ký hiệu + X F) được xác định như sau: + + X F = { A│A U, F ├ X → A} = {A│A U, X → A F } Ý nghĩa: Bao đóng của tập thuộc tính X trên tập phụ thuộc hàm + F (ký hiệu X F) chính là số thuộc tính tối đa ở trong tập thuộc tính U mà nó phụ thuộc vào X. Vd: U = {A,B,C,D} F = {A → B, A → C, C → D} 72
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Ta có: F+ = {A → B, A → C, C → D, A → D} + A F = {ABCD} + + B F = {B} => Nhận xét: X X F U + C F = {CD} b) Tính chất: Đơn điệu: Nếu X Y thì X+ Y+ Phản xạ: X X+ Lũy đẳng: (X+)+ = X+ (XY)+ X+Y+ X → Y ↔ Y X+ X → Y ↔ Y+ X+ X → X+ ↔ X+ → X X+ = Y+ ↔ X → Y và Y → X 73
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn c) Thuật toán tìm bao đóng của tập thuộc tính Input: Cho F là tập PTH xác định trên U F = { Xi → Yi}, i = 1,m U = {A1, A2, , An} X U + Output: Tìm X F Thuật toán: Xây dựng một dãy các giá trị X0, X1, X2, , Xj , như sau: X0 = X j j-1 X = X Yi, trong đó: Xi → Yi F j-1 Xi X j-1 Yi X j = 1, 2, , k, 74
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Nhận xét: dãy các giá trị X0, X1, X2, , Xj , là một dãy không giảm và bị chặn trên bởi tập U, bởi vậy k bé nhất sao cho: k+1 k + k X = X , khi đó: X F = X Vd 1: U = {A,B,C,D} F = {A → B, A → C, C → D} + Tìm: A F X0 = A X1 = X0 B C = A B C = ABC X2 = X1 D = ABC D = ABCD X3 = X2 Ø = ABCD 3 2 + 2 Nhận xét: X = X → A F = X = ABCD 75
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 2: U = {A,B,C,D,E} và F = {A → BC, B → D, D → E} + a) Tìm: A F X0 = A X1 = X0 BC = A BC = ABC X2 = X1 D = ABC D = ABCD X3 = X2 E = ABCD E = ABCDE X4 = X3 Ø = ABCDE 4 3 + 3 Nhận xét: X = X = ABCDE → A F = X = ABCDE + b) Tìm: BC F X0 = BC X1 = X0 D = BC D = BCD X2 = X1 E = BCD E = BCDE 3 2 + 2 76 X = X Ø = BCDE, suy ra: BC F = X = BCDE
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 3: U = {Mã HS,Tên HS,Mã MH,Tên MH,Điểm} F = {Mã HS → Tên HS,Mã MH → Tên MH, (Mã HS,Mã MH) → Điểm} + a) Tìm: (Mã HS,Mã MH) F X0 = (Mã HS,Mã MH) X1 = X0 Tên HS Tên MH Điểm = U + Suy ra: (Mã HS,Mã MH) F = U + b) Tìm: (Mã HS) F X0 = (Mã HS) X1 = X0 (Tên HS) = (Mã HS) (Tên HS) = (Mã HS,Tên HS) X2 = X1 Ø = (Mã HS,Tên HS) Nhận xét: X2 = X1 = (Mã HS,Tên HS), suy ra: + 1 77 (Mã HS) F = X = (Mã HS,Tên HS)
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 4: U = {Mã số DA,Tên DA,Đia điểm DA,Mã số NV,Tên NV, Số giờ DA} F = {Mã số DA → (Tên DA,Địa điểm DA), Mã số NV → Tên NV, (Mã số DA,Mã số NV) → Số giờ DA} + + Tìm: (Mã số DA,Mã số NV) F = ? , (Mã số DA) F = ? + (Mã số NV) F = ? Vd 5: U = {A,B,C,D,E,G,H} F = {AB → CD, A → E, B → G, C → H} + + + Tìm: (AB) F = ?, (AC) F = ?, (E) F = ? 78
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 6.5. Tập phụ thuộc hàm tương đương a) Đ/n: Cho 2 tập PTH: F = { Xi → Yi}, i = 1,n G = { Xj → Yj}, j = 1,m Khi đó: F và G tương đương với nhau khi và chỉ khi F+ = G+ b) Thuật toán kiểm tra F tương đương với G Kiểm tra: F phủ G và G phủ F + + F phủ G nếu mọi PTH Xi → Yi F mà (Xi) G Yi thì Xi → Yi G + + G phủ F nếu mọi PTH Xj → Yj G mà (Xj) F Yj thì Xj → Yj F Vd 1: F = {AB → C, A → D, BD → C} G = {ABD → CD, A → D, BD → C} Vd 2: F = {A → C, AC → D, E → AD, E → H} G = {A → CD, E → AH} F có tương đương với G không? 79
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 6.6. Phủ tối thiểu a) Đ/n: Tập PTH F là tối thiểu nếu thỏa mãn các điều kiện sau: Vế phải của các PTH trong F chỉ có một thuộc tính Không thể thay thế bất kỳ một PTH X → A trong F bằng PTH Y → A, trong đó Y là tập con đúng của X mà vẫn còn là một PTH tương đương với F. Không thể bỏ đi bất kỳ PTH nào ra khỏi F mà vẫn có một PTH tương đương với F. Nhận xét: Một phủ tối thiểu của tập PTH F là tập PTH Fmin tương đương với F. Vd: F = {A → BC, B → AC, C → A, C → B} Fmin = {A → B, B → A, B → C, C → B} 80
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Thuật toán tìm phủ tối thiểu của F Đặt G := F Thay thế mỗi PTH X → {A1, A2, , An } trong G bằng n PTH X → A1, X → A2, , X → An Với mỗi PTH X → A trong G ta thực hiện như sau: mỗi thuộc tính B X nếu ((G – (X → A) U ((X – {B}) → A) là tương đương với G thì thay thế X → A bằng (X – {B}) → A ở trong G. Với mỗi PTH X → A còn lại trong G: Nếu (G – {X → A}) là tương đương với G thì loại bỏ X → A ra khỏi G. Các PTH còn lại trong G sau bước cuối cùng chính là Fmin Vd 1: F = {A → B, A → C, B → A, B → C, C → A, C → B} Fmin = {A → B, B → A, B → C, C → B} F = {A → B, B → C, C → A} min 81
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 2: F = {A → BC, B → AC, C → A, C → B} Bước 1: Đặt G := F = {A → BC, B → AC, C → A, C → B} Bước 2: Thay thế A → BC bằng A → B, A → C B → AC bằng B → A, B → C Ta có: G = {A → B, A → C, B → A, B → C, C → A, C → B} Bước 3: Do vế trái các PTH trong G chỉ có một thuộc tính nên bỏ qua bước 3 này, do vậy: G = {A → B, A → C, B → A, B → C, C → A, C → B} Bước 4: Do A → B, B → C nên A → C thừa C → B, B → A nên C → A thừa Vậy: Fmin = {A → B, B → A, B → C, C → B} 82
- & CHƯƠNGVC 6: PHỤ THUỘC HÀM (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 3: F = {A → BC, B → C, AB → D} Fmin = {A → B, A → D, B → C} Vd 4: F = {AB → CD, B → C, C → D} Fmin = {B → C, A → D, BC → D} Vd 5: F = {AC → B, C → A, BC → D, AB → D} 83
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 7.1. Định nghĩa Cho một lược đồ quan hệ R có tập thuộc tính U = {A1, A2, , An}, tập phụ thuộc hàm F = {Xi→Yi} với i = 1 n Siêu khóa : Tập thuộc tính con K ⊂ U là được gọi là siêu khóa + nếu K F = U Khóa : Tập thuộc tính con K ⊂ U là được gọi là khóa nếu: + + K là siêu khóa (K F = U) + + tập con K‟ ⊂ K thì K‟ không là siêu khóa ( (K‟) F ≠ U ) VD: Cho lược đồ quan hệ R có: U = {A,B,C,D} F = {AB→C, BC→D, D→AC, AC→B} Tìm khóa của R? Xét K = {A,B} ta có: 84
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn + {A,B} F = ABCD = U K là siêu khóa + K' = A U : Có {A} F = {A} ≠ U K' không là siêu khóa + K'' = B U : Có {B} F = {B} ≠ U K'' không là siêu khóa K = {A,B} là khóa của R b) Tìm khóa theo định nghĩa: Xét từng phụ thuộc hàm trong F. Với mỗi phụ thuộc hàm trong F thực hiện theo các bước sau: + Lấy bao đóng vế trái của phụ thuộc hàm + Nếu bao đóng bằng U thì: b1. Thử loại dần từng thuộc tính một trong vế trái của phụ thuộc hàm b2. Tính lại bao đóng của vế trái sau khi đã loại bỏ đi một thuộc tính 85
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b3. Nếu bao đóng bằng U thì loại bỏ thật thuộc tính khỏi vế trái của phụ thuộc hàm, nếu không giữ lại thuộc tính này và quay lại b1 b4. Khi không loại bỏ được thuộc tính nào nữa của vế trái của phụ thuộc hàm thì khóa là tập thuộc tính còn lại của vế trái của phụ thuộc hàm. VD : Cho R có U=(MaDA,TenDA,ĐĐDA,MaNV,TenNV,SoGio) F = { MaDA→(TenDA,ĐĐDA), MaNV→TenNV, (MaNV,MaDA)→SoGio} Tìm khóa của R? Xét K = {MaDA, MaNV} + {K} F = {MaDA, MaNV, SoGio, TenDA, ĐĐDA, TenNV}=U {MaNV, MaDA} là siêu khóa của R 86
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn + + + + + Xét {MaDA} F ,{MaNV} F, {SoGio} F, {TenDA} F, {ĐĐDA} F, + {TenNV} F đều không phải là siêu khóa (≠ U) {MaNV, MaDA} là khóa của R Nhận xét + Nếu K là khóa thì K ≠ + Với hai khóa bất kỳ K1 và K2 thì chúng không bao giờ bao nhau + Một lược đồ quan hệ R có thể có 1 hoặc nhiều khóa nhưng chắc chắn sẽ có ít nhất là một khóa. + Hợp của hai khóa khác nhau không phải là khóa + Giao của hai khóa khác nhau không phải là khóa 87
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Hợp và giao của tất cả các khóa của một lược đồ quan hệ không phải là khóa. Trong trường hợp nếu giao và hợp của tất cả các khóa của của một lược đồ quan hệ là khóa thì chứng tỏ rằng lược đồ quan hệ đó chỉ có một khóa duy nhất. Gọi KR là tập hợp của tất cả các khóa của lược đồ quan hệ R KR = {K1, K2, , Kn}, Ki là một khóa của R (i = 1 n) Đặt IR = Ki (i = 1 n). Ta có : + + Nếu {IR} = U R chỉ có duy nhất một khóa K = IR + + Nếu {IR} ≠ U R có từ hai khóa trở lên Nhận xét : Nếu một lược đồ quan hệ R có nhiều hơn một khóa thì các khóa đó được gọi là các khóa dự tuyển. Một trong các khóa dự tuyển sẽ được chỉ định làm khóa chính và các khóa còn lại gọi là khóa dự phòng. Một lược đồ quan hệ phải có một khóa chính. 88
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 7.2. Thuật toán tìm khóa Bài toán Input: Cho lược đồ quan hệ R có: U = {A1, A2, , An} và tập phụ thuộc hàm: F = {Xi→Yi}, i=1 m Ouput: Tìm tất cả các khóa của lược đồ quan hệ R Thuật toán Bước 1: Tính IR = U - + + Bước 2: Tính {IR} và so sánh {IR} với U nếu: + + {IR} = U Kết luận R chỉ có một khóa duy nhất là K = IR + + {IR} ≠ U Kết luận R có từ hai khóa trở lên Bước 3: Tính N = với Xi IR + Bước 4: Tính N1 = {N IR} \ IR 89
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Bước 5: Tính M = U \ (N1 IR) = {B1, B2, , Bk} Đặt: K = IR For (i = 1 ; i <= k ; i++) + if ({K Bi} == U) { K = K Bi Khóa là K ; Kết thúc } else K = K Bi Nghĩa là: Lấy từng thuộc tính Bi trong M bổ sung vào IR sao cho + trở thành khóa: {IRBi} = U khóa K = IRBi 90
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn VD 1 : Cho lược đồ quan hệ R có : U = {A,B,C,D} F = {A→BC, C→D, D→B} Tìm khóa của R? Tính: IR = {ABCD} - {BC D B} = ABCD - BCD = A + + {IR} = {A} = {ABCD} = U R có một khóa duy nhất là K = IR = {A} VD 2: Cho R có U = {MaSV, TenSV, Lop, MaMH, TenMH, Diem} F = {MaSV→(TenSV,Lop),MaMH→TenMH,(MaSV, MaMH)→Diem} + Tính : IR = U – {(TenSV, Lop) (TenMH) (Diem)} = {MaSV, MaMH} + + + Tính {IR} = {MaSV, MaMH} = U R chỉ có một khóa duy nhất K = {MaSV, MaMH} 91
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn VD 3: Cho lược đồ quan hệ R có: U = {A,B,C,D,E,G,H,I,K} F = { ACH→BH, BH→ACD, ABCI→DIK, ADEI→BCG, CGI→AEK, H→BC } Tìm khóa của R? + Tính IR = {ABCDEGHIK}-{B ACD DK BCG AEK BC} = {ABCDEGHIK}-{ABCDEGK} = {HI} + + + Tính {IR} = {HI} = {ABCDHIK} + Do {IR} ≠ U Lược đồ quan hệ R có nhiều khóa + Tính N = {BC}-H = {BC} + + + Tính N1 = {N IR} \IR = {BC HI} \{HI} = {ABCDHIK}\{HI} = ABCDK 92 + Tính M = U - {N1 IR} = ABCDEGHIK - {ABCDK HI} = {EG}
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Tìm khóa K1 K1 = IR = HI Lấy E M bổ sung vào K1 = K1 E = HI E = HIE + Tính {K1} = U Khóa K1 = HIE + Tìm khóa K2 K2 = IR = HI Lấy G M bổ sung vào K2 = K2 G = HI G = HIG + Tính {K2} = U Khóa K2 = HIG Kết luận: R có 2 khóa là: HIE và HIG 93
- & CHƯƠNGVC 7: KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (4 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 94
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.1. Định nghĩa Chuẩn hóa là quá trình khảo sát danh sách các thuộc tính và bổ sung thêm một tập các quy tắc để phân tích các lược đồ quan hệ dựa trên các phụ thuộc hàm và khóa chính của nó thành những lược đồ quan hệ nhỏ hơn sao cho: - Việc lưu trữ dữ liệu có hiệu quả - Làm cực tiếu hóa dư thừa dữ liệu - Bảo toàn thuộc tính và phụ thuộc hàm - Bảo toàn được thông tin Một quan hệ chưa đạt tiêu chuẩn khi được chuẩn hóa có thể trở thành nhiều quan hệ nhỏ hơn đạt chuẩn khác nhau và không bị mất mát thông tin. Để thực hiện được điều này: + Đưa ra các dạng chuẩn : 1NF, 2NF, 3NF, BCNF, 4NF, 5NF + Kiểm tra xem một quan hệ có thỏa mãn dạng chuẩn hay không95
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Nếu không thỏa mãn thì sẽ tách quan hệ (dựa vào phụ thuộc hàm và khóa chính) ban đầu thành các quan hệ mới thỏa mãn dạng chuẩn đề ra. VD : Cho lược đồ quan hệ: R (MaSV, TenSV, MaMH, TenMH, SoTiet, Diem) F = { MaSV→(TenSV, Lop), MaMH→TenMH, (MaSV, MaMH)→Diem} Xây dựng quan hệ r cụ thể từ lược đồ R trên như sau: 96
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Nhận xét quan hệ r - Dư thừa dữ liệu + Tốn bộ nhớ để lưu trữ + Thời gian xử lý dữ liệu lâu - Cập nhật dữ liệu khó + Sửa tên sinh viên A thành C : Phải sửa nhiều lần + Xóa một sinh viên mất dữ liệu + Bổ sung thêm sinh viên mới thì khó 97
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Tách quan hệ r trên thành 3 quan hệ mới là r1, r2 và r3 98
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Nhận xét - Không dư thừa dữ liệu - Không khó khăn khi cập nhật dữ liệu - Khai thác dữ liệu dễ dàng, hiệu quả - Bảo toàn tập thuộc tính và tập phụ thuộc hàm của quan hệ r 99
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.2. Các dạng chuẩn và thuật toán tách 8.2.1. Dạng chuẩn 1 (1NF: First Normal Form) Một quan hệ ở 1NF nếu các giá trị của tất cả thuộc tính trong quan hệ là nguyên tử. Ví dụ quan hệ sau đây không phải là 1NF 10 0
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.2.2. Dạng chuẩn 2 (2NF - Second Normal Form) a) Đ/n 1: Phụ thuộc hàm đầy đủ: Phụ thuộc hàm X Y được gọi là phụ thuộc hàm đầy đủ nếu X' X thì không X„ Y. Một lược đồ quan hệ R đạt dạng chuẩn 2 nếu mỗi thuộc tính không khóa là phụ thuộc hàm đầy đủ vào khóa chính. Vd: Cho lược đồ quan hệ R(MaSV, Lop, TenSV, MaMH, TenMH, Diem) F = { MaSV (TenSV, Lop), MaMH TenMH, (MaSV, MaMH) Diem} Khóa: K = {MaSV, MaMH} Các thuộc tính không khóa: {TenSV,Lop,TenMH,Diem} 10 1
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Xét PTH: (MaSV, MaMH) Diem MaSV (TenSV, Lop) thuộc tính không khóa (TenSV, Lop) phụ thuộc hàm không đầy đủ vào khóa chính Vi phạm tính phụ thuộc hàm đầy đủ R 2NF. b) Đ/n 2: Một lược đồ quan hệ R được gọi là đạt dạng chuẩn 2 nếu: + R đạt dạng chuẩn 1 + Không tồn tại các thuộc tính không khóa phụ thuộc hàm vào một bộ phận của khóa chính. Vd: Xét lược đồ quan hệ R ở trên + Khóa chính K = (MaSV, MaMH) + Xét phụ thuộc hàm: 10 2
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn phụ thuộc vào một bộ phận khóa chính (MaSV, MaMH) R 2NF c) Thuật toán tách lược đồ quan hệ R thành dạng chuẩn 2 Tách các thuộc tính phụ thuộc hàm vào một bộ phận khóa chính thành một lược đồ quan hệ mới R1, khóa chính của R1 là thuộc tính khóa bộ phận của R mà thuộc tính không khóa phụ thuộc hàm vào. Các thuộc tính còn lại của R tạo thành một lược đồ quan hệ mới là R2, khóa chính của R2 là khóa chính của R ban đầu. 10 3
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd: Lược đồ quan hệ R (MaSV,TenSV,Lop,MaMH,TenMH,Diem) + Khóa: K = (MaSV,MaMH) + Tồn tại các thuộc tính không khóa: (TenSV,Lop) phụ thuộc hàm vào bộ phận khóa chính là MaSV (TenMH) phụ thuộc hàm vào bộ phận khóa chính là MaMH R 2NF + Tách R thành 3 quan hệ: R1 (MaSV, TenSV, Lop) R2 (MaMH, TenMH) R3 (MaSV, MaMH, Diem) 10 R1, R2, R3 2NF 4
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Vd 2: Cho lược đồ quan hệ: R (A,B,C,D,E,G,H,I) F = {A BC, C D, E GH, AE I} Kiểm tra xem R có thuộc chuẩn 2 không. Nếu không thuộc thì tách R thành các lược đồ quan hệ con thuộc chuẩn 2. + Khóa: K = AE + Ta có: A BC E GH Nên tồn tại các thuộc tính không khóa: B,C phụ thuộc vào bộ phận khóa chính là A G,H phụ thuộc vào bộ phận khóa chính là E theo định nghĩa thì R 2NF + Tách R thành 3 lược đồ quan hệ con: 10 5
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn R1 (A,B,C,D) F1= {A BC, C D} Khóa là: A R2 (E,G,H) F2 = {E GH} Khóa là: E R3 (A,E,I) F3 = {AE I} Khóa là: AE R1, R2, R3 2NF 10 6
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.2.3. Dạng chuẩn 3 (3NF: Third Nomal Form) a) Phụ thuộc hàm bắc cầu: PTH X Y được gọi là bắc cầu nếu một tập Z U sao cho: X Z, Z Y. Tức là tập thuộc tính Y phụ thuộc hàm bắc cầu vào tập thuộc tính X. b) Đ/n: Một lược đồ quan hệ R được gọi là đạt dạng chuẩn 3NF: + R đạt dạng chuẩn 2NF + Không có thuộc tính không khóa phụ thuộc hàm bắc cầu vào khóa chính. V/d: Cho R (MaNV,TenNV,MaDV,TenDV,MaDA,TenDA,ĐĐDA,SoGio) F = { MaNV (TenNV,MaDV), MaDV TenDV, MaDA (TenDA, ĐĐDA), (MaNV, MaDA) SoGio } Yêu cầu: Kiểm tra xem R có thuộc 3NF không? Nếu không tách R thành các quan hệ con đạt chuẩn 3NF? 10 7
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Khoá chính: K = {MaNV,MaDA} + Ta có: MaNV (TenNV,MaDV) MaDA (TenDA, ĐĐDA) tồn tại các thuộc tính: (TenDV,MaDV) phụ thuộc bộ phận vào khóa chính là MaNV (TenDA, ĐĐDA) phụ thuộc bộ phận vào khóa chính là MaDA theo đ/n chuẩn 2 thì R 2NF theo đ/n chuẩn 3 thì R 3NF Vd 2: R1 (A,B,C,D) F1= {A BC, C D} Cho biết R1 có đạt chuẩn 3 không? Vì sao? Khóa là: K = {A} A BC tồn tại thuộc tính D phụ thuộc bắc cầu vào khóa C D chính A thông qua thuộc tính bắc cầu C 10 8
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn theo đ/n chuẩn 3 thì R1 3NF c) Thuật toán tách R thành dạng chuẩn 3NF Tách các thuộc tính phụ thuộc hàm bắc cầu vào khóa chính trong R thành một lược đồ quan hệ mới R1. Khóa chính của R1 là thuộc tính bắc cầu. Các thuộc tính còn lại của R tạo thành một lược đồ quan hệ mới là R2. Khóa chính là khóa ban đầu của R. Nhận xét: R 3NF R 2NF R 1NF V/d 1: R1 (MaNV,TenNV,MaDV,TenDV) F1 = { MaNV (TenNV,MaDV), MaDV TenDV } Tách quan hệ con R1 thành dạng chuẩn 3NF R1 R11(MaDV, TenDV) 3NF R (MaNV, TenNV, MaDV) 3NF 12 10 9
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn V/d 2: R (A,B,C,D,E,G,H,I) F = { AB CD, C EG, B H, H I} Cho biết R 3NF? Vì sao? Nếu không hãy tách R thành các quan hệ con đạt dạng chuẩn 3NF. + Khóa: K = {A,B} + Ta có: B H tồn tại thuộc tính không khóa H phụ B {A,B} thuộc vào bộ phận khóa chính theo đ/n chuẩn 2 thì R 2NF theo đ/n chuẩn 3 thì R 3NF + Tách R thành: R1 (B,H,I) F1= { B H, H I } R1 2NF Khóa là: B R2 (A,B,C,D,E,G) F2 = { AB CD, C EG } R2 2NF Khóa là: {A,B} 11 0
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Xét R1 có: Khóa: K = {B} B H tồn tại thuộc tính không khóa I phụ H I thuộc bắc cầu vào khóa chính B theo đ/n chuẩn 3 thì R1 3NF Tách R1 thành: R11 (H,I) F11= { H I } R11 3NF Khóa là: H R12 (B,H) F12 = { B H } R12 3NF Khóa là: {B} 11 1
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn + Xét R2 có: Khóa: K = {A,B} AB CD tồn tại thuộc tính không khóa (E,G) phụ C EG thuộc bắc cầu vào khóa chính {A,B} theo đ/n chuẩn 3 thì R2 3NF Tách R2 thành: R21 (C,E,G) F21= { C EG } R21 3NF Khóa là: C R22 (A,B,C,D) F22 = { AB CD } R22 3NF Khóa là: {A,B} 11 2
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Kết luận: R được tách thành 4 quan hệ con đạt chuẩn 3NF R11 (H,I) F11= { H I } Khóa là: H R12 (B,H) F12 = { B H } Khóa là: {B} R21 (C,E,G) F21= { C EG } Khóa là: C R22 (A,B,C,D) F22 = { AB CD } Khóa là: {A,B} 11 3
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Bài tập: Cho biết các lược đồ quan hệ sau có đạt dạng chuẩn 3NF không? Vì sao? Nếu không hãy tách R thành các quan hệ con đạt chuẩn 3NF. 1. R = {A,B,C,D,E,G } F = { A → BC, C → DE, E → G } 2. R = CHUYEN_BAY(MACHBAY, MAPHICONG,TENPC) F = { MACHBAY (MAPHICONG,TENPC), MAPHICONG TENPC, TENPC MAPHICONG } 3. R = {A,B,C} F = { AB → C, A → B, B → C, A → C} 4. R = {A, B, C, D, E, K, G, H, I, J} F = {A DE, D IJ, AB C, B K, K GH} 11 4
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.3. Một số dạng chuẩn nâng cao NX: Các dạng chuẩn 1NF, 2NF, 3NF là đủ dùng cho phần lớn cơ sở dữ liệu của bài toán quản lý. Tuy nhiên dạng chuẩn 3NF chưa đảm bảo tất cả các dư thừa dữ liệu đã bị loại trừ. 11 5
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn F = { (MaSV,TenDeTai) GiaoVienHD, (MaSV,GiaoVienHD) TenDeTai } Giả sử sinh viên có MaSV là sv03 thay đổi đề tài "UML & ứng dụng" sang đề tài mới là "Xây dựng mạng LAN" thì có thể phải thay đổi luôn GiaoVienHD A thành GiaoVienHD A'. Khi đó trong quan hệ bị mất thông tin về giáo viên A hướng dẫn đề tài “UML & ứng dụng”. Do đó ngoài 3 dạng chuẩn cơ bản còn có một vài dạng chuẩn bổ sung được đưa vào thiết kế để loại bỏ các dư thừa dữ liệu có thể có. Đó là 3 dạng chuẩn nâng cao BCNF, 4NF và 5NF 11 6
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.3.1. Dạng chuẩn BCNF (Boyce Codd Normal Form) a) Đ/n 1: Lược đồ quan hệ R được gọi là đạt dạng chuẩn BCNF nếu X và A là các tập thuộc tính của R, trong đó A X và X A thì X phải là một khóa dự tuyển trong R. b) Đ/n 2: Lược đồ quan hệ R được gọi là đạt dạng chuẩn BCNF nếu: + Đạt dạng chuẩn 3NF + Không có các thuộc tính khóa phụ thuộc hàm vào thuộc tính không khóa Ví dụ : Xét quan hệ R: HUONGDAN Chọn K1 = (MaSV,TenDeTai) làm khóa chính. Do PTH: (MaSV,GiaoVienHD) TenDeTai nên thuộc tính khóa TenDeTai phụ thuộc hàm vào thuộc tính không khóa GiaoVienHD R BCNF 11 7
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn c) Thuật toán tách lược đồ quan hệ R thành chuẩn BCNF Tách phụ thuộc hàm giữa thuộc tính khóa và thuộc tính không khóa thành một lược đồ quan hệ mới là R1. Khóa chính của R1 là thuộc tính không khóa mà thuộc tính khóa phụ thuộc hàm vào. Các thuộc tính còn lại của R tạo thành một lược đồ quan hệ mới là R2. Khóa chính của R2 là khóa chính ban đầu của R, nhưng trong khóa chính thì thuộc tính khóa được thay thế bằng thuộc tính không khóa mà nó phụ thuộc hàm vào. V/d 1: Xét lược đồ quan hệ R: HUONG DAN + Khóa chính K = (MaSV,TenDeTai) + Tách R: R1 (GiaoVienHD,TenDeTai) R2 (MaSV, GiaoVienHD) 11 8
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 11 9
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn A1A4 12 0
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 1
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 2
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 3
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 4
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 5
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 6
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.3.2. Dạng chuẩn 4 (4NF: Fourth Normal Form) Nhận xét : Một quan hệ đã đạt dạng chuẩn BCNF vẫn có thể xảy ra những dị thường khi cập nhật dữ liệu nếu trong quan hệ có phụ thuộc hàm đa trị. 12 7
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 12 8
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Các ràng buộc dữ liệu - Mỗi môn học có nhiều giáo viên đăng ký giảng dạy MonHoc GiaoVien - Mỗi môn học có thể dạy theo một số giáo trình khác nhau MonHoc GiaoTrinh - Giáo trình nào được dạy cho môn học nào tùy thuộc vào giáo viên giảng dạy: (GiaoTrinh,MonHoc) GiaoVien Giả sử có một giáo viên G đăng ký giảng dạy môn Lập trình. Khi đó trong bảng KHANANGDAY phải lưu trữ thông tin này với 3 hàng, mỗi hàng tương ứng với một Giáo trình vì chưa biết giáo viên G sẽ dạy theo Giáo trình nào. Như vậy quan hệ KHANANGDAY đã đạt dạng chuẩn BCNF(Khóa dự tuyển là MonHoc và {GiaoVien,MonHoc}) nhưng vẫn dư thừa dữ liệu và dẫn đến việc dị thường khi cập nhật dữ liệu. Loại dị thường này thường xảy ra khi trong quan hệ có phụ thuộc hàm đa trị. 12 9
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn a) Phụ thuộc hàm đa trị: là các phụ thuộc hàm có dạng {X Y, X Z} nhưng Y độc lập với Z (Y Z) Ví dụ: xét phụ thuộc hàm Môn hoc giáo viên trong đó giáo viên giáo trình FD đa tri Môn hoc giáo trình b) Đ/n: Lược đồ quan hệ R được gọi là đạt dạng chuẩn 4 nếu: + R đạt chuẩn BCNF + Không chứa các phụ thuộc hàm đa trị c) Thuật toán tách R đạt chuẩn 4 Tách lược đồ quan hệ R thành 2 lược đồ quan hệ mới trên cơ sở các tập thuộc tính Y và Z trong các phụ thuộc hàm đa trị: + Tách PTH X Y thành lược đồ quan hệ R1 + Tách PTH X Z thành lược đồ quan hệ R2 13 0
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 13 1
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.3.3. Dạng chuẩn 5 (5NF) * Nhận xét: Một quan hệ mặc dù đạt dạng 4NF nhưng vẫn có thể bị dư thừa dữ liệu nếu trong quan hệ có phụ thuộc hàm kết nối. a) Phụ thuộc hàm kết nối: là phụ thuộc hàm được dùng để kết nối các quan hệ với nhau. b) Đ/n: Lược đồ quan hệ R được gọi là đạt dạng chuẩn 5NF nếu: + R đạt chuẩn 4NF + Không chứa phụ thuộc hàm kết nối c) Thuật toán tách R đạt dạng chuẩn 5NF Tách R thành hai hay nhiều lược đồ quan hệ con sao cho khi 13 nối lại thì nhận được R ban đầu. 2
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 13 3
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.3. Thuật toán kiểm tra phép tách bảo toàn 2 13 4
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn c) Phép tách bảo toàn thông tin Giả sử lược đồ quan hệ R được tách thành k lược đồ quan hệ con R1, R2, , Rk. Từ k lược đồ quan hệ trên ta xây dựng k quan hệ tương ứng là r1, r2, , rk. Gọi r là trạng thái của lược đồ quan hệ R tại một thời điểm nào đó Gọi r1 là trạng thái của lược đồ quan hệ R1 thì r1= R1(r) Gọi r2 là trạng thái của lược đồ quan hệ R2 thì r2= R2(r) Gọi rk là trạng thái của lược đồ quan hệ Rk thì rk= Rk(r) 13 5
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 13 6
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 13 7
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8.4. Thuật toán kiểm tra phép tách bảo toàn thông tin a) Bài toán Input: - Cho lược đồ quan hệ R với: + Tập thuộc tính U = {A1,A2, ,An} + Tập phụ thuộc hàm F = {Xi Yi} với i=1,m - Lược đồ quan hệ R được tách thành k lược đồ quan hệ con R1, R2, , Rk. Trong đó lược đồ con thứ j có tập thuộc tính là Uj và tập phụ thuộc hàm Fj (j=1,k) Output: Phép tách từ lược đồ quan hệ R ban đầu thành k lược đồ quan hệ con R1,R2, ,Rk có làm mất thông tin không? 13 8
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn b) Thuật toán Bước 1: Thiết lập bảng Lập bảng hai chiều gồm n cột (mỗi cột tương ứng với thuộc tính Ai U) và k hàng (mỗi hàng tương ứng với lược đồ con Rj tách được). Sau đó điền thông tin vào bảng như sau: Tại ô (i,j) điền giá trị: ai nếu Ai Rj (Ai là thuộc tính của lược đồ quan hệ Rj) bi nếu Ai Rj (Ai không là thuộc tính của lược đồ quan hệ R13j) 9
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Bước 2: Biến đổi bảng Xét từng PTH X Y F nếu: + Tồn tại 2 hàng có giá trị bằng nhau trên tập thuộc tính X (ví dụ t1,t2 mà t1[X]=t2[X]) thì làm cho hai hàng có giá trị bằng nhau trên tập thuộc tính Y (ví dụ t1[Y]=t2[Y]). Trong khi làm giá trị của hai hàng bằng nhau trên tập thuộc tính Y, nếu một trong hai giá trị là ai thì ưu tiên làm giá trị bằng nhau theo ai, ngược lại làm bằng nhau theo một trong hai ký hiệu bi. + Tiếp tục áp dụng các phụ thuộc hàm cho các hàng của bảng (một phụ thuộc hàm có thể được sử dụng lại nhiều lần) cho đến khi không áp dụng thêm được phụ thuộc hàm nào nữa. 14 0
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn Bước 3: Kết luận Dựa vào bảng cuối cùng sau khi biến đổi ở bước 2: Nếu trong bảng xuất hiện một hàng chứa toàn các ký hiệu ai (i=1,n) thì kết luận phép tách không làm mất thông tin, ngược lại phép tách làm mất thông tin. 14 1
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 14 2
- & CHƯƠNGVC 8: CHUẨN HÓA (8 tiết) BB Vũ Anh Hùng, vnhung@hpu.edu.vn 8 .5. Một số định lý và hệ quả a) Một lược đồ quan hệ R đạt chuẩn BCNF thì cũng đạt chuẩn 3NF b) Một lược đồ quan hệ R 3NF thì R 2NF c) Một lược đồ quan hệ R 2NF thì có thể R 3NF d) Một lược đồ quan hệ R 3NF thì có thể R BCNF 14 3