Bài giảng Cơ sở dữ liệu - Nguyễn Thị Thúy Loan

pdf 127 trang hapham 2720
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Nguyễn Thị Thúy Loan", để 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:

  • pdfbai_giang_co_so_du_lieu_nguyen_thi_thuy_loan.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu - Nguyễn Thị Thúy Loan

  1. Cách đánh giá  Lý thuyết: 50% CƠ SỞ DỮ LIỆU  Thực hành: 30%  Bài tập: 20% ThS. Nguyễn Thị Thúy Loan 10/4/2012 Nguyễn Thị Thúy Loan 2 Nội dung chương trình Tài liệu tham khảo  Tổng quan về cơ sở dữ liệu  Nhập môn cơ sở dữ liệu, Bùi Minh Từ Diễm, Đại học Khoa học Tự nhiên Tp.HCM.  Mô hình thực thể kết hợp  Cơ sở dữ liệu, Đồng Thị Bích Thủy và các tác giả,  Mô hình quan hệ nhà xuất bản Khoa học và Kỹ thuật.  SQL  Nhập môn cơ sở dữ liệu, Đồng Thị Bích Thủy –  Đại số quan hệ Nguyễn An Tế.  A First course in Database Systems, Feffrey  Phép tính quan hệ D.Ullman, Prentice Hall A First course in Database  Ràng buộc toàn vẹn Systems, Feffrey D.Ullman, Prentice Hall. 10/4/2012 Nguyễn Thị Thúy Loan 3 10/4/2012 Nguyễn Thị Thúy Loan 4 1
  2. Chương I: Nội dung chi tiết  Cơ sở dữ liệu TỔNG QUAN VỀ  Hệ cơ sở dữ liệu CƠ SỞ DỮ LIỆU  Hệ quản trị cơ sở dữ liệu  Các loại mô hình ThS. Nguyễn Thị Thúy Loan 10/4/2012 Nguyễn Thị Thúy Loan 6 Giới thiệu Quá trình quản lý dữ liệu  Dữ liệu là một mô tả hình thức thích hợp Giai đoạn đầu về những sự kiện, khái niệmhay chỉ thị để  Dữ liệu không được lưu trữ trên đĩa. giúp con người giao tiếp, diễn giải, hay xử  Lập trình viên định nghĩa cấu trúc dữ liệu lý hoặc thực hiện một cách tự động. logic và cấu trúc vật lý.  Dữ liệu được mô tả bất kỳ dạng nào,  Một tập dữ liệu một chương trình trùng chẳng hạn ký tự hay số gắn liền với ngữ lắp thông tin rất nhiều. nghĩa. 10/4/2012 Nguyễn Thị Thúy Loan 7 10/4/2012 Nguyễn Thị Thúy Loan 8 2
  3. Quá trình quản lý dữ liệu Quá trình quản lý dữ liệu CHƯƠNG TRÌNH 1 TẬP DỮ LIỆU 1 Hạn chế: Quản lý dữ liệu 1  Thiếu tính bền vững. CHƯƠNG TRÌNH 2 TẬP DỮ LIỆU 2 Quản lý dữ liệu 2  RAM: đắc và giới hạn.  Hiệu suất của lập trình viên thấp. CHƯƠNG TRÌNH 3 TẬP DỮ LIỆU 3 Quản lý dữ liệu 3 Hình 1 Một tập dữ liệu ứng với một chương tình 10/4/2012 Nguyễn Thị Thúy Loan 9 10/4/2012 Nguyễn Thị Thúy Loan 10 Quá trình quản lý dữ liệu Quá trình quản lý dữ liệu Xử lý tập tin CHƯƠNG TRÌNH 1 D ữ Quản lý dữ liệu 1 li  Dữ liệu được lưu trữ trong các tập tin. Tập ệ u d Các dịch tin 1 ư  Nhiều phương thức truy xuất khác nhau CHƯƠNG TRÌNH 2 vụ th Quản lý dữ liệu 2 Hệ thống Tập ừ ra đời. thông tin tin 2 a CHƯƠNG TRÌNH 3  Trong tiếp cận xử lý tập tin, mỗi ứng Quản lý dữ liệu 3 dụng sử dụng các tập tin riêng của mình. Hình 2 Một tập tin tương ứng với một hay nhiều chương tình 10/4/2012 Nguyễn Thị Thúy Loan 11 10/4/2012 Nguyễn Thị Thúy Loan 12 3
  4. Quá trình quản lý dữ liệu Quá trình quản lý dữ liệu Chức năng của hệ thống tập tin Tiếp cận CSDL  Ánh xạ giữa các tập tin logic và tập tin physic.  Tập các dịch vụ và một giao diện . DBMS Hạn chế: CHƯƠNG TRÌNH 1 Xử lý truy vấn QL CSDL Quản lý dữ liệu 1  Dữ liệu không có cấu trúc. giao dịch tích hợp  Dữ liệu được lưu trữ trùng lắp thông tin trong CHƯƠNG TRÌNH 2 nhiều tập tin. Quản lý dữ liệu 2  Không có quản lý giao dịch và xử lý đồng thời Hình 3 Tiếp cận CSDL trong việc quản lý dữ liệu giữa nhiều người dùng, 10/4/2012 Nguyễn Thị Thúy Loan 13 10/4/2012 Nguyễn Thị Thúy Loan 14 Sơ đồ tổng quát về CSDL Ví dụ về CSDL SVIEN LOP MASV TEN MALOP MALOP TENLOP SISO TCTH01 Sơn TCTHA TCTHA TCTH32A 80 TCTH02 Bảo TCTHB TCTHB TCTH32B 65 TCTH03 Trang TCTHA TCTHC TCTH32C 82 MONHOC KQUA MAMH TENMH TINCHI KHOA MASV MAMH DIEM Nhập môn TCTH01 THVP 8 THVP 4 CNTT TH TCTH01 CSDL 6 Cấu trúc dữ CSDL 4 CNTT TCTH01 CTDL 7 liệu TCTH02 THVP 9 CTDL Toán rời rạc 3 TOAN TCTH02 CSDL 8 TCTH03 THVP 10 10/4/2012 Nguyễn Thị Thúy Loan 15 10/4/2012 Nguyễn Thị Thúy Loan 16 4
  5. Hệ cơ sở dữ liệu Hệ cơ sở dữ liệu Khái niệm Các mức biểu diễn CSDL  Hệ CSDL là 1 tập hợp dữ liệu được tổ  Mức lược đồ ngoài: Là mức ngoài cùng chức một cách chọn lọc, ghi trên các thiết dành cho người sử dụng. bị lưu trữ, nhằm phục vụ đồng thời cho VD: Bộ phận quản lý công trình cần lập danh nhiều người, với nhiều mục đích khác sách phân công nhân viên theo công trình, nhau. với các thông tin: STT, Họ tên, Chuyên môn, Công trình. 10/4/2012 Nguyễn Thị Thúy Loan 17 10/4/2012 Nguyễn Thị Thúy Loan 18 Hệ cơ sở dữ liệu Hệ cơ sở dữ liệu Các mức biểu diễn CSDL Các mức biểu diễn CSDL  Mức quan niệm: Là mức mô tả tổng thể  Mức lược đồ vật lý: Là mức cài đặt thật sự CSDL, cho biết CSDL chứa những đối của CSDL, liên quan đến cách tổ chức và lưu trữ, và cách truy xuất dữ liệu được lưu tượng dữ liệu nào, mối quan hệ giữa các đối trữ. tượng. VD: Mô tả thông qua các tập tin chứa dữ liệu VD: Nhanvien: Họ tên, bậc lương, chuyên môn gồm tên, cách tổ chức, cấu trúc mẫu tin, cách truy cập Chedo_phucap: Bậc lương, hệ số phụ cấp 10/4/2012 Nguyễn Thị Thúy Loan 19 10/4/2012 Nguyễn Thị Thúy Loan 20 5
  6. NGƯỜI SỬ DỤNG Hệ cơ sở dữ liệu KHUNG NHÌN KHUNG NHÌN MỨC NGOÀI NGOÀI NGOÀI Lược đồ và thể hiện Ánh xạ ngoài/  Lựợc đồ CSDL-Database Schema: Mô tả Quan niệm MỨC QUAN NIỆM LƯỢC ĐỒ QUAN NIỆM về CSDL. Bao gồm mô tả về cấu trúc Ánh xạ quan CSDL và các ràng buộc trên CSDL đó. niệm/trong MỨC TRONG LƯỢC ĐỒ TRONG  Thể hiện CSDL-Database Instance: Dữ liệu hiện thời được lưu trong một CSDL ở một thời điểm nào đó. Cũng được gọi là CƠ SỞ DỮ LIỆU LƯU TRỮ trạng thái CSDL Minh họa kiến trúc 3 mức về lược đồ 10/4/2012 Nguyễn Thị Thúy Loan 21 10/4/2012 Nguyễn Thị Thúy Loan 22 Hệ cơ sở dữ liệu Hệ cơ sở dữ liệu Đặc tính của môi trường CSDL Đặc tính của môi trường CSDL  Dữ liệu được chia sẽ cho nhiều người sử  Có tính độc lập dữ liệu và chương trình dụng khác nhau, để tiết kiệm được không o Độc lập vật lý: người dùng chỉ quan tâm đến gian lưu trữ, tăng hiệu quả khai thác. nội dung dữ liệu, không quan tâm đến tổ chức bên trong và cách thức truy xuất.  Làm giảm tình trạng lưu trữ trùng lắp dữ liệu, bảo đảm được tính nhất quán trong việc truy o Độc lập logic: Nếu sửa cấu trúc CSDL thì không cần viết lại chương trình ứng dụng. xuất dữ liệu và tính toàn vẹn dữ liệu. 10/4/2012 Nguyễn Thị Thúy Loan 23 10/4/2012 Nguyễn Thị Thúy Loan 24 6
  7. Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu Khái niệm:  Các DBMS có nhiệm vụ hỗ trợ tích cực cho các nhà phân tích thiết kế CSDL cũng như  Hệ QTCSDL là một môi trường phần mềm cho phép xây dựng và khai thác CSDL của những người sử dụng khai thác CSDL. các đề án tin học hóa. DBMS cần phải có các thành phần cho phép VD: Oracle, MS Access, Poxpro, . khai báo cấu trúc lưu dữ liệu và xây dựng các thao tác xử lý chúng. 10/4/2012 Nguyễn Thị Thúy Loan 25 10/4/2012 Nguyễn Thị Thúy Loan 26 Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu Các thành phần của DBMS: Các thành phần của DBMS:  Ngôn ngữ thao tác dữ liệu: Cho phép người  Ngôn ngữ định nghĩa dữ liệu: Là phương tiện sử dụng xây dựng các thao tác cập nhật dữ cho phép khai báo cấu trúc lưu trữ dữ liệu, liệu (T, X, S), khai thác dữ liệu với các mục khai báo các mối liên hệ giữa các loại dữ liệu, đích khác nhau. cũng như các quy tắc quản lý áp đặt trên các  Từ điển dữ liệu: Chứa thông tin về các thành dữ liệu được lưu trữ. phần cấu trúc CSDL (các thuộc tính, các mối liên hệ, ), các quan hệ, RBDL. 10/4/2012 Nguyễn Thị Thúy Loan 27 10/4/2012 Nguyễn Thị Thúy Loan 28 7
  8. Các loại mô hình dữ liệu Các loại mô hình dữ liệu Định nghĩa:  Thông qua mô hình dữ liệu, người thiết kế  Mô hình dữ liệu là một tập hợp các khái sẽ mô tả toàn cảnh CSDL được thiết kế bao niệm, các quy ước biểu diễn dữ liệu cần gồm: quản lý ở mức quan niệm. o Các đối tượng, thực thể được quản lý o Các mối quan hệ giữa các đối tượng o Các RBDL thể hiện các quy tắc quản lý ảnh hưởng đến các đối tượng quản lý. 10/4/2012 Nguyễn Thị Thúy Loan 29 10/4/2012 Nguyễn Thị Thúy Loan 30 Mô hình thực thể kết hợp Mô hình thực thể kết hợp  Thuộc tính (Attribute): Là các yếu tố thông Đây là loại mô hình phổ biến để thiết kế CSDL tin để nhận được thực thể. ở mức quan niệm. VD: Họ tên, Ngày sinh, Quê quán, , của SV  Thực thể (Entity): Là đối tượng cụ thể hay  Loại thực thể: Là tập các thực thể có chung trừu tượng trong thế giới thực. thuộc tính. VD: Sinh viên Nguyễn Văn B. Lớp CNTT3. VD: Loại thực thể Sinh Viên. 10/4/2012 Nguyễn Thị Thúy Loan 31 10/4/2012 Nguyễn Thị Thúy Loan 32 8
  9. Mô hình thực thể kết hợp Mô hình thực thể kết hợp  Khóa của loại thực thể: Là thuộc tính mà giá  Ký hiệu hình thức của loại thực thể: trị của nó xác định duy nhất 1 thực thể. Sinh viên Lớp MSSV MaLop VD: Mã số sinh viên (MSSV), mã số nhân viên HovaTen TenLop (MSNV), MaLop SiSo  Loại mối kết hợp: Dùng diễn tả các liên hệ  Ký hiệu hình thức của mối kết hợp: ngữ nghĩa giữa các loại thực thể. Sinh viên Lớp MSSV Thuộc MaLop HovaTen TenLop MaLop SiSo 10/4/2012 Nguyễn Thị Thúy Loan 33 10/4/2012 Nguyễn Thị Thúy Loan 34 Mô hình thực thể kết hợp Bản số của mối kết hợp  Thuộc tính của mối kết hợp: Là thuộc tính (1,n) (0,n) chung của các loại thực thể tham gia mối kết song hợp. (0,n) (1,1) Nguoi sohuu Caooc  Bản số mỗi nhánh của mối kết hợp: Là một bộ gồm hai thành phần (min, max), đây là Nguoi Caooc Nguoi Caooc một RBTV về số lượng tối thiểu và tối đa của song sohuu n1 c1 n1 c1 n2 c2 n2 c2 một thực thể của nhánh đó tham gia vào các n3 c3 n3 c3 . c4 . c4 . . . . thể hiện của mối kết hợp. . . . . . . 10/4/2012 Nguyễn Thị Thúy Loan 35 10/4/2012 Nguyễn Thị Thúy Loan 36 9
  10. Mối kết hợp 1-1 Mối kết hợp 1-n Nhanvien lamviec Phongban Nhanvien quanly Phongban (1,1) (0,n) (0,1) (1,1) lamviec quanly Nhanvien Phongban Nhanvien Phongban r1 n1 r1 r2 p1 n1 n2 n2 r2 p1 n3 r3 p2 n4 n3 r3 p2 r4 p3 n4 p3 n5 n5 . . . r5 . . . . . . . . . . . . . . . 10/4/2012 Nguyễn Thị Thúy Loan 37 10/4/2012 Nguyễn Thị Thúy Loan 38 Mối kết hợp n-n Các bước thiết lập mô hình ER B1: Phân tích yêu cầu bài toán, chọn ra các Nhanvien thamgia Dean thông tin cần quản lý hình thành từ điển dữ (0,n) (1,n) liệu. thamgia Nhanvien Dean r1 B2: Tiến hành gom nhóm các thuộc tính theo n1 r2 d1 n2 n3 r3 d2 các thực thể thật. n4 r4 d3 n5 B3: Xác định các mối kết hợp giữa các thực thể. . r5 . . . . . B4: Xác định các thuộc tính của các mối kết hợp. . . . B5: Xác định bản số của mối kết hợp. 10/4/2012 Nguyễn Thị Thúy Loan 39 10/4/2012 Nguyễn Thị Thúy Loan 40 10
  11. Mô hình thực thể kết hợp Mô hình thực thể kết hợp Ví dụ:  Hướng dẫn:  Xây dựng mô hình dữ liệu phục vụ cho việc Thông tin Sinh viên bao gồm: MaSV, quản lý điểm thi các môn học để tính điểm TenSV, NgSinh, Phai trung bình của từng học kỳ của sinh viên Thông tin lớp bao gồm: MaLop, Tenlop các lớp, với các quy tắc quản lý như sau: Thông tin môn học bao gồm:MaMH, Mỗi môn học sinh viên được phép thi 2 lần. TenMH, sogioLT, sogioTH 10/4/2012 Nguyễn Thị Thúy Loan 41 10/4/2012 Nguyễn Thị Thúy Loan 42 Mô hình thực thể kết hợp Mô hình thực thể kết hợp LOP Một số quy định của mô hình ER SINHVIEN (1,1) (1,n) MSLOP MSSV Thuộc TENLOP  Không có các thuộc tính trùng tên giữa các HOTEN NGAYSINH thực thể. PHAI  Mọi thuộc tính của thực thể phải phụ thuộc (0,n) trực tiếp vào khóa của thực thể. KQHT MONHOC Học kì (0,n) MSMH  Thuộc tính có liên quan với các thực thể của ĐL1 TENMH ĐL2 SOGIOLT một mối kết hợp thì đặt ở mối kết hợp. SOGIOTH 10/4/2012 Nguyễn Thị Thúy Loan 43 10/4/2012 Nguyễn Thị Thúy Loan 44 11
  12. Ví dụ 1 Ví dụ 1 Họ chỉ quan tâm về dữ liệu của đợt ghi danh Những người phụ trách đào tạo của Trường hiện tại. Một khi học viên kết thúc môn học thì cao đẳng cộng đồng núi Ayers mong muốn nhà trường sẽ không còn quan tâm đến họ và tạo lập một CSDL về các môn đào tạo của những học viên này phải được xóa khỏi CSDL. trường (như: chứng chỉ leo núi, công nghệ bay) Thông tin cần lưu trữ về một học viên bao gồm: và học viên ghi danh vào những môn học này. Mã học viên, Tên học viên, địa chỉ, ngày sinh, số Trường cũng có qui định là cùng một lúc, học điện thoại, ngày nhập học. Thông tin về môn học viên chỉ có thể ghi danh vào một môn học. gồm mã môn học, tên môn học, thời lượng. 10/4/2012 Nguyễn Thị Thúy Loan 45 10/4/2012 Nguyễn Thị Thúy Loan 46 Phân tích Phân tích  Phần đặc tả vấn đề chứa đựng các qui Qui tắc quản lý gồm: tắc quản lý và dữ liệu yêu cầu của vấn  Cùng một lúc, một học viên chỉ có thể ghi đề. danh vào một môn học.  Dữ liệu của vấn đề là: chi tiết về học viên  Nhiều học viên có thể ghi danh vào một có mã học viên, tên học viên, địa chỉ, môn học. ngày sinh, số điện thoại và ngày nhập  Nhà trường chỉ quan tâm đến những học viên của môn học hiện tại học, chi tiết về môn học có mã môn học, tên môn học và thời lượng. 10/4/2012 Nguyễn Thị Thúy Loan 47 10/4/2012 Nguyễn Thị Thúy Loan 48 12
  13. Ví dụ 2 Ví dụ 3  Phòng cảnh sát mong muốn quản lý lý lịch cá Người phụ trách đào tạo Trường cao đẳng nhân những người lái xe và bằng lái của họ. cộng đồng núi xanh mong muốn thiết lập Một người chỉ lấy được một bằng lái và một một csdl về các môn học mà họ cung cấp bằng lái chỉ thuộc về một người. Thông tin về (như chứng chỉ leo núi, công nghệ bay, ) lái xe mà phòng cảnh sát quan tâm là: mã và các học viên ghi danh vào các môn học người lái xe, tên, địa chỉ, ngày sinh. này. Nhà trường qui định là một học viên  Thông tin về bằng lái cần lưu trữ là: mã bằng được ghi danh học tối đa ba môn học trong lái, loại bằng lái, ngày hết hạn. cùng một lúc. 10/4/2012 Nguyễn Thị Thúy Loan 49 10/4/2012 Nguyễn Thị Thúy Loan 50 Ví dụ 3 Mô hình dữ liệu mạng Họ chỉ quan tâm đến dữ liệu của môn học Dùng các khái niệm: hiện tại. Một khi học viên kết thúc môn học,  Loại mẫu tin: Thay cho khái niệm loại thực họ sẽ không còn thuộc diện quản lý của nhà thể, chứa các mẫu tin mà mỗi mẫu tin là một trường và phải được xóa khỏi csdl trừ khi học viên này ghi danh học tiếp môn mới. Thông thực thể. tin về một học viên gồm: mã học viên, tên học  Loại liên hệ: Là sự quan hệ ngữ nghĩa giữa viên, địa chỉ, ngày sinh, số điện thoại, ngày 1 loại mẫu tin chủ và một loại mẫu tin thành nhập học. Thông tin về môn học gồm: mã viên. môn học, tên môn học, thời lượng. 10/4/2012 Nguyễn Thị Thúy Loan 51 10/4/2012 Nguyễn Thị Thúy Loan 52 13
  14. Mô hình dữ liệu mạng Mô hình dữ liệu mạng SINHVIEN Ngoài ra còn có một số loại liên hệ khác: 1:n  Kiểu 1:1; 1 mẫu tin chủ liên hệ với 1 mẫu tin 1:n thành viên LOP KHOA  Kiểu n:1; Mỗi thể hiện là một tập gồm nhiều  Kí hiệu 1:n; diễn tả ý nghĩa 1 mẫu tin lớp có mẫu tin chủ và 1 mẫu tin thành viên. thể gồm nhiều sinh viên.  Tương tư,̣ 1 mẫu tin khoa có thể có nhiều lớp 10/4/2012 Nguyễn Thị Thúy Loan 53 10/4/2012 Nguyễn Thị Thúy Loan 54 Chuyển từ ER sang MHM Mô hình dữ liệu mạng  QT1: Mỗi thực thể hình thành 1 kiểu mẫu tin.  QT2: Mối kết hợp thuộc loại (?,1) –(?,n) hay (?,1) – (?,1) thì hình thành 1 loại liên hệ chiều LOP SINHVIEN MONHOC 1:n 1:n mũi tên đi từ (?,n) (?,1). 1:n  QT3: Mối kết hợp thuộc loại (?,n) – (?,n) thì KQHT hình thành 1 kiểu mẫu tin mới, kiểu mẫu tin này chứa các thuộc tính khóa của 2 mẫu tin liên quan. 10/4/2012 Nguyễn Thị Thúy Loan 55 10/4/2012 Nguyễn Thị Thúy Loan 56 14
  15. Mô hình dữ liệu phân cấp Mô hình dữ liệu phân cấp  Giống như mô hình mạng, với các khái niệm  Những kiểu mẫu tin không có cha là gốc của kiểu mẫu tin và loại liên hệ. Nhưng 1 kiểu cây. Các kiểu mẫu tin cuối cùng không con mẫu tin thành viên chỉ có thể phụ thuộc duy tạo thành các lá của cây. nhất 1 kiểu mẫu tin cha. Nghĩa là chỉ có kiểu liên hệ 1:1, 1:n. Do đó mô hình được thể LOP SINHVIEN MONHOC hiện như 1 rừng cây. KQHT KQHT 10/4/2012 Nguyễn Thị Thúy Loan 57 10/4/2012 Nguyễn Thị Thúy Loan 58 Mô hình dữ liệu quan hệ Chuyển từ ER sang MHQH  Mô hình Cơ sở dữ liệu Quan hệ do E.F Codd QT1: Chuyển mỗi loại thực thể (trừ loại thực đề xuất năm 1971. Mô hình này bao gồm: thể yếu) thành 1 quan hệ có cùng tên và o Các khái niệm liên quan đến cấu trúc dữ liệu cùng thuộc tính. dưới dạng dòng và cột như quan hệ, bộ, QT2: Mối quan hệ n – n tạo 1 quan hệ mới thuộc tính, khóa chính, khoá ngoại, có tên là tên mối liên hệ và khóa là khóa o Phép toán tập hợp và phép toán quan hệ. của các thực thể tham gia. o Ràng buộc toàn vẹn quan hệ. Mối kết hợp 1 – n thì thêm thuộc tính khóa  Các HQTCSDLQH được xây dựng dựa theo lý thuyết mô hình quan hệ. của bên n vào trong bên 1. 10/4/2012 Nguyễn Thị Thúy Loan 59 10/4/2012 Nguyễn Thị Thúy Loan 60 15
  16. Chuyển từ ER sang MHQH Mô hình thực thể kết hợp LOP Mối kết hợp 1 – 1 thì thêm thuộc tính khóa SINHVIEN (1,1) (1,n) MSLOP MSSV Thuộc TENLOP của quan hệ này vào quan hệ kia hoặc HOTEN NGAYSINH thêm vào cả hai bên. PHAI QT3: Loại thực thể yếu chuyển thành quan (0,n) hệ thêm thuộc tính khóa của quan hệ liên KQHT MONHOC hệ. Học kì (0,n) MSMH ĐL1 TENMH ĐL2 SOGIOLT SOGIOTH 10/4/2012 Nguyễn Thị Thúy Loan 61 10/4/2012 Nguyễn Thị Thúy Loan 62 Chuyển từ ER sang MHQH Chuyển từ ER sang MHQH Lop(MSLOP, TENLOP) SINHVIEN(MSSV, MSLOP, hoten, ngaysinh, phai) MONHOC(MSMH, TenMH, SoGioLT, SoGioTH) KQHT(MSSV,MSMH,hocky,diemL1, diemL2) 10/4/2012 Nguyễn Thị Thúy Loan 63 10/4/2012 Nguyễn Thị Thúy Loan 64 16
  17. Chuyển từ ER sang MHQH Mô hình DL hướng đối tượng Danh_muc_hang_hoa(ma_so_hang,  Mô hình này dựa trên cách tiếp cận hướng ten_hang,don_vi_tinh) đối tượng, với các khái niệm như: Lớp Kho(ma_kho,ten_kho, dia_chi_kho) (class), sự kế thừa (Inheritence), tính đóng Khach(ma_khach,ten_khach,dia_chi_khach) gói (Encapsulation) Nhưng hiện nay chưa Phieu_NX(so_phieu,ngay,ma_khach,ma_kho) được sử dụng rộng rãi một phần chưa có Ton_kho(ma_kho,ma_so_hang,so_luong_ton) nhiều DBMS cài đặt theo kiểu này. Chitiet_PNX(so_phieu,ma_so_hang, so_luong, don_gia) 10/4/2012 Nguyễn Thị Thúy Loan 65 10/4/2012 Nguyễn Thị Thúy Loan 66 Mô hình DL hướng đối tượng Bài tập SVien  Thiết lập mô hình quan niệm dùng quản lý Ten HPhan Lop hoc Ten Nganh SLuong việc cho mượn sách tại 1 thư viện (Xem tại 1 * 0 * LapTKB() InBangDiem() 1 chỗ hoặc mang về nhà) với các quy tắc quản Diem mo DiemTH lý như sau: DiemLT DiemPrj 0 * SuaDiem()  Sách gồm mã sách, tên sách, nguyên tác MHoc Ten Khoa +MHoc truoc (tiếng Việt hay nước ngoài), tác giả. Sách SoTinChi 0 * CapNhatSTC() được phân chia theo thể loại gồm MaTL, 0 * Dieu kien +MHoc sau TenTL. 10/4/2012 Nguyễn Thị Thúy Loan 67 10/4/2012 Nguyễn Thị Thúy Loan 68 17
  18. Bài tập Mô hình ER THELOAI  Độc giả muốn mượn sách phải lập thẻ độc SACH (1,1) (1,n) MSTL giả. Thẻ ghi nhận các thông tin gồm: MaĐG, MASACH Thuộc TENTL TENSACH TenĐG, địa chỉ ngày cấp, thông tin các sách NGUYENTAC TACGIA HGNAM đã mượn, ngày mượn, ngày trả. Hàng năm, (0,n) NAM độc giả phải đóng lệ phí để gia hạn thẻ mới (1,n) MUON THEĐG LEPHI được mượn sách, trên sổ có ghi thêm thông NGMUON MSĐG (1,n) NGNOP NGTRA (1,n) TENĐG tin: Ngày nộp, số tiền. SOTIEN DIACHI NGAY 10/4/2012 Nguyễn Thị Thúy Loan 69 10/4/2012 Nguyễn Thị Thúy Loan 70 Mô hình dữ liệu mạng Mô hình dữ liệu phân cấp THELOAI SACH THEĐG HGNAM THELOAI SACH THEĐG HGNAM MUON LEPHI MUON MUON LEPHI LEPHI 10/4/2012 Nguyễn Thị Thúy Loan 71 10/4/2012 Nguyễn Thị Thúy Loan 72 18
  19. Mô hình quan hệ Chương II:  SACH(MAS,TENS,NGTAC, TACGIA, MATL) MÔ HÌNH THỰC THỂ  THELOAI(MATL, TENTL)  MUON(MADG, MAS, NGMUON, NGTRA) KẾT HỢP (ER)  THEDG(MADG,TENDG,DIACHI,NGAY)  LEPHI(MSDG,NAM,NGNOP,SOTIEN) ThS. Nguyễn Thị Thúy Loan 10/4/2012 Nguyễn Thị Thúy Loan 73 Nguồn: Bài giảng Khoa CNTT ĐHKHTN Nội dung chi tiết Giới thiệu  Quá trình thiết kế CSDL  Mô hình ER được đề xuất bởi P.Chen  Mô hình ER (1976). Đây là một mô hình mức khái niệm  Thiết kế dựa vào việc nhận thức thế giới thực  Ví dụ thông qua tập các đối tượng được gọi là các thực thể và các mối quan hệ giữa các đối tượng này. 10/4/2012 Nguyễn Thị Thúy Loan 75 10/4/2012 Nguyễn Thị Thúy Loan 76 19
  20. Quá trình thiết kế CSDL Quá trình thiết kế CSDL Thế giới thực Phân tích yêu cầu Các yêu cầu về chức năng Các yêu cầu về dữ liệu Phân tích chức năng Mô hình Cài đặt trên Thông tin Mô hình ER Phân tích quan niệm quan hệ HQT CSDL Các đặc tả chức năng Lược đồ quan niệm Độc lập HQT Thiết kế mức logic Phụ thuộc Lược đồ logic Thiết kế HQT cụ thể chương trình ứng dụng Thiết kế mức vật lý Lược đồ trong Chương trình ứng dụng 10/4/2012 Nguyễn Thị Thúy Loan 77 Nội dung chi tiết Mô hình ER  Được dùng để thiết kế CSDL ở mức quan  Quá trình thiết kế CSDL  Mô hình thực thể -kết hợp niệm. o Thực thể  Biểu diễn trừu tượng cấu trúc của CSDL. o Thuộc tính  Lược đồ thực thể -kết hợp o Mối kết hợp (Entity-Relationship Diagram) o Lược đồ thực thể -kết hợp o Thực thể yếu o Tập thực thể (Entity Sets)  Thiếtkế o Thuộc tính (Attributes)  Ví dụ o Mối quan hệ (Relationship) 10/4/2012 Nguyễn Thị Thúy Loan 79 10/4/2012 Nguyễn Thị Thúy Loan 80 20
  21. Tập thực thể Thuộc tính  Là những đặc tính riêng biệt của tập thực  Một thực thể là một đối tượng của thế giới thể. thực. Ví dụ tập thực thể NHANVIEN có các thuộc Ví dụ: Sinh viên: Nguyễn Văn A tính: MaSV, TenSV, NSinh, ĐChi,  Tập hợp các thực thể giống nhau tạo thành  Là những giá trị nguyên tố: Kiểu chuỗi, 1 tập thực thể. kiểu số nguyên, kiểu số thực. Ví dụ: SinhVien  Có hai loại thuộc tính: Một thể hiện của thực thể SinhVien bao gồm: o Thuộc tính đơn: Mã sinh viên (SV01,Lê Văn A,10/12/93,Nam,Lê Hữu Thọ) o Thuộc tính hợp: Tên sinh viên 10/4/2012 Nguyễn Thị Thúy Loan 81 10/4/2012 Nguyễn Thị Thúy Loan 82 Thuộc tính Thuộc tính dẫn xuất  Giá trị của thuộc tính:  Là thuộc tính mà giá trị của nó được suy o Đơn trị: với 1 thực thể cụ thể, giá trị của ra từ các thuộc tính khác. thuộc tính là giá trị đơn.  Ví dụ: Thành tiền o Đa trị: với 1 thực thể cụ thể, giá trị của thuộc tính là một tập hợp các giá trị. Ví dụ: Màu sắc o Null: Chưa biết hoặc không áp dụng 10/4/2012 Nguyễn Thị Thúy Loan 83 10/4/2012 Nguyễn Thị Thúy Loan 84 21
  22. Mối quan hệ Bậc của mối quan hệ  Là sự liên kết giữa 2 hay nhiều tập thực  Là số lượng loại thực thể tham gia vào thể mang một ý nghĩa nào đó. mối kết hợp. Loại mối kết hợp bậc 2 gọi là  Ví dụ giữa tập thực thể NHANVIEN và mối kết hợp nhị phân. Hầu hết các loại PHONGBAN có các liên kết mối kết hợp trong cơ sở dữ liệu là nhị o Một nhân viên thuộc một phòng ban nào đó phân. o Một phòng ban có một nhân viên làm trưởng phòng. 10/4/2012 Nguyễn Thị Thúy Loan 85 10/4/2012 Nguyễn Thị Thúy Loan 86 Lược đồ ER Lược đồ ER  Là đồ thị biểu diễn các tập thực thể, thuộc o Cạnh là đường nối giữa tính và mối quan hệ. Bao gồm đỉnh và cạnh  Tập thực thể và thuộc tính o Đỉnh  Mối quan hệ và tập thực thể Tên tập thực thể Tập thực thể Tên thuộc tính Thuộc tính Tên quan hệ Mối quan hệ 10/4/2012 Nguyễn Thị Thúy Loan 87 10/4/2012 Nguyễn Thị Thúy Loan 88 22
  23. Ví dụ lược đồ ER Thể hiện của lược đồ ER  Một CSDL được mô tả bởi lược đồ ER sẽ NGSINH LUONG DCHI TENPHG HONV chứa đựng những dữ liệu cụ thể gọi là thể TENNV NHANVIEN Lam_viec PHONGBAN hiện CSDL. PHAI La_truong_phong o Mỗi tập thực thể sẽ có tập hợp hữu hạn các Phu_trach thực thể. o Ví dụ: Giả sử tập thực thể SVIEN có các DDIEM_DA Phan_cong DEAN thực thể như SV1, SV2, SVn TENDA 10/4/2012 Nguyễn Thị Thúy Loan 89 10/4/2012 Nguyễn Thị Thúy Loan 90 Thể hiện của lược đồ ER Ví dụ về CSDL SVIEN LOP MASV TEN MALOP o Mỗi thực thể sẽ có 1 giá trị cụ thể tại mỗi MALOP TENLOP SISO TCTH01 Sơn TCTHA TCTHA TCTH32A 80 thuộc tính. TCTH02 Bảo TCTHB TCTHB TCTH32B 65 o Ví dụ: TCTH03 Trang TCTHA TCTHC TCTH32C 82 MONHOC KQUA  SV1 có TENSV=“Son”, MAMH TENMH TINCHI KHOA MASV MAMH DIEM NGSINH=“08/12/1955”, PHAI=“‘Nam” Nhập môn TCTH01 THVP 8 THVP 4 CNTT TH  SV2 có TENSV= “Bao”, TCTH01 CSDL 6 Cấu trúc dữ CSDL 4 CNTT TCTH01 CTDL 7 NGSINH=“07/19/1966”, PHAI=“Nam” liệu TCTH02 THVP 9 CTDL Toán rời rạc 3 TOAN TCTH02 CSDL 8 TCTH03 THVP 10 10/4/2012 Nguyễn Thị Thúy Loan 91 10/4/2012 Nguyễn Thị Thúy Loan 92 23
  24. Thể hiện của lược đồ ER Mối quan hệ – thể hiện  Chú ý  Thể hiện CSDL còn chứa các mối quan hệ o Lược đồ ER không được lưu trữ trong cụ thể. CSDL, mà chỉ mô tả khái niệm trừu tượng. o Cho mối quan hệ R kết nối n tập thực thể o Lược đồ ER chỉ giúp ta thiết kế CSDL trước E1, E2, , En khi chuyển qua mô hình quan hệ và chuyển o Thể hiện của R là tập hữu hạn các danh dữ liệu xuống mức vật lý. sách (e1, e2, , en) o Trong đóei là các giá trị được chọn từ các tập thực thể Ei 10/4/2012 Nguyễn Thị Thúy Loan 93 10/4/2012 Nguyễn Thị Thúy Loan 94 Mối quan hệ – thể hiện Mối quan hệ  Xét mối quan hệ  Xét mối quan hệ nhị phân R (binary relationship) giữa 2 tập thực thể E và F, Lam_viec NHANVIEN PHONGBAN tính multiplicity bao gồm NHANVIEN PHONGBAN o Một-Nhiều (Tung, Nghien cuu) Tung Nghien cuu (Hang, Dieu hanh)  Một E có quan hệ với nhiều F Hang Dieu hanh (Vinh, Quan ly) Vinh Quan ly  Một F có quan hệ với một E n 1 E Quan_hệ F 10/4/2012 Nguyễn Thị Thúy Loan 95 10/4/2012 Nguyễn Thị Thúy Loan 96 24
  25. Mối quan hệ Mối quan hệ o Một-Một  (min, max) chỉ định mỗi thực thể e E  Một E có quan hệ với một F tham gia ít nhất và nhiều nhất vào thể hiện  Một F có quan hệ với một E (min, max) (min, max) của R E Quan_hệ F 1 1 E Quan_hệ F  (0,1) – không hoặc 1 o Nhiều-Nhiều  (1,1) – duy nhất 1  Một E có quan hệ với nhiều F  (0,n) – không hoặc nhiều  Một F có quan hệ với nhiều E  (1,n) – một hoặc nhiều n n E Quan_hệ F 10/4/2012 Nguyễn Thị Thúy Loan 97 10/4/2012 Nguyễn Thị Thúy Loan 98 Mối quan hệ Mối quan hệ  Ví dụ  Ví dụ o Một phòng ban có nhiều nhân viên o Một nhân viên có thể được phân công vào (1,n) nhiều đề án hoặc không được phân công NV Lam_viec PB vào đề án nào (0,n) o Một nhân viên chỉ thuộc 1 phòng ban NV Phan_cong DA (1,1) o Một nhân viên có thể là trưởng phòng của 1 NV Lam_viec PB phòng ban nào đó (0,1) NV La_truong_phong PB 10/4/2012 Nguyễn Thị Thúy Loan 99 10/4/2012 Nguyễn Thị Thúy Loan 100 25
  26. Mối quan hệ -Vai trò Thuộc tính trên mối quan hệ  Một loại thực thể có thể tham gia nhiều lần  Thuộc tính trên mối quan hệ mô tả tính vào một quan hệ với nhiều vai trò khác chất cho mối quan hệ đó. nhau.  Thuộc tính này không thể gắn liền với La nguoi quan ly NHANVIEN Quan_ly những thực thể tham gia vào mối quan hệ. (0,n) (0,n) (1,n) NHANVIEN Phan_cong DEAN Duoc quan ly boi (0,1) THGIAN 10/4/2012 Nguyễn Thị Thúy Loan 101 10/4/2012 Nguyễn Thị Thúy Loan 102 Thuộc tính khóa Thuộc tính khóa  Các thực thể trong tập thực thể cần phải  Chú ý được phân biệt. o Mỗi tập thực thể phải có 1 khóa  Khóa K của tập thực thể E là một hay nhiều o Một khóa có thể có 1 hay nhiều thuộc tính thuộc tính sao cho: o Có thể có nhiều khóa trong 1 tập thực thể, ta sẽ chọn ra 1 khóa làm khóa chính cho tập o Lấy ra 2 thực thể bất kỳ e1, và e2 trong E, thì thực thể đó. e1 và e2 không thể có các giá trị giống nhau tại các thuộc tính trong K. 10/4/2012 Nguyễn Thị Thúy Loan 103 10/4/2012 Nguyễn Thị Thúy Loan 104 26
  27. Ví dụ thuộc tính khóa Tập thực thể yếu MANV NGSINH LUONG DCHI MAPHG TENPB  Là loại thực thể mà không có tập thuộc tính HONV TENNV NHANVIEN Lam_viec PHONGBAN khóa. PHAI  Thực thể yếu (weak entity set) phải tham La_truong_phong gia vào mối quan hệ trong đócómột loại Phu_trach thực thể chính hay loại thực thể xác định. DDIEM_DA Phan_cong DEAN TENDA MADA 10/4/2012 Nguyễn Thị Thúy Loan 105 10/4/2012 Nguyễn Thị Thúy Loan 106 Tập thực thể yếu Tập thực thể yếu MAHD  Ví dụ 1  Ví dụ 2 NGAYHD MANV NGSINH LUONG DCHI TONGTIEN HOA_DON HONV (1,n) (1,n) HD_CT TENNV NHANVIEN Co_than_nhan QUANHE (1,1) NGSINH SL_HH PHAI (1,1) CHI_TIET PHAI SOTIEN THANNHAN (1,1) TENTN HH_CT (1,n) TENHH HANG_HOA DGIA MAHH 10/4/2012 Nguyễn Thị Thúy Loan 107 10/4/2012 Nguyễn Thị Thúy Loan 108 27
  28. Nội dung chi tiết Các bước thiết kế B1: Phân tích yêu cầu bài toán, chọn ra các  Quá trình thiết kế CSDL thông tin cần quản lý hình thành từ điển dữ  Mô hình thực thể -kết hợp liệu.  Thiết kế B2: Tiến hành gom nhóm các thuộc tính theo o Các bước thiết kế các thực thể thật. o Quy tắc thiết kế B3: Xác định các mối kết hợp giữa các thực thể.  Ví dụ B4: Xác định các thuộc tính của các mối kết hợp. B5: Xác định bản số của mối kết hợp. 10/4/2012 Nguyễn Thị Thúy Loan 109 10/4/2012 Nguyễn Thị Thúy Loan 110 Qui tắc thiết kế Nội dung chi tiết  Chính xác  Quá trình thiết kế CSDL  Tránh trùng lắp  Mô hình thực thể -kết hợp  Dễ hiểu  Thiết kế  Chọn đúng mối quan hệ  Ví dụ  Chọn đúng kiểu thuộc tính o Quản lý đề án công ty 10/4/2012 Nguyễn Thị Thúy Loan 111 10/4/2012 Nguyễn Thị Thúy Loan 112 28
  29. Ví dụ ‘Quản lý đề án công ty’ Ví dụ ‘Quản lý đề án công ty’  Nhân viên có mã số, tên, địa chỉ, ngày  Cty có nhiều phòng ban, mỗi phòng ban sinh, phái và lương. Mỗi nhân viên làm có tên duy nhất, mã phòng duy nhất, một việc ở 1 phòng ban, tham gia vào các đề trưởng phòng và ngày nhận chức. Mỗi án với số giờ làm việc khác nhau. Mỗi phòng ban có thểởnhiều địa điểm khác nhân viên đều có một người quản lý trực nhau. tiếp.  Đề án có tên duy nhất, mã duy nhất, do 1  Một nhân viên có thể có nhiều thân nhân. một phòng ban chủ trì và được triển khai Mỗi thân nhân có tên, phái, ngày sinh và ở 1 địa điểm. mối quan hệ với nhân viên đó. 10/4/2012 Nguyễn Thị Thúy Loan 113 10/4/2012 Nguyễn Thị Thúy Loan 114 Chương III: Nội dung chi tiết  Các khái niệm của mô hình quan hệ MÔ HÌNH DỮ LIỆU  Các ràng buộc của mô hình QUAN HỆ  Chuyển lược đồ E/R sang mô hình quan hệ ThS. Nguyễn Thị Thúy Loan Nguồn: Bài giảng Khoa CNTT ĐHKHTN 10/4/2012 Nguyễn Thị Thúy Loan 116 29
  30. Các KN của mô hình QH Quan hệ  Quan hệ (Relation)  Quan hệ là các thông tin lưu trữ trong  Thuộc tính (Attribute) CSDL được tổ chức thành bảng (table) 2  Bộ (Tuple) chiều.  Lược đồ (Schema)  Mỗi bảng được gọi là một quan hệ.  Miền giá trị (Domain)  Định nghĩa hình thức  Các đặc trưng của quan hệ  Các kí hiệu mô hình 10/4/2012 Nguyễn Thị Thúy Loan 117 10/4/2012 Nguyễn Thị Thúy Loan 118 Quan hệ Quan hệ  Quan hệ ~ Tập thưc thể NHANVIEN MaNV Ho TenNV Ngaysinh Gioitinh o Tên NV01 Le Van An 10/04/1975 Nam o Tập hợp các cột Tên quan hệ NV02 Tran Thi Binh 12/01/1979 Nu  Cố định NV03 Ha Van Hung 23/02/1980 Nam  Được đặt tên NV04 Đao Thi Tham 20/12/1976 Nu  Có kiểu dữ liệu Dòng ứng với 1 nhân viên o Tập hợp các dòng Cột ứng với  Thay đổi theo thời gian một thuộc tính  Một dòng ~ Một thực thể 10/4/2012 Nguyễn Thị Thúy Loan 119 10/4/2012 Nguyễn Thị Thúy Loan 120 30
  31. Thuộc tính Thuộc tính Các thuộc tính  Tên các cột của quan hệ  Mô tả ý nghĩa cho các giá trị tại cột đó  Tất cả các dữ liệu trong cùng 1 một cột NHANVIEN MaNV Ho TenNV Ngaysinh Gioitinh đều có cùng kiểu dữ liệu NV01 Le Van An 10/04/1975 Nam NV02 Tran Thi Binh 12/01/1979 Nu NV03 Ha Van Hung 23/02/1980 Nam NV04 Đao Thi Tham 20/12/1976 Nu 10/4/2012 Nguyễn Thị Thúy Loan 121 10/4/2012 Nguyễn Thị Thúy Loan 122 Bộ Bộ  Là các dòng của quan hệ (trừ dòng tên của các thuộc tính). NHANVIEN MaNV Ho TenNV Ngaysinh Gioitinh NV01 Le Van An 10/04/1975 Nam  Chứa dữ liệu cụ thể của các thuộc tính NV02 Tran Thi Binh 12/01/1979 Nu Bộ dữ liệu trong quan hệ. NV03 Ha Van Hung 23/02/1980 Nam NV04 Đao Thi Tham 20/12/1976 Nu 10/4/2012 Nguyễn Thị Thúy Loan 123 10/4/2012 Nguyễn Thị Thúy Loan 124 31
  32. Lược đồ Lược đồ  Lược đồ quan hệ được tạo thành từ tên  Lược đồ CSDL bao gồm nhiều lược đồ của quan hệ và danh sách các thuộc tính. quan hệ NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG) NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG) PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC) DIADIEM_PHG(MAPHG, DIADIEM) THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE) DEAN(TENDA, MADA, DDIEM_DA, PHONG) 10/4/2012 Nguyễn Thị Thúy Loan 125 10/4/2012 Nguyễn Thị Thúy Loan 126 Miền giá trị Định nghĩa hình thức  Là tập các giá trị nguyên tố gắn liền với  Cho lược đồ quan hệ một thuộc tính. R(A1:D1, A2:D2, , An:Dn) o Kiểu dữ liệu cơ sở o R: là tên quan hệ  Chuỗi ký tự (string) o A1, A2, , An là các thuộc tính  Số (integer) o D1, D2, , Dn là các miền giá trị tương ứng o Các kiểu dữ liệu phức tạp: Chưa được o Bậc của lược đồ quan hệ là số lượng thuộc chấp nhận tính trong lược đồ.  Ví dụ: TENNV: string; LUONG: integer  Ví dụ: SV(MaSV, TenSV, Phai) 10/4/2012 Nguyễn Thị Thúy Loan 127 10/4/2012 Nguyễn Thị Thúy Loan 128 32
  33. Định nghĩa hình thức (tt) Định nghĩa hình thức (tt)  Quan hệ (hay thể hiện quan hệ) o Một thể hiện r của lược đồ quan hệ R(A1, A2, TENNV HONV NGSINH DCHI PHAI LUONG PHG t Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 , A ), ký hiệu r(R), là một tập các bộ 1 n t2 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 t Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 r = {t , t , , t } 3 1 2 m t4 Hung Nguyen 09/15/1962 null Nam 38000 5 o v Trong đómỗi ti là 1 danh sách có thứ tự của i n giá trị ti=  vj Dj hoặc vj = Null (giá trị rỗng) là giá trị tương ứng với thuộc tính Aj hay DOM(Aj) 10/4/2012 Nguyễn Thị Thúy Loan 129 10/4/2012 Nguyễn Thị Thúy Loan 130 Các đặc trưng của quan hệ Tóm tắt các kí hiệu  Thứ tự các bộ trong quan hệ là không  Lược đồ quan hệ R bậc n o R(A , A , , A ) quan trọng. 1 2 n +  Tập thuộc tính của R: R  Thứ tự giữa các giá trị trong một bộ là  Tên quan hệ (thể hiện quan hệ): R, S, P, Q quan trọng.  Bộ: t, u, v  Không có bộ nào trùng nhau.  Miền giá trị của thuộc tính A o DOM(A) hay MGT(A)  Giá trị tại thuộc tính A của bộ thứ t o t.A hay t[A] 10/4/2012 Nguyễn Thị Thúy Loan 131 10/4/2012 Nguyễn Thị Thúy Loan 132 33
  34. Nội dung chi tiết Ràng buộc toàn vẹn  Các khái niệm của mô hình quan hệ  RBTV (Integrity Constraint)  Ràng buộc của mô hình o Là những qui tắc, điều kiện, ràng buộc cần o Siêu khóa (Super key) được thỏa mãn cho mọi thể thiện của o Khóa CSDL quan hệ. o Khóa chính (Primary key)  RBTV được mô tả khi định nghĩa lược đồ o Tham chiếu quan hệ. o Khóa ngoại (Foreign key)  RBTV được kiểm tra khi các quan hệ có  Chuyển lược đồ E/R sang thiết kế quan hệ thay đổi. 10/4/2012 Nguyễn Thị Thúy Loan 133 10/4/2012 Nguyễn Thị Thúy Loan 134 Siêu khóa Siêu khóa  Các bộ trong quan hệ phải khác nhau o Siêu khóa là tập các thuộc tính dùng để từng đôi một. xác định tính duy nhất của mỗi bộ trong quan hệ.  Siêu khóa (Super Key) o Mọi lược đồ quan hệ có tối thiểu một siêu o Gọi SK là một tập con khác rỗng các thuộc khóa. tính của R: SK là siêu khóa khi o r,t1, t2 r, t1 ≠ t2 t1[SK] ≠ t2[SK] 10/4/2012 Nguyễn Thị Thúy Loan 135 10/4/2012 Nguyễn Thị Thúy Loan 136 34
  35. Khóa Khóa  Nhận xét  Định nghĩa o Khóa là siêu khóa nhỏ nhất o Gọi K là một tập con khác rỗng các thuộc tính của R o Lược đồ quan hệ có thể có nhiều khóa o Khóa được xây dựng dựa trên ý nghĩa của o K là khóa nếu thỏa đồng thời 2 điều kiện  K là một siêu khóa của R một số thuộc tính.  K’  K, K’ ≠ K, K’ không là siêu khóa của R 10/4/2012 Nguyễn Thị Thúy Loan 137 10/4/2012 Nguyễn Thị Thúy Loan 138 Khóa chính Khóa chính  Xét quan hệ:  Khi cài đặt quan hệ thành bảng (table): NVIEN(MANV,TENNV,HONV,NSINH) o Chọn khóa có ít thuộc tính hơn  Có 2 khóa o Khóa được chọn để cài đặt gọi là khóa o MANV chính: o TENNV,HONV,NSINH  Các thuộc tính khóa chính phải có giá trị khác null.  Các thuộc tính khóa chính thường được gạch dưới. 10/4/2012 Nguyễn Thị Thúy Loan 139 10/4/2012 Nguyễn Thị Thúy Loan 140 35
  36. Tham chiếu Tham chiếu  Một bộ trong quan hệ R, tại thuộc tính A TENPHG MAPHG S Nghien cuu 5 nếu nhận một giá trị từ một thuộc tính B Dieu hanh 4 Quan ly 1 của quan hệ S, ta gọi R tham chiếu S. TENNV HONV NGSINH DCHI PHAI LUONG PHG  Bộ được tham chiếu phải tồn tại trước. Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 R Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 10/4/2012 Nguyễn Thị Thúy Loan 141 10/4/2012 Nguyễn Thị Thúy Loan 142 Khóa ngoại Khóa ngoại  Xét 2 lược đồ R và S  Ví dụ o Gọi FK là tập thuộc tính khác rỗng của R o FK là khóa ngoại (Foreign Key) của R khi NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)  Các thuộc tính trong FK phải có cùng miền PHONGBAN(TENPHG, MAPHG) Khóa ngoại giá trị với các thuộc tính khóa chính của S. Khóa chính  Giá trị tại FK của một bộ t1 R: hoặc bằng giá trị tại khóa chính của một bộ t2 S; hoặc bằng giá trị rỗng. 10/4/2012 Nguyễn Thị Thúy Loan 143 10/4/2012 Nguyễn Thị Thúy Loan 144 36
  37. Khóa ngoại Khóa ngoại  Nhận xét o Trong một lược đồ quan hệ, một thuộc tính vừa có thể tham gia vào khóa chính, vừa tham gia vào khóa ngoại o Khóa ngoại có thể tham chiếu đến khóa chính trên cùng 1 lược đồ quan hệ o Có thể có nhiều khóa ngoại tham chiếu đến cùng một khóa chính o Ràng buộc tham chiếu = Ràng buộc khóa ngoại 10/4/2012 Nguyễn Thị Thúy Loan 145 10/4/2012 Nguyễn Thị Thúy Loan 146 Nội dung chi tiết Các quy tắc chuyển đổi  Các khái niệm của mô hình quan hệ  (1) Tập thực thể o Các tập thực thể (trừ tập thực thể yếu)  Ràng buộc toàn vẹn chuyển thành các quan hệ có cùng tên và  Chuyển lược đồ E/R sang thiết kế quan tập thuộc tính hệ 10/4/2012 Nguyễn Thị Thúy Loan 147 10/4/2012 Nguyễn Thị Thúy Loan 148 37
  38. Các quy tắc chuyển đổi Các quy tắc chuyển đổi  (2) Mối quan hệ MANV NGSINH LUONG DCHI TENPHG MAPHG o (2a) Nhiều-Nhiều HONV (1,1) (1,n)  Tạo một quan hệ mới có TENNV NHANVIEN Lam_viec PHONGBAN  Tên quan hệ là tên của mối quan hệ PHAI (1,1) (1,1) La_truong_phong  Thuộc tính là những thuộc tính khóa của các tập thực thể liên quan PHONGBAN(TENPHG, MAPHG) NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG) 10/4/2012 Nguyễn Thị Thúy Loan 149 10/4/2012 Nguyễn Thị Thúy Loan 150 Các quy tắc chuyển đổi Các quy tắc chuyển đổi  (2) Mối quan hệ MANV NGSINH LUONG DCHI DDIEM_DA o (2b) Một-Nhiều HONV MADA TENNV NHANVIEN THOIGIAN DEAN  Thêm vào quan-hệ-một thuộc tính khóa của TENDA (1,n) (1,n) PHAI Phan_cong quan-hệ-nhiều PHANCONG(MANV, MADA, THOIGIAN) 10/4/2012 Nguyễn Thị Thúy Loan 151 10/4/2012 Nguyễn Thị Thúy Loan 152 38
  39. Các quy tắc chuyển đổi Các quy tắc chuyển đổi  (2) Mối quan hệ MANV o (2c) Một-Một NGSINH LUONG DCHI TENPHG MAPHG HONV  Hoặc thêm vào quan hệ này thuộc tính khóa (1,1) (1,n) Lam_viec TENNV NHANVIEN PHONGBAN của quan hệ kia PHAI  Hoặc thêm thuộc tính khóa vào cả 2 quan NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, MAPHG) hệ 10/4/2012 Nguyễn Thị Thúy Loan 153 10/4/2012 Nguyễn Thị Thúy Loan 154 Các quy tắc chuyển đổi Các quy tắc chuyển đổi  (3) Thực thể yếu MANV NGSINH LUONG DCHI TENPHG MAPHG HONV o Chuyển thành một quan hệ NG_NHANCHUC TENNV NHANVIEN PHONGBAN  Có cùng tên với thực thể yếu (1,1) (1,1) PHAI La_truong_phong  Thêm vào thuộc tính khóa của quan hệ liên quan PHONGBAN(MAPHG, TENPHG, MANV, NG_NHANCHUC) 10/4/2012 Nguyễn Thị Thúy Loan 155 10/4/2012 Nguyễn Thị Thúy Loan 156 39
  40. Các quy tắc chuyển đổi Các quy tắc chuyển đổi  Đối với thuộc tính đa trị MANV NGSINH LUONG DCHI MAPHG TENPHG TRPHG HONV (1,n) NHANVIEN Co_than_nhan QUANHE TENNV PHONGBAN DIADIEM NGSINH PHAI (1,1) PHAI THANNHAN  PHONGBAN(MAPHG,TENPHG,TRPHG) TENTN  DD_PHG(MAPHG,DIADIEM) THANNHAN(MANV, TENTN, PHAI, NGSINH, QUANHE) 10/4/2012 Nguyễn Thị Thúy Loan 157 10/4/2012 Nguyễn Thị Thúy Loan 158 Chuyển ER sang MHQH HONV TENLOT TENNV TEN PHAI DCHI nhanvien( phongban MAPB 1,1) (4,4) TENPB DIADIEM MANV LUONG LAMVIEC MaHP Diem Hocky NHANVIEN NG_NHAN SO LUONG PHONGBAN NGSINH (0,1) Nam Gvien CHUC NV (0,n) (1,1) Pt_phutrach Nhanvien nguoiql (0,N) hoc HPhan mo (0,1) Pb_duocql QUANLY (1,1) mhoctruoc giamsat GIAMSAT (0,N) MaSV (1,n) MaMH (0,n) THOIGIAN Ten TenMH TenHP SoTC Lop Svien Khoa MHoc nhanvien PHANCONG (0,N) Nganh Tinchi PHUTRACH (0,n) doan da_duocpt (1,N) dieukien (1,1) DEAN (0,n) TENDA TENDA mhocsau COTHAN NHAN MADA nguoithan (1,1) THANNHAN TENTN PHAI NGSINH QUANHE 10/4/2012 Nguyễn Thị Thúy Loan 159 40
  41. Chương IV: Nội dung chi tiết  Giới thiệu SQL (Structured  Định nghĩa dữ liệu Query Language)  Truy vấn dữ liệu  Cập nhật dữ liệu ThS. Nguyễn Thị Thúy Loan  Khung nhìn (view)  Chỉ mục (index) Nguồn: Bài giảng Khoa CNTT ĐHKHTN 10/4/2012 Nguyễn Thị Thúy Loan 162 Giới thiệu Giới thiệu  SQL o Được phát triển bởi IBM (1970s) o Ngôn ngữ cấp cao o Được gọi là SEQUEL o Người sử dụng chỉ cần đưa ra nội dung o Được ANSI công nhận và phát triển thành cần truy vấn. chuẩn  SQL-86  SQL-92  SQL-99 10/4/2012 Nguyễn Thị Thúy Loan 163 10/4/2012 Nguyễn Thị Thúy Loan 164 41
  42. Định nghĩa dữ liệu Định nghĩa dữ liệu  SQL sử dụng các khái niệm  Lệnh chính để định nghĩa trong SQL là o Bảng ~ quan hệ CREATE o Dòng ~ bộ o Lược đồ CSDL o Cột ~ thuộc tính o Bảng o Khung nhìn o Ràng buộc 10/4/2012 Nguyễn Thị Thúy Loan 165 10/4/2012 Nguyễn Thị Thúy Loan 166 Kiểu dữ liệu Kiểu dữ liệu  Số (numeric) Ngoài ra Số nguyên o MUMERIC(i,j) o INTEGER or INT o DECIMAL(i,j) o SMALLINT  Chuỗi ký tự (character string) Số thực o CHAR(n), CHARACTER(n) o FLOAT o VARCHAR(n), CHAR VARYING(n) o REAL o DOUBLE PRECISION 10/4/2012 Nguyễn Thị Thúy Loan 167 10/4/2012 Nguyễn Thị Thúy Loan 168 42
  43. Kiểu dữ liệu Kiểu dữ liệu  Chuỗi bit (bit string) o BIT(n) o BIT VARYING(n)  Ngày giờ (datetime) o DATE gồm ngày, tháng và năm o TIME gồm giờ, phút và giây o TIMESTAMP gồm ngày và giờ  BOOLEAN: TRUE, FALSE. 10/4/2012 Nguyễn Thị Thúy Loan 169 10/4/2012 Nguyễn Thị Thúy Loan 170 Kiểu dữ liệu Truy vấn dữ liệu  Để định nghĩa một bảng o Tên bảng o Các thuộc tính  Tên thuộc tính  Kiểu dữ liệu  Các RBTV trên thuộc tính 10/4/2012 Nguyễn Thị Thúy Loan 171 10/4/2012 Nguyễn Thị Thúy Loan 172 43
  44. Truy vấn dữ liệu Quản lý lao động  Cú pháp Để quản lý việc phân công các nhân viên  CREATE TABLE ( tham gia vào đề án xây dựng các công [ ], trình. Công ty xây dựng ABC tổ chức quản [ ], lý như sau: [ ] ) 10/4/2012 Nguyễn Thị Thúy Loan 173 10/4/2012 Nguyễn Thị Thúy Loan 174 Quản lý lao động Quản lý lao động Mỗi nhân viên của công ty ABC có một mã số Mỗi nhân viên có thân nhân, ứng với mỗi nhân viên duy nhất (MANV), mỗi mã nhân ma_nvien có tên thân nhân, phái, ngày viên xác định các thông tin như: Họ tên sinh và quan hệ. (HOTEN), ngày sinh (NGAYSINH), Phái (PHAI), địa chỉ (DIACHI), phòng ban, mã người quản lý(MA_NQL), Lương (LUONG) 10/4/2012 Nguyễn Thị Thúy Loan 175 10/4/2012 Nguyễn Thị Thúy Loan 176 44
  45. Quản lý lao động Quản lý lao động Công ty phân công các nhân viên tham gia Công ty có nhiều phòng ban (Phòng kế toán, vào các đề án, mỗi đề án có thể được phòng kinh doanh, phòng kỹ thuật, phòng phân cho nhiều nhân viên và mỗi nhân tổ chức, phòng chuyên môn, phòng phục viên cùng lúc tham gia vào nhiều đề án. vụ, ). Mỗi phòng ban có một mã số Với mỗi đề án có mada, tenda, diadiem và phòng ban (MAPB) duy nhất, một phòng do một phòng ban phụ trách. ban ứng với một tên phòng ban (TENPB), trphg, ng_nhanchuc. 10/4/2012 Nguyễn Thị Thúy Loan 177 10/4/2012 Nguyễn Thị Thúy Loan 178 Quản lý lao động Ví dụ – Tạo bảng CREATE TABLE NHANVIEN NHANVIEN (manv, honv, tenlot, tennv, ngsinh, dchi, (MANV CHAR(9), phai, luong, ma_nql, phg) HONV VARCHAR(10), TENLOT VARCHAR(20), PHONGBAN (maphg, tenphg, trphg, ng_nhanchuc) TENNV VARCHAR(10), DIADIEM_PHG (maphg, diadiem) NGSINH DATETIME, THANNHAN (ma_nvien, tentn, phai, ngsinh, DCHI VARCHAR(50), PHAI CHAR(3), quanhe) LUONG INT, DEAN (tenda, mada, ddiem_da, phong) MA_NQL CHAR(9), PHG INT PHANCONG (ma_nvien, soda, thoigian) ); 10/4/2012 Nguyễn Thị Thúy Loan 179 10/4/2012 Nguyễn Thị Thúy Loan 180 45
  46. Ràng buộc trên bảng Tạo ràng buộc   Đặt tên cho RBTV o NOT NULL CONSTRAINT o NULL o UNIQUE o DEFAULT o CHECK o PRIMARY KEY o FOREIGN KEY / REFERENCES 10/4/2012 Nguyễn Thị Thúy Loan 181 10/4/2012 Nguyễn Thị Thúy Loan 182 Ví dụ – Tạo bảng Ví dụ – Tạo bảng CREATE TABLE NHANVIEN CREATE TABLE PHONGBAN (HONV VARCHAR(10) NOT NULL, (TENPB VARCHAR(20) UNIQUE, TENLOT VARCHAR(20) NOT NULL, MAPHG INT NOT NULL, TENNV VARCHAR(10) NOT NULL, TRPHG CHAR(9), MANV CHAR(9) PRIMARY KEY, NG_NHANCHUC DATETIME DEFAULT (GETDATE()) NGSINH DATETIME, ); DCHI VARCHAR(50), CREATE TABLE PHANCONG PHAI CHAR(3) CHECK (PHAI IN (‘Nam’, ‘Nu’)), ( MA_NVIEN CHAR(9) FOREIGN KEY (MA_NVIEN) LUONG INT DEFAULT (10000), REFERENCES NHANVIEN(MANV), MA_NQL CHAR(9), SODA INT REFERENCES DEAN(MADA), PHG INT THOIGIAN DECIMAL(3,1) ); ); 10/4/2012 Nguyễn Thị Thúy Loan 183 10/4/2012 Nguyễn Thị Thúy Loan 184 46
  47. Đặt tên cho RBTV Đặt tên cho RBTV CREATE TABLE NHANVIEN (HONV VARCHAR(10) CONSTRAINT NV_HONV_NN NOT NULL, CREATE TABLE PHANCONG TENLOT VARCHAR(20) NOT NULL, ( MA_NVIEN CHAR(9), TENNV VARCHAR(10) NOT NULL, SODA INT, MANV CHAR(9) CONSTRAINT NV_MANV_PK PRIMARY KEY, THOIGIAN DECIMAL(3,1), NGSINH DATETIME, CONSTRAINT PC_MANVIEN_SODA_PK PRIMARY KEY (MA_NVIEN, SODA), DCHI VARCHAR(50), CONSTRAINT PC_MANVIEN_FK FOREIGN KEY (MA_NVIEN) PHAI CHAR(3) CONSTRAINT NV_PHAI_CHK REFERENCES NHANVIEN(MANV), CHECK (PHAI IN (‘Nam’, ‘Nu’)), CONSTRAINT PC_SODA_FK FOREIGN KEY (SODA) LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000), REFERENCES DEAN(MADA) MA_NQL CHAR(9), ) PHG INT ); 10/4/2012 Nguyễn Thị Thúy Loan 185 10/4/2012 Nguyễn Thị Thúy Loan 186 Lệnh sửa bảng Lệnh sửa bảng  Mở rộng cột  Được dùng để ALTER TABLE ALTER COLUMN o Thay đổi cấu trúc bảng o Thay đổi RBTV  Thêm RBTV  Thêm cột ALTER TABLE ADD ALTER TABLE ADD CONSTRAINT , [ ] CONSTRAINT ,  Xóa cột ALTER TABLE DROP COLUMN  Xóa RBTV ALTER TABLE DROP 10/4/2012 Nguyễn Thị Thúy Loan 187 10/4/2012 Nguyễn Thị Thúy Loan 188 47
  48. Thay đổi cấu trúc bảng Ví dụ - Thay đổi RBTV CREATE TABLE PHONGBAN ( . ALTER TABLE NHANVIEN ADD TENPB VARCHAR(20), MAPHG INT NOT NULL, NGHENGHIEP CHAR(20) TRPHG CHAR(9), . ALTER TABLE NHANVIEN DROP NG_NHANCHUC DATETIME ) COLUMN NGHENGHIEP ALTER TABLE PHONGBAN ADD . ALTER TABLE NHANVIEN ALTER CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG), CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG) COLUMN NGHENGHIEP CHAR(50) REFERENCES NHANVIEN(MANV), CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE()) FOR (NG_NHANCHUC), CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB) 10/4/2012 Nguyễn Thị Thúy Loan 189 10/4/2012 Nguyễn Thị Thúy Loan 190 Lệnh xóa bảng Lệnh xóa bảng (tt)  Được dùng để xóa cấu trúc bảng o Tất cả dữ liệu của bảng cũng bị xóa NHANVIEN  Cú pháp HONV TENLOTTENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG DROP TABLE PHONGBAN  Ví dụ TENPHG MAPHG TRPHG NG_NHANCHUC DROP TABLE NHANVIEN DROP TABLE PHONGBAN DROP TABLE PHANCONG 10/4/2012 Nguyễn Thị Thúy Loan 191 10/4/2012 Nguyễn Thị Thúy Loan 192 48
  49. Lệnh tạo miền giá trị Lệnh INSERT  Tạo ra một kiểu dữ liệu mới kế thừa  Dùng để thêm 1 hay nhiều dòng vào bảng những kiểu dữ liệu có sẳn  Cú pháp  Để thêm dữ liệu CREATE DOMAIN AS o Tên quan hệ  Ví dụ o Danh sách các thuộc tính cần thêm dữ liệu CREATE DOMAIN Kieu_Ten AS VARCHAR(30) o Danh sách các giá trị tương ứng 10/4/2012 Nguyễn Thị Thúy Loan 193 10/4/2012 Nguyễn Thị Thúy Loan 194 Lệnh INSERT Ví dụ  Cú pháp (thêm 1 dòng) INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV) VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’) INSERT INTO ( ) VALUES ( ) INSERT INTO NHANVIEN(HONV, TENLOT, TENNV, MANV, DCHI) VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, NULL) INSERT INTO NHANVIEN VALUES (‘Le’, ‘Van’, ‘Tuyen’, ‘635635635’, ’12/30/1952’, ’98 HV’, ‘Nam’, ‘37000’, 4) 10/4/2012 Nguyễn Thị Thúy Loan 195 10/4/2012 Nguyễn Thị Thúy Loan 196 49
  50. Lệnh INSERT Lệnh INSERT  Nhận xét o Câu lệnh INSERT sẽ gặp lỗi nếu vi phạm o Thứ tự các giá trị phải trùng với thứ tự các RBTV cột.  Khóa chính o Có thể thêm giá trị NULL ở những thuộc  Tham chiếu tính không là khóa chính và NOT NULL.  NOT NULL - các thuộc tính có ràng buộc NOT NULL bắt buộc phải có giá trị 10/4/2012 Nguyễn Thị Thúy Loan 197 10/4/2012 Nguyễn Thị Thúy Loan 198 Lệnh INSERT Ví dụ CREATE TABLE THONGKE_PB (  Cú pháp (thêm nhiều dòng) TENPHG VARCHAR(20), SL_NV INT, INSERT INTO ( ) ) INSERT INTO THONGKE_PB(TENPHG, SL_NV, LUONG_TC) SELECT TENPHG, COUNT(MANV), SUM(LUONG) FROM NHANVIEN, PHONGBAN WHERE PHG=MAPHG GROUP BY TENPHG 10/4/2012 Nguyễn Thị Thúy Loan 199 10/4/2012 Nguyễn Thị Thúy Loan 200 50
  51. Lệnh DELETE Ví dụ  Dùng để xóa các dòng của bảng DELETE FROM NHANVIEN  Cú pháp WHERE HONV=‘Tran’ DELETE FROM NHANVIEN DELETE FROM WHERE MANV=‘345345345’ [WHERE ] DELETE FROM NHANVIEN 10/4/2012 Nguyễn Thị Thúy Loan 201 10/4/2012 Nguyễn Thị Thúy Loan 202 Ví dụ Lệnh DELETE  Xóa đi những nhân viên ở phòng ‘Nghien  Nhận xét cuu’ o Số lượng số dòng bị xóa phụ thuộc vào DELETE FROM NHANVIEN điều kiện ở mệnh đề WHERE. WHERE PHG IN ( o Nếu không chỉ định điều kiện ở mệnh đề SELECT MAPHG WHERE, tất cả các dòng trong bảng sẽ bị FROM PHONGBAN xóa. WHERE TENPHG=‘Nghien cuu’) 10/4/2012 Nguyễn Thị Thúy Loan 203 10/4/2012 Nguyễn Thị Thúy Loan 204 51
  52. Lệnh DELETE Lệnh UPDATE  Dùng để thay đổi giá trị của thuộc tính cho o Lệnh DELETE có thể gây ra vi phạm RB các dòng của bảng. tham chiếu:  Cú pháp  Không cho xóa. UPDATE  Xóa luôn những dòng có giá trị đang tham chiếu đến. SET = ,  Đặt NULL cho những giá trị tham chiếu. = , [WHERE ] 10/4/2012 Nguyễn Thị Thúy Loan 205 10/4/2012 Nguyễn Thị Thúy Loan 206 Ví dụ Ví dụ Thay đổi ngày sinh của nhân viên có mã  Với đề án có mã số 10, hãy thay đổi nơi ‘333445555’ thành ’08/12/1965’ thực hiện đề án thành ‘Vung Tau’ và UPDATE NHANVIEN phòng ban phụ trách là phòng 5 SET NGSINH=’08/12/1965’ UPDATE DEAN WHERE MANV=‘333445555’ SET DIADIEM_DA=’Vung Tau’, PHONG=5 Tăng lương của nhân viên lên 10% UPDATE NHANVIEN WHERE MADA=10 SET LUONG=LUONG*1.1 10/4/2012 Nguyễn Thị Thúy Loan 207 10/4/2012 Nguyễn Thị Thúy Loan 208 52
  53. Lệnh UPDATE Lệnh UPDATE  Nhận xét: o Lệnh UPDATE có thể gây ra vi phạm RB o Những dòng thỏa điều kiện tại mệnh đề tham chiếu: WHERE sẽ được cập nhật giá trị mới.  Không cho sửa. o Nếu không chỉ định điều kiện ở mệnh đề  Sửa luôn những dòng có giá trị đang tham WHERE, tất cả các dòng trong bảng sẽ bị chiếu đến. cập nhật. 10/4/2012 Nguyễn Thị Thúy Loan 209 10/4/2012 Nguyễn Thị Thúy Loan 210 Truy vấn dữ liệu Truy vấn cơ bản  Là ngôn ngữ rút trích dữ liệu thỏa một số  Gồm 3 mệnh đề điều kiện nào đó. SELECT  Dựa trên FROM Phép toán ĐSQH Một số bổ sung WHERE o Cho phép 1 bảng có nhiều dòng trùng nhau 10/4/2012 Nguyễn Thị Thúy Loan 211 10/4/2012 Nguyễn Thị Thúy Loan 212 53
  54. Truy vấn cơ bản Quản lý nhân viên o : Tên các cột cần NHANVIEN (manv, honv, tenlot, tennv, ngsinh, dchi, được hiển thị trong kết quả truy vấn phai, luong, ma_nql, phg) o : Tên các bảng liên PHONGBAN (maphg, tenphg, trphg, ng_nhanchuc) quan đến câu truy vấn DIADIEM_PHG (maphg, diadiem) o : THANNHAN (ma_nvien, tentn, phai, ngsinh,  Biểu thức boolean xác định dòng nào sẽ được rút trích quanhe)  Nối các biểu thức: AND, OR, và NOT DEAN (tenda, mada, ddiem_da, phong)  Phép toán: , , , , , , LIKE và PHANCONG (ma_nvien, soda, thoigian) BETWEEN 10/4/2012 Nguyễn Thị Thúy Loan 213 10/4/2012 Nguyễn Thị Thúy Loan 214 Ví dụ Ví dụ 1. Lấy ra all nhân viên phòng số 5 1. Lấy ra MaNV và Luong được tăng lên 10% 2. Lấy ra MaNV, HoNV, TenLot, TenNV của của những NV nam thuộc phòng số 5 những NV nam thuộc phòng số 5. 2. Lấy ra MaNV, TenNV của NV thuộc phòng 3. Lấy ra MaNV, Họ và Tên NV của những Nghiên cứu. NV nam thuộc phòng số 5. 3. Lấy ra MaNV, TenNV của NV thuộc phòng Nghiên cứu hoặc phòng Quản lý. 4. Lấy ra MaNV, Luong của những NV nam 4. Lấy ra MaNV, TenNV có mức lương từ thuộc phòng số 5. 2000 đến 3000. 10/4/2012 Nguyễn Thị Thúy Loan 215 10/4/2012 Nguyễn Thị Thúy Loan 216 54
  55. Ví dụ Ví dụ 1. Lấy ra MaNV, TenNV có họ là Nguyen. 1. Cho biết tên phòng ban và địa điểm của 2. Lấy ra MaNV, TenNV có họ không phải từng phòng ban. là họ Nguyen. 2. Cho biết TenNV, NgSinh của nhân viên 3. Lấy ra MaNV, TenNV có tên bắt đầu là kí và TenTN, NgSinh thân nhân của họ. tự H. 4. Lấy ra MaNV, TenNV không có người quản lý. 10/4/2012 Nguyễn Thị Thúy Loan 217 10/4/2012 Nguyễn Thị Thúy Loan 218 Ví dụ Mệnh đề SELECT Lấy tất cả các cột của quan hệ kết quả SELECT * SELECT MANV, HONV, TENLOT, TENNV FROM NHANVIEN FROM NHANVIEN WHERE PHG=5 WHERE PHG=5 AND PHAI=‘Nam’ MANV HONVTENLOT TENNV NGSINH DCHI PHAI LUONGMA_NQL PHG MANV HONV TENLOT TENNV 333445555 NguyenThanh Tung 12/08/1955 638 NVC Q5 Nam 40000888665555 5 987987987 NguyenManh Hung 09/15/1962 Ba Ria VT Nam 38000333445555 5 333445555 Nguyen Thanh Tung 987987987 Nguyen Manh Hung 10/4/2012 Nguyễn Thị Thúy Loan 219 10/4/2012 Nguyễn Thị Thúy Loan 220 55
  56. Mệnh đề SELECT (tt) Mệnh đề SELECT (tt) Tên bí danh Mở rộng SELECT MANV, HONV AS HO, TENLOT AS ‘TEN LOT’, TENNV AS TEN SELECT MANV, HONV + ‘’+ TENLOT + ‘’+ TENNV AS ‘HO TEN’ FROM NHANVIEN FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ WHERE PHG=5 AND PHAI=‘Nam’ MANV HO TEN LOT TEN MANV HO TEN 333445555 Nguyen Thanh Tung 333445555 Nguyen Thanh Tung 987987987 Nguyen Manh Hung 987987987 Nguyen Manh Hung 10/4/2012 Nguyễn Thị Thúy Loan 221 10/4/2012 Nguyễn Thị Thúy Loan 222 Mệnh đề SELECT (tt) Mệnh đề SELECT (tt) Mở rộng Loại bỏ các dòng trùng nhau SELECT MANV, LUONG*1.1 AS ‘LUONG10%’ SELECT LUONG SELECT DISTINCT LUONG FROM NHANVIEN FROM NHANVIEN FROM NHANVIEN WHERE PHG=5 AND PHAI=‘Nam’ WHERE PHG=5 AND PHAI=‘Nam’ WHERE PHG=5 AND PHAI=‘Nam’ MANV LUONG10% 333445555 33000 LUONG LUONG 987987987 27500 30000 30000 -Tốn chi phí 25000 25000 - Người dùng muốn thấy 25000 38000 38000 10/4/2012 Nguyễn Thị Thúy Loan 223 10/4/2012 Nguyễn Thị Thúy Loan 224 56
  57. Ví dụ Mệnh đề WHERE  Cho biết MANV và TENNV làm việc ở phòng ‘Nghien cuu’ SELECT MANV, TENNV Biểu thức luận lý SELECT MANV, TENNV FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG FROM NHANVIEN, PHGBAN WHERE TENPHG = 'NGHIEN CUU' AND TRUE TRUE MAPHG = PHG 10/4/2012 Nguyễn Thị Thúy Loan 225 10/4/2012 Nguyễn Thị Thúy Loan 226 Mệnh đề WHERE (tt) Mệnh đề WHERE (tt) Độ ưu tiên BETWEEN SELECT MANV, TENNV SELECT MANV, TENNV FROM NHANVIEN FROM NHANVIEN, PHONGBAN WHERE LUONG>=20000 AND LUONG<=30000 WHERE (TENPHG=‘Nghien cuu’ OR TENPHG=‘Quan ly’) AND PHG=MAPHG SELECT MANV, TENNV FROM NHANVIEN WHERE LUONG BETWEEN 20000 AND 30000 10/4/2012 Nguyễn Thị Thúy Loan 227 10/4/2012 Nguyễn Thị Thúy Loan 228 57
  58. Mệnh đề WHERE (tt) Kí tự đại diện NOT BETWEEN KÍ TỰ MÔ TẢ VÍ DỤ - Đại diện cho 1 kí tự SELECT TENNV FROM NHANVIEN WHERE TENNV LIKE ‘_UNG’ bất kỳ SELECT MANV, TENNV SELECT TENNV FROM NHANVIEN FROM NHANVIEN % Đại diện cho nhiều ký WHERE DCHI LIKE ‘%TPHCM’ WHERE LUONG NOT BETWEEN 20000 AND 30000 tự [] Là 1 trong những ký SELECT * FROM NHANVIEN WHERE TENNV LIKE ‘[Q-T]%’ tự trong [ ] [^] Loại trừ những ký tự SELECT * FROM DIADIEM_PHG trong [ ] WHERE DIADIEM LIKE ‘%[^I-M]’ 10/4/2012 Nguyễn Thị Thúy Loan 229 10/4/2012 Nguyễn Thị Thúy Loan 230 Mệnh đề WHERE (tt) Mệnh đề WHERE (tt) LIKE NOT LIKE SELECT MANV, TENNV FROM NHANVIEN SELECT MANV, TENNV WHERE DCHI LIKE ‘Nguyen _ _ _ _’ FROM NHANVIEN WHERE HONV LIKE ‘Nguyen’ SELECT MANV, TENNV Ký tự bất kỳ FROM NHANVIEN SELECT MANV, TENNV WHERE DCHI LIKE ‘Nguyen %’ FROM NHANVIEN WHERE HONV NOT LIKE ‘Nguyen’ Chuỗi bất kỳ 10/4/2012 Nguyễn Thị Thúy Loan 231 10/4/2012 Nguyễn Thị Thúy Loan 232 58
  59. Mệnh đề WHERE (tt) Mệnh đề WHERE (tt) ESCAPE Ngày giờ SELECT MANV, TENNV SELECT MANV, TENNV FROM NHANVIEN FROM NHANVIEN WHERE DCHI LIKE ‘% Nguyens_%’ ESCAPE ‘s’ WHERE NGSINH BETWEEN ‘1955-12-08’ AND ‘1966-07-19’ ‘1955-12-08’ YYYY-MM-DD ’17:30:00’ HH:MI:SS ‘Nguyen_’ ’16/08/1955’ MM/DD/YYYY ’05:30 PM’ ‘December 8, 1955’ ‘1955-12-08 17:30:00’ 10/4/2012 Nguyễn Thị Thúy Loan 233 10/4/2012 Nguyễn Thị Thúy Loan 234 Mệnh đề WHERE (tt) Mệnh đề WHERE (tt) NULL NULL  Những biểu thức tính toán có liên quan  Sử dụng trong trường hợp đến giá trị NULL sẽ cho ra kết quả là o Không biết (value unknown) NULL. o Không thể áp dụng (value inapplicable) o x có giá trị là NULL o Không tồn tại (value withheld) o x + 3 cho ra kết quả là NULL o x + 3 là một biểu thức không hợp lệ trong SQL 10/4/2012 Nguyễn Thị Thúy Loan 235 10/4/2012 Nguyễn Thị Thúy Loan 236 59
  60. Mệnh đề WHERE (tt) Mệnh đề WHERE (tt) NULL NULL o Những biểu thức so sánh có liên quan đến giá SELECT MANV, TENNV trị NULL sẽ cho ra kết quả là UNKNOWN FROM NHANVIEN WHERE MA_NQL IS NULL  x = 3 cho ra kết quả là UNKNOWN  x = 3 là một so sánh không hợp lệ trong SQL SELECT MANV, TENNV FROM NHANVIEN WHERE MA_NQL IS NOT NULL 10/4/2012 Nguyễn Thị Thúy Loan 237 10/4/2012 Nguyễn Thị Thúy Loan 238 Mệnh đề FROM Mệnh đề FROM (tt) Không sử dụng mệnh đề WHERE Tên bí danh SELECT MANV, MAPHG SELECT TENPHG, DIADIEM FROM NHANVIEN, PHONGBAN SELECT TENPHG, DIADIEM FROM PHONGBAN, DDIEM_PHG FROM PHONGBAN AS PB, DDIEM_PHG AS DD WHERE TRUE WHERE MAPHG=MAPHG WHERE PB.MAPHG=DD.MAPHG MANV MAPHG 333445555 1 333445555 4 333445555 5 SELECT TENNV, NGSINH, TENTN, NGSINH 987987987 1 FROM NHANVIEN, THANNHAN 987987987 4 SELECT TENNV, NV.NGSINH, TENTN, TN.NGSINH WHERE MANV=MA_NVIEN 987987987 5 FROM NHANVIEN NV, THANNHAN TN WHERE MANV=MA_NVIEN 10/4/2012 Nguyễn Thị Thúy Loan 239 10/4/2012 Nguyễn Thị Thúy Loan 240 60
  61. Quản lý ràng buộc Ví dụ 1  Xem ràng buộc  Với những đề án ở ‘Ha Noi’, cho biết mã Sp_helpconstraint đề án, mã phòng ban chủ trì đề án, họ tên  Xóa ràng buộc trưởng phòng cùng với ngày sinh và địa Alter table chỉ của người ấy. Drop [constraint]  Tắt chức năng ràng buộc Alter table Nocheck constraint {all | [, ]} 10/4/2012 Nguyễn Thị Thúy Loan 241 10/4/2012 Nguyễn Thị Thúy Loan 242 Ví dụ 2 Ví dụ 3  Tìm họ tên của nhân viên phòng số 5 có  Tìm họ tên của từng nhân viên và người tham gia vào đề án “Sản phẩm X” với số phụ trách trực tiếp nhân viên đó. giờ làm việc trên 10 giờ. 10/4/2012 Nguyễn Thị Thúy Loan 243 10/4/2012 Nguyễn Thị Thúy Loan 244 61
  62. Ví dụ 4 Mệnh đề ORDER BY  Dùng để hiển thị kết quả câu truy vấn theo  Tìm họ tên của những nhân viên được một thứ tự nào đó “Nguyen Thanh Tung” phụ trách trực tiếp.  Cú pháp SELECT FROM WHERE ORDER BY o ASC: tăng (mặc định) o DESC: giảm 10/4/2012 Nguyễn Thị Thúy Loan 245 10/4/2012 Nguyễn Thị Thúy Loan 246 Ví dụ Phép toán tập hợp trong SQL  Liệt kê danh sách MaNV, TenNV theo thứ  SQL có cài đặt các phép toán tự tên giảm dần. o Hội (UNION)  Liệt kê MaNV, SoDA theo thứ tự MaNV o Giao (INTERSECT) tăng dần, SoDA giảm dần. o Trừ (EXCEPT) 10/4/2012 Nguyễn Thị Thúy Loan 247 10/4/2012 Nguyễn Thị Thúy Loan 248 62
  63. Phép toán tập hợp trong SQL Phép toán tập hợp trong SQL  Cú pháp  Kết quả trả về là tập hợp SELECT FROM WHERE o Loại bỏ các bộ trùng nhau UNION [ALL] SELECT FROM WHERE o Để giữ lại các bộ trùng nhau SELECT FROM WHERE  UNION ALL INTERSECT [ALL]  INTERSECT ALL SELECT FROM WHERE  EXCEPT ALL SELECT FROM WHERE EXCEPT [ALL] SELECT FROM WHERE 10/4/2012 Nguyễn Thị Thúy Loan 249 10/4/2012 Nguyễn Thị Thúy Loan 250 Ví dụ Ví dụ  Tìm nhân viên có người thân cùng tên và  Cho biết các mã đề án có o Nhân viên với họ là ‘Nguyen’ tham gia cùng giới tính hoặc, o Trưởng phòng chủ trì đề án đóvới họ là ‘Nguyen’ 10/4/2012 Nguyễn Thị Thúy Loan 251 10/4/2012 Nguyễn Thị Thúy Loan 252 63
  64. Ví dụ Truy vấn lồng  Tìm những nhân viên không có thân nhân SELECT nào Câu truy vấn cha (Outer query) FROM WHERE ( SELECT Câu truy vấn FROM con (Subquery) WHERE ) 10/4/2012 Nguyễn Thị Thúy Loan 253 10/4/2012 Nguyễn Thị Thúy Loan 254 Truy vấn lồng Truy vấn lồng  Các câu lệnh SELECT có thể lồng nhau ở  Mệnh đề WHERE của câu truy vấn cha nhiều mức. o đề WHERE được kết hợp bằng phép nối o So sánh tập hợp thường đi cùng với một số logic. toán tử:  IN, NOT IN  Câu truy vấn con thường trả về một tập các  ALL giá trị.  ANY hoặc SOME o Kiểm tra sự tồn tại: EXISTS, NOT EXISTS 10/4/2012 Nguyễn Thị Thúy Loan 255 10/4/2012 Nguyễn Thị Thúy Loan 256 64
  65. Truy vấn lồng Truy vấn lồng  Có 2 loại truy vấn lồng o Lồng tương quan o Lồng phân cấp (không tương quan)  Mệnh đề WHERE của truy vấn con tham  Mệnh đề WHERE của truy vấn con không chiếu ít nhất một thuộc tính của các quan hệ tham chiếu đến thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha. trong mệnh đề FROM ở truy vấn cha.  Khi thực hiện, câu truy vấn con sẽ được  Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều lần, mỗi lần tương ứng với thực hiện trước. một bộ của truy vấn cha. 10/4/2012 Nguyễn Thị Thúy Loan 257 10/4/2012 Nguyễn Thị Thúy Loan 258 Lồng phân cấp Ví dụ Cho biết MaNV, TenNV làm việc tại các phòng ban có địa SELECT SODA điểm tại TP HCM FROM NHANVIEN NV, PHANCONG PC SELECT MANV, TENNV WHERE NV.MANV=PC.MA_NVIEN AND NV.HONV=‘Nguyen’ FROM NHANVIEN, DIADIEM_PHG WHERE DIADIEM=‘TP HCM’ AND PHG=MAPHG UNION SELECT MADA SELECT MANV, TENNV FROM NHANVIEN FROM NHANVIEN NV, PHONGBAN PB, DEAN DA WHERE PHG IN ( WHERE NV.MANV=PB.TRPHG AND PB.MAPHG=DA.PHONG SELECT MAPHG AND NV.HONV=‘Nguyen’ FROM DIADIEM_PHG WHERE DIADIEM=‘TP HCM’ ) 10/4/2012 Nguyễn Thị Thúy Loan 259 10/4/2012 Nguyễn Thị Thúy Loan 260 65
  66. Ví dụ 5 Ví dụ SELECT DISTINCT TENDA  Tìm những nhân viên có lương lớn hơn FROM DEAN lương của ít nhất một nhân viên phòng 4 WHERE MADA IN ( SELECT SODA FROM NHANVIEN, PHANCONG WHERE MANV=MA_NVIEN AND HONV=‘Nguyen’ ) OR MADA IN ( SELECT MADA FROM NHANVIEN, PHONGBAN, DEAN WHERE MANV=TRPHG AND MAPHG=PHONG AND HONV=‘Nguyen’ ) 10/4/2012 Nguyễn Thị Thúy Loan 261 10/4/2012 Nguyễn Thị Thúy Loan 262 Ví dụ Ví dụ  Tìm những nhân viên không có thân nhân  Tìm những nhân viên có lương lớn hơn nào lương của tất cả nhân viên phòng 4 10/4/2012 Nguyễn Thị Thúy Loan 263 10/4/2012 Nguyễn Thị Thúy Loan 264 66
  67. Ví dụ Lồng tương quan  Tìm những trưởng phòng có tối thiểu một SELECT MANV, TENNV thân nhân FROM NHANVIEN, PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG SELECT MANV, TENNV FROM NHANVIEN WHERE EXISTS ( SELECT * FROM PHONGBAN WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG ) 10/4/2012 Nguyễn Thị Thúy Loan 265 10/4/2012 Nguyễn Thị Thúy Loan 266 Ví dụ Ví dụ  Tìm những nhân viên không có thân nhân  Tìm nhân viên có người thân cùng tên và nào cùng giới tính 10/4/2012 Nguyễn Thị Thúy Loan 267 10/4/2012 Nguyễn Thị Thúy Loan 268 67
  68. Ví dụ Ví dụ  Tìm những trưởng phòng có tối thiểu một  Tìm những nhân viên có lương lớn hơn thân nhân lương của ít nhất một nhân viên phòng 4 10/4/2012 Nguyễn Thị Thúy Loan 269 10/4/2012 Nguyễn Thị Thúy Loan 270 Nhận xét IN và EXISTS Nhận xét IN và EXISTS  EXISTS  IN o Không cần có thuộc tính, hằng số hay biểu o IN thức nào khác đứng trước. o Thuộc tính ở mệnh đề SELECT của truy o Không nhất thiết liệt kê tên thuộc tính ở vấn con phải có cùng kiểu dữ liệu với thuộc mệnh đề SELECT của truy vấn con. tính ở mệnh đề WHERE của truy vấn cha. o Những câu truy vấn có = ANY hay IN đều có thể chuyển thành câu truy vấn có EXISTS. 10/4/2012 Nguyễn Thị Thúy Loan 271 10/4/2012 Nguyễn Thị Thúy Loan 272 68
  69. Phép chia trong SQL Phép chia trong SQL  Biểu diễn bằng SQL:  Giả sử có Q (AB), Q (B). Viết bằng SQL 1 2 SELECT X.A Q1  Q2 FROM Q1 X WHERE NOT EXISTS  Diễn đạt lại: Q1  Q2 là tập hợp các giá trị (SELECT Y.B ai trong Q1 sao cho: không có giá trị bj FROM Q2 Y nào trong Q2 làm cho bộ (ai, bj) không tồn WHERE NOT EXISTS (SELECT * tại trong Q1 FROM Q1 Z WHERE Z.A=X.A AND Z.B=Y.B)) 10/4/2012 Nguyễn Thị Thúy Loan 273 10/4/2012 Nguyễn Thị Thúy Loan 274 Phép chia trong SQL Phép chia trong SQL Q R ABCDE RS ABC 1 A B Q  Q S DE Q2 1 2 a a 1 b a a  1 i a 1 i B A a  a 1 b 1  a  2 a  b 1 1  a  a 1  1   a  b 3 2  a  a 1  1  a  b 1  2  a  b 1 10/4/2012 Nguyễn Thị Thúy Loan 275 10/4/2012 Nguyễn Thị Thúy Loan 276 69
  70. Phép chia trong SQL Ví dụ  Lược đồ CSDL:  RS là tập các giá trị a trong R sao cho i KHACHHANG (MAKH, HOTEN, DCHI, SODT, không có giá trị bi nào trong S làm cho bộ NGSINH, DOANHSO, NGDK) (ai, bi) không tồn tại trong R NHANVIEN (MANV,HOTEN, NGLV, SODT) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL) 10/4/2012 Nguyễn Thị Thúy Loan 277 10/4/2012 Nguyễn Thị Thúy Loan 278 Ví dụ Ví dụ  Tìm số hóa đơn đã mua tất cả sản phẩm  Khi phân tích ta có thể thấy đây là câu hỏi sử do Singapore sản xuất.Trước khi giải đáp dụng phép trừ để thực hiện. Cụ thể: Những Sản phẩm của Singapore mà câu hỏi minh họa, chúng ta cùng làm câu SoHD ’1001′ chưa mua = Tất cả Sản phẩm của hỏi PHỤ sau: Singapore - (Những Sản phẩm của Singapore  Tìm những sản phẩm của Singapore mà mà SoHD ’1001′ đã mua) SoHD ’1001′ chưa mua. Trong SQL ta có thể sử dụng NOT IN hoặc NOT EXISTS để thực hiện phép trừ này. 10/4/2012 Nguyễn Thị Thúy Loan 279 10/4/2012 Nguyễn Thị Thúy Loan 280 70
  71. Ví dụ Ví dụ  Sử dụng NOT IN  Câu truy vấn con sẽ trả về giá trị của SELECT * MASP thỏa mãn điều kiện SOHD=’1001′ FROM SANPHAM và các giá trị này xem như là một mảng. WHERE NUOCSX='SINGAPORE' AND MASP Câu truy vấn cha khi sử dụng NOT IN sẽ NOT IN( Câu truy vấn con duyệt qua từng phần tử của mảng và so SELECT MASP FROM CTHD sánh để chọn những MASP nào không WHERE SOHD='1001') nằm trong mảng trên. 10/4/2012 Nguyễn Thị Thúy Loan 281 10/4/2012 Nguyễn Thị Thúy Loan 282 Ví dụ Ví dụ  Sử dụng NOT EXISTS  Câu truy vấn con sẽ chọn ra những bộ SELECT * thỏa mãn điều kiện SOHD=’1001′ và có FROM SANPHAM A MASP nằm trong 2 bảng CTHD và WHERE NUOCSX='SINGAPORE' AND NOT SANPHAM. EXISTS( Câu truy vấn con SELECT * FROM CTHD B Điều đáng chú ý ở đây là NOT EXIST chỉ WHERE SOHD='1001' AND A.MASP=B.MASP) trả về giá trị True hoặc False 10/4/2012 Nguyễn Thị Thúy Loan 283 10/4/2012 Nguyễn Thị Thúy Loan 284 71
  72. Ví dụ Ví dụ  Giá trị của NOT EXIST chỉ đúng khi câu  Điều kiện NOT EXISTS đúng câu truy vấn truy vấn con không trả về bộ giá trị nào (Lý chính trả về tất cả những bộ sản phẩm do thuyết). Và ngược lại giá trị của NOT SINGAPORE sản xuất (những sản phẩm EXIST sai khi có các bộ giá trị trả về. này chính là những sản phẩm mà SOHD  Nếu câu truy vấn con không trả về bộ giá ’1001′ chưa mua). Thỏa yêu cầu câu hỏi trị nào có nghĩa là SOHD ’1001′ CHƯA đặt ra. MUA BẤT KỲ SẢN PHẨM NÀO. 10/4/2012 Nguyễn Thị Thúy Loan 285 10/4/2012 Nguyễn Thị Thúy Loan 286 Nhận xét Nhận xét  Khi sử dụng NOT IN, câu truy vấn cha sẽ  Đây có thể xem như là khác biệt quan duyệt qua rất nhiều lần để đưa ra những trọng nhất giữa NOT IN và NOT EXISTS. bộ giá trị thỏa mãn. Sử dụng NOT EXISTS có vẻ “phức tạp”,  Với NOT EXISTS câu truy vấn cha xem khó hiểu hơn nhưng thực ra Sever thực NOT EXIST như một điều kiện, thực hiện hiện câu truy vấn dễ dàng hơn. truy vấn nếu NOT EXIST đúng và ngược lại. 10/4/2012 Nguyễn Thị Thúy Loan 287 10/4/2012 Nguyễn Thị Thúy Loan 288 72
  73. Ví dụ Ví dụ  Câu hỏi phụ yêu cầu chúng ta tìm những  Như vậy vấn đề: Tìm những sản phẩm sản phẩm của Singapore mà một Số hóa của Singapore mà SoHD ’1001′ chưa mua đơn bất kỳ chưa mua, để đơn giản như ở đã giải quyết xong! Từ đóta cóthể dễ trên mình đã chỉ định số hóa đơn là 1001. dàng tìm những sản phẩm của Singapore  Vậy nếu giá trị của câu hỏi phụ trả về là mà một SoHD BẤT KỲ chưa mua. không có sản phẩm nào thì có nghĩa là Số hóa đơn đó đã mua tất cả sản phẩm của Singapore. 10/4/2012 Nguyễn Thị Thúy Loan 289 10/4/2012 Nguyễn Thị Thúy Loan 290 Ví dụ Ví dụ  Ta lại liên tưởng tới một câu truy vấn sử SELECT DISTINCT SOHD FROM CTHD A dụng NOT EXISTS, và bây giờ câu hỏi WHERE NOT EXISTS( câu hỏi phụ phụ chính là điều kiện NOT EXIST của SELECT * FROM SANPHAM B câu hỏi chính. WHERE NUOCSX='SINGAPORE' AND NOT EXISTS( SELECT * FROM CTHD C WHERE C.MASP=B.MASP AND C.SOHD=A.SOHD)) 10/4/2012 Nguyễn Thị Thúy Loan 291 10/4/2012 Nguyễn Thị Thúy Loan 292 73
  74. Ví dụ Ví dụ  Tìm tên các nhân viên được phân công  Rõ ràng ta có thể thấy rằng, phép trừ làm tất cả các đề án. chính là “con” của phép chia. Hay nói cách o Tìm tên các nhân viên mà không có đề án khác, khi thực hiện phép chia là đồng thời nào là không được phân công làm lồng 2 phép trừ vào trong đó. o Tập bị chia: PHANCONG(MA_NVIEN,  Vậy ta có thể sử dụng 2 NOT IN lồng vào SODA) nhau để thực hiện phép trừ hay không? o Tập chia: DEAN(MADA) o Tập kết quả: KQ(MA_NVIEN) o Kết KQ với NHANVIEN để lấy ra TENNV 10/4/2012 Nguyễn Thị Thúy Loan 293 10/4/2012 Nguyễn Thị Thúy Loan 294 Hàm kết hợp Hàm kết hợp  COUNT  MIN o COUNT(*) đếm số dòng  MAX o COUNT( ) đếm số giá trị  SUM khác NULL của thuộc tính  AVG o COUNT(DISTINCT ) đếm số giá trị khác nhau và khác NULL của  Các hàm kết hợp được đặt ở mệnh đề thuộc tính. SELECT 10/4/2012 Nguyễn Thị Thúy Loan 295 10/4/2012 Nguyễn Thị Thúy Loan 296 74
  75. Ví dụ Ví dụ  Tìm tổng lương, lương cao nhất, lương  Cho biết số lượng nhân viên của phòng thấp nhất và lương trung bình của các ‘Nghien cuu’ nhân viên SELECT SUM(LUONG), MAX(LUONG), MIN(LUONG), AVG(LUONG) FROM NHANVIEN 10/4/2012 Nguyễn Thị Thúy Loan 297 10/4/2012 Nguyễn Thị Thúy Loan 298 297 298 Ví dụ Gom nhóm  Cú pháp  Cho biết số lượng nhân viên của từng phòng ban. SELECT FROM WHERE GROUP BY  Sau khi gom nhóm o Mỗi nhóm các bộ sẽ có cùng giá trị tại các thuộc tính gom nhóm 10/4/2012 Nguyễn Thị Thúy Loan 299 10/4/2012 Nguyễn Thị Thúy Loan 300 75
  76. Ví dụ Ví dụ  Cho biết số lượng nhân viên của từng  Với mỗi nhân viên cho biết mã số, họ tên, phòng ban. số lượng đề án và tổng thời gian mà họ MA_NVIEN SODA THOIGIAN tham gia. 123456789 1 32.5 123456789 27.5 333445555 2 10.0 333445555 3 10.0 333445555 10 10.0 888665555 20 20.0 987987987 10 35.0 987987987 30 5.0 987654321 30 20.0 987654321 20 15.0 453453453 1 20.0 453453453 2 20.0 10/4/2012 Nguyễn Thị Thúy Loan 301 10/4/2012 Nguyễn Thị Thúy Loan 302 Ví dụ Điều kiện trên nhóm  Cho biết những mã nhân viên tham gia từ  Cú pháp 2 đề án trở lên MA_NVIEN SODA THOIGIAN SELECT 123456789 1 32.5 123456789 27.5 333445555 2 10.0 FROM 333445555 3 10.0 333445555 10 10.0 WHERE 888665555 20 20.0 bị loại ra 987987987 10 35.0 GROUP BY 987987987 30 5.0 987654321 30 20.0 HAVING 987654321 20 15.0 453453453 1 20.0 453453453 2 20.0 10/4/2012 Nguyễn Thị Thúy Loan 303 10/4/2012 Nguyễn Thị Thúy Loan 304 76
  77. Ví dụ Ví dụ  Cho biết những nhân viên tham gia từ 2  Cho biết những phòng ban (TENPHG) có đề án trở lên. lương trung bình của các nhân viên lớn lơn 20000. 10/4/2012 Nguyễn Thị Thúy Loan 305 10/4/2012 Nguyễn Thị Thúy Loan 306 Nhận xét Nhận xét  Mệnh đề GROUP BY o Chỉ kiểm tra điều kiện trên nhóm, không là o Các thuộc tính trong mệnh đề SELECT (trừ điều kiện lọc trên từng bộ. những thuộc tính trong các hàm kết hợp) o Sau khi gom nhóm điều kiện trên nhóm mới phải xuất hiện trong mệnh đề GROUP BY. được thực hiện.  Mệnh đề HAVING o Sử dụng các hàm kết hợp trong mệnh đề SELECT để kiểm tra một số điều kiện nào đó. 10/4/2012 Nguyễn Thị Thúy Loan 307 10/4/2012 Nguyễn Thị Thúy Loan 308 77
  78. Nhận xét Nhận xét  Thứ tự thực hiện câu truy vấn có mệnh đề o (4) Áp dụng các hàm kết hợp cho mỗi GROUP BY và HAVING nhóm, bỏ qua những nhóm không thỏa o (1) Lấy ra các bảng trong mệnh đề FROM. điều kiện trong mệnh đề HAVING. o (2) Chọn ra những dòng thỏa điều kiện o (5) Rút trích các giá trị của các cột và hàm trong mệnh đề WHERE. kết hợp trong mệnh đề SELECT. o (3) Những dòng này sẽ được gom thành nhiều nhóm tương ứng với mệnh đề GROUP BY. 10/4/2012 Nguyễn Thị Thúy Loan 309 10/4/2012 Nguyễn Thị Thúy Loan 310 Ví dụ Ví dụ  Tìm những phòng ban có lương trung bình  Tìm những phòng ban có lương trung bình cao nhất. cao nhất. 10/4/2012 Nguyễn Thị Thúy Loan 311 10/4/2012 Nguyễn Thị Thúy Loan 312 78
  79. Ví dụ Ví dụ  Tìm tên các nhân viên được phân công  Tìm 3 nhân viên có lương cao nhất. làm tất cả các đồ án. 10/4/2012 Nguyễn Thị Thúy Loan 313 10/4/2012 Nguyễn Thị Thúy Loan 314 Một số dạng truy vấn khác Truy vấn con ở mệnh đề From  Kết quả trả về của một câu truy vấn phụ là  Truy vấn con ở mệnh đề FROM một bảng  Điều kiện kết ở mệnh đề FROM o Bảng trung gian trong quá trình truy vấn o Phép kết tự nhiên o Không có lưu trữ thật sự o Phép kết ngoài  Cú pháp  Cấu trúc CASE SELECT FROM R1, R2, ( ) AS tên_bảng WHERE 10/4/2012 Nguyễn Thị Thúy Loan 315 10/4/2012 Nguyễn Thị Thúy Loan 316 79
  80. Ví dụ Ví dụ  Cho biết những phòng ban (TENPHG) có  Cho biết những phòng ban (TENPHG) có lương trung bình của các nhân viên lớn lương trung bình của các nhân viên lớn lơn 20000. lơn 20000. Sử dụng bảng tạm. SELECT PHG, TENPHG, AVG(LUONG) AS LUONG_TB FROM NHANVIEN, PHONGBAN WHERE PHG=MAPHG GROUP BY PHG, TENPHG HAVING AVG(LUONG) > 20000 10/4/2012 Nguyễn Thị Thúy Loan 317 10/4/2012 Nguyễn Thị Thúy Loan 318 Điều kiện kết ở mệnh đề From Ví dụ  Tìm mã và tên các nhân viên làm việc tại  Kết bằng phòng ‘Nghien cuu’. SELECT FROM R1 [INNER] JOIN R2 ON WHERE  Kết ngoài SELECT FROM R1 LEFT|RIGHT [OUTER] JOIN R2 ON WHERE 10/4/2012 Nguyễn Thị Thúy Loan 319 10/4/2012 Nguyễn Thị Thúy Loan 320 80
  81. Ví dụ Ví dụ  Cho biết họ tên nhân viên và tên phòng TENNV HONV TENPHG ban mà họ là trưởng phòng nếu có. Tung Nguyen Nghien cuu Hang Bui null TENNV HONV TENPHG Nhu Le null Vinh Pham Quan ly Tung Nguyen Nghien cuu Mở rộng dữ liệu cho bảng NHANVIEN Hang Bui null Nhu Le null Vinh Pham Quan ly NHANVIEN join PHONGBAN MANV=TRPHG SELECT TENNV, HONV, TENPHG FROM NHANVIEN, PHONGBAN SELECT TENNV, HONV, TENPHG WHERE MANV=TRPHG FROM NHANVIEN LEFT JOIN PHONGBAN ON MANV=TRPHG 10/4/2012 Nguyễn Thị Thúy Loan 321 10/4/2012 Nguyễn Thị Thúy Loan 322 322 Ví dụ Cấu trúc CASE  Tìm họ tên các nhân viên và tên các đề án  Cho phép kiểm tra điều kiện và xuất thông nhân viên tham gia nếu có. tin theo từng trường hợp  Cú pháp PHANCONG join DEAN join NHANVIEN CASE MA_NVIEN=MANV WHEN THEN WHEN THEN [ELSE ] END 10/4/2012 Nguyễn Thị Thúy Loan 323 10/4/2012 Nguyễn Thị Thúy Loan 324 81
  82. Ví dụ Ví dụ  Cho biết họ tên các nhân viên và năm về  Cho biết họ tên các nhân viên đã đến tuổi về hưu (nam 60 tuổi, nữ 55 tuổi). hưu. SELECT HONV, TENNV FROM NHANVIEN WHERE YEAR(GETDATE()) – YEAR(NGSINH) >= (CASE PHAI WHEN 'Nam' THEN 60 WHEN 'Nu' THEN 55 END) 10/4/2012 Nguyễn Thị Thúy Loan 325 10/4/2012 Nguyễn Thị Thúy Loan 326 Ví dụ Ví dụ . Hiển thị danh sách (Malop, Tenlopmoi và . Hiển thị danh sách các vật tư trong bảng sĩ số) các lớp trong bảng LOP theo tên VATTU, thông tin bổ sung thêm chuỗi mới. Với tên mới là 1 kí tự bên phải của ghi chú, tùy thuộc vào giá trị của cột Tenlop (t (cao dang ky thuat), c(cao dang phần trăm giá bán. ( 40 rất lời) 10/4/2012 Nguyễn Thị Thúy Loan 327 10/4/2012 Nguyễn Thị Thúy Loan 328 82
  83. Kết luận CSDL Quản lý đề tài NCKH  GV(MAGV,HOTEN,LUONG,PHAI,NGSINH, SELECT SONHA,DUONG,QUAN,TPHO,GVQLCM,MABM) FROM  GV_ĐT(MAGV,ĐTHOAI)  BOMON(MABM,TENBM,PHG,ĐT,TRG_BM,MAKH, [WHERE ] NGNHANCHUC) [GROUP BY ]  KHOA(MAKH,TENKH,NAMTL,PHONG,ĐT, TRG_KH, NGNHANCHUC) [HAVING ]  ĐETAI(MAĐT,TENĐT,KINHPHI,CAPQL,NGAYBD, [ORDER BY ] NGAYKT,MACĐ,GVCNĐT)  CHUĐE(MACĐ,TENCĐ)  CONGVIEC(MAĐT,STT,TENCV,NGBĐ,NGKT)  T_GIA_ĐT(MAGV,MAĐT,STT,PHUCAP,KETQUA) 10/4/2012 Nguyễn Thị Thúy Loan 329 10/4/2012 Nguyễn Thị Thúy Loan 330 Khung nhìn Khung nhìn  Bảng là một quan hệ được tổ chức lưu trữ  Tại sao phải sử dụng khung nhìn? vật lý trong CSDL. o Che dấu tính phức tạp của dữ liệu  Khung nhìn cũng là một quan hệ o Đơn giản hóa các câu truy vấn o Không được lưu trữ vật lý (bảng ảo) o Hiển thị dữ liệu dưới dạng tiện dụng nhất o Không chứa dữ liệu o An toàn dữ liệu o Được định nghĩa từ những bảng khác o Có thể truy vấn hay cập nhật thông qua khung nhìn 10/4/2012 Nguyễn Thị Thúy Loan 331 10/4/2012 Nguyễn Thị Thúy Loan 332 83
  84. Định nghĩa khung nhìn Định nghĩa khung nhìn  Cú pháp  Bảng ảo này có CREATE VIEW AS o Danh sách thuộc tính trùng với các thuộc tính trong mệnh đề SELECT DROP VIEW o Số dòng phụ thuộc vào điều kiện ở mệnh đề WHERE o Dữ liệu được lấy từ các bảng ở mệnh đề FROM 10/4/2012 Nguyễn Thị Thúy Loan 333 10/4/2012 Nguyễn Thị Thúy Loan 334 Ví dụ Truy vấn trên khung nhìn CREATE VIEW NV_P5 AS SELECT MANV, HONV, TENLOT, TENVN  Tuy không chứa dữ liệu nhưng có thể FROM NHANVIEN thực hiện các câu truy vấn trên khung nhìn WHERE PHG=5 CREATE VIEW TONGLNG_SLNV_PB AS SELECT TENNV SELECT MAPHG, TENPHG, COUNT(*) AS SLNV, FROM NV_P5 SUM(LUONG) AS TONGLNG WHERE HONV LIKE ‘Nguyen’ FROM NHANVIEN, PHONGBAN WHERE PHG=MAPHG GROUP BY TENPHG, MAPHG 10/4/2012 Nguyễn Thị Thúy Loan 335 10/4/2012 Nguyễn Thị Thúy Loan 336 84
  85. Truy vấn trên khung nhìn Cập nhật trên khung nhìn  Có thể viết câu truy vấn dữ liệu từ khung  Có thể dùng các câu lệnh INSERT, nhìn và bảng DELETE và UPDATE cho các khung nhìn SELECT HONV, TENVN, TENDA, THOIGIAN đơn giản FROM NV_P5, PHANCONG, DEAN o Khung nhìn được xây dựng trên 1 bảng và WHERE MANV=MA_NVIEN AND có khóa chính của bảng SODA=MADA 10/4/2012 Nguyễn Thị Thúy Loan 337 10/4/2012 Nguyễn Thị Thúy Loan 338 Cập nhật trên khung nhìn Cập nhật trên khung nhìn  Không thể cập nhật dữ liệu nếu  Sửa lại họ cho nhân viên mã ‘123456789’ o Khung nhìn có dùng từ khóa DISTINCT ở phòng 5 là ‘Pham’ o Khung nhìn có sử dụng các hàm kết hợp UPDATE NV_P5 o Khung nhìn có mệnh đề SELECT mở rộng SET HONV=‘Pham’ o Khung nhìn được xây dựng từ bảng có RB WHERE MANV= ‘123456789’ trên cột o Khung nhìn được xây dựng từ nhiều bảng 10/4/2012 Nguyễn Thị Thúy Loan 339 10/4/2012 Nguyễn Thị Thúy Loan 340 85
  86. Chỉ mục Chỉ mục (tt)  Chỉ mục trên thuộc tính A là một cấu trúc  Cú pháp dữ liệu làm cho việc tìm kiếm mẫu tin có  CREATE INDEX ON chứa A hiệu quả hơn. ( ) SELECT *  DROP INDEX Đọc 10.000 bộ FROM NHANVIEN  Ví dụ WHERE PHG=5 AND PHAI=‘Nu’  CREATE INDEX PHG_IND ON Đọc 200 bộ NHANVIEN(PHG) Bảng NHANVIEN có 10.000 bộ  CREATE INDEX PHG_PHAI_IND ON Có 200 nhân viên làm việc cho phòng 5 NHANVIEN(PHG, PHAI) 10/4/2012 Nguyễn Thị Thúy Loan 341 10/4/2012 Nguyễn Thị Thúy Loan 342 Chỉ mục Ví dụ  Nhận xét  Xét quan hệ o Tìm kiếm nhanh trong trường hợp so sánh PHANCONG(MA_NVIEN, SODA, THOIGIAN) với hằng số và phép kết  Giả sử o Làm chậm đi các thao tác thêm, xóa và o PHANCONG được lưu trữ trong 10 block sửa  Chi phí để đọc toàn bộ dữ liệu của o Tốn chi phí PHANCONG là 10  Lưu trữ chỉ mục  Truy xuất đĩa nhiều 10/4/2012 Nguyễn Thị Thúy Loan 343 10/4/2012 Nguyễn Thị Thúy Loan 344 86
  87. Ví dụ Ví dụ  o Trung bình một nhân viên tham gia 3 đề án Giả sử có 3 thao tác được thực hiện và một đề án có khoảng 3 nhân viên làm thường xuyên SELECT SODA, THOIGIAN  Dữ liệu được trải đều trong 10 block o Q1 FROM PHANCONG  Chi phí để tìm một nhân viên hay một đề án WHERE MA_NVIEN=‘123456789’ là 3 SELECT MANV o Q2 FROM PHANCONG o Khi sử dụng chỉ mục WHERE SODA=1 AND THOIGIAN=20.5  Chi phí đọc hay cập nhật chỉ mục INSERT INTO PHANCONG o Thao tác thêm cần 2 lần truy xuất đĩa o Q3 VALUES ( 123456789’, 1, 20.5) 10/4/2012 Nguyễn Thị Thúy Loan 345 10/4/2012 Nguyễn Thị Thúy Loan 346 Ví dụ Bài tập  Bảng so sánh chi phí Không có Chỉ mục trên Chỉ mục Chỉ mục trên Thao tác chỉ mục MA_NVIEN trên SODA cả 2 thuộc tính Q1 10 4 10 4 Q2 10 10 4 4 Q3 2 4 4 6 Chí phí TB 2 + 8p1 + 8p2 4 + 6p2 4 + 6p1 6 - 2p1 – 2p2 Khoảng thời gian thực hiện Q1 là p1 Khoảng thời gian thực hiện Q2 là p2 Khoảng thời gian thực hiện Q3 là 1 - p1 - p2 10/4/2012 Nguyễn Thị Thúy Loan 347 10/4/2012 Nguyễn Thị Thúy Loan 348 87
  88. Chương V: Nội dung chi tiết  Đại số quan hệ ĐẠI SỐ QUAN HỆ  Phép toán tập hợp  Phép chọn, phép chiếu  Phép tích Cartesian, phép kết ThS. Nguyễn Thị Thúy Loan  Phép chia  Các phép toán khác  Các thao tác cập nhật trên quan hệ Nguồn: Bài giảng Khoa CNTT ĐHKHTN 10/4/2012 Nguyễn Thị Thúy Loan 350 Giới thiệu Giới thiệu  Xét một số xử lý trên quan hệ NHANVIEN o Thêm mới một nhân viên o Chuyển nhân viên có tên là “Tùng” sang phòng số 1 TENNV HONV NGSINH DCHI PHAI LUONG PHONG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 51 o Cho biết họ tên và ngày sinh các nhân viên Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 có lương trên 20000 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 Quang Pham 11/10/1937 450 TV HN Nam 55000 1 10/4/2012 Nguyễn Thị Thúy Loan 351 10/4/2012 Nguyễn Thị Thúy Loan 352 351 88
  89. Giới thiệu (tt) Giới thiệu (tt)  Có 2 loại xử lý  Thực hiện các xử lý o Làm thay đổi dữ liệu (cập nhật) o Đại số quan hệ (Relational Algebra)  Thêm mới, xóa và sửa  Biểu diễn câu truy vấn dưới dạng biểu thức o Không làm thay đổi dữ liệu (rút trích) o Phép tính quan hệ (Relational Calculus)  Truy vấn (query)  Biểu diễn kết quả o SQL (Structured Query Language) 10/4/2012 Nguyễn Thị Thúy Loan 353 10/4/2012 Nguyễn Thị Thúy Loan 354 353 Nhắc lại Nhắc lại  Đại số  Trong số học o Toán tử (operator) o Toán tử: +, -, *, / o Toán hạng (operand) o Toán hạng - biến (variables): x, y, z o Hằng (constant) o Biểu thức  (x+7) / (y-3)  (x+y)*z and/or (x+7) / (y-3) 10/4/2012 Nguyễn Thị Thúy Loan 355 10/4/2012 Nguyễn Thị Thúy Loan 356 89
  90. Đại số quan hệ Đại số quan hệ  Biến là các quan hệ o Rút trích 1 phần của quan hệ o Tập hợp (set)  Chọn  (selection)  Chiếu (projection)  Toán tử là các phép toán (operations) o Kết hợp các quan hệ o Trên tập hợp  Tích Cartesian (Cartesian product)  Hội  (union)  Kết (join)  Giao  (intersec) o Đổi tên  Trừ (difference) 10/4/2012 Nguyễn Thị Thúy Loan 357 10/4/2012 Nguyễn Thị Thúy Loan 358 358 Đại số quan hệ (tt) Phép toán tập hợp  Quan hệ là tập hợp các bộ  Hằng số là thể hiện của quan hệ o Phép hội R  S  Biểu thức o Phép giao R  S o Được gọi là câu truy vấn o Phép trừ R S o Là chuỗi các phép toán đại số quan hệ o Kết quả trả về là một thể hiện của quan hệ 10/4/2012 Nguyễn Thị Thúy Loan 359 10/4/2012 Nguyễn Thị Thúy Loan 360 90
  91. Phép toán tập hợp Phép toán tập hợp (tt)  Tính khả hợp (Union Compatibility)  Ví dụ o Hai lược đồ quan hệ R(A , A , , A ) và 1 2 n NHANVIEN TENNV NGSINH PHAI THANNHAN TENTN NG_SINH PHAITN Tung 12/08/1955 Nam Trinh 04/05/1986 Nu S(B1, B2, , Bn) là khả hợp nếu Hang 07/19/1968 Nu Khang 10/25/1983 Nam  Cùng bậc n Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu Hung 09/15/1962 Nam Minh 02/28/1942 Nam Chau 12/30/1988 Nu  Và có DOM(Ai)=DOM(Bi), i [1,n] Bậc n=3  Kết quả của , , và là một quan hệ có DOM(TENNV) = DOM(TENTN) cùng tên thuộc tính với quan hệ đầu tiên DOM(NGSINH) = DOM(NG_SINH) (R) DOM(PHAI) = DOM(PHAITN) 10/4/2012 Nguyễn Thị Thúy Loan 361 10/4/2012 Nguyễn Thị Thúy Loan 362 Phép hội Phép hội  Cho 2 quan hệ R và S khả hợp  Ví dụ  Phép hội của R và S R  S = { t / t R  t S } o Ký hiệu R  S R AB S AB R  S AB o Là một quan hệ gồm các bộ thuộc R hoặc 1 2 1 thuộc S, hoặc cả hai (các bộ trùng lắpchỉ 2  3 2  1  1 2 được giữ một bộ)  3 10/4/2012 Nguyễn Thị Thúy Loan 363 10/4/2012 Nguyễn Thị Thúy Loan 364 91
  92. Phép giao Phép giao  Cho 2 quan hệ R và S khả hợp  Ví dụ  Phép giao của R và S R  S = { t / t R  t S } o Ký hiệu R  S o Là một quan hệ gồm các bộ thuộc R đồng R AB S AB R  S AB 1 2 2 thời thuộc S 2  3  1 10/4/2012 Nguyễn Thị Thúy Loan 365 10/4/2012 Nguyễn Thị Thúy Loan 366 Phép trừ Phép trừ  Cho 2 quan hệ R và S khả hợp  Ví dụ  Phép giao của R và S R S = { t / t R  t S } o Ký hiệu R S R AB S AB R S AB o Là một quan hệ gồm các bộ thuộc R và 1 2 1 không thuộc S. 2  3  1  1 10/4/2012 Nguyễn Thị Thúy Loan 367 10/4/2012 Nguyễn Thị Thúy Loan 368 92
  93. Ví dụ Phép chọn R  (S  T) = (R  S)  T  Được dùng để lấy ra các bộ của quan hệ R R  (S  T) = (R  S)  T  Các bộ được chọn phải thỏa mãn điều kiện chọn P R AB S AB T AB 1 2  1 Ký hiệu  P (R) 2  3 2  1  3 10/4/2012 Nguyễn Thị Thúy Loan 369 10/4/2012 Nguyễn Thị Thúy Loan 370 Phép chọn Phép chọn (tt)  P là biểu thức gồm các mệnh đề có dạng  Kết quả trả về là một quan hệ o o Có số bộ luôn ít hơn hoặc bằng số bộ của o o gồm , , , , , o Các mệnh đề được nối lại nhờ các phép  ,  ,  10/4/2012 Nguyễn Thị Thúy Loan 371 10/4/2012 Nguyễn Thị Thúy Loan 372 93
  94. Phép chọn (tt) Phép chọn (tt)  Ví dụ  Phép chọn có tính giao hoán  p1 ( p2 (R)) =  p2 ( p1 (R)) =  p1  p2 (R) (R) R ABC D  (A=B)(D>5) 1 7 ABC D  5 7   12 3 1 7   23 10   23 10 10/4/2012 Nguyễn Thị Thúy Loan 373 10/4/2012 Nguyễn Thị Thúy Loan 374 Ví dụ 1 Các tính chất  Giao hoán  Cho biết các nhân viên ở phòng số 4 R  S = S  R o Quan hệ: NHANVIEN R  S = S  R o Thuộc tính: PHG o Điều kiện: PHG=4  Kết hợp R  (S  T) = (R  S)  T  PHG=4 (NHANVIEN) R  (S  T) = (R  S)  T 10/4/2012 Nguyễn Thị Thúy Loan 375 10/4/2012 Nguyễn Thị Thúy Loan 376 94
  95. Ví dụ 2 Ví dụ 2  Tìm các nhân viên có lương trên 25000 ở phòng 4 hoặc các nhân viên có lương trên 30000 ở phòng 5  (LUONG>25000  PHG=4)  (LUONG>30000  PHG=5) (NHANVIEN) o Quan hệ: NHANVIEN o Thuộc tính: LUONG, PHG o Điều kiện:  LUONG>25000 và PHG=4 hoặc  LUONG>30000 và PHG=5 10/4/2012 Nguyễn Thị Thúy Loan 377 10/4/2012 Nguyễn Thị Thúy Loan 378 Phép chiếu Phép chiếu  Ví dụ  Được dùng để lấy ra một vài cột của quan hệ R. R ABC AC  Ký hiệu: A1, A2, , Ak(R) 10 1 1 20 1 A,C (R) 1  Kết quả trả về là một quan hệ  30 1  1  40 2  2 o Có k thuộc tính o Có số bộ luôn ít hơn hoặc bằng số bộ của R. 10/4/2012 Nguyễn Thị Thúy Loan 379 10/4/2012 Nguyễn Thị Thúy Loan 380 95
  96. Phép chiếu (tt) Ví dụ 3  Phép chiếu không có tính giao hoán  Cho biết họ tên và lương của các nhân viên X,Y (R) = X ( Y (R)) o Quan hệ: NHANVIEN o Thuộc tính: HONV, TENNV, LUONG A1, A2, , An( A1, A2, , Am(R)) = A1, A2, , An (R) , với n m HONV,TENNV,LUONG (NHANVIEN) 10/4/2012 Nguyễn Thị Thúy Loan 381 10/4/2012 Nguyễn Thị Thúy Loan 382 Phép chiếu tổng quát Phép chiếu tổng quát  Mở rộng phép chiếu bằng cách cho phép  Ký hiệu F1, F2, , Fn (E) sử dụng các phép toán số học trong danh o E là biểu thức ĐSQH sách thuộc tính. o F1, F2, , Fn là các biểu thức số học liên quan đến.  Hằng số  Thuộc tính trong E 10/4/2012 Nguyễn Thị Thúy Loan 383 10/4/2012 Nguyễn Thị Thúy Loan 384 96
  97. Phép chiếu tổng quát (tt) Chuỗi các phép toán  Ví dụ  Kết hợp các phép toán đại số quan hệ o Cho biết họ tên của các nhân viên và lương o Lồng các biểu thức lại với nhau của họ sau khi tăng 10%. ( (R)) A1, A2, , Ak P P ( A1, A2, , Ak (R)) o Thực hiện từng phép toán một HONV, TENNV, LUONG*1.1 (NHANVIEN) (R)  B1 P (Quan hệ kết quảởB1)  B2 A1, A2, , Ak Cần đặt tên cho quan hệ 10/4/2012 Nguyễn Thị Thúy Loan 385 10/4/2012 Nguyễn Thị Thúy Loan 386 Phép gán CSDL ví dụ  Được sử dụng để nhận lấy kết quả trả về  NHANVIEN (HONV, TENLOT, TENNV, MANV, NGSINH, DCHI, PHAI, LUONG, MA_NQL, PHG). của một phép toán  PHONGBAN (TENPHG, MAPHG, TRPHG, o Thường là kết quả trung gian trong chuỗi NG_NHANCHUC). các phép toán  DIADIEM_PHG (MAPHG, DIADIEM)  THANNHAN(MA_NVIEN, TENTN, PHAI,  Ký hiệu  NGSINH, QUANHE).  Ví dụ  DEAN (TENDA, MADA, DDIEM_DA, PHONG). S  (R) o B1 P  PHANCONG (MA_NVIEN, SODA, THOIGIAN). o B2 KQ  A1, A2, , Ak (S) 10/4/2012 Nguyễn Thị Thúy Loan 387 10/4/2012 Nguyễn Thị Thúy Loan 388 97
  98. Phép đổi tên Ví dụ 7  Được dùng để đổi tên  Cho biết họ và tên nhân viên làm việc ở o Quan hệ: Xét quan hệ R(B, C, D) phòng số 4 o S(R) : Đổi tên quan hệ R thành S o Quan hệ: NHANVIEN o X, C, D (R) : Đổi tên thuộc tính B thành X o Thuộc tính: HONV, TENNV o Thuộc tính: o Điều kiện: PHG=4 o Đổi tên quan hệ R thành S và thuộc tính B thành X: S(X,C,D)(R) 10/4/2012 Nguyễn Thị Thúy Loan 389 10/4/2012 Nguyễn Thị Thúy Loan 390 Ví dụ 7 Phép tích Cartesian  Được dùng để kết hợp các bộ của các  C1: quan hệ lại với nhau HONV, TENNV (PHG=4 (NHANVIEN))  Ký hiệu: R S  C2: NV_P4  PHG=4 (NHANVIEN) KQ  HONV, TENNV (NV_P4) KQ(HO, TEN)  HONV, TENNV (NV_P4) KQ(HO, TEN) ( HONV, TENNV (NV_P4)) 10/4/2012 Nguyễn Thị Thúy Loan 391 10/4/2012 Nguyễn Thị Thúy Loan 392 98
  99. Phép tích Cartesian Phép tích Cartesian (tt)  Kết quả trả về là một quan hệ Q  Ví dụ R S o Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và R AB 1 ABXCD 1 bộ trong S.  2 1 10 + 1  10 + o Nếu R có u bộ và S có v bộ thì Q sẽ có u v 1  20 - S BCXCD 1  10 - bộ. 10 +  2 10 +  10 +  2  10 + o Nếu R có n thuộc tính và S có m thuộc tính  20 -  2  20 -  10 -  2  10 - thì Q sẽ có n + m thuộc tính (R+  S+ ) (X,C,D) (S) 10/4/2012 Nguyễn Thị Thúy Loan 393 10/4/2012 Nguyễn Thị Thúy Loan 394 Phép tích Cartesian (tt) Ví dụ Diadiem_phg Phongban Mp Diadiem  Ví dụ unambiguous Mapb Tenpb Trphg 1 TP HCM 4 HA NOI R AB 5 Nghien cuu 3334 R S AR.BS.B C D 5 NHA TRANG 1  2 1 10 + 4 Dieu hanh 9879 5 VUNG TAU 1  10 + 1 Quan ly 8886 5 TP HCM 1  20 - S BCD 1  10 -  2 10 +  Temp (Maphg, Tenphg, Trphg, Mp, 10 +  2  10 +  10 +  2  20 -  20 - Diadiem)  Phongban Diadiem_phg  2  10 -  10 - Kết quả trả về sẽ có 15 bộ, nếu có 3 bộ trong Phongban và 5 bộ trong Diadiem_phg 10/4/2012 Nguyễn Thị Thúy Loan 395 10/4/2012 Nguyễn Thị Thúy Loan 396 99
  100. Phép tích Cartesian (tt) Mapb Tenphg Trphg Mp Diadiem 5 Nghien cuu 3334 1 TP HCM 4 Dieu hanh 9879 1 TP HCM  Thông thường theo sau phép tích 1 Quan ly 8886 1 TP HCM 5 Nghien cuu 3334 4 HA NOI Cartesian là phép chọn 4 Dieu hanh 9879 4 HA NOI R S A=S.B (R S) 1 Quan ly 8886 4 HA NOI AR.BS.B C D AR.BS.B C D 5 Nghien cuu 3334 5 VUNG TAU 1 10 + 1 10 + 4 Dieu hanh 9879 5 VUNG TAU 1  10 +  2  10 + 1 Quan ly 8886 5 VUNG TAU 1  20 -  2  20 - 5 Nghien cuu 3334 5 NHA TRANG 1  10 -  2 10 + 4 Dieu hanh 9879 5 NHA TRANG  2  10 + 1 Quan ly 8886 5 NHA TRANG  2  20 - 5 Nghien cuu 3334 5 TP HCM  2  10 - 4 Dieu hanh 9879 5 TP HCM 1 Quan ly 8886 5 TP HCM 10/4/2012 Nguyễn Thị Thúy Loan 398 Ví dụ 8 Ví dụ 8 (tt)  Với mỗi phòng ban, cho biết thông tin của  B1: Tích Cartesian PHONGBAN và người trưởng phòng NHANVIEN o Quan hệ: PHONGBAN, NHANVIEN PB_NV  (NHANVIEN PHONGBAN) o Thuộc tính: TRPHG, MAPHG, TENNV, HONV,  B2: Chọn ra những bộ thỏa RPHG=MANV KQ TRPHG=MANV(PB_NV) 10/4/2012 Nguyễn Thị Thúy Loan 399 10/4/2012 Nguyễn Thị Thúy Loan 400 100
  101. Ví dụ 9 Ví dụ 9 (tt)  Cho biết lương cao nhất trong công ty  B1: Chọn ra những lương không phải là o Quan hệ: NHANVIEN lớn nhất o Thuộc tính: LUONG R1  ( LUONG (NHANVIEN)) TENNV HONV LUONG LUONG R2  (NHANVIEN R1) Tung Nguyen 40000 40000 NHAN_VIEN.LUONG < R1.LUONG Hang Bui 25000 25000 R3  (R2) Nhu Le 43000 43000 NHAN_VIEN.LUONG Hung Nguyen 38000 38000 B2: Lấy tập hợp lương trừ đi lương trong R3 KQ  R1 R3 10/4/2012 Nguyễn Thị Thúy Loan 401 10/4/2012 Nguyễn Thị Thúy Loan 402 Ví dụ 10 Ví dụ 10  Cho biết các phòng ban có cùng địa điểm Phòng 5 có tập hợp những Phòng nào có địa điểm nằm trong trong tập hợp đó? với phòng số 5 địa điểm nào? MAPHG DIADIEM MAPHG DIADIEM o Quan hệ: DIADIEM_PHG 1 TP HCM 1 TP HCM 4 HA NOI 4 HA NOI o Thuộc tính: DIADIEM, MAPHG 5 VUNGTAU 5 VUNGTAU 5 NHATRANG 5 NHATRANG o Điều kiện: MAPHG=5 5TP HCM 5TP HCM 10/4/2012 Nguyễn Thị Thúy Loan 403 10/4/2012 Nguyễn Thị Thúy Loan 404 101
  102. Ví dụ 10 (tt) Phép kết  B1: Tìm các địa điểm của phòng 5  Được dùng để tổ hợp 2 bộ có liên quan từ DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG)) 2 quan hệ thành 1 bộ  B2: Lấy ra các phòng có cùng địa điểm với  Ký hiệu R S DD_P5 o R(A1, A2, , An) và S(B1, B2, , Bm) R1 MAPHG 5 (DIADIEM_PHG)  Kết quả của phép kết là một quan hệ Q R2 DIADIEM=DD (R1 DD_P5) o Có n + m thuộc tính Q(A1, A2, , An, B1, KQ  MAPHG(R2) B2, , Bm) 10/4/2012 Nguyễn Thị Thúy Loan 405 10/4/2012 Nguyễn Thị Thúy Loan 406 Phép kết Phép kết (tt) o Mỗi bộ của Q là tổ hợp của 2 bộ trong R và  Phân loại S, thỏa mãn một sốđiều kiện kết nào đó o Kết theta (theta join) là phép kết có điều  Có dạng Ai  Bj kiện  A là thuộc tính của R, B là thuộc tính của S i j  Ký hiệu R C S  Ai và Bj có cùng miền giá trị  C gọi là điều kiện kết trên thuộc tính   là phép so sánh , , , , , o Kết bằng (equi join) khi C là điều kiện so sánh bằng 10/4/2012 Nguyễn Thị Thúy Loan 407 10/4/2012 Nguyễn Thị Thúy Loan 408 102
  103. Phép kết (tt) Phép kết (tt) o Kết tự nhiên (natural join)  Ví dụ phép kết theta  Ký hiệu R S hay R S R B<D S  + + R  S  R ABC S DE ABCDE  Kết quả của phép kết bằng bỏ bớt đi 1 cột 1 2 3 3 1 12331 4 5 6 6 2 12362 giống nhau 789 45662 R C S = C(R S) 10/4/2012 Nguyễn Thị Thúy Loan 409 10/4/2012 Nguyễn Thị Thúy Loan 410 Phép kết (tt) Phép kết (tt)  Ví dụ phép kết bằng  Ví dụ phép kết tự nhiên R C=D S R ABC S DE ABC D E R S 1 2 3 3 1 1 2 3 3 1 R ABC S CD ABC D 4 5 6 6 2 45662 1 2 3 3 1 1 2 3 1 789 4 5 6 6 2 4562 789 R C=S.C S R ABC S S.CCD D ABC S.C D 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 45662 789 (S.C,D) S 10/4/2012 Nguyễn Thị Thúy Loan 411 10/4/2012 Nguyễn Thị Thúy Loan 412 103
  104. Ví dụ 11 Ví dụ 11  Cho biết nhân viên có lương lớn hơn  NHAN_VIEN(HONV, TENNV, MANV, , lương của nhân viên ‘Tùng’ LUONG, PHG) o Quan hệ: NHANVIEN  R1(LG)  LUONG (TENNV=‘Tung’ (NHANVIEN)) o Thuộc tính: LUONG  KQ  NHAN_VIEN LUONG>LG R1  KQ(HONV,TENNV,MANV, , LUONG, LG) 10/4/2012 Nguyễn Thị Thúy Loan 413 10/4/2012 Nguyễn Thị Thúy Loan 414 Ví dụ 12 Ví dụ 13  Với mỗi nhân viên, hãy cho biết thông tin  Với mỗi phòng ban hãy cho biết các địa của phòng ban mà họ đang làm việc điểm của phòng ban đó o Quan hệ: NHANVIEN, PHONGBAN o Quan hệ: PHONGBAN, DDIEM_PHG 10/4/2012 Nguyễn Thị Thúy Loan 415 10/4/2012 Nguyễn Thị Thúy Loan 416 104
  105. Tập đầy đủ các phép toán ĐSQH Phép chia  Tập các phép toán , , , ,  được gọi  Định nghĩa: R là quan hệ n ngôi và S là là tập đầy đủ các phép toán ĐSQH quan hệ m ngôi (n > m và S ), có m o Nghĩa là các phép toán có thể được biểu thuộc tính chung (giống nhau về mặt ngữ diễn qua chúng nghĩa, hoặc các thuộc tính có thể so sánh o Ví dụ được) giữa R và S.  RS = RS ((R S)  (S R))  R CS = C(R S) 10/4/2012 Nguyễn Thị Thúy Loan 417 10/4/2012 Nguyễn Thị Thúy Loan 418 Phép chia Phép chia (tt)  Phép chia hai quan hệ R và S, ký hiệu là R A1 A2 A3 A4 A5 R  S, là một quan hệ Q có n – m ngôi A B D C G A B D E F được định nghĩa như sau: B C E E F Q = R ÷S E G C C G  Q = R  S = {t / u S, (t,u) R} E G C E F A1 A2 A3 A B E G C A B D S A4 A5 E G C C G E F 10/4/2012 Nguyễn Thị Thúy Loan 419 10/4/2012 Nguyễn Thị Thúy Loan 420 105
  106. Phép chia (tt) Ví dụ  Cho biết tất cả mã sinh viên có điểm  Ví dụ R  S CSDL là 8 và điểm CTDL là 7. R ABCDE S DE ABC a a 1 a 1 a  KetQuaHT Q2 Q3 a  a 1 b 1  a  MaSV MaMon Diem MaMon Diem MaSV a  b 1 01 CSDL 8 CSDL 8 01  a  a 1  a  b 3 01 CTDL 7 CTDL 7 03  a  a 1 02 CSDL 8  a  b 1  a  b 1 02 CTDL 9 03 CSDL 8 03 CTDL 7 10/4/2012 Nguyễn Thị Thúy Loan 421 10/4/2012 Nguyễn Thị Thúy Loan 422 Ý nghĩa của phép chia Ý nghĩa của phép chia R S R S A B B A B B a1 b1 b1 a1 b1 b1   a1 b2 b2 Tách quan hệ R thành từng a1 b2 b2 Kết quả trả về trong T là a1 b3 b3 phần căn cứ vào các giá trị a1 b3 b3 mỗi a sao cho tất cả các a1 b4 a1 b4 i a2 b1 a2 b1 T  R ÷ S của A tương ứng; với mỗi A giá trị của B trong S kết a2 b3 a2 b3 a1 a3 b2 a3 b2 giá trị ai gắn với một tập giá a4 hợp với ai thành các bộ a3 b3 a3 b3 a3 b4 trị của B trong R a3 b4 trong R a4 b1 a4 b1 a4 b2 a4 b2 a4 b3 a4 b3 10/4/2012 Nguyễn Thị Thúy Loan 423 10/4/2012 Nguyễn Thị Thúy Loan 424 106
  107. Định nghĩa lại phép chia Ví dụ 14 T RS1 T1 S T3 T  R ÷ S A B A B B A A A  Cho biết mã nhân viên tham gia tất cả các a1 b1 a1 b1 b1 a1 a2 a1 a1 b2 a2 a1 b2 b2 a3 a4 đề án a1 b3 b3 a3 a1 b3 a4 a2 b1 a1 b4 o Quan hệ: PHANCONG, DEAN a2 b1 a2 b2 a2 b3 R ÷ S = T tương đương với a2 b3 o Dean (Tenda, Mada, Ddiem_da, Phong) a3 b1 a3 b2 T1  A (R) a3 b2 a3 b3 T2  T1 S o Phancong (Ma_nvien, Soda, Thoigian) a3 b3 a3 b4 T3  A (T2 R) a4 b1 o a4 b1 T  T T Thuộc tính: MANV a4 b2 1 3 a4 b2 a4 b3 a4 b3 10/4/2012 Nguyễn Thị Thúy Loan 425 10/4/2012 Nguyễn Thị Thúy Loan 426 Ví dụ 15 Ví dụ 3 Pc (Ma_nvien, Mada)  Ma_nvien, Soda(Phancong) Liệt kê mã nhân viên được phân công vào Ma_nvien Mada 123456789 1 Da_p4  Mada (Phong = 4 (Dean)) tất cả đề án do phòng 4 chủ trì 123456789 2 Mada 666884444 3 10  Tìm tất cả các mã đề án do phòng 4 chủ 453453453 1 30 453453453 2 trì. Giả sử có hai đề án là 10, 30 333445555 2 333445555 3 Pc ÷ Da_p4  Kiểm tra trên quan hệ Phancong (đã bỏ đi 333445555 10 333445555 20 Ma_nvien thuộc tính Thoigian) và trả về tất cả các 999887777 30 999887777 999887777 10 987987987 mã nhân viên có ghép đầy đủ với hai đề 987987987 10 987987987 30 án có mã là 10 và 30. 987654321 30 987654321 20 10/4/2012 Nguyễn Thị Thúy Loan 427 10/4/2012888665555 20 Nguyễn Thị Thúy Loan 428 107
  108. Ví dụ Hàm kết hợp  Liệt kê Họ nhân viên, Tên nhân viên tham  Nhận vào tập hợp các giá trị và trả về một gia tất cả các dự án do phòng 4 chủ trì: giá trị đơn Q1  MANV, MADA (PHANCONG) o AVG Q2  MADA (PHG = 4 (DEAN)) o MIN Q3  Q1 ÷ Q2 o MAX o SUM Q  HoNV, TenNV (Q3 NHANVIEN) o COUNT 10/4/2012 Nguyễn Thị Thúy Loan 429 10/4/2012 Nguyễn Thị Thúy Loan 430 Hàm kết hợp (tt) Phép gom nhóm  Ví dụ  Được dùng để phân chia quan hệ thành SUM(B) = 10 nhiều nhóm dựa trên điều kiện gom nhóm R AB AVG(A) = 1.5 1 2 nào đó. 3 4 MIN(A) = 1 1 2 1 2 MAX(B) = 4 COUNT(A) = 4 10/4/2012 Nguyễn Thị Thúy Loan 431 10/4/2012 Nguyễn Thị Thúy Loan 432 108
  109. Phép gom nhóm Phép gom nhóm (tt)  Ký hiệu  Ví dụ (R) G1, G2, , GnIF1(A1), F2(A2), , Fn(An)(E) ISUM(C) SUM_C R ABC o E là biểu thức ĐSQH 27 2 7 o G1, G2, , Gn là các thuộc tính gom nhóm 4 7  2 3 2 10 AI (R) o F1, F2, , Fn là các hàm  SUM(C) SUM_C o A1, A2, , An là các thuộc tính tính toán 14 3 trong hàm F 10 10/4/2012 Nguyễn Thị Thúy Loan 433 10/4/2012 Nguyễn Thị Thúy Loan 434 Ví dụ 16 Ví dụ 17  Tính số lượng nhân viên và lương trung  Tính số lượng nhân viên và lương trung bình của cả công ty bình của từng phòng ban. 10/4/2012 Nguyễn Thị Thúy Loan 435 10/4/2012 Nguyễn Thị Thúy Loan 436 109
  110. Phép kết ngoài Phép kết ngoài Quan hệ đơn vị:  Mở rộng phép kết để tránh mất mát thông Mã đơn vị Tên đơn vị Loại tin. 10002 Trường kỹ thuật nghiệp vụ máy tính 3 10003 Phòng quản lý hành chánh 2 10022 Văn phòng đại diện thanh niên 2 o Thực hiện phép kết 10070 Ban quản lý vốn sinh viên 5 o Lấy thêm các bộ không thỏa điều kiện kết 10071 Lực lượng quản lý thị trường 5 10900 Hội KN quận X 7  Có 3 hình thức Quan hệ loại đơn vị Loại Tên loại hình o Mở rộng bên trái 2 Hành chánh 3Sự nghiệp hoàn toàn o Mở rộng bên phải 5Hạch toán độc lập 6Cơ quan đảng o Mở rộng 2 bên 10/4/2012 Nguyễn Thị Thúy Loan 437 10/4/2012 Nguyễn Thị Thúy Loan 438 Phép kết nối trái Phép kết nối trái Định nghĩa: Giả sử có 2 quan hệ R (A1, A2, tNull = (Null, Null, , Null) là một bộ đặc biệt , An) và S(B1, B2, , Bm), t và u là hai bộ của R gồm n giá trị của các thuộc tính A1, A2, giá trị của R và S. Gọi v là bộ ghép nối u vào , An đều là không xác định, và uNull = (Null, t (hay bộ giá trị t và u được “xếp cạnh nhau”) Null, , Null) là một bộ đặc biệt của S gồm và ký hiệu là: m giá trị của các thuộc tính B1, B2, , Bm đều v =(t,u) = (A1, A2, , An, B1, B2, , Bm) là không xác định. 10/4/2012 Nguyễn Thị Thúy Loan 439 10/4/2012 Nguyễn Thị Thúy Loan 440 110