Giáo trình môn Cơ sở dữ liệu nâng cao - Nghề: Hệ thống thông tin

Ủ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  
Ủ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  
BỘ MÔN  
CHỦ NHIỆM  
ĐỀ TÀI  
HIỆU TRƯỞNG  
DUYỆT  
Tháng 9, năm 2020  
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.  
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
 
MỤC LỤC  
KHOA CÔNG NGHỆ THÔNG TIN  
2
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ơ sdữ  
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
 
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
     
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 ctrú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 dliu 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
   
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 nhiu kiu bn ghi khác.  
Một con có thể có nhu cha, có nhiều đường truy nhập dẫn đến một dữ liệu cho  
trước tập dliệu được tổ chức theo cấu trúc mô hình dliệ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 do 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 dliu theo mô  
hình dữ liệu quan hệ. Trong đó dliệu được tổ chức dưới dng bng các phép toán thao  
tác trên dliệu dựa trên lý thuyết tp hợp ca toán học. Tập dữ liệu được tổ chức theo  
cu trúc ca mô hình dliu quan hệ gọi là cơ sở dữ liệu quan hệ.  
Ví dụ:  
Row  
Tuple (bộ)  
Attribute (thuộc tính)  
Record (bảng ghi)  
Field (trường)  
Table  
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
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  
NV làm  
theo giờ  
NV làm theo  
hợp đồng  
Thiết bị  
Tên thiết bị  
Phòng ban  
Lượng lắm  
cổ phần  
Số giờ LV  
Tính lương  
Hiển thị ds  
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
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
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 ngphá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
     
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  
 
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 }  
- Phép giao (set intersection)  
Với R và S là 2 quan hệ khả hợp  
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 }  
- 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.  
Với R và S là 2 quan hệ khgiao  
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 }  
- Phép tích (castesian product)  
Với R và S là 2 quan hệ khả hiệu  
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  
+ <Điều kiện 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: <tên thuộc tính> <phép so sánh> <giá trị  
hằng>. Trong đó:  
<tên thuộc tính>: là tên của một thuộc tính trong R  
KHOA CÔNG NGHỆ THÔNG TIN  
11  
Chương 2: Tối ưu hóa truy vấn  
<phép so sánh>: là một trong các phép toán so sánh {<, <=, =,  
>=, >, ≠}  
<giá trị hằng>: 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à: π<danh sách các thuộc tính>( R). Trong đó:  
+ π: là ký hiệu dùng để biểu diễn phép chiếu  
+ <danh sách các thuộc tính>: 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 <danh  
sách các thuộc tính> 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  
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ệ  
+ <Điều kiện nối> 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: <điều kiện> AND <điều kiện> AND … AND <điều  
kiện>. Trong đó:  
<điều kiện> 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  
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  
SINH  
VIEN  
HOC  
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  
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  
σMSLOP = ‘L001’  
> 8  
SINH  
VIEN  
HOC  
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  
   
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 <= “E3” (EMP)  
EMPH2 = σ “E3” < ENO <= “E6” (EMP)  
EMPH3 = σ ENO > “E6” (EMP)  
ASGH1 = σ ENO <= “E3” (ASG)  
ASGH2 = σ ENO > “E3” (ASG)  
Xét câu vấn tin nối  
SELECT * FROM EMP, ASG  
WHERE EMP.ENO = ASG.ENO  
Yêu cầu: Hãy vẽ cây vấn tin gốc và cây vấn tin rút gọn  
KHOA CÔNG NGHỆ THÔNG TIN  
16  
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  
   
Tải về để xem bản đầy đủ
pdf 77 trang yennguyen 08/04/2022 5000
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình môn Cơ sở dữ liệu nâng cao - Nghề: Hệ thống thông tin", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_mon_co_so_du_lieu_nang_cao_nghe_he_thong_thong_ti.pdf