Xem mẫu

  1. ỦY BAN NHÂN DÂN TỈNH AN GIANG TRƯỜNG CAO ĐẲNG NGHỀ AN GIANG GIÁO TRÌNH Cơ sở dữ 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 của 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
  2. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. 1
  3. LỜI GIỚI THIỆU Bài giảng cơ sở dữ 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 cơ sở dữ liệu của Bộ ban hành theo hệ cao đẳng nghề và trung cấp nghề. Bài giảng này bao gồm 6 chƣơng, Trƣớc tiên bài giảng trình bày về các kiến thức cơ bản nhƣ: mô hình cơ sở dữ liệu quan hệ, ngôn ngữ dữ liệu SQL và các dạng chuẩn và vấn đề chuẩn hóa. Thêm vào đó, cuối chƣơng sẽ có các bài tập tƣơng ứng để sinh viên có thể ôn lại lý thuyết và tùy vào mỗi chƣơng mà có một số bài tập nâng cao để khuyến khích sinh viên tự học và nghiên cứu. Giáo trình này gồm các nội dung chính sau: Chƣơng 1: Tổng quan về cơ sở dữ liệu Chƣơng 2: Mô hình cơ sở dữ liệu quan hệ Chƣơng 3: Ngôn ngữ dữ liệu SQL Chƣơng 4: Ràng buộc toàn vẹn và phụ thuộc hàm Chƣơng 5: Dạng chuẩn và chuẩn hóa lƣợc đồ cơ sở dữ liệu quan hệ Chƣơng 6: Tối ƣu hóa câu hỏi Trong quá trình biên soạn, mặc dù đã cố gắng tham khảo nhiều tài liệu và giáo trình khác nhƣng tác giả không khỏi tránh đƣợc những thiếu sót và hạn chế. Tác giả chân thành mong đợi những nhận xét, đánh giá và góp ý để cuốn giáo trình ngày một hoàn thiện hơn. Cuốn tài liệu giảng dạy này vẫn còn nhiều thiếu sót và hạn chế. Rất mong nhận đƣợc ý kiến đóng góp của sinh viên và các bạn đọc để bài giảng ngày càng hoàn thiện hơn. Chân thành cảm ơn quý Thầy Cô trong Hội đồng thẩm định của trƣờng Cao Đẳng Nghề An Giang để bài giảng cơ sở dữ 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 2
  4. MỤC LỤC ĐỀ MỤC TRANG TUYÊN BỐ BẢN QUYỀN 1 LỜI GIỚI THIỆU 2 MỤC LỤC 3 GIÁO TRÌNH MÔN HỌC CƠ SỞ DỮ LIỆU 4 CHƢƠNG I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 5 I. Một số khái niệm 5 II. Các mô hình dữ liệu 6 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 cơ bản 12 II. Các phép toán trên đại số tập hợp 18 III. Các phép toán trê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 về ngôn ngữ dữ liệu SQL 26 II. Các lệnh liên quan đến cấu trúc của cơ sở dữ liệu 26 III. Các lệnh cập nhật cơ sở dữ liệu 35 IV. Các lệnh truy vấn cơ sở dữ 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 đồ cơ sở dữ 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ụ một thuật toán tối ƣu hóa biểu thức quan hệ 87 III. Thuật toán tối ƣu hóa câu hỏi trong 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 3
  5. 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 và vai trò của môn học: - Vị trí: Thuộc nhóm môn cơ sở. Đƣợc bố trí sau các môn: toán cho tin học và tin học căn bản. - Tính chất: Là môn học chuyên môn nghề bắt buộc, là nền tảng để HSSV có thể thiết kế cơ sở dữ liệu xây dựng ứng dụng và học các môn học mô đun liên quan. -Ý nghĩa và vai trò của môn học: giúp các em có kiến thức cơ bản về xây dựng cơ sở dữ liệu làm nền tảng cho các môn học sau. Mục tiêu của môn học: - Về kiến thức  Trình bày đƣợc các bƣớc, ý nghĩa của việc thiết kế cơ sở dữ liệu.  Trình bày đƣợc các khái niệm về cơ sở dữ liệu nhƣ: khóa, lƣợc đồ quan hệ, phụ thuộc hàm,...  Ghi nhớ đƣợc các ngôn ngữ thao tác dữ liệu, ngôn ngữ truy vấn dữ liệu SQL. - Về kỹ năng  Xây dựng đƣợc các mô hình quan hệ.  Thiết kế đƣợc cơ sở dữ 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ề năng lực tự chủ và trách nhiệm  Nghiêm túc trong học tập và thực hiện tốt các yêu cầu đƣợc giao.  Luôn động não suy nghĩ. Thƣờng xuyên luyện tập tƣ duy trong việc học  Thực hiện học tập và thực hành nhóm. 4
  6. Chƣơng 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Mục tiêu: Nhằm cung cấp kiến thức về khái niệm cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, sơ lƣợc về một số mô hình cơ sở dữ liệu. Nội dung: I. MỘT SỐ KHÁI NIỆM: 1. Cơ sở dữ liệu: Cơ sở dữ liệu (Database, viết tắt là CSDL) là 1 lĩnh vực nghiên cứu các mô hình, nguyên lý, phƣơng pháp tổ chức dữ liệu trên các vật mang tin. Để dễ dàng cho việc giải thích các khái niệm, trƣớc tiên ta hãy thử xem xét hệ thống bán vé máy bay bằng máy tính. Dữ liệu lƣu trữ trong máy tính bao gồm thông tin về hành khách, chuyến bay, đƣờng bay… Mọi thông tin về mối quan hệ này đƣợc biểu diễn trong máy thông qua việc đặt chỗ của khách hàng. Vậy làm thế nào để biểu diễn đƣợc dữ liệu đó và đảm bảo cho hành khách đi đúng chuyến? Dữ liệu nêu trên đƣợc lƣu trữ trong máy theo một quy định nào đó và đƣợc gọi là cơ sở dữ liệu. Nhƣ vậy, cơ sở dữ liệu là tập hợp các thông tin có quan hệ với nhau đƣợc lƣu trữ trong máy tính theo một quy định nhất định nhằm phục vụ cho một mục đích nào đó. 2. Hệ quản trị cơ sở dữ liệu (Database Management System): Hệ quản trị cơ sở dữ liệu là hệ thống các chƣơng trình nhằm tạo lập, xử lý, thay đổi, quản lý và khai thác các cơ sở dữ liệu. Một số hệ quản trị cơ sở dữ liệu hiện nay: Foxpro, Access, Oracale, … với các phiên bản khác nhau. Có hai đặc điểm để phân biệt một hệ quản trị cơ sở dữ liệu với các hệ thống lập trình khác: (1) Khả năng quản lý những dữ liệu cố định. (2) Khả năng truy xuất có hiệu quả một số lƣợng lớn dữ liệu. Điểm (1) khẳng định rằng có một cơ sở dữ liệu tồn tại thƣờng xuyên và nội dung của cơ sở dữ liệu này là những dữ liệu đƣợc hệ quản trị cơ sở dữ liệu truy xuất và quản lý. Điểm (2) phân biệt một hệ quản trị cơ sở dữ liệu với một hệ thống quản lý tập tin cùng quản lý dữ liệu cố định nhƣng nói chung không cho phép truy xuất nhanh chóng các thành phần tùy ý của dữ liệu. Ngòai ra, còn có một số khả năng khác thƣờng gặp trong các hệ quản trị cơ sở dữ liệu trên thị trƣờng: 5
  7. + Hệ quản trị cơ sở dữ liệu hổ trợ ít nhất một mô hình dữ liệu, nhờ đó ngƣời sử dụng có thể xem đƣợc dữ liệu. + Hệ quản trị cơ sở dữ liệu hổ trợ một số ngôn ngữ bậc cao cho phép ngƣời sử dụng định nghĩa các cấu trúc dữ liệu, truy xuất dữ liệu và thao tác dữ liệu. + Hệ quản trị cơ sở dữ liệu quản lý các giao dịch, nghĩa là cho phép nhiều ngƣời sử dụng truy xuất đồng thời và chính xác đến một cơ sở dữ liệu. + Hệ quản trị cơ sở dữ liệu điều khiển quá trình truy xuất, là khả năng giới hạn các quá trình truy xuất dữ liệu của những ngƣời không đƣợc phép và khả năng kiểm tra độ tin cậy của dữ liệu. + Hệ quản trị cơ sở dữ liệu có khả năng tự thích ứng là khả năng phục hồi lại dữ liệu do sự cố của hệ thống mà làm mất dữ liệu. II. CÁC MÔ HÌNH DỮ LIỆU: Phân loại các mô hình: Phân cấp Thế hệ 1 Các mô hình Mạng dựa trên bản ghi Quan hệ Thế hệ 2 Thực thể - liên kết Các mô hình Ngữ nghĩa dựa trên đối tƣợng Thế hệ 3 Đối tƣợng – Quan hệ Hƣớng đối tƣợng 6
  8. 1. Mô hình mạng (Network model): Là mô hình thực thể liên hệ trong đó các mối liên hệ bị hạn chế trong kiểu nhị phân (hai thực thể) và nhiều - một hoặc một - một và đƣợc biểu diễn bởi một đồ thị có hƣớng. - Ƣu điểm: Đơn giản, có thể biểu diễn các ngữ nghĩa đa dạng với kiểu bản ghi và 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 các con trỏ lớn, hạn chế trong biểu diễn ngữ nghĩa của các móc nối giữa các bản ghi 2. Mô hình phân cấp (Hierachical model): Là mô hình mạng có nhiều cây trong đó tất cả các đƣờng nối chỉ đi theo hƣớng từ con đến cha. - Ƣu điểm: Dễ xây dựng và thao tác, tƣơng thích với các lĩnh vực tổ chức phân cấp (vd: tổ chức nhân sự trong các đơn vị, ...), ngôn ngữ thao tác đơn giản (duyệt cây) - Nhƣợc điểm: Sự lặp lại của các kiểu bản ghi → dƣ thừa dữ liệu và dữ liệu không nhất quán , hạn chế trong biểu diễn ngữ nghĩa của các móc nối giữa các bản ghi (chỉ cho phép quan hệ 1-n) 3. Mô hình quan hệ (Relation model): Là mô hình dựa vào ký hiệu là tập các tên và cơ sở toán học của nó là các phép toán tập hợp và ánh xạ. Nó là mô hình phổ biến hiện nay. Tập các phép toán trong mô hình này dựa trên hai hệ ký hiệu: hệ ký hiệu đại số và hệ ký hiệu logic. 7
  9. LOP Malop Lop Khoa GVCN loptruong IT4 Tin 4 CNTT Ng.V.Anh Trần.T.Bình IT5 Tin 5 CNTT Lê A.Văn Ng.Đ.Trung IT6 Tin 6 CNTT Ng.T.Thảo Trần.M.Quế SINHVIEN MaSV tenSV Ngyasinh Nam Diachi Lop SV0011 Trần T.Bình 1/4/1981 0 21 T.Q.B IT4 SV0025 Ng.Đ.Trung 3/2/1980 1 56 Đ.C.V IT5 SV0067 Trần M.Quế 26/3/1982 0 45 H.B.T IT6 - Ƣu điểm: Dựa trên lý thuyết tập hợp, khả năng tối ƣu hoá các xử lý phong phú - Nhƣợc điểm: Hạn chế trong biểu diễn ngữ nghĩa, cấu trúc dữ liệu không linh hoạt 4. Mô hình thực thể liên kết (Entity Relationship model): Là mô hình cho phép mô tả các thực thể thông qua các thuộc tính và mối liên hệ giữa các thực thể. Một trong các cách biểu thị mô hình thực thể là dùng đồ thị, sơ đồ khối. - Ƣu điểm: Dễ dàng biểu diễn cái mà con ngƣời nhận thức từ thế giới thực, biểu diễn ngữ nghĩa phong phú của các thực thể và quan hệ giữa các thực thể 8
  10. - Nhƣợc điểm: Không dễ dàng ánh xạ vào những cấu trúc lƣu trữ trên máy tính * Mô hình hóa dữ liệu: Dựa trên các khái niệm chính + Thực thể: một đối tƣợng trong thế giới thực + Tập thực thể: các thực thể có cùng các tính chất + Thuộc tính: một đặc tính của một tập thực thể + Khoá:xác định sự duy nhất của 1 thực thể + Liên kết: mối liên hệ có nghĩa giữa nhiều thực thể 1-1: Liên kết 1 thực thể của một tập thực thể với nhiều nhất 1 thực thể của tập thực thể khác 1-n: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực thể khác n-m: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực thể khác và ngƣợc lại đệ quy: Liên kết giữa các thực thể cùng kiểu mon_hoc Dieu_kie n 1 1 lop_hoc chu_nhiem giao_vien 1 n lop_hoc gom sinh_vien n m sinh_vien dang_ky mon_hoc + Tập liên kết: tập hợp các liên kết cùng kiểu * Lập sơ đồ thực thể - liên kết: B1: Xác định các thực thể B2: Xác định các liên kết giữa các thực thể: Bậc của liên kết, ràng buộc (1-1, 1-n, n-m, đệ quy) 5. Mô hình hƣớng đối tƣợng (Object Oriented model): 9
  11. Là mô hình cung cấp đặc tính nhận dạng đối tƣợng. Trong đó mỗi lớp đối tƣợng đƣợc đặc trƣng bởi hai yếu tố: + Tập các thuộc tính (properties) để nhận dạng đối tƣợng. + Tập các phƣơng thức (methods) để thao tác với đối tƣợng. Ví dụ: class sinh_vien { string maSV; string tenSV; date ngaysinh; boolean nam; string diachi; string lop; string ten(); string ngay_sinh(); string dia_chi(); string lop(); void gan_DC(string DC_moi); void gan_lop(string lop); } - Ƣu điểm: Cho phép định nghĩa kiểu đối tƣợng phức tạp, tính chất: bao đóng (encapsulation), kế thừa (heritage), đa hình (polymorphism) - Nhƣợc điểm: Cấu trúc lƣu trữ phức tạp và có thể sử dụng nhiều con trỏ, khả năng tối ƣu hoá các xử lý bị hạn chế trong nhiều trƣờng hợp Bài tập: Phân tích và thiết kế 1 CSDL (theo mô hình thực thể - liên kết) gồm các thông tin trong 1 công ty (nhân viên, phòng ban, dự án) Công ty đƣợc tổ chức bởi các phòng ban. Mỗi phòng ban có 1 tên duy nhất, 1 số duy nhất và 1 ngƣời quản lý (thời điểm bắt đầu công tác quản lý của ngƣời này cũng đƣợc lƣu lại trong CSDL). Mỗi phòng ban có thể có nhiều trụ sở làm việc khác nhau. Mỗi phòng điều phối một số dự án. Mỗi dự án có 1 tên và 1 mã số duy nhất, thực hiện tại một địa điểm duy nhất 10
  12. Các thông tin về nhân viên cần đƣợc quan tâm gồm: tên, số bảo hiểm, địa chỉ, lƣơng, giới tính, ngày sinh. Mỗi nhân viên làm việc tại một phòng ban nhƣng có thể tham gia nhiều dự án khác nhau. Những dự án này có thể đƣợc điều phối bởi các phòng ban khác nhau. Thông tin về số giờ làm việc trong từng dự án (theo tuần) cũng nhƣ ngƣời quản lý trực tiếp của các nhân viên cũng đƣợc lƣu trữ Thông tin về con cái của từng nhân viên: tên, giới tính, ngày sinh 11
  13. Chƣơng 2 MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ Mục tiêu: Nhằm cung cấp các kiến thức về khái niệm quan hệ, thuộc tính, các loại khóa, lƣợc đồ quan hệ, bộ giá trị và phụ thuộc hàm, qua đó thực hiện đƣợc các phép toán trên đại số tập hợp và các phép toán trên đại số quan hệ. Nội dung: I. CÁC KHÁI NIỆM CƠ BẢN: 1. Thuộc tính (Attribute): Chẳng hạn với bài tóan quản lý điểm thi của sinh viên, với đối tƣợng sinh viên ta cần phải chú ý đến các đặc trƣng riêng nhƣ họ tên, ngày sinh, giới tính, tỉnh thƣờng trú, học bổng, lớp mà sinh viên theo học,… các đặc trƣng này gọi là các thuộc tính. Các thuộc tính đƣợc phân biệt qua tên gọi và phải thuộc vào một kiểu dữ liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,…). Kiểu dữ liệu ở đây là kiểu đơn. Trong cùng một đối tƣợng không có hai thuộc tính cùng tên. Thông thƣờng mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của kiểu dữ liệu và tập hợp con đó gọi là miền giá trị của thuộc tính đó. Thuộc tính ngày trong tháng thì có kiểu dữ liệu là số nguyên, miền giá trị của nó là 1 đến (tối đa là) 31. Hoặc điểm thi của sinh viên chỉ là các số nguyên từ 0 đến 10. Thƣờng ngƣời ta dùng các chữ cái hoa A,B,C,… để biểu diễn các thuộc tính, hoặc A1,A2,…., An để biểu diễn một số lƣợng lớn các thuộc tính. 2. Quan hệ (Relation): Sự thể hiện của lƣợc đồ quan hệ Q ở một thời điểm nào đó đƣợc gọi là quan hệ, rõ ràng là trên một lƣợc đồ quan hệ có thể định nghĩa rất nhiều quan hệ. Thƣờng ta dùng các ký hiệu nhƣ R, S, Q để chỉ các lƣợc đồ quan hệ, còn quan hệ đƣợc định nghĩa trên nó tƣơng ứng đƣợc ký hiệu là là r, s, q. 3. Bộ giá trị (Tuple): Bộ là tập mỗi giá trị liên quan của tất cả các thuộc tính của một lƣợc đồ quan hệ. Chẳng hạn quan hệ sau có 2 bộ. MASV HOTEN NU NGAYSINH MALOP TINH HB 99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000 99002 NGUYEN HA DA THAO TRUE 25-04-1986 TCTH29C TPHCM 120000 12
  14. Thƣờng ngƣời ta dùng các chữ cái thƣờng (nhƣ t,p,q,…) để biểu diễn các bộ. Chẳng hạn để nói bộ t thuộc quan hệ r ta viết: t  r. Về trực quan thì mỗi quan hệ xem nhƣ một bảng, trong đó mỗi cột là thông tin về một thuộc tính, mỗi dòng là thông tin về một bộ. Chẳng hạn sau đây là các thể hiện của các quan hệ định nghĩa trên lƣợc đồ cơ sở dữ liệu quản lý sinh viên ở trên: rSv MASV HOTEN NU NGAYSINH MALOP TINH HB 99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000 99002 NGUYEN HA DA THAO TRUE 25-04-1986 TCTH29C TPHCM 120000 99003 PHẠM ANH HUY FALSE 16-08-1977 CĐTH2B BAC LIEU 99004 NGUYEN NGOC THUAN FALSE 24-12-1980 CĐTH2B CA MAU 99005 LE THANH TRUNG FALSE 20-11-1978 CĐAV1 CA MAU 120000 99006 NGUYEN HONG VAN FALSE 19-09-1979 CĐAV1 SOC TRANG 99007 VU THI LOAN TRUE 15-03-1975 CĐAV1 CA MAU 99008 TRUONG KIM QUANG FALSE 15-05-1979 CĐTH2B HA NOI 99009 TON THAT QUYEN FALSE 26-06-1976 CĐTH2B VUNG TAU 60000 99010 HA VAN LONG FALSE 14-04-1973 CĐAV1 BAC LIEU 99011 BUI VAN ANH FALSE 22-12-1972 CĐAV1 AN GIANG 99012 LE HUU CHI FALSE 28-08-1977 CĐĐT2 CAN THO 60000 99013 VU THANH CONG FALSE 29-03-1979 CĐTH2B KIEN GIANG 60000 99014 TRAN QUANG CUONG FALSE 30-05-1981 CĐĐT2 DONG THAP 120000 99015 PHAM VAN HAI FALSE 30-06-1976 CĐĐT2 CA MAU 99016 HUYNH THANH HOANG FALSE 29-07-1982 CĐĐT2 TPHCM 80000 99017 TRAN MINH LAM FALSE 21-08-1977 CĐTH2B TRA VINH 99018 PHAN VAN SANG FALSE 19-05-1979 CĐDL1 DONG THAP 120000 99019 PHAM THI HUYEN FALSE 16-06-1982 CĐDL1 CAN THO 120000 99020 NGUYEN THI NGAN TRUE 11-11-1981 CĐTH2B CA MAU 120000 99021 PHAM TAN QUANG FALSE 01-01-1980 CĐDL1 CA MAU 13
  15. 99022 TRAN PHUOC QUYEN FALSE 12-12-1979 CĐTH2B BAC LIEU 60000 99023 LE THI THANH VAN TRUE 11-11-1980 CĐDL1 TPHCM 120000 RKh rMh MAKH TENKHOA SOCBGD MAMH TENMH ST CNTT CONG NGHE THONG TIN 60 CSDL CO SO DU LIEU 90 AV ANH VAN 60 FOX FOXPRO 120 HOA HOA CHAT 20 THVP TIN HOC VAN PHONG 90 MT MOI TRUONG 10 AVTH ANH VAN TIN HOC 60 XD XAY DUNG 10 KTS KY THUAT SO 60 DL DU LICH 5 CTDL CAU TRUC DU LIEU 60 TTIN TOAN - TIN HOC 30 TTNT TRI TUE NHAN TAO 45 SINH CONG NGHE SINH HOC 30 MANG MANG MAY TINH CB 45 VL VAT LY 20 VB VISUAL BASIC 90 ĐT ĐIEN TU 20 AC ACCESS 180 LR LAP RAP MAY TINH 60 INTER CAC DICH VU INTERNET 45 HDH HE DIEU HANH 60 KTLT LY THUAT LAP TRINH 45 VIFOX VISUAL FOXPRO 60 rLop MALOP TENLOP SISO MAKHOA CĐTH2B CAO DANG TIN HOC KHOA 2000B 60 CNTT TCTH29C TRUNG CAP TIN HOC KHOA 29C 121 CNTT CĐAV1 CAO DANG ANH VAN 1 120 AV CĐĐT2 CAO DANG DIEN TU 2 80 ĐT CĐDL1 CAO DANG DU LICH 1 42 DL 14
  16. rKq MASV MAMH DIEMTHI 99001 CSDL 3.0 99006 MANG 6.0 99016 KTS 7.0 99002 CSDL 8.0 99007 MANG 2.0 99017 KTS 7.0 99003 CSDL 8.0 99008 MANG 7.0 99017 FOX 7.0 99004 CSDL 3.0 99009 MANG 3.0 99017 MANG 4.0 99005 CSDL 2.0 99010 TTNT 5.0 99017 CSDL 8.0 99001 THVP 6.0 99011 FOX 4.0 99017 TTNT 6.0 99002 THVP 3.0 99012 FOX 5.0 99002 MANG 8.0 99003 THVP 8.0 99013 FOX 7.0 99004 MANG 4.0 99004 THVP 9.0 99014 VB 7.0 99018 TTNT 7.0 99005 THVP 5.0 99015 VB 3.0 99019 CSDL 8.0 99020 THVP 7.0 99023 TTNT 3.0 99021 CSDL 8.0 99021 MANG 7.0 99023 THVP 6.0 99021 THVP 9.0 99022 MANG 6.0 99023 FOX 8.0 99022 FOX 5.0 99023 CSDL 8.0 99023 VB 9.0 99022 TTNT 6.0 99023 MANG 6.0 99023 KTS 6.0 4. Lƣợc đồ quan hệ (Relation Schema): Tập tất cả các thuộc tính cần quản lý của một đối tƣợng cùng với mối liên hệ giữa chúng đƣợc gọi là lƣợc đồ quan hệ. Lƣợc đồ quan hệ Q với tập thuộc tính {A1,A2,...,An} đƣợc viết là Q(A1,A2,...,An). Tập các thuộc tính của Q đƣợc ký hiệu là Q+. Chẳng hạn lƣợc đồ quan hệ sinh viên (Đặt tên là Sv) với các thuộc tính nhƣ trên là: Sv(MASV, HOSV,TENSV,NU, NGAYSINH, MALOP, HOCBONG, TINH) Thƣờng khi thành lập một lƣợc đồ, ngƣời thiết kế luôn gắn cho nó một ý nghĩa nhất định, ý nghĩa đó gọi là tân từ của lƣợc đồ quan hệ đó. Dựa vào tân từ ngƣời ta xác định đƣợc tập thuộc tính khóa của lƣợc đồ quan hệ (khái niệm khoá sẽ đƣợc trình bày ở phần sau). 15
  17. Khi phát biểu tân từ cho một 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. Chẳng hạn tân từ của lƣợc đồ quan hệ trên là: ”mỗi sinh viên có một mã sinh viên MASV duy nhất, mỗi mã sinh viên xác định tất cả các thuộc tính của sinh viên đó nhƣ họ tên HOTEN, nữ (NU), ngày sinh (NGAYSINH), lớp theo học (MALOP), học bổng (HOCBONG), tỉnh cƣ trú (TINH). Nhiều lƣợc đồ quan hệ cùng nằm trong một hệ thống quản lý đƣợc gọi là một lƣợc đồ cơ sở dữ liệu. Ví dụ 2.1: Lƣợc đồ cơ sở dữ liệu để quản lý điểm sinh viên có thể gồm các lƣợc đồ quan hệ sau: Sv(MASV, HOSV,TENSV, NU, NGAYSINH, MALOP, TINH, HOCBONG) Lop(MALOP,TENLOP,SISO,MAKHOA) Kh(MAKHOA,TENKHOA, SOCBGD) Mh(MAMH, TENMH, SOTIET) Kq(MASV, MAMH, DIEMTHI) Phần giải thích các thuộc tính: MASV Mã sinh viên HOTEN Tên sinh viên NU Nữ NGAYSINH Ngày sinh LOP Lớp TENLOP Tên lớp SISO Sỉ số lớp MAKHOA Mã khoa HOCBONG Học bổng TINH Tỉnh TENKHOA Tên khoa SOCBGD Số cán bộ giảng dạy MAMH Mã môn học TENMH Tên môn học SOTIET Số tiết 16
  18. DIEMTHI Điểm thi 5. Thể hiện của quan hệ: Quan hệ r là một thể hiện (relation instance) của lƣợc đồ quan hệ tại một thời điểm 6. Khóa – siêu khóa – khóa chỉ định – khóa chính – khóa ngoại: Cho lƣợc đồ quan hệ R, SR. S đƣợc gọi là một siêu khóa (superkey) của lƣợc đồ quan hệ R nếu với hai bộ tùy ý trong quan hệ R thì giá trị của các thuộc tính trong S là khác nhau. Một lƣợc đồ quan hệ có thể có nhiều siêu khoá. Siêu khoá chứa ít thuộc tính nhất đƣợc gọi là khóa chỉ định, trong trƣờng hợp lƣợc đồ quan hệ có nhiều khóa chỉ định, thì khóa đƣợc chọn để cài đặt gọi là khóa chính (Primary key) (trong các phần sau khóa chính đƣợc gọi tắt là khóa) Các thuộc tính tham gia vào một khóa đƣợc gọi là thuộc tính khóa (prime key), ngƣợc lại đƣợc gọi là thuộc tính không khóa (non prime key). Một thuộc tính đƣợc gọi là khóa ngoại nếu nó là thuộc tính của một lƣợc đồ quan hệ này nhƣng lại là khóa chính của lƣợc đồ quan hệ khác. Ví dụ 2.2: Ta hãy xem lƣợc đồ quan hệ sau: Xe(SODANGBO, QUICACH, HINHDANG, MAUSAC, SOSUON, SOMAY, MAXE, QUOCGIA) Siêu khóa: (SOSUON,QUICACH),... Khóa chỉ định: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY), (MAXE) Khóa chính: MAXE Thuộc tính khóa: SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE Thuộc tính không khóa: QUICACH, HINHDANG, MAUSAC Khóa của Sv là (MASV), Khoá của Mh là (MAMH), khoá của Kh là (MAKHOA), khóa của Kq là (MASV,MAMH) khóa của Lop là MALOP, trong Lop thuộc tính MAKHOA là khóa ngoại 7. Phụ thuộc hàm (Functional dependendies): Là công cụ để biểu diễn 1 số ràng buộc toàn vẹn 8. Ràng buộc toàn vẹn (Intergrity constraints): Ràng buộc toàn vẹn sử dụng các luật để định nghĩa các điều kiện đảm bảo cho cơ sở dữ liệu luôn ở trạng thái an toàn. Chúng quyết định các trạng thái và các 17
  19. biến đổi hợp lệ của cơ sở dữ liệu. Ràng buộc toàn vẹn đƣợc dùng để ngăn chặn việc đƣa các dữ liệu không hợp lệ vào cơ sở dữ liệu để cơ sở dữ liệu luôn an toàn trong điều kiện đó. Do đó 1 ràng buộc toàn vẹn là một yêu cầu chặt chẽ mà phải đƣợc đảm bảo đúng sau mỗi thao tác cập nhật cơ sở dữ liệu. Các phép cập nhật trên cơ sở dữ liệu không nên đƣợc thực hiện một cách tùy tiện, có thể đƣa cơ sở dữ liệu đến một tình trạng “xấu”, không còn phản ánh đúng thế giới thực mà nó đại diện. Các phép cập nhật trên cơ sở dữ liệu phải tuân thủ theo một số quy tắc ràng buộc nhất định. Các quy tắc ràng buộc này đƣợc gọi là ràng buộc toàn vẹn. Ví dụ: Mức lƣơng nhân viên không đƣợc vƣợt quá trƣởng phòng. 9. Các thao tác cơ bản trên các quan hệ: Ngƣời ta có thể truy cập dữ liệu trong cơ sở dữ liệu quan hệ thông qua đại số quan hệ, gồm một số phép toán cơ bản và phép toán dẫn xuất. II. CÁC PHÉP TOÁN TRÊN ĐẠI SỐ TẬP HỢP: 1. Phép hợp (Union operation): Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1 và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép hợp của hai lƣợc đồ quan hệ Q1 và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3. Q3 đƣợc xác định nhƣ sau: Q3 = {A1,A2,..,An} r3 = r1+r2 = {t | t  r1 hoặc t  r2} Ví dụ 2.3: r1 r2 r3 = r1 + r2 MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI 99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0 99002 CSDL 2.0 99001 TTNT 5.0 99002 CTDL 2.0 99003 MANG 8.0 99003 CSDL 6.0 99003 MANG 8.0 99001 TTNT 5.0 99003 CSDL 6.0 2. Phép giao (Intersection): Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1 và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép giao của hai lƣợc đồ quan hệ Q1 và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau: 18
  20. Q3 ={A1,A2,..,An} r3 = r1*r2= {t | t  r1 và t  r2} Ví dụ 2.4: r1 r2 r3 = r1 * r2 MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI 99001 CSDL 5.0 99002 CTDL 2.0 99002 CTDL 2.0 99002 CSDL 2.0 99001 TTNT 5.0 99003 MANG 8.0 99003 CSDL 6.0 3. Phép trừ (Minus, difference): Cho hai lƣợc đồ quan hệ Q1 và Q2 có cùng tập thuộc tính {A1,A2,..,An}. r1 và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Phép trừ lƣợc đồ quan hệ Q1 cho Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau: Q3={A1,A2,..,An} r3 = r1 - r2= {t | t  r1 và t ∉ r2} Ví dụ 2.5: r1 r2 r3 = r1 - r2 MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI 99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0 99002 CSDL 2.0 99001 TTNT 5.0 99003 MANG 8.0 99003 MANG 8.0 99003 CSDL 6.0 4. Phép tích Đề các (Cartesian Product, product): Cho hai lƣợc đồ quan hệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm). r1 và r2 lần lƣợt là hai quan hệ trên Q1 và Q2. Tích Descartes của hai lƣợc đồ quan hệ Q1 và Q2 sẽ tạo thành một lƣợc đồ quan hệ Q3 nhƣ sau: Q3 = Q1  Q2 = {A1,..., B1,...} r3 = r1 x r2 = {(t1,t2)| t1  r1 và t2  r2} Ví dụ 2.6: 19
nguon tai.lieu . vn