Xem mẫu

  1. ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  GIÁO TRÌNH MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO NGHỀ: HỆ THỐNG THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG Tháng 9, năm 2020
  2. ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  GIÁO TRÌNH MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO NGHỀ: HỆ THỐNG THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG THÔNG TIN CHỦ NHIỆM ĐỀ TÀI Họ tên: Nguyễn Thị Kim Nga Học vị: Cử nhân Đơn vị: Khoa Công Nghệ Thông Tin Email: nguyenthikimnga@hotec.edu.vn TRƯỞNG KHOA TỔ TRƯỞNG CHỦ NHIỆM BỘ MÔN ĐỀ TÀI HIỆU TRƯỞNG DUYỆT Tháng 9, năm 2020
  3. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm.
  4. LỜI GIỚI THIỆU Giáo trình “Cơ sở dữ liệu nâng cao” được biên soạn theo chương trình khung ngành học Hệ thống thông tin đã được Bộ lao động Thương binh và Xã hội ban hành. Trong những năm qua, dạy nghề đã có những bước tiến vượt bậc cả về số lượng và chất lượng, nhằm thực hiện nhiệm vụ đào tạo nguồn nhân lực kỹ thuật trực tiếp đáp ứng nhu cầu xã hội. Cùng với sự phát triển của khoa học công nghệ trên thế giới, lĩnh vực công nghệ thông tin nói chung và ngành hệ thống thông tin ở Việt Nam nói riêng đã có những bước phát triển đáng kể. Chương trình khung quốc gia nghề hệ thống thông tin đã được xây dựng trên cơ sở phân tích nghề, phần kỹ thuật nghề được kết cấu theo các môn học, mô đun. Để tạo điều kiện thuận lợi cho các cơ sở dạy nghề trong quá trình thực hiện, việc biên soạn giáo trình kỹ thuật nghề theo theo các môn học, môđun đào tạo nghề là cấp thiết hiện nay. Môn học cơ sở dữ liệu nâng cao là môn học đào tạo nghề được biên soạn theo hình thức tích hợp lý thuyết và thực hành. Trong quá trình thực hiện, chủ biên đã tham khảo nhiều tài liệu về cơ sở dữ liệu trong và ngoài nước, kết hợp với kinh nghiệm trong thực tế. Mặc dầu có rất nhiều cố gắng, nhưng không tránh khỏi những khiếm khuyết, rất mong nhận được sự đóng góp ý kiến của độc giả để giáo trình được hoàn thiện hơn. Xin chân thành cảm ơn! Thành Phố Hồ Chí Minh, ngày 18 tháng 9 năm 2020 Biên soạn Nguyễn Thị Kim Nga KHOA CÔNG NGHỆ THÔNG TIN 1
  5. MỤC LỤC LỜI GIỚI THIỆU ................................................................................................................ 1 GIÁO TRÌNH MÔN HỌC .................................................................................................. 3 CHƯƠNG 1: MỞ ĐÂU....................................................................................................... 4 1.1 Các khái niệm cơ sở ............................................................................................................................. 4 1.2 Phân loại cơ sở dữ liệu ........................................................................................................................ 4 1.3 Mô hình hóa dữ liệu ............................................................................................................................. 5 1.4 Hệ quản trị cơ sở dữ liệu .................................................................................................................... 5 CHƯƠNG 2: TỐI ƯU HÓA TRUY VẤN .......................................................................... 9 2.1 Giới thiệu .................................................................................................................................................. 9 2.2 Quá trình thực hiện một câu truy vấn ........................................................................................... 9 2.3 Cây đại số quan hệ .............................................................................................................................. 10 2.4 Quá trình tối ưu .................................................................................................................................... 15 2.5 Thuật toán tối ưu ................................................................................................................................. 15 CHƯƠNG 3: QUẢN TRỊ NGƯỜI DÙNG ....................................................................... 17 3.1 Giới thiệu ................................................................................................................................................ 17 3.2 Tạo tài khoản và người sử dụng ................................................................................................... 18 3.3 Tạo nhóm người dùng ....................................................................................................................... 22 3.4 Phân quyền người dùng trên role ................................................................................................. 23 3.5 Hủy quyền truy cập user .................................................................................................................. 24 CHƯƠNG 4: HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN ............................................................ 26 4.1 Dẫn nhập về kiến trúc client/server và giải pháp cho kiến trúc client/server ........... 26 4.2 Kiến trúc phân tán ............................................................................................................................... 28 4.3 Tổng quan về cơ sở dữ liệu phân tán .......................................................................................... 28 4.4 Thiết kế cơ sở dữ liệu phân tán ..................................................................................................... 31 4.5 Phân mảnh dữ liệu .............................................................................................................................. 32 4.6 Nhân bản dữ liệu ................................................................................................................................. 33 4.7 Cài đặt ...................................................................................................................................................... 34 TÀI LIỆU THAM KHẢO ................................................................................................. 71 MỤC LỤC HÌNH .............................................................................................................. 72 KHOA CÔNG NGHỆ THÔNG TIN 2
  6. GIÁO TRÌNH MÔN HỌC Tên môn học: CƠ SỞ DỮ LIỆU NÂNG CAO Mã môn học: MH3101305 I. Vị trí, tính chất của môn học: - Vị trí: Là môn học chuyên ngành, bố trí sau khi học xong môn học hệ quản trị cơ sở dữ liệu, học kỳ 4. - Tính chất: môn lý thuyết, môn học bắt buộc. II. Mục tiêu môn học: - Về kiến thức: + Trình bày được các khái niệm cơ bản về cơ sở dữ liệu + Trình bày được khái niệm quy trình thực hiện tối ưu hóa truy vấn + Trình bày được các khái niệm phân quyền, quản trị người dùng + Trình bày được khái niệm về cơ sở dữ liệu phân tán, hệ cơ sở dữ liệu phân tán + Phân biệt được cơ sở dữ liệu phân tán và cơ sở dữ liệu tập trung + Nhận biết các tính chất và đặc điểm của hệ cơ sở dữ liệu phân tán + Trình bày được các phương pháp 4phân mảnh dữ liệu, nhân bản dữ liệu, biến đổi truy vấn toàn cục thành các truy vấn mảnh -Về kỹ năng: + Mô hình hóa cơ sở dữ liệu + Biết tối ưu hóa các truy vấn trong cơ sở dữ liệu theo quan hệ 2 ngôi + Biết tạo user, gán vào role và login vào hệ thống + Biết tạo nhóm để phân quyền và quản trị người dùng trên cơ sở dữ liệu + Thiết kế được sơ đồ cơ sơ dữ liệu phân tán + Xây dựng truy vấn cơ sơ dữ liệu phân tán + Biến đổi truy vấn trong cơ sơ dữ liệu phân tán - Về năng lực tự chủ và trách nhiệm: + Nhận thức được tầm quan trọng của việc xây dựng cơ sở dữ liệu trong phát triển hệ thống thông tin + Rèn luyện khả năng tự học, tư duy sáng tạo. KHOA CÔNG NGHỆ THÔNG TIN 3
  7. Chương 1: Mở đầu CHƯƠNG 1: MỞ ĐÂU Giới thiệu: Trong Chương 1 sẽ trình bày các khái niệm cơ bản về cơ sở dữ liệu, các mô hình lược đồ dữ liệu, công dụng của hệ quản trị cơ sở dữ liệu, cuối cùng là phân loại và so sánh các hệ quản trị cơ sở dữ liệu phổ biến hiện nay Mục tiêu: Trình bày được các khái niệm cơ bản về cơ sở dữ liệu Trình bày được các mô hình lược đồ dữ liệu Mô tả công dụng của hệ quản trị cơ sở dữ liệu Phân loại và so sánh các hệ quản trị cơ sở dữ liệu phổ biến Nội dung chính: 1.1 Các khái niệm cơ sở 1.1.1 Cơ sở dữ liệu Một cơ sở dữ liệu (database) là một tập hợp có cấu trúc các dữ liệu tác nghiệp được lưu trữ lại và được các hệ ứng dụng cụ thể sử dụng. Ví dụ: ứng dụng quản lý kho hàng, hệ thống đặt chỗ máy bay, quản lý nguồn nhân lực 1.1.2 Hệ cơ sở dữ liệu Hệ cơ sở dữ liệu (database system) là một hệ thống bao gồm 4 thành phần - Cơ sở dữ liệu hợp nhất: Cơ sở dữ liệu của hệ có hai tính chất tối thiểu hóa dư thừa và được chia sẻ. - Những người sử dụng: Bất kỳ một người nào có nhu cầu truy nhập vào cơ sở dữ liệu, bao gồm người sử dụng cuối, người viết chương trình ứng dụng và người điều khiển toàn bộ hệ thống hay còn gọi là người quản trị cơ sở dữ liệu. - Phần mềm quản trị cơ sở dữ liệu - Phần cứng: Bao gồm các thiết bị nhớ thứ cấp được sử dụng để lưu trữ cơ sở dữ liệu 1.2 Phân loại cơ sở dữ liệu - Cơ sở dữ liệu hướng đối tượng: Tích hợp khái niệm đối tượng vào hệ quản trị cơ sở dữ liệu như: lớp, kế thừa… - Cơ sở dữ liệu suy diễn: Tăng khả năng suy diễn cho hệ quản trị cơ sở dữ liệu - Cơ sở dữ liệu multimedia: KHOA CÔNG NGHỆ THÔNG TIN 4
  8. Chương 1: Mở đầu Tích hợp vào hệ quản trị cơ sở dữ liệu khả năng quản lý văn bản, ảnh, âm thanh, vidéo… - Cơ sở dữ liệu phân tán: Cho phép truy vấn và cập nhật dữ liệu từ các sites phân tán (địa lý) 1.3 Mô hình hóa dữ liệu Khó tích hợp kiểu dữ liệu mới Mô hình đơn giản: phân cấp của các liên kết chặt có thể bị bẻ gãy Không phân biệt giữa các khái niệm khác nhau trong khi mô hình hóa: chỉ có khái niệm quan hệ Không mô hình hóa xử lý thông tin 1.4 Hệ quản trị cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu (database management system) viết tắt DBMS là một hệ thống phần mềm cho phép tạo lập cơ sở dữ liệu và điều khiển mọi truy nhập đối với cơ sở dữ liệu đó. Gồm 4 loại: - Hệ quản trị cơ sở dữ liệu phân cấp: Mô hình phân cấp được đưa ra vào những năm 1960, trong mô hình này dữ liệu được tổ chức thành cấu trúc cây, các nút (node) là tập hợp các thực thể, các cành là các mối quan hệ giữa hai nút theo mối quan hệ nhất định, cứng nhắc. Là mô hình dữ liệu trong đó các bản ghi được sắp xếp theo cấ trúc top-down (tree). Một con chỉ có một cha , chỉ có một đường truy nhập tới dữ liệu đó trước. Tập dữ liệu được tổ chức theo cấ u trúc của mô hình dữ liệu phân cấp gọi là cơ sở dữ liệu phân cấp Ví dụ: Phòng ban Nhân viên Dự án Kỹ năng Người thân Thiết bị Hình 1.1 Mô hình phân cấp quản lý nhân sự của một công ty - Hệ quản trị cơ sở dữ liệu mạng: KHOA CÔNG NGHỆ THÔNG TIN 5
  9. Chương 1: Mở đầu Mô hình mạng được đưa vào cuối những năm 1960. Trong mô hình này dữ liệu được tổ chức thành một đồ thị có hướng, trong đó các đỉnh là các thực thể, các cung là quan hệ giữa hai đỉnh, một kiểu bản ghi có thể liên kết với nhiều kiểu bản ghi khác. Một con có thể có nhều cha, có nhiều đường truy nhập dẫn đến một dữ liệu cho trước tập dữ liệu được tổ chức theo cấu trúc mô hình dữ liệu mạng gọi là cơ sở dữ liệu mạng Ví dụ: Phòng ban Nhân viên Dự án Người thân Thiết bị Hình 1.2 Mô hình mạng quản lý nhân sự của một công ty - Hệ quản trị cơ sở dữ liệu quan hệ: Mô hình này được E.F Codd đưa vào đầu những năm 1970, mô hình này dựa trên lý thuyết tập hợp và đại số quan hệ. Vì tính chất chặt chẽ của toán học về lý thuyết tập hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng, mềm dẻo và là mô hình thông dụng nhất hiện nay. Hầu hết các hệ quản trị cơ sở dữ liệu đều tổ chức dữ liệu theo mô hình dữ liệu quan hệ. Trong đó dữ liệu được tổ chức dưới dạng bảng các phép toán thao tác trên dữ liệu dựa trên lý thuyết tập hợp của toán học. Tập dữ liệu được tổ chức theo cấu trúc của mô hình dữ liệu quan hệ gọi là cơ sở dữ liệu quan hệ. Ví dụ: Row Tuple (bộ) Record (bảng ghi) Table Attribute (thuộc tính) Field (trường) Column Relation Hình 1.3 Mô hình quan hệ mô tả dữ liệu bảng KHOA CÔNG NGHỆ THÔNG TIN 6
  10. Chương 1: Mở đầu - Hệ quản trị cơ sở dữ liệu nâng cao: Là mô hình dữ liệu trong đó các thuộc tính dữ liệu và các phương thức thao tác trên các thuộc tính đó đều được đóng gói trong các cấu trúc gọi là đối tượng Tập dữ liệu được tổ chức theo cấu trúc của mô hình dữ liệu hướng đối tượng gọi là cơ sở dữ liệu hướng đối tượng Ví dụ: Phòng ban Nhân viên Nhân viên Họ tên Thiết bị Phòng ban Ngày vào làm Hiển thị Nhân viên Tính thâm niên Thiết bị NV làm NV làm theo theo giờ hợp đồng Tên thiết bị Phòng ban Lượng lắm Số giờ LV cổ phần Hiển thị ds Tính lương Tính lương Sử dụng TB Hình 1.4 Mô hình đối tượng quản lý nhân sự của một công ty KHOA CÔNG NGHỆ THÔNG TIN 7
  11. Chương 1: Mở đầu CÂU HỎI LÝ THUYẾT Câu hỏi 1: Cơ sở dữ liệu là gì? Một hệ cơ sở dữ liệu gồm những thành phần gì? Câu hỏi 2: Mô hình hóa dữ liệu là gì? Cho ví dụ một mô hình của cơ sở dữ liệu? Câu hỏi 3: Trình bày tiêu chuẩn hóa hệ quản trị cơ sở dữ liệu bằng tiếp cận dựa vào các thành phần KHOA CÔNG NGHỆ THÔNG TIN 8
  12. Chương 2: Tối ưu hóa truy vấn CHƯƠNG 2: TỐI ƯU HÓA TRUY VẤN Giới thiệu: Trong Chương 2 sẽ trình bày được các phương pháp tối ưu hóa truy vấn. Sinh viên biết cách tối ưu hóa truy vấn trong hệ quản trị cơ sở dữ liệu Mục tiêu: Trình bày được các phương pháp tối ưu hóa truy vấn Tối ưu hóa truy vấn trong hệ quản trị cơ sở dữ liệu Nội dung chính: 2.1 Giới thiệu 2.1.1 Truy vấn Truy vấn (query) là một biểu thức được biểu diễn bằng một ngôn ngữ thích hợp và dùng để xác định một phần dữ liệu được chứa trong cơ sở dữ liệu. Một truy vấn có thể được dùng để xác định ngữ nghĩa của một ứng dụng, hoặc nó có thể được dùng để xác định công việc can được thực hiện bởi một ứng dụng nhằm để truy xuất cơ sở dữ liệu. 2.1.2 Tối ưu hóa truy vấn Tối ưu hóa truy vấn còn được gọi là tối ưu hóa vấn tin là tiến trình lựa chọn kế họach thực thi câu vấn tin một cách hiệu quả nhất. Tối ưu hóa truy vấn giúp tốn ít tài nguyên nhất và hồi đáp nhanh nhất. 2.2 Quá trình thực hiện một câu truy vấn Quá trình thực hiện một câu truy vấn/ vấn tin gồm 5 bước: - Bước 1: Kiểm tra ngữ pháp (syntax checking) Trong bước này, hệ quản trị cơ sở dữ liệu (database management system) viết tắt là DBMS sẽ kiểm tra ngữ pháp của truy vấn ban đầu (SQL query). Nếu truy vấn bị sai ngữ pháp thì DBMS sẽ thông báo truy vấn bị sai ngữ pháp và truy vấn này sẽ không được thực hiện. Nếu truy vấn đúng ngữ pháp (syntactically correct SQL query) thì DBMS sẽ tiếp tục thực hiện bước 2. - Bước 2: Kiểm tra sự hợp lệ (validation) Trong bước này, DBMS sẽ thực hiện các công việc: + Kiểm tra sự tồn tại của các đối tượng dữ liệu (các cột, các biến, các bảng, …) của truy vấn trong cơ sở dữ liệu. + Kiểm tra sự hợp lệ về kiểu dữ liệu của các đối tượng dữ liệu (các cột, các biến, vv…) trong truy vấn. KHOA CÔNG NGHỆ THÔNG TIN 9
  13. Chương 2: Tối ưu hóa truy vấn - Bước 3: Đưa về dạng biểu diễn trong đại số quan hệ Truy vấn ban đầu được biến đổi thành một biểu thức đại số quan hệ hay còn gọi là truy vấn đại số quan hệ (relational algebra query) - Bước 4: Tối ưu hóa biểu thức đại số quan hệ (relational algebra optimization) Trong bước này DBMS sử dụng các phép biến đổi tương đương của đại số quan hệ để biến đổi biểu thức đại số quan hệ có được ở bước 3 thành một biểu thức đại số quan hệ tương đương (theo nghĩa chúng có cùng một kết quả) nhưng biểu thức sau sẽ hiệu quả hơn: loại bỏ các phép toán không cần thiết và giảm vùng nhớ trung gian. Cuối bước này, DBMS tạo ra một truy vấn đại số quan hệ đã được tối ưu hoá (optimized relational algebra query). - Bước 5: Sinh mã (code genesite) Viết ra ngôn ngữ chủ của hệ quản trị cơ sở dữ liệu Ví dụ: Thuật toán cài đặt 3 hàm gồm: Hàm Projection (x, q, r) -> trả phép chiếu Hàm Selection (e, q, k) -> trả phép chọn Hàm Join (s, r, t) -> trả phép nối 2.3 Cây đại số quan hệ 2.3.1 Đại số quan hệ là gì? Đại số quan hệ (relational algebra) là một bộ các toán tử và quy tắc được sử dụng để thao tác trên các quan hệ và kết quả trả về là một quan hệ mới. Sau khi Edgar F. Codd đưa ra mô hình dữ liệu quan hệ vào năm 1970, đại số quan hệ được xem là nền tảng cho các ngôn ngữ truy vấn dữ liệu nói chung và SQL nói riêng. SQL cung cấp cú pháp đơn giản nhưng mạnh mẽ, giúp người dùng có được các kết quả mong muốn mà không cần nêu rõ cách thức để đạt được điều đó như thế nào. Tuy nhiên, với những vấn đề và yêu cầu mang tính phức tạp, việc viết một câu truy vấn chính xác và hiệu quả đòi hỏi phải có hiểu biết về cấu trúc dữ liệu và cách thức hoạt động của ngôn ngữ truy vấn. Vì vậy nắm vững các kiến thức về đại số quan hệ sẽ là nền tảng để việc tìm hiểu về SQL trở nên dễ dàng hơn. Các phép toán trong đại số quan hệ có thể được chia thành ba loại: Phép toán tập hợp, phép chọn và các phép toán mở rộng. 2.3.1.1 Phép toán tập hợp Bao gồm: Phép hội (set union), phép giao (set intersection), phép hiệu (set defference) và phép tích (castesian product) - Phép hội (set union) KHOA CÔNG NGHỆ THÔNG TIN 10
  14. Chương 2: Tối ưu hóa truy vấn Hội hai quan hệ sẽ được một quan hệ mới có các bộ chỉ thuộc một quan hệ. Các bộ trùng nhau sẽ bị loại đi. Phép hội được biểu diễn qua biểu thức sau: R ∪ S = { t │t € R ∨ t € S } Với R và S là 2 quan hệ khả hợp - Phép giao (set intersection) Một quan hệ mới chỉ bao gồm các bộ đồng thời thuộc hai qua hệ ban đầu. Phép giao được biểu diễn qua biểu thức sau: R ∩ S = { t │t € R ∧ t € S } Với R và S là 2 quan hệ khả giao - Phép hiệu (set defference) Phép hiệu trong đại số quan hệ có nét tương đồng với phép hiệu đại số thông thường. Phép hiệu của R và S sẽ cho kết quả là một quan hệ bao gồm các bộ chỉ thuộc R mà không thuộc S nghĩa là quan hệ kết quả chỉ có một bộ duy nhất. R - S = { t │t € R ∧ t ∉ S } Với R và S là 2 quan hệ khả hiệu - Phép tích (castesian product) Một quan hệ mới có số bộ bằng tích số giữa số bộ. Đây là điều khác biệt giữa phép tích và các phép hội, phép giao và phép hiệu. Phép tích sẽ làm phát sinh tổ hợp cả về “hai chiều”, điều đó làm nảy sinh trường hợp tồn tại những bộ trong quan hệ kết quả không mang nhiều ý nghĩa. Do đó phép tích thường đi kèm với một điều kiện nào đó để loại trừ đi những kết quả không mong muốn. R х S = {(a1,..., am, b1,...,bn│(a1,..., am) € R ∧ (b1,...,bn) € S} 2.3.1.2 Phép chọn/cắt ngang (select) Phép chọn được sử dụng để chọn một tập hợp các bộ thoả mãn điều kiện chọn từ một quan hệ. Ta có thể xem phép chọn như một bộ lọc, nó chỉ giữ lại các bộ thoả mãn điều kiện đặt ra. Phép chọn được ký hiệu là: σ< điều kiện chọn>( R). Trong đó: + σ: là ký hiêu phép chọn + : là một biểu thức lôgic được chỉ ra trên các thuộc tính của R. Một điều kiện chọn có dạng: . Trong đó:  : là tên của một thuộc tính trong R KHOA CÔNG NGHỆ THÔNG TIN 11
  15. Chương 2: Tối ưu hóa truy vấn  : là một trong các phép toán so sánh {, ≠}  : là một giá trị hằng từ miền giá trị của thuộc tính. Các hạng mục có thể được nối với nhau bằng các phép toán lô gic AND, OR, NOT để tạo ra một điều kiện chọn chung + R: là một biểu thức đại số quan hệ. Kết quả của một biểu thức đại số quan hệ là một quan hệ. Quan hệ kết quả của phép chọn có cùng thuộc tính như R. Ví dụ: Chọn các bộ NHÂNVIÊN thuộc về đơn vị có mã số là 4 hoặc các bộ NHÂNVIÊN có lương lớn hơn 3000 ta viết như sau: σ< Mãsố = 4>( NHÂNVIÊN) σ< Lương > 3000>( NHÂNVIÊN) Phép chọn là phép toán một ngôi, nghĩa là nó được áp dụng cho một quan hệ. Hơn nữa, phép chọn được áp dụng cho từng bộ một cách độc lập, vì vậy, các điều kiện chọn không thể liên quan đến nhiều bộ. Quan hệ kết quả của phép chọn có cấp giống như cấp của R. Số các bộ trong quan hệ kết quả luôn luôn nhỏ hơn hoặc bằng số các bộ trong R. Phép chọn là một phép toán có tính chất giao hoán, nghĩa là: σ < Điều kiện 1> (σ< Điều kiện 2>( R)) = σ< Điều kiện 2> (σ< Điều kiện 1>( R)) Hơn nữa ta có thể kết hợp một loạt các phép chọn thành một phép chọn đơn giản bằng cách sử dụng phép toán AND. Ví dụ: σ< Điều kiện 1> (σ< Điều kiện 2>( R)) = σ< Điều kiện 2>AND< Điều kiện 1>( R) 2.3.1.3 Phép chiếu/cắt dọc (project) Phép chiếu là phép toán chọn một số cột của bảng. Phép chiếu dùng để chiếu lên các thuộc tính đó. Phép chiếu được ký hiệu là: π( R). Trong đó: + π: là ký hiệu dùng để biểu diễn phép chiếu + : là một danh sách con các thuộc tính của quan hệ R. + R: là một biểu thức đại số quan hệ. Kết quả của phép chiếu là một quan hệ chỉ có các thuộc tính nằm trong và có cùng thứ tự như thứ tự của chúng có trong danh sách. Phép KHOA CÔNG NGHỆ THÔNG TIN 12
  16. Chương 2: Tối ưu hóa truy vấn chiếu loại bỏ mọi bộ trùng lặp, kết quả của phép chiếu là một tập hợp các bộ và là một quan hệ đúng đắn. Phép chiếu không có tính giao hoán, nghĩa là: π< danh sách1>(π< danh sách2> ( R)) = π< danh sách 1> ( R) Ví dụ: Chiếu kết quả là một quan hệ NHÂNVIÊN có các thuộc tính MãsốNV, Họđệm, Tên, địa chỉ, Lương ta viết như sau: π < MãsốNV, Họđệm,Tên, địa chỉ,Lương>(NHÂNVIÊN) 2.3.1.4 Phép nối (join) Phép nối được dùng để kết hợp các bộ có liên hệ với nhau từ hai quan hệ thành một bộ. Phép toán này rất quan trọng đối với cơ sở dữ liệu quan hệ có nhiều bảng bởi vì nó cho phép ta xử lý các mối liên kết giữa các quan hệ. Dạng tổng quát của phép nối trên hai quan hệ R (A1, A2,…,An) và S (B1,B2,…, Bm) Phép nối được ký hiệu là: ⋈ (R)< Điều kiện nối> (S). Trong đó: + R, S: là một quan hệ + chỉ ra trên các thuộc tính của hai quan hệ R và S. Một điều kiện nối tổng quát có dạng: AND AND … AND . Trong đó:  có dạng Ai θ Bj, Ai là một thuộc tính của R, Bj là một thuộc tính của S, Ai và Bj có cùng miền và θ là một trong các dấu phép toán so sánh {, ≠}. Kết quả của phép nối là một quan hệ Q (A1,A2,…,An, B1,B2,…,Bm) có n+m thuộc tính. Mỗi bộ của Q là một sự kết nối giữa một bộ của R và một bộ của S khi chúng thoả mãn điều kiện nối. Ví dụ: Q = R ⋈ S Aθ B 2.3.2 Cây đại số quan hệ Được sử dụng để biểu diễn một biểu thức đại số quan hệ Các quan hệ tham gia vào biểu thức là các Node lá Các phép toán quan hệ là các node của cây và sắp xếp theo thứ tự thực hiện của chúng Node gốc là phép chiếu để có kết quả cuối cùng Ví dụ: Cho các quan hệ sau: SINHVIEN (MSSV, HOTEN, NAMSINH, PHAI, DIACHI, MSLOP) KHOA CÔNG NGHỆ THÔNG TIN 13
  17. Chương 2: Tối ưu hóa truy vấn LOP (MSLOP, TENLOP) MONHOC (MSMH, TENMH) HOC (MSSV, MSMH, DIEM) Trong đó : SINHVIEN: chứa thông tin về sinh viên gồm: mã sinh viên (MSSV), họ tên (HOTEN), năm sinh (NAMSINH), phái (PHAI), địa chỉ (DIACHI), thuộc lớp (MSLOP). Khóa là MSSV. LOP: chứa thông tin về lớp học gồm: mã lớp (MSLOP), tên lớp (TENLOP. Khóa là MSLOP. MONHOC: chứa thông tin về môn học gồm: mã môn học (MSMH), tên môn học (TENMH). HOC: chứa thông tin về sinh viên (MSSV) học môn học (MSMH) có điểm thi cuối Kỳ (DIEM). Khóa là MSSV và MSMH Yêu cầu: Lấy ra danh sách những sinh viên của lớp L001 đã học môn cơ sở dữ liệu có điểm >8 - Bước 2: Giải yêu cầu bằng câu lệnh SQL Select HOC.MSSV, HOTEN, DIEM From HOC, SINHVIEN, MONHOC Where HOC.MSSV = SINHVIEN.MSSVAnd HOC.MSMH = MONHOC.MSMH And TENMH = ‘cơ sở dữ liệu’And DIEM>8 And MSLOP = ‘L001’ - Bước 3: Giải yêu cầu bằng cây đại số quan hệ Π (σ TENMH = ‘cơ sở dữ liệu’ ((HOC ⋈ SINHVIEN ⋈ MONHOC)) AND MSLOP = ‘L001’ AND DIEM>8 MSSV, HOTEN, DIEM - Bước 4: Tối ưu hóa Π MSSV, HOTEN, DIEM -> PHÉP CHIẾU CUỐI CÙNG σ TENMH = ‘cơ sở dữ liệu’ AND MSLOP = ‘L001’ AND DIEM > 8 ⋈ ⋈ MON HOC HOC SINH VIEN Hình 2.1 Tối ưu hóa câu truy vấn bằng cây đại số quan hệ (Diễn giải: HOC, SINHVIEN là 2 node lá kết với nhau) KHOA CÔNG NGHỆ THÔNG TIN 14
  18. Chương 2: Tối ưu hóa truy vấn 2.4 Quá trình tối ưu Quá trình tối ưu gồm 2 cách thực hiện: - Cách 1: Chiến lược tối ưu Nhằm đạt được tốc độ nhanh, bộ nhớ chiếm dụng ít. - Cách 2: Chiến thuật tối ưu Thực hiện các phép toán 1 ngôi trước khi còn có thể sao đó mới thực hiện các phép toán 2 ngôi (tách gọn quan hệ tham gia vào 2 ngôi thành hàng dọc chỉ giữ lại những quan hệ cần và hàng ngang cũng vậy hoặc đẩy các phép chọn khi còn có thể, đẩy các phép chiếu lấy tập hiệu các quan hệ) Ví dụ Π MSSV, HOTEN, DIEM -> PHÉP CHIẾU CUỐI CÙNG ⋈ ⋈ σ TENMH = ‘cơ sở dữ liệu’ Π MON HOC σ DIEM > 8 σ MSLOP = ‘L001’ HOC SINH VIEN Hình 2.2 Tối ưu hóa câu truy vấn theo thuật toán 2 ngôi 2.5 Thuật toán tối ưu Từ Select, from, where ban đầu Xây dựng cây đại số quan hệ đầu tiên SQL dựa vào từ khóa Select, From, Where Sao đó đẩy các phép chọn xuống Sao đó đẩy các phép chiếu xuống đến khi không đẩy được nữa thì được cây này là cây tối ưu. Kết luận: Từ đại số quan hệ viết được cây, từ cây viết lại đại số quan hệ được vì nó là mối quan hệ 2 chiều KHOA CÔNG NGHỆ THÔNG TIN 15
  19. Chương 2: Tối ưu hóa truy vấn CÂU HỎI LÝ THUYẾT Câu hỏi 1: Trình bày 5 bước liên tiếp của tầng phân rã vấn tin Câu hỏi 2: Trình bày các chiến lược tìm kiếm BÀI TẬP THỰC HÀNH Bài tập 1: Cho các quan hệ sau: EMP (ENO, ENAME, TITLE) PROJ (PNO, PNAME, BUDGET) PAY (TITLE, SAL) ASG (ENO, PNO, DUR, RESP) Xét câu vấn tin như sau: SELECT ENAME, RESP FROM EMP, ASG, PROJ WHERE EMP.ENO = ASG.ENO AND PNAME = “CAD/CAM” AND DUR>=36 AND TITLE = “PROGRAMMER” Yêu cầu: Hãy vẽ đồ thị vấn tin và chỉ ra chổ sai của vấn tin này Bài tập 2: Cho các quan hệ sau: EMP (ENO, ENAME, TITLE) PROJ (PNO, PNAME, BUDGET) PAY (TITLE, SAL) ASG (ENO, PNO, DUR, RESP) Giả sử EMP và ASG được phân mảnh thành EMPH1 = ENO
  20. Chương 3: Quản trị người dùng CHƯƠNG 3: QUẢN TRỊ NGƯỜI DÙNG Giới thiệu: Trình bày được các khái niệm phân quyền, quản trị người dùng. Sinh viên biết cách tạo được user và nhóm. Đồng thời quản trị được người dùng như: phân quyền sử dụng và hủy quyền truy cập trên user. Mục tiêu: Trình bày được các khái niệm phân quyền, quản trị người dùng Tạo được user, nhóm Quản trị người dùng: phân quyền sử dụng và hủy quyền truy cập trên user Nội dung chính: 3.1 Giới thiệu 3.1.1 Phân quyền là gì? Phân quyền (permission) là tạo một tài khoản và giới hạn tài khoản đó. Các loại quyền: + Insert: quyền thêm hoặc chèn dữ liệu bảng (table) + Update: quyền cập nhật dữ liệu bảng (table) + Select: quyền xem dữ liệu bảng (table) + Delete: quyền xóa dữ liệu bảng (table) + References: quyền tạo ràng buộc tham chiếu bảng (table) + Alter: quyền thay đổi định nghĩa bảng + All: không trao tất cả quyền trên bảng mà trao các quyền theo chuẩn Ansi-92, gồm Select, Insert, Update, Delete và References Ví dụ: Giả sử ta có database QuanLySinhVien, và muốn phân quyền Select, Insert, Update, Delete trên bảng nhanvien cho người dùng tên là user1 3.1.2 Quản trị người dùng Quản trị người dùng (administration of users) là giải pháp cho phép các quản trị viên thiết lập quyền hạn cho người dùng hoặc nhóm người dùng khai thác cơ sở dữ liệu. Người dùng hoặc nhóm người dùng sau khi được cấp quyền, có thể đăng nhập vào hệ thống và thực hiện các quyền hạn mà mình được cấp. Quản trị người dùng giúp phân quyền người dùng trên cơ sở dữ liệu. KHOA CÔNG NGHỆ THÔNG TIN 17
nguon tai.lieu . vn