Tải bản đầy đủ (.pdf) (77 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.27 MB, 77 trang )

Ủ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:

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


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 hồ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
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


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 chun 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


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 tồ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 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

Dự án

Nhân viê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 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

Người thân

Dự á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 tố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ộ)
Attribute (thuộc tính)

Table

Record (bảng ghi)

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


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
Thiết bị

Họ tên
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ị
Tên thiết bị
Phịng ban
Hiển thị ds
Sử dụng TB

NV làm
theo giờ

NV làm theo
hợp đồng

Số giờ LV

Lượng lắm
cổ phần

Tính lương

Tính lương

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 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


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 tố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 tố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 }

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
+ <Đ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> 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
: 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 tố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 tố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 tố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 tố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 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 hố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



HOC

MON
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


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 tốn 1 ngơi trước khi cịn có thể sao đó mới thực hiện các
phép tố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 tốn 2 ngơi

2.5 Thuật tố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


Chương 3: Quản trị người dùng
Ví dụ:
User A

User B

Quyền khai thác

Đối tượng được cấp (Table, View....)
Quyền được cấp (Insert, Update,
Select, Delete Delete

QLSV

QLBH
Database

Hình 3.1 Phân quyền trên cơ sở dữ liệu

3.2 Tạo tài khoản và người sử dụng
3.2.1 Tạo tài khoản
Mục đích việc tạo tài khoản (login) là để kết nối vào cơ sở dữ liệu (database).
Có 2 bước tạo tài khoản người dùng
- Bước 1: Click chuột phải vào login và chọn new login

Hình 3.2 Tạo tài khoản SQL Server


- Bước 2: Khai báo tên đăng nhập và click chọn SQL server authentication

KHOA CÔNG NGHỆ THÔNG TIN

18


Chương 3: Quản trị người dùng

Hình 3.3 Khai báo tạo tài khoản SQL server

3.2.2 Tạo người sử dụng (user)
Trong 1 server có nhiều user, tên user có thể trùng nhau
Trong 1 database có nhiều user, tên user khơng được trùng nhau
Trong 1 server có nhiều login, tên login khồng được trùng nhau, 1 login chỉ
thuộc 1 user
Có 2 bước tạo user:
- Bước 1: Mở rộng sercurity trên database, click chuột phải vào users và chọn new
users

KHOA CÔNG NGHỆ THÔNG TIN

19


Chương 3: Quản trị người dùng

Hình 3.4 Tạo người sử dụng

- Bước 2: Khai báo tên sử dụng và click chọn SQL server authentication


Hình 3.5 Khai báo tạo người sử dụng

3.2.3 Cấp quyền cho người dùng
- Bước 1: Click chuột phải lên bảng (table) hoặc cơ sở dữ liệu (database),
chọn Properties

KHOA CÔNG NGHỆ THÔNG TIN

20


Chương 3: Quản trị người dùng

Hình 3.6 Cấp quyền cho người dùng

Hình 3.7 Cấp quyền cho người dùng

- Bước 2: Thiết lập quyền

KHOA CÔNG NGHỆ THÔNG TIN

21


Chương 3: Quản trị người dùng

Hình 3.8 Thiết lập quyền

3.3 Tạo nhóm người dùng

3.3.1 Khái quát
Nhóm (role) trong SQL server bao gồm một hoặc nhiều user, điều này cũng
tương tự như trong cơng ty hoặc tổ chức mỗi phịng ban có một hoặc nhiều nhân viên.
Như vậy thay vì chúng ta cấp quyền cho từng user, người quản trị có thể cấp
quyền theo nhóm. Và những user thuộc nhóm quyền nào sẽ có tất cả quyền của nhóm
đó. Do đó, khi người quản trị thực hiện thêm bớt quyền sẽ dễ dàng hơn.
3.3.2 Các bước thực hiện
STT

Công dụng

Bước 1 Tạo nhóm

KHOA CƠNG NGHỆ THƠNG TIN

Cú pháp
Create
Role
‘Tên_Nhóm’
Sp_AddRole ‘Tên_Nhóm’

hoặc

22


×