TRƯỜNG ĐẠ
ẠI HỌC NGÂN HÀNG TP. HỒ CHÍ MINH
KHOA CÔNG NGH
NGHỆ THÔNG TIN
GIÁO TRÌNH
NHÓM BIÊN SOẠN:
SO
Trịnh
nh Hoàng Nam (Ch
(Chủ biên)
Nguyễn
Nguy Thị Trà Linh
Tạ Thị Hoàng Mai
MỤC LỤC
LỜI MỞ ĐẦU ......................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG CƠ SỞ DỮ LIỆU ..................... 3
1.1 Hệ thống hướng tập tin.................................................................................... 5
1.2 Hệ thống hướng cơ sở dữ liệu ......................................................................... 6
1.3 Mục tiêu của các hệ cơ sở dữ liệu ................................................................... 7
1.4 Hệ quản trị cơ sở dữ liệu ................................................................................. 8
1.5 Người dùng cơ sở dữ liệu .............................................................................. 13
1.6 Ngôn ngữ và giao diện ngôn ngữ dữ liệu ...................................................... 15
CHƯƠNG 2: MÔ HÌNH THỰC THỂ KẾT HỢP ............................................ 22
2.1. Mô hình thực thể kết hợp ............................................................................... 24
2.2. Một ứng dụng của mô hình thực thể kết hợp................................................. 25
2.3. Các khái niệm trong mô hình thực thể kết hợp ............................................. 27
2.4. Các vấn đề khi thiết kế mô hình thực thể kết hợp ..........................................40
CHƯƠNG 3: MÔ HÌNH THỰC THỂ KẾT HỢP MỞ RỘNG ...................... 49
3.1 Những hạn chế của mô hình thực thể kết hợp............................................... 51
3.2 Các khái niệm trong mô hình thực thể kết hợp mở rộng .............................. 52
3.3 Một ứng dụng của mô hình thực thể kết hợp mở rộng ................................. 63
3.4 Các công cụ mô hình thiết kế cơ sở dữ liệu .................................................. 64
CHƯƠNG 4: MÔ HÌNH DỮ LIỆU QUAN HỆ ................................................ 71
4.1 Các khái niệm cơ bản .................................................................................... 73
4.2 Ràng buộc toàn vẹn trên mô hình quan hệ và lược đồ dữ liệu quan hệ ........ 80
4.3 Các toán tử cập nhật trên quan hệ ................................................................. 85
CHƯƠNG 5: ĐẠI SỐ QUAN HỆ VÀ PHÉP TÍNH QUAN HỆ ..................... 94
5.1 Phép toán một ngội........................................................................................ 96
5.2 Các phép toán hai ngôi .................................................................................. 99
5.3 Các phép toán khác .................................................................................... 108
5.4 Phép tính quan hệ trên bộ ............................................................................ 112
5.5 Phép tính quan hệ trên miền ........................................................................ 120
CHƯƠNG 6: THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ ................................ 128
6.1 Các giai đoạn thiết kế cơ sở dữ liệu quan hệ .............................................. 130
6.2 Thiết kế cơ sở dữ liệu ý niệm ...................................................................... 133
6.3 Thiết kế cơ sở dữ liệu luận lý ...................................................................... 139
CHƯƠNG 7: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC ............................. 162
7.1 Định nghĩa dữ liệu và các kiểu dữ liệu ........................................................ 164
7.2 Các ràng buộc cơ bản trong SQL ................................................................ 168
7.3 Các câu lệnh thay đổi lược đồ cơ sở dữ liệu................................................ 174
7.4 Các truy vấn cơ bản trong SQL ................................................................... 176
7.5 Các câu truy vấn phức tạp ........................................................................... 185
7.6 Các lệnh cập nhật dữ liệu trong SQL........................................................... 196
CHƯƠNG 8: LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ ....... 206
8.1 Phụ thuộc hàm ............................................................................................. 208
8.2 Hệ tiên đề các phụ thuộc hàm và phép suy dẫn logic .................................. 211
8.3 Một số vấn đề khi thiết kế lược đồ cơ sở dữ liệu quan hệ ........................... 223
8.4 Phân tách quan hệ ........................................................................................ 224
8.5 Các dạng chuẩn của mô hình dữ liệu quan hệ ............................................ 231
8.6 Các phương pháp chuẩn hóa cơ sở dữ liệu quan hệ ................................... 237
CHƯƠNG 9: TỐI ƯU HÓA TRUY VẤN ....................................................... 250
9.1 Tổng quan về tối ưu hóa truy vấn ................................................................ 252
9.2 Phương pháp ước lượng cây đại số quan hệ ................................................ 253
9.3 Nguyên tắc tối ưu hóa .................................................................................. 254
9.4 Kỹ thuật tối ưu hóa các biểu thức đại số quan hệ ........................................ 256
9.5 Tối ưu hóa bằng khung nhìn ........................................................................ 265
LỜI MỞ ĐẦU
Trong thời đại bùng nổ thông tin, vai trò của hệ thống thông tin ngày càng trở nên quan
trọng đối với mọi lĩnh vực hoạt động của doanh nghiệp, đặc biệt trong việc nâng cao khả
năng cạnh tranh thông qua các hoạt động phát triển sản phẩm, giảm giá thành, mở rộng
thị trường, … Phần lớn các hệ thống thông tin trong doanh nghiệp đều đòi hỏi phải duy
trì toàn bộ dữ liệu ở quá khứ, không ngừng bổ sung thêm các dữ liệu mới được ghi nhận
ở hiện tại, và dự đoán các kết quả sẽ xuất hiện trong tương lai. Các dữ liệu này không chỉ
được sử dụng để thống kê, phân tích, đánh giá tổ chức ở thời điểm hiện tại, mà còn có
khả năng hỗ trợ đưa ra những quyết định ở nhiều cấp quan trọng khác nhau. Chính vì lẽ
đó, cơ sở dữ liệu trở thành một bộ phận gắn liền với hệ thống thông tin của doanh nghiệp,
và được coi là một phần không thể tách rời khỏi doanh nghiệp.
Thuật ngữ Cơ sở dữ liệu giờ đây được áp dụng rộng rãi trong nhiều lĩnh vực ngoài Công
nghệ thông tin, như là Tài chính – Ngân hàng, Kế toán – Kiểm toán, Thẩm định dự án, …
Bản thân môn học Cơ sở dữ liệu cũng xuất hiện ở các chương trình đào tạo khác nhau với
nhiều trình độ khác nhau từ trung cấp, cao đẳng, đến đại học, và cả sau đại học.
Trên thị trường hiện nay có khá nhiều tài liệu tham khảo về Cơ sở dữ liệu, nhưng hầu hết
đều nhắm đến đối tượng người đọc là những sinh viên khối ngành Công nghệ thông tin
hoặc có những kiến thức nhất định về công nghệ thông tin. Xuất phát từ thực tế đó, chúng
tôi bắt tay biên soạn giáo trình Cơ sở dữ liệu với cách tiếp cận đơn giản dễ hiểu, phù hợp
với mọi đối tượng người đọc, kể cả những người chưa từng tham gia bất kỳ lớp học nào
về công nghệ thông tin.
1
Giáo trình tập trung trình bày những kiến thức cần thiết về cơ sở dữ liệu, từ những khái
niệm cơ bản khi mới bắt đầu làm quen, cho đến những vấn đề quan trọng, có tính quyết
định tới sự thành bại khi xây dựng một cơ sở dữ liệu thực tế. Với các kiến thức lý thuyết
được trình bày một cách cô đọng, ngắn gọn và dễ hiểu; các ví dụ minh họa đa dạng,
phong phú, chúng tôi hy vọng giáo trình này đáp ứng được nhu cầu nghiên cứu và học
tập của nhiều đối tượng người học khác nhau.
Mặc dù có rất nhiều cố gắng trong công tác biên soạn, nhưng giáo trình chắc chắn sẽ có ít
nhiều khiếm khuyết. Chúng tôi rất mong nhận được các ý kiến đóng góp để có thể hoàn
thiện giáo trình trong lần tái bản tiếp theo.
TP. Hồ Chí Minh, tháng 07 năm 2011
NHÓM BIÊN SOẠN
2
C
CH
HƯ
ƯƠ
ƠN
NG
G
TỔNG QUAN VỀ
1
HỆ THỐNG CƠ SỞ DỮ LIỆU
Mục tiêu
Chương này cung cấp cho người đọc các khái niệm cơ bản về cơ sở dữ liệu
giúp có cái nhìn ban đầu về cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và mối
tương quan giữa chúng với nhau.
Nội dung
Hệ thống hướng tệp tin
Hệ thống hướng cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu
Người dùng cơ sở dữ liệu
Ngôn ngữ và giao diện ngôn ngữ dữ liệu
Email:
3
Giới thiệu
Khái niệm cơ sở dữ liệu ra đời từ rất sớm, và kể từ đó, cơ sở dữ liệu trở thành một
bộ phận không thể tách rời đối với các hệ thống thông tin trên máy tính. Cơ sở dữ
liệu ra đời trong bối cảnh hàng loạt vấn đề phát sinh trong các hệ thống sử dụng
tệp tin làm phương tiện để lưu trữ dữ liệu.
Chúng ta bắt đầu tìm hiểu cơ sở dữ liệu bằng việc giới thiệu một loại công cụ hỗ
trợ giao tiếp với cơ sở dữ liệu, đó là hệ quản trị cơ sở dữ liệu. Tiếp theo chúng ta
phân loại các đối tượng người dùng cơ sở dữ liệu dựa trên quyền hạn và trách
nhiệm của họ đối với cơ sở dữ liệu. Cuối cùng, chúng ta làm quen với ba nhóm
ngôn ngữ mà qua đó chúng ta tương tác với hệ quản trị cơ sở dữ liệu: ngôn ngữ
định nghĩa dữ liệu, ngôn ngữ thao tác dữ liệu, và ngôn ngữ điều khiển dữ liệu.
Email:
4
1.1 HỆ THỐNG HƯỚNG TỆP TIN
Một tệp tin có thể xem là một cặp hồ sơ lưu trữ các thông tin liên quan đến từng
công việc riêng biệt. Việc xử lý để lấy ra thông tin theo yêu cầu được thực hiện
một cách thủ công. Tuy nhiên, theo thời gian, khối lượng thông tin ngày càng lớn,
việc xử lý để lấy các thông tin theo yêu cầu ngày càng trở nên phức tạp. Do đó,
máy tính được đưa vào sử dụng. Các cặp hồ sơ được chuyển thành tệp trên máy
tính và việc xử lý thông tin được thể hiện bằng cách lập trình.
Hình 1.1. Mô hình hoạt động hệ thống hướng tệp tin.
Việc áp dụng hệ thống hướng tệp tin có một số ưu điểm như sau:
Việc xây dựng các ứng dụng cũng như các tệp tin dữ liệu đáp ứng cho từng
công việc riêng biệt cho nên về cơ bản ít tốn thời gian, không đòi hỏi đầu tư
nhiều về thời gian, vật chất, đồng thời lại có thể nhanh chóng đưa vào sử
dụng.
Thông tin được khai thác chỉ phục vụ cho một số ít người sử dụng với một
số mục đích cụ thể, cho nên tính an toàn cao, khả năng đáp ứng nhanh
chóng, kịp thời.
Tuy nhiên, các hệ thống kiểu này cũng có nhiều nhược điểm, cụ thể như sau:
Dư thừa thông tin, cùng một thông tin được lưu trữ nhiều điểm khác nhau.
Điều này gây ra việc lãng phí bộ nhớ, dễ dàng gây sai sót trong khi cập nhật
Email:
5
dữ liệu, dữ liệu trở nên thiếu đồng bộ, không nhất quán, thậm chí còn xung
đột lẫn nhau.
Sự phụ thuộc chặt chẽ giữa chương trình ứng dụng. Mỗi khi có sự thay đổi
về cấu trúc tệp và các dữ liệu trong tệp, chương trình ứng dụng khai thác
thông tin trên tệp đó cũng phải thay đổi theo. Điều này gây ra khó khăn lớn
cho việc bảo trì hệ thống.
Để khắc phục những nhược điểm nói trên, hệ thống hướng cơ sở dữ liệu ra đời và
không ngừng phát triển cho đến ngày nay.
1.2 HỆ THỐNG HƯỚNG CƠ SỞ DỮ LIỆU
Dữ liệu là những sự kiện có thể ghi lại được, và thường không có ý nghĩa. Trong
khi đó, thông tin là ý nghĩa của dữ liệu sau khi đã được người sử dụng xử lý trong
một ngữ cảnh cụ thể nào đó.
Cơ sở dữ liệu là hệ thống các dữ liệu có cấu trúc được lưu trữ trên các thiết bị lưu
trữ thứ cấp để thỏa mãn nhu cầu khai thác thông tin của nhiều người sử dụng hoặc
nhiều chương trình ứng dụng với nhiều mục đích khác nhau. Trong khái niệm này,
chúng ta cần nhấn mạnh cơ sở dữ liệu phải là một tập hợp các dữ liệu có liên quan
về mặt luận lý, chứ không phải là những dữ liệu rời rạc, không có mối quan hệ với
nhau. Các dữ liệu này phải có cấu trúc, và chúng phải có khả năng đáp ứng các
nhu cầu khai thác thông tin của nhiều người sử dụng.
Sự ra đời của các hệ thống hướng cơ sở dữ liệu đã giải quyết triệt để những vấn đề
mà hệ thống hướng tệp tin gặp phải trước đó, cụ thể như sau:
Giảm sự trùng lặp dữ liệu xuống mức thấp nhất, và do đó đảm bảo được
tính nhất quán và toàn vẹn dữ liệu.
Đảm bảo dữ liệu có thể được truy xuất theo nhiều cách khác nhau.
Khả năng chia sẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng
khác nhau dùng dữ liệu đó.
Email:
6
1.3 MỤC TIÊU CỦA HỆ THỐNG HƯỚNG CƠ SỞ
DỮ LIỆU
Hệ thống hướng cơ sở dữ liệu với những ưu điểm tuyệt đối của nó so với hệ thống
hướng tệp tin ra đời trước đó đã nhanh chóng được giới chuyên môn chấp nhận và
đưa vào triển khai. Khi xây dựng một hệ thống hướng cơ sở dữ liệu thương mại
hay phi thương mại, chúng ta đều hướng tới thực hiện các mục tiêu chính yếu sau
đây:
a) Đảm bảo ý nghĩa của dữ liệu. Dữ liệu có tính chia sẻ, nhiều người có
quyền sử dụng, thậm chí là thay đổi giá trị của dữ liệu, từ đó làm thay đổi ý
nghĩa của dữ liệu. Do đó, dữ liệu cần thường xuyên được theo dõi, kiểm tra,
rà soát, và cập nhật để phản ánh đúng giá trị mà nó đại diện.
b) Đảm bảo tính riêng tư và quyền khai thác dữ liệu của người sử dụng.
Mặc dù dữ liệu có tính chia sẻ, nhưng không phải tất cả dữ liệu đều được
chia sẻ, hoặc là không phải bất kỳ người sử dụng nào cũng có quyền khai
thác như nhau đối với một dữ liệu cụ thể. Người sử dụng không chỉ có thể
thiết lập các thông số liên quan đến việc chia sẻ dữ liệu dùng chung, mà còn
có thể cấp quyền và thu hồi quyền khai thác dữ liệu đối với những người
dùng khác trong hệ thống.
c) Đảm bảo giải quyết xung đột dữ liệu. Xuất phát từ việc dữ liệu được chia
sẻ, sự xung đột về quyền khai thác dữ liệu sẽ xuất hiện giữa những người
dùng khác nhau trong hệ thống. Cùng một dữ liệu đó, cùng lúc có nhiều yêu
cầu thực hiện thêm, sửa, hay xóa. Hệ thống nhìn chung không thể xử lý
đồng thời tất cả các yêu cầu đó cùng lúc. Do đó, chúng ta cần phải duy trì
cơ chế ưu tiên truy xuất dữ liệu cũng như cơ chế giải quyết tình trạng khóa
chết trong quá trình khai thác cạnh tranh.
d) Đảm bảo toàn vẹn dữ liệu khi có sự cố. Cơ sở dữ liệu thường được xem là
một bộ sưu tập dữ liệu trong một khoảng thời gian dài thường là vài năm,
vài chục năm, thậm chí cả trăm năm. Do đó, để đảm bảo dữ liệu được lưu
Email:
7
trữ liên tục, chúng ta cần phải xây dựng cơ chế sao lưu, phục hồi nhằm đảm
bảo dữ liệu được nguyên vẹn và không bị gián đoạn trong trường hợp hệ
thống gặp sự cố.
1.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
1.4.1 Định nghĩa
Hệ quản trị cơ sở dữ liệu nhìn chung là một hệ thống phần mềm hướng đến việc
thực hiện các nhiệm vụ sau đây:
Định nghĩa cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các cấu
trúc, và các ràng buộc cho dữ liệu sẽ được lưu trữ trong cơ sở dữ liệu.
Xây dựng cơ sở dữ liệu bao gồm việc lưu trữ các dữ liệu trên các phương
tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát.
Thao tác cơ sở dữ liệu bao gồm việc thực hiện các chức năng truy vấn cơ
sở dữ liệu để lấy ra những thông tin cần thiết, cập nhật cơ sở dữ liệu để
phản ánh sự các thay đổi trong thế giới thực và tạo ra các báo cáo từ dữ liệu
trong cơ sở dữ liệu.
Nói cách khác, hệ quản trị cơ sở dữ liệu là công cụ giúp người sử dụng hay các
chương trình ứng dụng tương tác với cơ sở dữ liệu. Cả ba yếu tố này hình thành
nên một hệ thống hướng cơ sở dữ liệu (xem hình 1.2).
Hình 1.2. Mô hình hoạt động của hệ thống hướng cơ sở dữ liệu.
Email:
8
1.4.2 Phân loại
Thực tế, có rất nhiều tiêu chí có thể được sử dụng để phân loại các hệ quản trị cơ
sở dữ liệu. Ở đây, chúng tôi chỉ giới thiệu ba tiêu chí quan trọng nhất, đó là mô
hình dữ liệu, tính đa người dùng, và tính phân tán của hệ quản trị cơ sở dữ liệu.
a) Dựa trên mô hình dữ liệu
Mô hình dữ liệu quan hệ (relational data model): là mô hình dữ liệu chủ
yếu được sử dụng trong hầu hết các hệ quản trị cơ sở dữ liệu thương mại
hiện nay.
Mô hình dữ liệu phân cấp ( hierarchical data model)và mô hình dữ liệu
mạng (network data model): phổ biến trong quá khứ, những ứng dụng
lâu đời vẫn còn sử dụng các mô hình này cho tới ngày nay.
Mô hình dữ liệu đối tượng (object oriented data model): được hiện thực
trong một số hệ thống thương mại nhưng chưa được sử dụng rộng rãi.
Mô hình dữ liệu đối tượng – quan hệ (object relational data model): ra
đời do quá trình phát triển các hệ quản trị cơ sở dữ liệu có liên quan nối
tiếp với nhau, là sự kết hợp của mô hình quan hệ và nhiều khái niệm
trong cơ sở dữ liệu đối tượng.
b) Dựa trên số người dùng mà hệ thống hỗ trợ
Hệ thống đơn người dùng (single-user database management system):
chỉ hỗ trợ mỗi người dùng tại một thời điểm. Loại này thường chỉ sử
dụng với các máy PC.
Hệ thống đa người dùng (multi-user database management system): hỗ
trợ nhiều người dùng đồng thời, loại này chiếm đa số các loại hệ quản
trị cơ sở dữ liệu.
c) Dựa trên vị trí đặt hệ thống
Hệ quản trị cơ sở dữ liệu tập trung (centralized data management
system): là hệ quản trị cơ sở dữ liệu có dữ liệu chỉ chứa tại một nơi duy
nhất. Loại này vẫn có thể hỗ trợ đa người dùng.
Email:
9
Hệ quản trị cơ sở dữ liệu phân tán (distributed data management
system): chứa dữ liệu và phần mềm hệ quản trị cơ sở dữ liệu tại nhiều
nơi khác nhau, kết nối với nhau thông qua đường truyền mạng.
1.4.3 Các chức năng của một hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu được đánh giá là tốt, nếu thực hiện được các chức
năng cơ bản sau đây:
Lưu trữ các định nghĩa, các mô tả về bản thân cơ sở dữ liệu (siêu dữ liệu)
trong một từ điển dữ liệu. Hệ quản trị cơ sở dữ liệu sử dụng từ điển dữ liệu
để tìm kiếm các cấu trúc dữ liệu và các mối liên kết theo yêu cầu của người
sử dụng. Mọi sự thay đổi trong cơ sở dữ liệu đều được ghi nhận vào từ điển
dữ liệu. Nói cách khác, sự độc lập giữa chương trình ứng dụng và dữ liệu
được đảm bảo tối đa.
Tạo ra các cấu trúc phức tạp theo yêu cầu để lưu trữ dữ liệu. Người sử dụng
được giải phóng khỏi việc định nghĩa và lập trình cho các đặc trưng vật lý
của dữ liệu. Công việc này do hệ quản trị cơ sở dữ liệu đảm nhiệm.
Chuyển đổi yêu cầu ý niệm về dữ liệu của người sử dụng thành các câu
lệnh xác định vị trí lưu trữ vật lý và lấy ra các dữ liệu theo yêu cầu.
Tạo ra một cơ chế phân quyền và gán quyền chặt chẽ, đảm bảo sự riêng tư
và an toàn bảo mật trong cơ sở dữ liệu.
Hỗ trợ cơ chế cho phép nhiều người sử dụng cùng truy cập đến cơ sở dữ
liệu.
Cung cấp các phương thức sao lưu, phục hồi dữ liệu nhằm đảm bảo sự an
toàn và toàn vẹn dữ liệu.
Cung cấp các phương tiện ngôn ngữ hỗ trợ người sử dụng thực hiện các tác
vụ liên quan tới cơ sở dữ liệu.
Email:
10
1.4.4 Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu được phân thành nhiều phân hệ, mỗi phân hệ thực
hiện một chức năng trong hệ thống tổng thể. Hình 1.3 minh họa các thành phần cơ
bản của một hệ quản trị cơ sở dữ liệu.
Trong số các thành phần cấu thành nên hệ quản trị cơ sở dữ liệu, bản thân cơ sở dữ
liệu và từ điển dữ liệu thường được lưu trữ trên ổ đĩa cứng và do hệ điều hành
quản lý theo cơ chế input, output. Bộ quản lý dữ liệu lưu trữ cấp cao sử dụng các
thông tin về hệ quản trị cơ sở dữ liệu vốn được lưu trữ trên ở đĩa cứng. Đường kẻ
đứt nối và các điểm đánh dấu A, B, C, D, E cho biết tác động của bộ quản lý dữ
liệu lưu trữ cấp cao đối với hoạt động của hệ quản trị cơ sở dữ liệu. Nhiệm vụ
chính của bộ quản lý dữ liệu lưu trữ cấp cao là đảm bảo quá trình trao đổi dữ liệu
giữa ổ đĩa lưu trữ với dữ liệu của hệ thống thông qua việc quản lý hoạt động của
các bộ đệm trong bộ nhớ chính. Một khi dữ liệu nằm trong các bộ đệm của bộ nhớ
chính, không chỉ bản thân hệ quản trị cơ sở dữ liệu mà cả những trình ứng dụng
cũng có thể sử dụng dữ liệu này.
Trình biên dịch ngôn ngữ định nghĩa dữ liệu thực hiện các định nghĩa lược đồ
được khai báo trong các lệnh định nghĩa dữ liệu và lưu giữ thông tin về các lược
đồ này trong từ điển dữ liệu của hệ quản trị cơ sở dữ liệu. Từ điển dữ liệu về cơ
bản là nơi chứa đựng toàn bộ thông tin về cơ sở dữ liệu như là tên, kích thước các
tệp tin, tên và kiểu của các thực thể dữ liệu, thông tin về các lược đồ, các ràng
buộc trong cơ sở dữ liệu. Các thành phần của hệ quản trị cơ sở dữ liệu sẽ sử dụng
các thông tin trong từ điển dữ liệu mỗi khi có nhu cầu.
Bộ xử lý cơ sở dữ liệu chịu trách nhiệm xử lý các truy cập cơ sở dữ liệu mỗi khi
chúng xuất hiện. Nó tiếp nhận và thực thi các yêu cầu từ người sử dụng hoặc trình
ứng dụng thông qua các trình biên dịch tương ứng như là trình biên dịch ngôn ngữ
định nghĩa dữ liệu, trình biên dịch ngôn ngữ thao tác dữ liệu, trình biên dịch truy
Email:
11
vấn, ... Các thành phần này phối hợp hoạt động thành một thể thống nhất, đảm bảo
thực hiện đầy đủ các chức năng của một hệ quản trị cơ sở dữ liệu.
Hình 1.3. Cấu trúc tổng thể của hệ quản trị cơ sở dữ liệu
1.5 NGƯỜI DÙNG CƠ SỞ DỮ LIỆU
Như đã trình bày ở trên, hệ quản trị cơ sở dữ liệu là bộ công cụ hỗ trợ thực hiện
các hoạt động trên một (số) cơ sở dữ liệu nào đó. Tuy nhiên, không phải người sử
dụng nào cũng được quyền thao tác trực tiếp hoặc gián tiếp (thông qua trình ứng
dụng) trên hệ quản trị cơ sở dữ liệu. Ở đây, chúng ta sẽ phân biệt một số nhóm
người dùng cơ sở dữ liệu dựa trên sự phân loại quyền thực hiện các thao tác trên
hệ quản trị cơ sở dữ liệu.
Email:
12
1.5.1 Nhóm quản trị cơ sở dữ liệu
Quản trị viên cơ sở dữ liệu là nhóm người dùng được phân quyền mạnh nhất trong
hệ thống hướng cơ sở dữ liệu, nhóm người dùng này có quyền thực hiện mọi thao
tác trên cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các phần mềm có liên quan
nhằm đảm bảo hoạt động hiệu quả, chính xác, nhanh chóng và liên tục của hệ
thống. Cụ thể, nhóm quản trị cơ sở dữ liệu có quyền thực hiện các hoạt động sau
đây:
Phân quyền truy cập cơ sở dữ liệu.
Giám sát quá trình vận hành cơ sở dữ liệu.
Sao lưu, khôi phục cơ sở dữ liệu.
Phân bổ tài nguyên phần cứng, phần mềm khi hệ thống có nhu cầu.
Chịu trách nhiệm trong trường hợp hệ thống có lỗ hổng bảo mật hoặc thời
gian đáp ứng chậm.
1.5.2 Nhóm thiết kế cơ sở dữ liệu
Nhóm thiết kế cơ sở dữ liệu là nhóm người chịu trách nhiệm về việc phân tích và
thiết kế cơ sở dữ liệu, đảm bảo cơ sở dữ liệu được thiết kế đúng đắn, chính xác,
hiệu quả, an toàn, đáp ứng tất cả các yêu cầu về dữ liệu trong hiện tại và tương lai.
Cụ thể, nhóm thiết kế cơ sở dữ liệu thực hiện các công việc sau đây:
Lựa chọn các cấu trúc phù hợp để biểu diễn và lưu trữ dữ liệu.
Làm việc với những người dùng cơ sở dữ liệu tiềm năng để nắm bắt được
yêu cầu của họ nhằm đảm bảo các bản thiết kế phù hợp với yêu cầu.
Liên hệ với từng nhóm người dùng để xây dựng các khung nhìn dữ liệu cho
phù hợp với cấu trúc cơ sở dữ liệu và yêu cầu của mỗi nhóm. Bản thiết kế
cuối cùng phải thỏa mãn yêu cầu của tất cả các nhóm.
Thông thường, nhóm thiết kế cơ sở dữ liệu được xếp chung với nhóm quản trị cơ
sở dữ liệu.
Email:
13
1.5.3 Nhóm người dùng cuối
Người dùng cuối là nhóm người có nhu cầu truy cập cơ sở dữ liệu để thực hiện các
thao tác khai thác hay quản lý nội dung của cơ sở dữ liệu. cơ sở dữ liệu tồn tại
chính là để đáp ứng nhu cầu dữ liệu của nhóm người dùng này. Cụ thể, nhóm
người dùng cuối có nhu cầu thực hiện các thao tác sau đây:
Truy xuất dữ liệu phục vụ nhu cầu tương tác hoặc thống kê với nhiều khung
nhìn khác nhau.
Cập nhật dữ liệu theo hình thức trực tuyến hoặc theo phiên.
Tùy từng sự phân quyền, gán quyền cụ thể, người dùng cuối có thể tương tác trực
tiếp với cơ sở dữ liệu thông qua hệ quản trị cơ sở dữ liệu, hoặc tương tác gián tiếp
với cơ sở dữ liệu thông qua các chương trình ứng dụng có khai báo sử dụng cơ sở
dữ liệu.
1.5.4 Nhà phân tích hệ thống và nhân viên lập trình ứng dụng
Nhà phân tích hệ thống có nhiệm vụ xác định yêu cầu của những người dùng cuối
để xây dựng đặc tả các giao tác đáp ứng nhu cầu của họ. Sau đó, nhân viên lập
trình ứng dụng sử dụng những đặc tả này để hiện thực chương trình, và họ tiến
hành thử nghiệm, xử lý lỗi, lập tài liệu cũng như bảo trì những giao tác được xây
dựng sẵn này. Cả hai loại người dùng này thường được gọi chung là kỹ sư phần
mềm. Họ cần phải thật quen thuộc với cấu trúc của hệ quản trị cơ sở dữ liệu để
hoàn thành công việc của mình.
1.5.5 Nhân viên bảo trì hệ thống
Nhóm người dùng cuối cùng, nhưng không kém phần quan trọng đối với hệ thống
hướng cơ sở dữ liệu đó là nhóm nhân viên bảo trì hệ thống. Những người này tuy
không trực tiếp làm việc với cơ sở dữ liệu nhưng công việc của họ nhằm giúp cho
hệ thống hoạt động liên tục 24/24. Nhiệm vụ chính của nhóm người dùng này bao:
thiết kế, phát triển và vận hành hệ quản trị cơ sở dữ liệu. Nhóm nhân viên bảo trì
hệ thống được phân loại như sau:
Email:
14
Nhân viên thiết kế/ hiện thực hệ thống: làm nhiệm vụ thiết kế và hiện thực
giao diện và các chức năng của hệ quản trị cơ sở dữ liệu nhằm cung cấp cho
người sử dụng một phần mềm đóng gói hoàn chỉnh.
Nhân viên phát triển công cụ: làm nhiệm vụ thiết kế và hiện thực các gói
phần mềm đi kèm với hệ quản trị cơ sở dữ liệu nhằm nâng cao hiệu suất
trong thiết kế và sử dụng cơ sở dữ liệu. Chúng bao gồm các gói phần mềm
hỗ trợ việc thiết kế cơ sở dữ liệu, theo dõi hiệu suất, giao diện ngôn ngữ tự
nhiên, đồ họa, giả lập, mô phỏng, và thử nghiệm dữ liệu. Những công cụ đi
kèm này thường được các nhà cung cấp phát triển và đưa vào thị trường.
1.6 NGÔN NGỮ VÀ GIAO DIỆN NGÔN NGỮ DỮ
LIỆU
Hệ quản trị cơ sở dữ liệu về cơ bản là một phần mềm cung cấp nhiều tiện ích hỗ
trợ người dùng thực hiện các thao tác quản lý, thiết kế, cập nhật và truy vấn dữ
liệu. Tuy nhiên, cũng như nhiều hệ thống khác, để có thể thao tác được với hệ
quản trị cơ sở dữ liệu, người dùng cần phải thực hiện đúng các cơ chế, nắm rõ các
quy tắc do hệ quản trị cơ sở dữ liệu đặt ra. Nói cách khác, để hệ quản trị cơ sở dữ
liệu thực hiện đúng ý đồ, người sử dụng cần phải truyền đạt mệnh lệnh theo đúng
cách mà hệ quản trị cơ sở dữ liệu quy định.
Hệ thống các hướng dẫn thực hiện mệnh lệnh do hệ quản trị cơ sở dữ liệu quy định
được thể hiện thông qua tập ngôn ngữ và các giao diện dành riêng cho từng nhóm
đối tượng người dùng. Chỉ những mệnh lệnh được quy định trong tập ngôn ngữ
này mới được hệ quản trị cơ sở dữ liệu thực thi, ngược lại, người sử dụng sẽ nhận
được thông báo lỗi tương ứng.
Trong phần này, chúng ta sẽ lần lượt tìm hiểu ba ngôn ngữ dữ liệu phổ biến nhất
được hệ quản trị cơ sở dữ liệu hỗ trợ người sử dụng:
Ngôn ngữ định nghĩa dữ liệu.
Ngôn ngữ thao tác dữ liệu.
Email:
15
Ngôn ngữ điều khiển dữ liệu.
1.6.1 Ngôn ngữ định nghĩa dữ liệu
Ngôn ngữ định nghĩa dữ liệu là loại ngôn ngữ được sử dụng để định nghĩa cấu trúc
của các thành phần trong cơ sở dữ liệu. Khi đó hệ quản trị cơ sở dữ liệu đóng vai
trò là một trình biên dịch chuyên xử lý các câu lệnh định nghĩa dữ liệu nhằm xác
định đặc tả cấu trúc các lược đồ và lưu trữ các đặc tả này trong danh mục của cơ
sở dữ liệu.
Thông qua ngôn ngữ định nghĩa dữ liệu, chúng ta có thể tạo mới, chỉnh sửa, và
xóa các lược đồ trong cơ sở dữ liệu. Do vai trò quan trọng của mình, cho nên ngôn
ngữ định nghĩa dữ liệu được dành riêng cho nhóm quản trị và thiết kế cơ sở dữ
liệu.
1.6.2 Ngôn ngữ thao tác dữ liệu
Khi các lược đồ đã được hiện thực thành các cơ sở dữ liệu, người sử dụng có nhu
cầu thực hiện các thao tác như thu thập, chèn, sửa, và xóa dữ liệu. Hệ quản trị cơ
sở dữ liệu cung cấp cho người sử dụng ngôn ngữ thao tác dữ liệu như là một
phương tiện giúp họ tương tác với cơ sở dữ liệu. Do tính phổ biến của mình, ngôn
ngữ này dành cho mọi đối tượng người sử dụng.
1.6.3 Ngôn ngữ điều khiển dữ liệu
Ngoài hai loại ngôn ngữ dữ liệu nói trên, hệ quản trị cơ sở dữ liệu còn cung cấp
cho người dùng ngôn ngữ điều khiển dữ liệu nhằm hỗ trợ họ thực hiện các khai
báo bảo mật thông tin và cấp quyền hạn khai thác cơ sở dữ liệu cho những người
sử dụng khác trong hệ thống. Ngôn ngữ này dành cho nhóm quản trị viên cơ sở dữ
liệu và một số người dùng đặc biệt khác trong hệ thống.
Email:
16
1.6.4 Các giao diện ngôn ngữ dữ liệu
Để thuận tiện cho người sử dụng thực hiện các tác vụ trên cơ sở dữ liệu, hệ quản
trị cơ sở dữ liệu cung cấp các giao diện thích hợp cho từng nhóm người sử dụng
cơ sở dữ liệu cũng như cho từng ngôn ngữ dữ liệu.
Các loại giao diện được hệ quản trị cơ sở dữ liệu hỗ trợ hiện nay bao gồm:
Giao diện trình đơn dùng cho web client hay trình duyệt: loại này thường
gồm các danh mục lựa chọn gọi là trình đơn nhằm hướng dẫn người dùng
các bước tạo lập yêu cầu.
Giao diện form: để thêm dữ liệu vào, người dùng có thể điền đầy đủ thông
tin vào một form hướng dẫn. Ngoài ra, họ còn có thể điền chỉ một vài thông
tin vào form rồi yêu cầu hệ quản trị cơ sở dữ liệu thu thập những dữ liệu
trùng khớp với các mục đã điền. Các form thường xây dựng dành cho
những dùng thông thường với các giao tác đã được tạo sẵn.
Giao diện người dùng đồ họa: hiển thị mỗi lược đồ cho người dùng dưới
dạng sơ đồ. Người dùng sẽ đặc tả truy vấn bằng việc thao tác với các sơ đồ
này. Loại giao diện này thường bao gồm cả trình đơn và form.
Giao diện ngôn ngữ tự nhiên: loại này chấp nhận các yêu cầu bằng tiếng
Anh hay một ngôn ngữ khác. Một giao diện ngôn ngữ tự nhiên thường có
“lược đồ” của riêng nó, tương tự như lược đồ ý niệm cơ sở dữ liệu, và một
từ điển các từ vựng chính.
Giao diện này hoạt động bằng cách tham khảo các từ vựng trong lược đồ
của nó cũng như trong từ điển để thông dịch các yêu cầu. Nếu thông dịch
thành công, giao diện này sẽ sinh một truy vấn cấp cao tương ứng và gửi
đến hệ quản trị cơ sở dữ liệu yêu cầu xử lý. Ngược lại, giao diện sẽ phát
sinh một hộp thoại yêu cầu người dùng hiệu chỉnh yêu cầu.
Giao diện dành cho người dùng thông thường: những loại người dùng
thông thường như các giao dịch viên ngân hàng, thường chỉ có một số thao
tác lặp đi lặp lại trên cơ sở dữ liệu. Các nhà phân tích và thiết kế sẽ tạo cho
Email:
17
mỗi nhóm người dùng này một loại giao diện đặc biệt bao gồm các câu lệnh
tắt giúp họ giảm bớt thời gian mô tả những tác vụ thường xuyên sử dụng.
Giao diện dành cho quản trị cơ sở dữ liệu: hầu hết hệ quản trị cơ sở dữ liệu
đều chứa một số câu lệnh cần quyền truy cập đặc biệt mà chỉ có quản trị cơ
sở dữ liệu mới có quyền thực hiện. Những câu lệnh này bao gồm việc tạo
tài khoản, thiết lập các thông số hệ thống, gán thông tin tài khoản, chỉnh
sửa lược đồ và tái tổ chức cấu trúc lưu trữ của cơ sở dữ liệu.
1.7 TÓM TẮT
Trong chương này chúng ta định nghĩa cơ sở dữ liệu như là một bộ sưu tập các dữ
liệu có liên quan về mặt luận lý, trong đó dữ liệu được hiểu như là những sự kiện
có thể được ghi lại được và thường không có ý nghĩa. Cơ sở dữ liệu thông thường
phản ánh thế giới thực theo một quan điểm cụ thể hướng tới phục vụ cho một số
nhóm người vì một hoặc nhiều mục đích cụ thể nào đó. Hệ quản trị cơ sở dữ liệu
là một phần mềm thực hiện chức năng hiện thực và duy trì cơ sở dữ liệu trên máy
tính. Bản thân cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu là hai thành phần cấu
thành nên hệ thống hướng cơ sở dữ liệu. Tiếp theo chúng ta tìm hiểu nhiệm vụ,
quyền hạn cụ thể cho từng nhóm người sử dụng cơ sở dữ liệu để cuối cùng, chúng
ta nghiên cứu các ngôn ngữ dữ liệu và giao diện ngôn ngữ dữ liệu hỗ trợ người
dùng tương tác với hệ quản trị cơ sở dữ liệu.
Email:
18
C
CH
HƯ
ƯƠ
ƠN
NG
G
2
MÔ HÌNH THỰC THỂ KẾT HỢP
Mục tiêu
Chương này tập trung nghiên cứu một phương pháp dùng để xác định cấu trúc của
cơ sở dữ liệu. Phương pháp này được xây dựng dựa trên mô hình thực thể kết hợp.
Đây được xem như là nhiệm vụ quan trọng đầu tiên mà nhân viên thiết kế dữ liệu
phải thực hiện trong quy trình phát triển cơ sở dữ liệu cho hệ thống thông tin.
Nội dung
Tổng quan về mô hình thực thể kết hợp.
Các thành phần của mô hình thực thể kết hợp.
Các vấn đề liên quan đến hoạt động thiết kế mô hình thực thể kết hợp.
Email:
22
Giới thiệu
Mô hình thực thể kết hợp từ khi được ra đời đã được xem như là nền tảng của các
phương pháp phân tích và thiết kế hệ thống. Nó được sử dụng rộng rãi trong các
công cụ hỗ trợ công nghệ phần mềm (computer-aided software engineering, viết
tắt là CASE), và trong các hệ thống cơ sở dữ liệu. Mô hình này được xem là nền
tảng của mô hình chu trình phát triển ứng dụng và phần mềm hệ quản trị cơ sở dữ
liệu DB2 cùng của IBM.
Mặc dù hiện nay, trong thiết kế cơ sở dữ liệu người ta thường ưu tiên sử dụng
ngôn ngữ mô hình hóa hợp nhất (unified modelling language, viết tắt là UML),
nhưng mô hình thực thể kết hợp tỏ ra thích hợp hơn đối với những người mới bắt
đầu nghiên cứu về cơ sở dữ liệu và tìm cách xây dựng cơ sở dữ liệu đầu tiên cho
bản thân mình.
Chính vì lý do đó, chúng tôi chọn mô hình thực thể kết hợp làm đối tượng nghiên
cứu trong giáo trình này nhằm tạo điều kiện thuận lợi để người đọc có thể dễ dàng
tiếp cận và thực hiện thành thạo các thao tác đặc tả dữ liệu bằng ngôn ngữ mô hình
hóa theo hướng thực thể kết hợp.
Email:
23
2.1 MÔ HÌNH THỰC THỂ KẾT HỢP
Như chúng ta đã biết, hầu hết các ứng dụng công nghệ thông tin hiện nay đều cần
sử dụng đến cơ sở dữ liệu cho dù với những mục đích khác nhau. Hai hệ thống
phần mềm có cùng chức năng những được áp dụng tại hai tổ chức khác nhau thì
không chỉ khác nhau về mặt tổ chức, mà còn có thể khác nhau về mặt dữ liệu. Nói
cách khác, cơ sở dữ liệu luôn phản ánh đúng thực trạng của tổ chức đang sử dụng
nó. Làm thế nào để chúng ta có thể đạt được một cơ sở dữ liệu thể hiện nguyên
vẹn tình trạng hiện tại của tổ chức và đáp ứng đầy đủ mọi nhu cầu về dữ liệu của
người sử dụng? Chúng ta nhất thiết cần phải xây dựng bản thiết kế cơ sở dữ liệu
cho tổ chức.
Mô hình thực thể kết hợp (entity relationship model) được xây dựng dựa trên sự
đặc tả thế giới thực bao gồm một tập các đối tượng cơ sở có tên gọi là tập thực thể,
và một tập các liên kết giữa các đối tượng này với nhau. Mô hình này còn được
gọi là mô hình ý niệm hay là mô hình khái niệm vì nó được xây dựng chủ yếu trên
nền tảng các khái niệm trong tổ chức, và thực tế, nó được dùng để biểu diễn cấu
trúc tổng thể của tổ chức. Mô hình thực thể kết hợp là một trong hai phương pháp
thiết kế cơ sở dữ liệu phổ biến nhất hiện nay (phương pháp còn lại sử dụng ngôn
ngữ mô hình hóa hợp nhất UML).
Mục đích của việc xây dựng mô hình thực thể kết hợp là cung cấp cho chúng ta
một bức tranh tổng thể về kết cấu dữ liệu của hệ thống, mà không quan tâm đến
việc sẽ hiện thực dữ liệu đó ra sao. Như vậy, mô hình thực thể kết hợp sẽ giúp
chúng ta trả lời câu hỏi trong cơ sở dữ liệu có những dữ liệu gì và chúng liên quan
với nhau ra sao, chứ không cho biết làm sao để đạt được cơ sở dữ liệu đó.
Email:
24
2.2 MỘT ỨNG DỤNG CỦA MÔ HÌNH THỰC THỂ
KẾT HỢP
Để thuận lợi cho người đọc, trong toàn bộ giáo trình này chúng tôi sử dụng duy
nhất một cơ sở dữ liệu để minh họa cho mọi ví dụ. Cơ sở dữ liệu này xây dựng
dựa trên nhu cầu thực tế của một công ty chuyên về công nghệ thông tin, cụ thể
như sau:
Công ty được tổ chức thành nhiều đơn vị với các thông tin bao gồm: tên
đơn vị, số hiệu đơn vị. Mỗi đơn vị có thể có nhiều văn phòng đại diện tại
những địa điểm khác nhau. Đơn vị được quản lý bởi một nhân viên giữ
chức vụ trưởng đơn vị. Hệ thống cũng yêu cầu phải duy trì thông tin về
ngày ký quyết định bổ nhiệm cho từng trưởng đơn vị.
Mỗi đơn vị điều hành nhiều dự án. Thông tin về dự án bao gồm: tên dự án,
số hiệu, và địa điểm thực hiện dự án.
Công ty duy trì thông tin về nhân viên bao gồm: họ và tên, mã số, mức
lương, giới tính, ngày sinh và ngày ký hợp đồng làm việc với công ty. Mỗi
nhân viên thuộc biên chế một đơn vị nhưng có thể tham gia nhiều dự án
khác nhau. Các dự án này không nhất thiết phải do cùng một đơn vị quản
lý. Công ty cũng theo dõi thời gian (tính bằng số giờ làm việc trong tuần)
tham gia từng dự án của mỗi nhân viên. Ngoài ra, mỗi nhân viên còn chịu
sự giám sát của một nhân viên khác.
Cuối cùng, công ty có chế độ bảo hiểm dành cho người thân của nhân viên.
Thông tin về người thân bao gồm tên, giới tính, ngày sinh và mối liên hệ
với nhân viên.
Do hầu hết các hệ quản trị cơ sở dữ liệu cũng như các công cụ phát triển phần
mềm được xây dựng trên nền ngôn ngữ tiếng Anh, cho nên chúng ta cũng cần ánh
xạ tất cả thông tin được yêu cầu trên đây sang ngôn ngữ tiếng Anh để thuận tiện
trong quá trình cài đặt và sử dụng sau này. Từ bản đặc tả nói trên, chúng ta nhận
Email:
25