Giáo trình Cơ sở dữ liệu gồm các nội dung chính sau: Tổng quan về cơ sở dữ liệu; Mô hình cơ sở dữ liệu quan hệ; Ngôn ngữ dữ liệu SQL; Ràng buộc toàn vẹn và phụ thuộc hàm; Dạng chuẩn và chuẩn hóa lược đồ cơ sở dữ liệu quan hệ; Tối ưu hóa câu hỏi. Mời các bạn cùng tham khảo!
ỦY BAN NHÂN DÂN TỈNH AN GIANG TRƯỜNG CAO ĐẲNG NGHỀ AN GIANG GIÁO TRÌNH Cơ sở liệu NGHỀ LẬP TRÌNH MÁY TÍNH & TIN ỨNG DỤNG TRÌNH ĐỘ CAO ĐẲNG NGHỀ & TRUNG CẤP NGHỀ (Ban hành theo Quyết định số: /QĐ-CĐN ngày tháng năm 20 Hiệu trưởng trường Cao đẳng nghề An Giang) Tên tác giả : Trần Thị Kim Ngọc Năm ban hành: 2018 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin đƣợc phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Bài giảng sở liệu đƣợc viết nhằm để giảng dạy cho sinh viên chuyên ngành CNTT trƣờng Cao Đẳng Nghề An giang Bài giảng đƣợc thiết kế theo chƣơng trình mơn học sở liệu Bộ ban hành theo hệ cao đẳng nghề trung cấp nghề Bài giảng bao gồm chƣơng, Trƣớc tiên giảng trình bày kiến thức nhƣ: mơ hình sở liệu quan hệ, ngôn ngữ liệu SQL dạng chuẩn vấn đề chuẩn hóa Thêm vào đó, cuối chƣơng có tập tƣơng ứng để sinh viên ơn lại lý thuyết tùy vào chƣơng mà có số tập nâng cao để khuyến khích sinh viên tự học nghiên cứu Giáo trình gồm nội dung sau: Chƣơng 1: Tổng quan sở liệu Chƣơng 2: Mơ hình sở liệu quan hệ Chƣơng 3: Ngơn ngữ liệu SQL Chƣơng 4: Ràng buộc tồn vẹn phụ thuộc hàm Chƣơng 5: Dạng chuẩn chuẩn hóa lƣợc đồ sở liệu quan hệ Chƣơng 6: Tối ƣu hóa câu hỏi Trong q trình biên soạn, cố gắng tham khảo nhiều tài liệu giáo trình khác nhƣng tác giả khơng khỏi tránh đƣợc thiếu sót hạn chế Tác giả chân thành mong đợi nhận xét, đánh giá góp ý để giáo trình ngày hồn thiện Cuốn tài liệu giảng dạy nhiều thiếu sót hạn chế Rất mong nhận đƣợc ý kiến đóng góp sinh viên bạn đọc để giảng ngày hoàn thiện Chân thành cảm ơn quý Thầy Cô Hội đồng thẩm định trƣờng Cao Đẳng Nghề An Giang để giảng sở liệu đƣợc hoàn chỉnh An Giang, ngày tháng năm 2018 Tham gia biên soạn Trần Thị Kim Ngọc MỤC LỤC ĐỀ MỤC TRANG TUYÊN BỐ BẢN QUYỀN LỜI GIỚI THIỆU MỤC LỤC GIÁO TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU CHƢƠNG I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU I Một số khái niệm II Các mơ hình liệu Bài tập 10 CHƢƠNG II MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 12 I Các khái niệm 12 II Các phép toán đại số tập hợp 18 III Các phép toán đại số quan hệ 21 Bài tập 23 CHƢƠNG III NGÔN NGỮ DỮ LIỆU SQL 26 I Khái niệm ngôn ngữ liệu SQL 26 II Các lệnh liên quan đến cấu trúc sở liệu 26 III Các lệnh cập nhật sở liệu 35 IV Các lệnh truy vấn sở liệu 38 Bài tập 47 CHƢƠNG IV RÀNG BUỘC TOÀN VẸN VÀ PHỤ THUỘC HÀM 51 I Các vấn đề liên quan đến ràng buộc toàn vẹn 51 II Các loại ràng buộc toàn vẹn 51 III Phụ thuộc hàm 56 Bài tập 65 CHƢƠNG V DẠNG CHUẨN VÀ CHUẨN HÓA LƢỢC ĐỒ CƠ SỞ 68 DỮ LIỆU QUAN HỆ I Dạng chuẩn 68 II Chuẩn hóa lƣợc đồ sở liệu 77 Bài tập 83 CHƢƠNG VI TỐI ƢU HÓA CÂU HỎI 86 I Các nguyên tắc tổng quát để tối ƣu hóa câu hỏi 86 II Ví dụ thuật tốn tối ƣu hóa biểu thức quan hệ 87 III Thuật tốn tối ƣu hóa câu hỏi ngơn ngữ Đại số quan hệ 89 Bài tập 89 CÁC THUẬT NGỮ CHUYÊN MÔN 91 TÀI LIỆU THAM KHẢO 92 GIÁO TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU Tên mơn học: CƠ SỞ DỮ LIỆU Mã số môn học: MH 10 Vị trí, tính chất, ý nghĩa vai trị mơn học: - Vị trí: Thuộc nhóm mơn sở Đƣợc bố trí sau mơn: tốn cho tin học tin học - Tính chất: Là mơn học chuyên môn nghề bắt buộc, tảng để HSSV thiết kế sở liệu xây dựng ứng dụng học môn học mô đun liên quan -Ý nghĩa vai trị mơn học: giúp em có kiến thức xây dựng sở liệu làm tảng cho môn học sau Mục tiêu môn học: - Về kiến thức Trình bày đƣợc bƣớc, ý nghĩa việc thiết kế sở liệu Trình bày đƣợc khái niệm sở liệu nhƣ: khóa, lƣợc đồ quan hệ, phụ thuộc hàm, Ghi nhớ đƣợc ngôn ngữ thao tác liệu, ngôn ngữ truy vấn liệu SQL - Về kỹ Xây dựng đƣợc mơ hình quan hệ Thiết kế đƣợc sở liệu Phân tích đƣợc chƣơng trình: xác định nhiệm vụ chƣơng trình (phải làm gì) - Về lực tự chủ trách nhiệm Nghiêm túc học tập thực tốt yêu cầu đƣợc giao Luôn động não suy nghĩ Thƣờng xuyên luyện tập tƣ việc học Thực học tập thực hành nhóm Chƣơng TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Mục tiêu: Nhằm cung cấp kiến thức khái niệm sở liệu, hệ quản trị sở liệu, sơ lƣợc số mơ hình sở liệu Nội dung: I MỘT SỐ KHÁI NIỆM: Cơ sở liệu: Cơ sở liệu (Database, viết tắt CSDL) lĩnh vực nghiên cứu mơ hình, ngun lý, phƣơng pháp tổ chức liệu vật mang tin Để dễ dàng cho việc giải thích khái niệm, trƣớc tiên ta thử xem xét hệ thống bán vé máy bay máy tính Dữ liệu lƣu trữ máy tính bao gồm thông tin hành khách, chuyến bay, đƣờng bay… Mọi thông tin mối quan hệ đƣợc biểu diễn máy thông qua việc đặt chỗ khách hàng Vậy làm để biểu diễn đƣợc liệu đảm bảo cho hành khách chuyến? Dữ liệu nêu đƣợc lƣu trữ máy theo quy định đƣợc gọi sở liệu Nhƣ vậy, sở liệu tập hợp thơng tin có quan hệ với đƣợc lƣu trữ máy tính theo quy định định nhằm phục vụ cho mục đích Hệ quản trị sở liệu (Database Management System): Hệ quản trị sở liệu hệ thống chƣơng trình nhằm tạo lập, xử lý, thay đổi, quản lý khai thác sở liệu Một số hệ quản trị sở liệu nay: Foxpro, Access, Oracale, … với phiên khác Có hai đặc điểm để phân biệt hệ quản trị sở liệu với hệ thống lập trình khác: (1) Khả quản lý liệu cố định (2) Khả truy xuất có hiệu số lƣợng lớn liệu Điểm (1) khẳng định có sở liệu tồn thƣờng xuyên nội dung sở liệu liệu đƣợc hệ quản trị sở liệu truy xuất quản lý Điểm (2) phân biệt hệ quản trị sở liệu với hệ thống quản lý tập tin quản lý liệu cố định nhƣng nói chung khơng cho phép truy xuất nhanh chóng thành phần tùy ý liệu Ngòai ra, có số khả khác thƣờng gặp hệ quản trị sở liệu thị trƣờng: + Hệ quản trị sở liệu hổ trợ mơ hình liệu, nhờ ngƣời sử dụng xem đƣợc liệu + Hệ quản trị sở liệu hổ trợ số ngôn ngữ bậc cao cho phép ngƣời sử dụng định nghĩa cấu trúc liệu, truy xuất liệu thao tác liệu + Hệ quản trị sở liệu quản lý giao dịch, nghĩa cho phép nhiều ngƣời sử dụng truy xuất đồng thời xác đến sở liệu + Hệ quản trị sở liệu điều khiển trình truy xuất, khả giới hạn q trình truy xuất liệu ngƣời khơng đƣợc phép khả kiểm tra độ tin cậy liệu + Hệ quản trị sở liệu có khả tự thích ứng khả phục hồi lại liệu cố hệ thống mà làm liệu II CÁC MƠ HÌNH DỮ LIỆU: Phân loại mơ hình: Phân cấp Thế hệ Mạng Các mơ hình dựa ghi Quan hệ Thế hệ Thực thể - liên kết Các mơ hình dựa đối tƣợng Ngữ nghĩa Thế hệ Đối tƣợng – Quan hệ Hƣớng đối tƣợng Mơ hình mạng (Network model): Là mơ hình thực thể liên hệ mối liên hệ bị hạn chế kiểu nhị phân (hai thực thể) nhiều - một - đƣợc biểu diễn đồ thị có hƣớng - Ƣu điểm: Đơn giản, biểu diễn ngữ nghĩa đa dạng với kiểu ghi kiểu móc nối, truy vấn thông qua phép duyệt đồ thị (navigation) - Nhƣợc điểm: Số lƣợng trỏ lớn, hạn chế biểu diễn ngữ nghĩa móc nối ghi Mơ hình phân cấp (Hierachical model): Là mơ hình mạng có nhiều tất đƣờng nối theo hƣớng từ đến cha - Ƣu điểm: Dễ xây dựng thao tác, tƣơng thích với lĩnh vực tổ chức phân cấp (vd: tổ chức nhân đơn vị, ), ngôn ngữ thao tác đơn giản (duyệt cây) - Nhƣợc điểm: Sự lặp lại kiểu ghi → dƣ thừa liệu liệu không quán , hạn chế biểu diễn ngữ nghĩa móc nối ghi (chỉ cho phép quan hệ 1-n) Mơ hình quan hệ (Relation model): Là mơ hình dựa vào ký hiệu tập tên sở tốn học phép tốn tập hợp ánh xạ Nó mơ hình phổ biến Tập phép tốn mơ hình dựa hai hệ ký hiệu: hệ ký hiệu đại số hệ ký hiệu logic LOP Malop Lop Khoa GVCN loptruong IT4 Tin CNTT Ng.V.Anh Trần.T.Bình IT5 Tin CNTT Lê A.Văn IT6 Tin CNTT Ng.T.Thảo Trần.M.Quế Ng.Đ.Trung SINHVIEN MaSV tenSV Ngyasinh Nam Diachi Lop SV0011 Trần T.Bình 1/4/1981 21 T.Q.B IT4 SV0025 Ng.Đ.Trung 3/2/1980 56 Đ.C.V IT5 SV0067 Trần M.Quế 26/3/1982 45 H.B.T IT6 - Ƣu điểm: Dựa lý thuyết tập hợp, khả tối ƣu hoá xử lý phong phú - Nhƣợc điểm: Hạn chế biểu diễn ngữ nghĩa, cấu trúc liệu không linh hoạt Mơ hình thực thể liên kết (Entity Relationship model): Là mơ hình cho phép mơ tả thực thể thơng qua thuộc tính mối liên hệ thực thể Một cách biểu thị mơ hình thực thể dùng đồ thị, sơ đồ khối - Ƣu điểm: Dễ dàng biểu diễn mà ngƣời nhận thức từ giới thực, biểu diễn ngữ nghĩa phong phú thực thể quan hệ thực thể - Nhƣợc điểm: Không dễ dàng ánh xạ vào cấu trúc lƣu trữ máy tính * Mơ hình hóa liệu: Dựa khái niệm + Thực thể: đối tƣợng giới thực + Tập thực thể: thực thể có tính chất + Thuộc tính: đặc tính tập thực thể + Khố:xác định thực thể + Liên kết: mối liên hệ có nghĩa nhiều thực thể 1-1: Liên kết thực thể tập thực thể với nhiều thực thể tập thực thể khác 1-n: Liên kết thực thể tập thực thể với nhiều thực thể tập thực thể khác n-m: Liên kết thực thể tập thực thể với nhiều thực thể tập thực thể khác ngƣợc lại đệ quy: Liên kết thực thể kiểu mon_hoc Dieu_kie n lop_hoc lop_hoc sinh_vien 1 n chu_nhiem gom dang_ky giao_vien n m sinh_vien mon_hoc + Tập liên kết: tập hợp liên kết kiểu * Lập sơ đồ thực thể - liên kết: B1: Xác định thực thể B2: Xác định liên kết thực thể: Bậc liên kết, ràng buộc (1-1, 1-n, n-m, đệ quy) Mơ hình hƣớng đối tƣợng (Object Oriented model): c) Nếu R khơng có dạng BCNF tìm đƣợc thuộc tính A B R cho (R – AB) A Phụ thuộc hàm (R - AB) A trƣờng hợp Bổ đề 7: Cho tập phụ thuộc hàm F R, chiếu F R1 R để đƣợc F1, lại chiếu F1 R1 R2 để đƣợc F2 thì: F2 = R1(F) Thuật toán 4: Tách lƣợc đồ quan hệ thành BCNF - Vào: lƣợc đồ quan hệ R tập phụ thuộc hàm F - Ra: phép tách R có kết nối không mát thông tin cho lƣợc đồ quan hệ phép tách BCNF phép chiếu F lƣợc đồ Phƣơng pháp: Cấu trúc phép tách p R theo phƣơng pháp lặp liên tiếp Tại bƣớc phép tách p bảo đảm không mát thông tin F - Bƣớc đầu: p bao gồm R - Các bƣớc tiếp: Nếu S lƣợc đồ thuộc p, S chƣa BCNF, chọn X A phụ thuộc hàm không thỏa mãn BCNF, tức X khơng chứa khóa S A X Thay S p S1 S2 với: S1 = XA F1 = S1(F), S2 = S – A F2 = S2(F) Theo định lý 5, phép tách S thành S1 S2 có kết nối không mát thông tin tập phụ thuộc hàm S, S1 S2 = X, X S1 – S2 = A Theo bổ đề phần a, p đƣợc thay S S1 S2 không mát thông tin Mỗi lƣợc đồ S1, S2 có số thuộc tính S Q trình tiếp tục tất lƣợc đồ BCNF Chú ý rằng, thời điểm p đảm bảo không mát thông tin, p ban đầu R, mà bƣớc thay đổi p bảo tịan tính chất Ví dụ 5.10: Cho lƣợc đồ R(CTHRSG), C: Giáo trình, T: Thầy giáo, H: Giờ, R: Phòng học, S: Sinh viên, G: Lớp Tập phụ thuộc hàm F nhƣ sau: C T: Mỗi giáo trình có thầy dạy HR X: Chỉ mơn học (giáo trình) phòng học thời điểm HT R: Tại thời điểm thầy giáo dạy phòng học 78 CS G: Mỗi sinh viên lớp học giáo trình HS R: Mỗi sinh viên phịng học thời điểm Khóa R HS Tách lƣợc đồ R thành lƣợc đồ BCNF Xét CS G cho R vi phạm điều kiện BCNF CS khơng chứa khóa Do vậy, dùng thuật tóan để tách R thành R1(CSG) R2(CTHRS) Bƣớc tiếp cần tính F+ chiếu xuống R1 R2, sau kiểm tra lƣợc đồ BCNF chƣa Có thể biểu diễn q trình tách qua sơ đồ sau: Phép tách cuối đƣợc R = (R1, R21, R221, R222) b Phép tách lƣợc đồ quan hệ thành 3NF có bảo tịan phụ thuộc hàm: Không phải lúc tách đƣợc lƣợc đồ quan hệ thành dạng BCNF mà bảo tịan đƣợc phụ thuộc hàm Tuy nhiên ln tìm đƣợc phép tách bảo tồn phụ thuộc hàm thành dạng chuẩn thứ nhƣ thuật tóan sau: Thuật toán 5: Tách lƣợc đồ quan hệ thành 3NF - Vào: Lƣợc đồ quan hệ R, tập phụ thuộc hàm F (khơng làm tính tổng qt giả sử phủ tối thiểu) - Ra: Phép tách R bảo tòan phụ thuộc hàm cho lƣợc đồ 3NF ứng với hình chiếu F lƣợc đồ * Phƣơng pháp: - Loại bỏ tất thuộc tính R thuộc tính khơng liên quan đến phụ thuộc hàm F (hoặc vế trái, vế phải) Về nguyên tắc, thuộc tính nhƣ tạo lƣợc đồ 79 - Nếu có phụ thuộc hàm F mà liên quan tới tất thuộc tính R kết R - Ngồi ra, phép tách p đƣa lƣợc đồ gồm thuộc tính XA cho phụ thuộc hàm X A F, X A1, X A2,…, X An F thay lƣợc đồ XA1A2…An cho lƣợc đồ Xai (1 10 * KQ < NS MASV MAĐ T) * ĐT * SV SVĐ T 87 Cây trung gian: [TENĐ T, KQ] * (10 * KQ < NS) (MAĐ T > 3) * SV (MAĐ T >3 MASV MAĐ T) Cây tối ƣu: [TENĐ T,KQ] * (10 * KQ < NS) [MAĐ T] [MAĐ T,TENĐ T](MAĐ T > 3) * [MASV, NS] ĐT [MASV, MAĐ T, KQ] (MAĐ T >3 MASV MAĐ T) SV SVĐ T Từ tối ƣu ta có biểu thức tối ƣu: 88 ((SV [MASV, NS] * SVĐT [ MASV, MAĐT, KQ] (MAĐT >3 MASV MAĐT)) (10 * KQ < NS) [MADDT] *ĐT [MADDT, TENĐT] (MAĐT >3) [TENDDT, KQ] III THUẬT TỐN TỐI ƢU HĨA CÂU HỎI TRONG NGƠN NGỮ ĐẠI SỐ QUAN HỆ Dùng quy tắc 1, tách phép chọn có liên kiện thành dãy phép chọn Dùng quy tắc 2, 4, 10 liên quan đến tính giao hốn phép chọn phép khác để di chuyển phép chọn xuống nhánh Dùng quy tắc 9, liên quan đến tính kết hợp phép ngơi, để xếp lại nút để phép chọn đƣợc ƣu tiên thực trƣớc Tổ hợp tích Descartes với phép chọn thành tích Descartes Sử dụng quy tắc 3, 4, 7, 11 để tách đẩy phép chiếu xuống nhánh Nhận biết nhánh biểu diễn cho nhóm thao tác đƣợc thi hành chiến lƣợc thực đơn Bài tập: Hãy vẽ đại số quan hệ cho sau: Bài 1: Employee(SSN, Name, Dept) Project(SSN, PID, Name, Budget) SELECT P.Budget, P.Name, E.Name FROM Employee E, Project P WHERE E.SSN = P.SSN AND P.Budget > 99 AND E.Name = ‟John‟ ORDER BY P.Budget Bài 2: Professor(Id, Name, Department) Course(CrsCode, Department, CrsName) Teaching(ProfId, CrsCode, Semester) 89 SELECT C.CrsName, P.Name FROM Professor P, Teaching T, Course C WHERE T.Semester=‟F1995‟ AND P.Department=‟CS‟ AND P.Id = T.ProfId AND T.CrsCode=C.CrsCode Bài 3: SELECT H.OwnerId, A.AgentName FROM House H, Agent A, Amenity Y WHERE H.Address=Y.Address AND A.Id = H.AgentId AND Y.Feature = ‟5BR‟ AND H.AgentId = ‟007‟ 90 CÁC THUẬT NGỮ CHUYÊN MÔN DANH MỤC TỪ DIỄN GIẢI Database Cơ sở liệu Database Management System Hệ quản trị sở liệu Network model Mơ hình mạng Hierachical model Mơ hình phân cấp Relation model Mơ hình quan hệ Entity Relationship model Mơ hình thực thể - liên kết Object Oriented model Mơ hình hƣớng đối tƣợng Attribute Thuộc tính Relation Quan hệ Tuple Bộ giá trị Relation Schema Lƣợc đồ quan hệ Functional dependendies Phụ thuộc hàm Structure Query Language Ngôn ngữ truy vấn liệu 91 TÀI LIỆU THAM KHẢO [1] Nhập môn sở liệu quan hệ - nhà xuất khoa học kỹ thuật – năm 2002 [2] Cơ sở liệu – Phƣơng Lan, Nguyễn Thiên Băng – nhà xuất lao động xã hội – Năm 2005 [3] Giáo trình nhập mơn sở liệu – Phƣơng Lan – nhà xuất lao động xã hội – năm 2006 [4] Aho, Hopcroft & Ullman, Data Structures and Algorithms,Addison Wesley, 2001 [5] Robert Sedewick, Algorithms in Java Third Edition,Addison Wesley, 2002 [6] Niklaus Wirth, Data Structures and Algorithms,Prentice Hall, 2004 [7] Robert Sedewick, Algorithms,Addison Wesley, 1983 [8] Bruno R Preiss, Data Structures and Algorithms with Object-Oriented Design, Jon Wiley & Sons, 1998 92 ... GIỚI THIỆU MỤC LỤC GIÁO TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU CHƢƠNG I TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU I Một số khái niệm II Các mơ hình liệu Bài tập 10 CHƢƠNG II MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 12 I Các khái niệm... giảng sở liệu đƣợc viết nhằm để giảng dạy cho sinh viên chuyên ngành CNTT trƣờng Cao Đẳng Nghề An giang Bài giảng đƣợc thiết kế theo chƣơng trình mơn học sở liệu Bộ ban hành theo hệ cao đẳng nghề. .. thức quan hệ 87 III Thuật tốn tối ƣu hóa câu hỏi ngơn ngữ Đại số quan hệ 89 Bài tập 89 CÁC THUẬT NGỮ CHUYÊN MÔN 91 TÀI LIỆU THAM KHẢO 92 GIÁO TRÌNH MƠN HỌC CƠ SỞ DỮ LIỆU Tên mơn học: CƠ SỞ DỮ LIỆU