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

giáo trình phân tích, thiết kế xây dựng và quản trị các hệ thống cơ sở dữ liệu

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 (4.09 MB, 400 trang )

CHƯƠNG TRÌNH TỔNG THỂ CẢI CÁCH HÀNH
CHÍNH
CỦA CHÍNH PHỦ GIAI ĐOẠN (2001-2010)
BAN ĐIỀU HÀNH ĐỀ ÁN 112






GIÁO TRÌNH
PHÂN TÍCH, THIẾT KẾ,
XÂY DỰNG VÀ QUẢN TRN
CÁC HỆ THỐNG CƠ SỞ DỮ LIỆU
(Giáo trình nộp lần 2)









Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 2



Tháng 8 - 2004
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 3
MỤC LỤC


Lời giới thiệu 10
Chủ đề I: Khái niệm cơ sở dữ liệu 16
1. Giới thiệu chung 16
2. Các khái niệm cơ bản 17
2.1. Cơ sở dữ liệu 17
a. Các hệ thống xử lý tệp truyền thống 18
b. Cách tiếp cận cơ sở dữ liệu 22
2.2. Dữ liệu và thông tin 26
a. Dữ liệu 26
b. Dữ liệu và thông tin 28
c. Siêu dữ liệu 30
2.3. Kiều thực thể và bảng dữ liệu 32
a. Thực thể 32
b. Kiểu thực thể 32
c. Bảng dữ liệu hay quan hệ 35
2.4. Thuộc tính và trường dữ liệu 39
a. Thuộc tính 39
b. Trường dữ liệu 41
2.5. Liên kết giữa các thực thể 42
2.6. Khái niệm toàn vẹn dữ liệu 44
3. Ví dụ về một cơ sở dữ liệu 45
4. Các mô hình dữ liệu 48
4.1. Khái quát chung 48
4.2. Mô hình dữ liệu quan hệ 50
4.3. Một số mô hình dữ liệu khác 51
a. Mô hình dữ liệu mạng và mô hình dữ liệu phân cấp
51
b. Mô hình dữ liệu hướng đối tượng 52
5. Kho dữ liệu 53
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 4

6. Kết luận 54
7. Bài tập 55
Chủ đề II: Phương pháp phân tích, thiết kế và xây dựng
các hệ thống CSDL 56
1. Khái quát chung 56
2. Phân tích yêu cầu 57
2.1. Xác định dữ liệu cần lưu trữ 60
2.2. Xác định ứng dụng sẽ được cài đặt trên cơ sở dữ
liệu 61
2.3. Xác định các thao tác thường xuyên được thực hiện
62
2.4. Một số kỹ thuật phân tích yêu cầu 63
a
. Kỹ thuật phỏng vẫn 63
b. Kỹ thuật sử dụng phiếu khảo sát 65
c. Kỹ thuật phân tích tài liệu 65
3. Thiết kế cơ sở dữ liệu mức khái niệm 66
3.1. Lựa chọn giữa kiểu thực thể mạnh và kiểu thực thể
yếu 67
a. Kiểu thực thể mạnh 67
b. Kiểu thực thể yếu 68
3.2. Lựa chọn giữa các loại thuộc tính 70
a. Thuộc tính đơn và gộp 70
b. Thuộc tính đơn trị và thuộc tính đa trị 71
c. Thuộc tính lưu trữ và thuộc tính dẫn xuất 72
d. Thuộc tính khoá hay thuộc tính định danh 73
3.3. Lựa chọn giữa các loại liên kết 77
a. Ba khái niệm cơ bản về liên kết 77
b. Các liên kết một-một (1:1) 81
c. Các liên kết một-nhiều (1:N) 82

d. Các liên kết nhiều-nhiều (M:N) 83
e. Thuộc tính cho liên kết 85
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 5
3.4. Lựa chọn giữa kiểu thực thể và thuộc tính 87
3.5. Lựa chọn giữa kiểu thực thể và liên kết 89
3.6. Các phân cấp “là-một” 92
3.7. Một sơ đồ thực thể liên kết 95
3.8. Mô tả các ràng buộc trên dữ liệu 105
4. Thiết kế cơ sở dữ liệu mức logic 109
4.1. Giới thiệu chung về ngôn ngữ SQL 109
4.2. Ràng buộc toàn vẹn 110
a. Ràng buộc miền 111
b. Ràng buộc khoá 113
c. Các kích hoạt 114
4.3. Lựa chọn hệ quản trị CSDL 116
4.4. Bước một: Chuyển đổi các kiểu thực thể thông
thường 117
4.5. Bước hai: Chuyển đổi các kiểu thực thể yếu 121
4.6. Bước ba: Chuyển đổi các liên kết giữa hai kiểu thực
thể 124
a. Chuyển đổi các liên kết một-nhiều 124
b. Chuyển đổi các liên kết nhiều-nhiều 126
c. Chuyển đổi các liên kết một-một 129
4.7. Bước bốn: Chuyển đổi các kiểu thực thể kết nối 132
a. Trường hợp thuộc tính định danh không xác định
133
b. Trường hợp thuộc tính định danh đã xác định 135
4.8. Bước năm: Chuyển đổi các liên kết đơn 138
a. Chuyển đổi các liên kết đơn một-nhiều 139
b. Chuyển đổi các liên kết đơn nhiều-nhiều 141

4.9. Bước sáu: Chuyển đổi các liên kết giữa nhiều kiểu
thực thể 143
4.10. Bước bảy: Chuyển đổi các phân cấp “là một” 146
4.11. Một sơ đồ cơ sở dữ liệu mức logic 150
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 6
4.12. Kết luận 155
5. Tinh chỉnh sơ đồ dữ liệu và các dạng chuNn 157
5.1. Tinh chỉnh các lược đồ quan hệ 157
5.2. Phụ thuộc hàm 159
5.3. Các dạng chuNn 161
a. Dạng chuNn 1NF 161
b. Dạng chuNn 2NF 163
c. Dạng chuNn 3NF 166
6. Thiết kế cơ sở dữ liệu vật lý 171
6.1. Phân tích kích thước và nhu cầu sử dụng dữ liệu 172
6.2. Thiết kế các trường 173
a. Lựa chọn kiểu dữ liệu 173
b. Kiểm soát các toàn vẹn dữ liệu 174
6.3. Tổ chức các bản ghi vật lý và phi chuNn 177
a. Tổ chức các bản ghi vật lý 177
b. Phi chuNn 179
6.4. Tổ chức các tệp vật lý 188
a. Tổ chức tệp tuần tự 189
b. Tổ chức tệp chỉ mục 190
c. Tổ chức các tệp băm 196
d. Tổ chức các tệp được phân cụm (clustering) 196
6.5. Lựa chọn và sử dụng các loại chỉ mục 198
6.6. RAID 207
6.7. Tối ưu hoá hiệu năng truy vấn 217
7. Thiết kế an toàn bảo mật 219

7.1. Xác định các nhóm sử dụng và các quyền hạn 221
7.2. Xác định quyền hạn thao tác trên dữ liệu 222
7.3. Mã hoá dữ liệu 240
7.4. Vai trò của người quản trị 245
8. Kết luận 247
9. Bài tập 247
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 7
Chủ đề III: Quản trị hệ thống cơ sở dữ liệu 250
1. Khái quát chung 250
2. Các mô hình tổ chức cơ sở dữ liệu 251
2.1. Các hệ cơ sở dữ liệu tập trung 252
a. Hệ cơ sở dữ liệu cá nhân 252
b. Hệ cơ sở dữ liệu trung tâm 253
c. Hệ cơ sở dữ liệu khách/chủ 254
2.2. Các hệ cơ sở dữ liệu phân tán 254
a. Hệ cơ sở dữ liệu phân tán thuần nhất 255
b. Hệ cơ sở dữ liệu phân tán không thuần nhất 256
3. Quản trị hệ thống cơ sở dữ liệu 257
3.1. Quản trị nội dung cơ sở dữ liệu 263
a. Theo dõi cơ sở dữ liệu 263
b. Hiệu chỉnh cơ sở dữ liệu 265
c. Sao lưu và phục hồi dữ liệu 266
3.2. Quản trị kỹ thuật 267
a. Cài đặt, cấu hình hệ thống 268
b. Đảm bảo về đường truyền, mạng 269
c. Quản trị tài nguyên cơ sở dữ liệu 269
3.3. Đảm bảo an ninh, phân quyền truy nhập 270
3.4. Một số lỗi thường gặp và cách khắc phục 271
a. Không thể truy cập được cơ sở dữ liệu 271
b. Hệ thống báo lỗi timeout (chậm quá thời gian cho

phép) 272
c. Hệ thống báo lỗi Out of Memory (tràn bộ nhớ) . 273
d. Không thể cung cấp được dữ liệu 274
e. Virus 274
4. Kết luận 275
5. Bài tập 276
Chủ đề IV: Một số hệ quản trị cơ sở dữ liệu phổ biến
277
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 8
1. Giới thiệu chung 277
2. Hệ quản trị cơ sở dữ liệu 280
2.1. Kiến trúc của một hệ quản trị cơ sở dữ liệu 280
2.2. Lưu trữ dữ liệu trong một hệ quản trị cơ sở dữ liệu
282
2.3. Truy vấn trong một hệ quản trị cơ sở dữ liệu 283
3. Một số hệ thống quản trị cơ sở dữ liệu thông dụng . 284
3.1. Các hệ quản trị cơ sở dữ liệu cỡ vừa và nhỏ 284
a. Hệ quản trị cơ sở dữ liệu Access 284
b. Hệ quản trị cơ sở dữ liệu Visual Foxpro 295
3.2. Các hệ quản trị cơ sở dữ liệu cỡ lớn 311
a. Hệ quản trị cơ sở dữ liệu SQL Server 311
b. Hệ quản trị cơ sở dữ liệu Oracle 340
3.3. Hệ quản trị cơ sở dữ liệu mã nguồn mở 368
3.4. Nhận xét chung 370
4. Minh hoạ đối với một hệ quản trị cơ sở dữ liệu cụ thể
373
5. Kết luận 373
6. Bài tập 374
Phụ lục A: Các hệ thống CSDL sẽ được xây dựng trong
khuôn khổ dự án 112 375

1. Mô hình tổ chức hệ thống CSDL các cấp 375
2. Các cơ sở dữ liệu phục vụ điều hành, quản lý 377
a. Cơ sở dữ liệu phục vụ hệ thống thông tin quản lý
đơn thư khiếu nại tố cáo 377
b. Cơ sở dữ liệu phục vụ HTTT luật và văn bản qui
phạm pháp luật 378
c. Các cơ sở dữ liệu ứng dụng chuyên ngành 379
3. Các cơ sở dữ liệu phục vụ dịch vụ công 380
4. Các cơ sở dữ liệu quốc gia 382
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 9
Phụ lục B: Phân tích, thiết kế cơ sở dữ liệu cho một cửa
hàng sách 383
1. Phân tích yêu cầu 383
2. Thiết kế cơ sở dữ liệu mức khái niệm 384
3. Thiết kế cơ sở dữ liệu mức logic 386
4. Tinh chỉnh lược đồ 390
5. Thiết kế cơ sở dữ liệu vật lý 392
6. Vấn đề an toàn bảo mật 395
Tài liệu tham khảo 399

Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 10
Lời giới thiệu
Tài liệu này được biên soạn trong khuôn khổ đào tạo thuộc
Đề án 112 với thời gian tập huấn chính thức là 45 tiết. Mục
tiêu chính của tài liệu này là:
• Nhằm trang bị cho học viên các kiến thức và kỹ năng
cơ bản trong việc phân tích, thiết kế và xây dựng các
hệ thống cơ sở dữ liệu.
• Giúp học viên có đủ kiến thức cơ sở và những kỹ
năng cần thiết để có thể quản trị các hệ thống cơ sở

dữ liệu
• Cung cấp cho học viên một số kinh nghiệm cần thiết
để có thể vận hành, quản trị hệ thống và khắc phục
một số sự cố và sửa lỗi thông thường đối với các hệ
quản trị CSDL.
Trong khi trình bày, chúng tôi đã cố gắng Việt hoá hầu hết
các thuật ngữ tiếng Anh. Với các ví dụ chúng tôi cố gắng
sử dụng tiếng Việt để diễn giải và đặt tên các đối tượng
bằng tiếng Anh (ví dụ: kiểu thực thể nhân viên
EMPLOYEE, thuộc tính mã hiệu nhân viên Emp_no, ).
Đối với phần thực hành của giáo trình, tuỳ theo từng đối
tượng học viên khác nhau, giảng viên có thể lựa chọn một
trong số các hệ quản trị cơ sở dữ liệu quen thuộc như:
Access, Visual Foxpro, Sql Server, Oracle,
Khi chuNn bị môi trường thực hành, giảng viên nên lưu ý
những điểm sau:
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 11
• Đối với hai hệ quản trị cơ sở dữ liệu Access và
Visual Foxpro, nên cài đặt trên mỗi máy của học viên.
• Đối với hệ quản trị cơ sở dữ liệu Microsoft SQL
Server nên cài đặt một máy làm Server chứa cơ sở dữ
liệu, các máy thực hành của học viên chỉ cài ở chế độ
Client và kết nối đến máy Server trên. Tạo cho mỗi
học viên một tài khoản và một cơ sở dữ liệu khác
nhau.
• Đối với hệ quản trị cơ sở dữ liệu Oracle, nên sử dụng
một máy có cấu hình tương đối mạnh để cài đặt làm
máy Server. Trong trường hợp có thể cho học viên
thực hành làm quen với công cụ thiết kế Oracle
Designer, cần thiết lập thêm kho thiết kế repository.

Sau đó tạo cho mỗi học viên một tài khoản người
dùng khác nhau và cấp quyền thiết kế tương ứng. Tại
mỗi máy thực hành, cài đặt thêm công cụ thiết kế
Oracle Designer và cấu hình kết nối đến Server trên.
Cố gắng hướng dẫn học viên từ cách tạo các kiểu
thực thể, thuộc tính, liên kết, bằng tiện ích Entity
Relationship Diagrammer, sau đó chuyển đổi sang sơ
đồ dữ liệu Data Diagram, rồi cuối cùng sinh ra mã để
tạo cơ sở dữ liệu.
• Nếu lựa chọn một trong hai hệ quản trị cơ sở dữ liệu
là Microsoft SQL Server hoặc Oracle làm bài giảng
thực hành, giảng viên nên bố trí thời gian cài đặt và
cấu hình trước để có thêm thời gian trên lớp.
Đối với bài toán lựa chọn để thực hành, giảng viên có thể
tự lựa chọn một bài toán phù hợp với mình và học viên,
hoặc có thể lựa chọn bài toán đã trình bày trong giáo trình
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 12
nêu ở mục 3 chủ đề 1, hoặc cũng có thể lựa chọn bài toán
được trình bày trong phụ lục B của giáo trình.
Trong mỗi chủ đề, như trình bày dưới đây, chúng tôi có đề
xuất thời gian dự kiến cho từng chủ đề đó cũng như các nội
dung tối thiểu mà giảng viên cần phải đảm bảo. Tuy nhiên,
tuỳ theo từng đối tượng học viên, giảng viên có thể thay đổi
cho phù hợp. Cuối mỗi chủ đề, chúng tôi đều có phần tóm
tắt các nội dung đã trình bày nhằm giúp học viên hệ thống
hoá lại kiến thức đã được học. Ngoài ra phần bài tập giúp
học viên hiểu sâu hơn nội dung đã trình bày, cũng như gợi
mở các vấn đề thực tế.
Cụ thể, giáo trình gồm các nội dung chính sau:
Chủ đề 1: Khái niệm cơ sở dữ liệu

Trong chủ đề này, giáo trình tập trung trình bày các khái
niệm cơ bản nhất về cơ sở dữ liệu và các khái niệm được sử
dụng trong quá trình phân tích, thiết kế cơ sở dữ liệu. Thời
lượng dành cho việc trình bày cho chủ đề này có thể không
nhiều, khoảng từ 4 đến 6 tiết, với mục đích chủ yếu giúp
học viên nắm bắt và hình dung được các khái niệm. Các nội
dung như về mô hình dữ liệu, kho dữ liệu, giảng viên
không cần đi sâu và có thể trình bày lướt qua.
Chủ đề 2: Phương pháp phân tích, thiết kế và xây dựng
các hệ thống cơ sở dữ liệu
Đây được xem là chủ đề quan trọng nhất của giáo trình. Do
vậy thời gian dành cho chủ đề này sẽ khoảng từ 14 đến 16
tiết, tuỳ từng đối tượng học viên. Nội dung của chủ đề tập
trung vào 6 bước chính của quá trình phân tích, thiết kế và
xây dựng hệ thống cơ sở dữ liệu: phân tích yêu cầu, thiết kế
cơ sở dữ liệu mức khái niệm, thiết kế cơ sở dữ liệu mức
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 13
logic, tinh chỉnh lược đồ dữ liệu và các dạng chuNn, thiết kế
cơ sở dữ liệu mức vật lý, và bước cuối cùng là thiết kế an
toàn bảo mật. Đây cũng là các nội dung mà giảng viên cần
phải đảm bảo. Tuy nhiên với mục 6 của chủ đề, giảng viên
có thể lựa chọn một số mục chủ yếu để giảng và lướt qua
các mục còn lại, bởi một số nội dung trong mục này mang
tính chất công nghệ và phụ thuộc vào phần cứng, hệ điều
hành cũng như hệ quản trị cơ sở dữ liệu.
Ngoài ra, các ví dụ trong chủ đề này được chúng tôi tập
trung trình bày để giải quyết một bài toán đã được giới
thiệu trong mục 3 chủ đề 1. Giảng viên có thể lựa chọn
thêm những ví dụ khác để minh hoạ thêm cho nội dung bài
giảng.

Chủ đề 3: Quản trị hệ thống cơ sở dữ liệu
Quản trị hệ thống cơ sở dữ liệu là một phần tất yếu sau khi
cơ sở dữ liệu được xây dựng đưa vào sử dụng. Việc quản
trị một hệ thống cơ sở dữ liệu bao gồm rất nhiều vấn đề và
thông thường, với một hệ thống cơ sở dữ liệu lớn thì cần
phải có một đội ngũ chuyên gia tin học có kỹ năng. Toàn
bộ nôi dung của chủ đề tập trung chủ yếu vào các vấn đề
như: quản trị về mặt nội dung, về mặt kỹ thuật, về đảm bảo
an ninh, phân quyền dữ liệu. Trong phần cuối của chủ đề
chúng tôi dành riêng một mục để đề cập đến một số lỗi
thường gặp trong quá trình quản trị một hệ thống cơ sở dữ
liệu và hướng dẫn một số cách khắc phục. Thời lượng dành
cho chủ đề này là từ 6 đến 8 tiết.
Trong chủ đề, đối với phần các mô hình tổ chức cơ sở dữ
liệu (mục 2), giảng viên không cần tập trung nhiều thời
gian và có thể cho học viên đọc trước và trên lớp chỉ cần
nêu một số đặc điểm chính mang tính chất khái quát. Nội
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 14
dung tối thiểu cần phải đảm bảo trong chủ đề đó là toàn bộ
mục 3, Quản trị hệ thống cơ sở dữ liệu.
Chủ đề 4: Một số hệ quản trị cơ sở dữ liệu phổ biến
Trong chủ đề này, chúng tôi tập trung trình bày về kiến trúc
chung của một hệ quản trị cơ sở dữ liệu, giúp học viên có
được cái nhìn tổng quát về một hệ quản trị cơ sở dữ liệu.
Các phần còn lại của chủ đề được dành cho việc trình bày
bốn hệ quản trị cơ sở dữ liệu thông dụng hiện nay: Access,
Visual Foxpro, SQL Server, Oracle. Đối với mỗi một hệ
quản trị cơ sở dữ liệu, chúng tôi trình bày lần lượt các bước
để xây dựng một cơ sở dữ liệu, do vậy học viên có thể dễ
dàng lựa chọn hệ quản trị cơ sở dữ liệu mà mình ưa thích

để thực hành. Thời lượng dành cho chủ đề này có thể là từ
14 đến 16 tiết bao gồm cả thời gian dành cho phần thực
hành.
Đối với các nội dung trong chủ đề, giảng viên cần đảm bảo
giúp học viên nắm được thế nào là một hệ quản trị cơ sở dữ
liệu, các thành phần thường có trong một hệ quản trị cơ sở
dữ liệu. Ngoài ra, thời gian chủ yếu trong chủ đề sẽ là phần
thực hành cụ thể trên một hệ quản trị cơ sở dữ liệu. Như
trên đã trình bày, tuỳ từng đối tượng học viên cũng như khả
năng sắp xếp thời gian, giảng viên có thể lựa chọn một
trong bốn hệ quản trị cơ sở dữ liệu đã trình bày để giúp học
viên thực hành. Tuy nhiên chúng tôi đề xuất là giảng viên
nên lựa chọn hệ quản trị cơ sở dữ liệu Microsoft SQL
Server, và nếu có điều kiện thì lựa chọn hệ quản trị cơ sở
dữ liệu Oracle, bởi với hệ quản trị cơ sở dữ liệu này, giảng
viên minh hoạ được cả quá trình thiết kế từ sơ đồ thực thể -
liên kết, sơ đồ dữ liệu, thông qua công cụ Oracle
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 15
Designer, phần mà ở các hệ quản trị cơ sở dữ liệu khác
chưa có.
Phụ lục A: Các hệ thống CSDL sẽ được xây dựng trong
khuôn khổ dự án 112
Nội dung của phụ lục này nhằm giới thiệu với các học viên
một số nét chính về hệ thống các cơ sở dữ liệu mang tính
chất định hướng sẽ được xây dựng trong khuôn khổ dự án
112. Tuy nhiên, giảng viên cũng nên dành thời gian cho
phụ lục này khoảng từ 2 cho đến 4 tiết.
Phụ lụcB: Phân tích, thiết kế cơ sở dữ liệu cho một cửa
hàng sách
Phụ lục này được xem như một bài thực hành (case study)

thêm cho học viên. Bài toán được trình bày trong phụ lục
theo thể loại hỏi đáp, gần gũi với học viên: từ nhu cầu của
khách hàng, các luồng suy nghĩ đề giải quyết đối với người
phân tích, thiết kế cơ sở dữ liệu, đến quá trình xây dựng và
cài đặt cơ sở dữ liệu. Điều quan trọng hơn là bài toán đã
đưa ra những vấn đề nảy sinh trong thực tế sau khi hệ cơ sở
dữ liệu được đưa vào sử dụng và các hướng giải quyết, đây
chính là một quá trình thường gặp với các bài toán thực tế.

Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 16

Chủ đề I: Khái niệm cơ sở dữ liệu
Mục tiêu
Trong chủ đề này các bạn cần phải nắm được các khái niệm
cơ bản nhất về cơ sở dữ liệu, cũng như các khái niệm được
sử dụng trong quá trình phân tích, thiết kế, xây dựng cơ sở
dữ liệu quan hệ như thực thể, kiểu thực thể, quan hệ, bảng
dữ liệu, thuộc tính, trường dữ liệu, cùng các liên kết.
1. Giới thiệu chung
Hơn hai thập kỷ gần đây chúng ta đã được chứng kiến sự
phát triển vượt bậc cả về số lượng và chất lượng của các
ứng dụng dựa trên cơ sở dữ liệu, chúng ngày càng đóng vai
trò quan trọng trong các hoạt động của các tổ chức, doanh
nghiệp, hay cá nhân. Cơ sở dữ liệu có thể được sử dụng với
những ứng dụng cài đặt riêng lẻ trong máy tính cá nhân hay
dưới dạng một cơ sở dữ liệu tập trung trên mạng LAN,
hoặc một cơ sở dữ liệu phân tán trên mạng diện rộng được
sử dụng bởi rất nhiều các đối tượng khác nhau.
Trong chủ đề này, chúng ta sẽ tìm hiểu những khái niệm cơ
bản nhất về cơ sở dữ liệu, cũng như những khái niệm sẽ

được sử dụng trong quá trình phân tích, thiết kế cơ sở dữ
liệu. Bên cạnh đó, chúng ta cũng sẽ xem xét các mô hình
dữ liệu khác nhau đối với cơ sở dữ liệu.Tuy nhiên xin lưu ý
rằng các quá trình phân tích, thiết kế, xây dựng và quản trị
cơ sở dữ liệu được tập trung trình bày trong giáo trình này
sẽ là cơ sở dữ liệu quan hệ, một loại cơ sở dữ liệu được xây
dựng dựa trên mô hình dữ liệu quan hệ có lý thuyết toán
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 17
học vững chắc nhất. Ngoài ra, đây cũng là loại cơ sở dữ
liệu phổ biến nhất, được sử dụng hầu hết trong các hệ quản
trị cơ sở dữ liệu thông dụng trên thế giới.
2. Các khái niệm cơ bản
2.1. Cơ sở dữ liệu
Ngày nay, hơn bao giờ hết, sự thành công của một doanh
nghiệp phụ thuộc vào khả năng có được những dữ liệu
chính xác và kịp thời về các hoạt động của doanh nghiệp,
để quản lý và phân tích dữ liệu một cách có hiệu quả nhằm
đưa ra được chiến lược cho những hoạt động tiếp theo. Các
thuật ngữ như “xa lộ thông tin” đã trở nên phổ biến và vấn
đề quản lý và sử dụng thông tin dần trở thành một ngành
công nghiệp có doanh số nhiều tỷ đô la.
Người ta đã coi giá trị của dữ liệu như là một thứ tài sản
quý giá của doanh nghiệp với hàm lượng thông tin bao hàm
trong đó. Tuy nhiên, nếu không có được sự quản lý một
cách hữu hiệu đối với lượng dữ liệu ngày càng lớn này,
cũng như khả năng đáp ứng yêu cầu của các câu hỏi tìm
kiếm, lượng dữ liệu này sẽ trở nên vô nghĩa và khi đó
doanh nghiệp sẽ mất đi một nguồn tài sản quý giá. Chính
điều này đã thúc đNy sự cần thiết có được một cơ sở dữ liệu
cũng như một hệ quản trị cơ sở dữ liệu hiệu quả và linh

hoạt, hỗ trợ doanh nghiệp trong công tác quản lý cũng như
tìm kiếm thông tin.
Chúng ta có thể định nghĩa cơ sở dữ liệu như là một bộ sưu
tập có tổ chức của các dữ liệu liên quan logic với nhau và
được các hệ ứng dụng của một tổ chức cụ thể nào đó sử
dụng.
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 18
Ví dụ: một người bán hàng có thể lưu danh sách khách
hàng trong một cơ sở dữ liệu được cài đặt trong máy sách
tay của anh ta với kích thước chỉ khoảng vài megabytes và
cơ sở dữ liệu này sẽ phục vụ cho một chương trình quảng
cáo sản phNm chẳng hạn. Nhưng một doanh nghiệp có thể
có một cơ sở dữ liệu vô cùng lớn, cỡ khoảng vài terabytes
dữ liệu được lưu trong một máy tính lớn mainframe, và nó
được sử dụng bởi một ứng dụng hỗ trợ ra quyết định cho
doanh nghiệp đó.
Tuy nhiên, từ khi có máy tính, người ta đã tìm cách lưu trữ
dữ liệu và xử lý chúng, một trong những hệ thống xử lý dữ
liệu đầu tiên đó là các hệ thống xử lý tệp. Mặc dù ngày nay
những hệ thống xử lý tệp này không còn được sử dụng rộng
rãi nhưng nó vẫn tồn tại trong một số lĩnh vực hẹp. Để có
thể thấy được những ưu nhược điểm của hệ thống xử lý tệp
cũng như có thể hiểu sâu hơn tại sao người ta lại mong
muốn xây dựng lên những cơ sở dữ liệu cùng các ưu điểm
của cách tiếp cận cơ sở dữ liệu so với cách tiếp cận dựa trên
hệ thống xử lý tệp, chúng ta sẽ xem xét một cách khái quát
các khái niệm sau đây:.
a. Các hệ thống xử lý tệp truyền thống
Như chúng ta đã biết, khi chưa có cơ sở dữ liệu, các máy
tính của chúng ta phải xử lý dữ liệu thông qua các hệ thống

xử lý tệp truyền thống. Ngày nay, khi khả năng của các
máy tính đã tăng lên một cách đáng kể, có thể giải quyết
các bài toán lớn, đòi hỏi xử lý những khối dữ liệu đồ sộ,
phức tạp, các hệ thống xử lý tệp truyền thống tỏ ra không
còn thích hợp và dần dần nó được thay thế bởi các hệ thống
xử lý dựa trên cơ sở dữ liệu. Tuy nhiên sự hiểu biết về các
hệ thống xử lý tệp vẫn là cần thiết bởi hai lý do cơ bản sau:
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 19
• Ngày nay các hệ thống xử lý tệp vẫn còn được sử
dụng trong một số hệ thống, đặc biệt là các hệ thống
phục vụ sao lưu cơ sở dữ liệu.
• Hiểu được các vấn đề cũng như các giới hạn của các
hệ thống xử lý tệp sẽ giúp chúng ta thiết kế các cơ sở
dữ liệu tốt hơn.
Ví dụ của một ứng dụng dựa trên hệ thống xử lý tệp:
Một công ty chuyên sản xuất các đồ dùng bằng gỗ đã tiến
hành tin học hoá các nghiệp vụ của mình trên máy tính.
Thọat đầu, mỗi một ứng dụng trong công ty đều được xây
dựng theo cách tiếp cận xử lý tệp truyền thống. Với cách
tiếp cận này, các hệ thống thông tin đều tập trung vào việc
xử lý dữ liệu của mỗi một phòng ban đơn lẻ, trong đó các
hệ thống cố gắng đáp ứng các yêu cầu của từng nhóm
người cụ thể. Do vậy, nhìn toàn bộ vào hệ thống thông tin
của toàn công ty thì không có một mô hình cũng như kế
hoạch hay sơ đồ tổng thể nào để có thể hoạch định được
cho việc phát triển tiếp theo của các ứng dụng. Hệ thống
ứng dụng dựa trên trên cách tiếp cận xử lý tệp này được
minh hoạ như trong hình 1.2.1.1, đó là các hệ thống tạo lập
đơn hàng Order Filling System, hệ thống xử lý hoá đơn
Invoice System và hệ thống quản lý lương bổng cho nhân

viên Payroll System. Nhìn vào hình vẽ chúng ta thấy rằng,
các tệp dữ liệu được kết nối trực tiếp với mỗi chương trình
ứng dụng, mỗi một tệp là một tập các bản ghi liên quan. Ví
dụ, với hệ thống Order Filling System có 3 tệp: Customer,
Inventory Master và Order. Chúng ta nhận thấy rằng có thể
có những tệp được lưu lặp lại và sử dụng bởi các ứng dụng
khác nhau (như Customer), đây chính là một trong những
nhược điểm của các hệ thống dựa trên việc xử lý tệp.
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 20
Customer
File
Order
File
Inventory
Master
File
Customer
File
Employee
File
Inventory
Pricing
File
Order Filling System
Invoic e System
Payroll System
Progr am
A
Progr am
B

Progr am
c
Progr am
A
Progr am
B
Progr am
A
Progr am
B
Order Department
Account Department Payroll Depart ment
Hình 1.2.1.1 Một hệ thống xử lý tệp truyền thống

Các nhược điểm của các hệ thống xử lý tệp:
• Tính phụ thuộc giữa chương trình và dữ liệu: Các mô
tả về tệp dữ liệu được lưu trong mỗi một chương
trình ứng dụng sử dụng tệp đó. Như ví dụ trên,
chương trình Program A truy nhập cả hai tệp
Inventory và Customer, do vậy chương trình này sẽ
chứa các mô tả chi tiết của cả 2 tệp này. Điều này dẫn
đến, khi có bất cứ một thay đổi nào đến cấu trúc tệp
sẽ đòi hỏi cũng phải có các thay đổi tương ứng đến
các mô tả trong các chương trình ứng dụng sử dụng
tệp đó. Ngoài ra, như trong hình 1.2.1.1, nếu tệp
Customer bị sửa đổi thì cả hai hệ thống Order System
và Invoice System đều bị ảnh hưởng.
• Lưu trữ trùng lặp dữ liệu: Trong hình 1.2.1.1 chúng ta
nhận thấy rằng, hệ thống Order Filling có chứa một
tệp Inventory Master, trong khi đó hệ thống Invoice

cũng chứa một tệp là Inventory Pricing. Rõ ràng giữa
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 21
hai tệp này sẽ có sự lưu trữ trùng lặp dữ liệu, ví dụ
các thông tin về mô tả sản phNm, giá mỗi sản phNm
cũng như số lượng đang có trong kho. Việc lưu trữ
dư thừa dữ liệu này gây ra rất nhiều bất cập và đòi
hỏi không gian lưu trữ lớn, nó rất dễ dẫn tới tính
không toàn vẹn của dữ liệu.
• Việc chia sẻ dữ liệu bị hạn chế: Trong cách tiếp cận
xử lý tệp này, mỗi một ứng dụng có các tệp dữ liệu
riêng của nó và do vậy giữa những người sử dụng, họ
có ít cơ hội để có thể chia sẻ dữ liệu cho nhau nếu
không sử dụng chung một phân hệ ứng dụng. Như
trong hình 1.2.1.1, các nhân viên trong phòng kế toán
Accounting chỉ có thể truy nhập được những tệp
trong ứng dụng của mình mà không thể truy nhập
được những tệp trong các ứng dụng của các phòng xử
l;ý đơn hàng Order hay phòng quản lý tiền lương
Payroll. Do vậy, khi người lãnh đạo muốn tạo ra
những báo cáo tổng hợp liên phòng thì vô cùng khó
khăn bởi dữ liệu được lưu riêng lẻ cũng như có thể
không thống nhất giữa các phòng.
• Tốn thời gian xây dựng: Với mỗi một ứng dụng mới,
người phát triển chương trình phải bắt đầu lại từ đầu
với việc xây dựng các tệp, mô tả chúng cũng như xây
dựng các module chương trình để truy nhập tới các
tệp đó. Quá trình này tốn khá nhiều thời gian mặc dù
nó luôn lặp lại giữa các hệ thống.
• Chi phí cho bảo trì chương trình lớn: Trên thực tế, có
đến 80% chi phí được dành cho giai đoạn bảo trì

chương trình đối với những ứng dụng dựa trên các hệ
thống xử lý tệp truyền thống này.
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 22
Tuy nhiên chúng ta cũng cần phải lưu ý rằng, những hạn
chế đối với cách tiếp cận dựa trên các hệ thống xử lý tệp
truyền thống này cũng có thể gặp phải trong cách tiếp cận
dựa trên cơ sở dữ liệu (sẽ được trình bày dưới đây), nếu
như cơ sở dữ liệu không được thiết kế tốt, cũng như chúng
được xây dựng một cách riêng rẽ, không thống nhất.
b. Cách tiếp cận cơ sở dữ liệu
Cách tiếp cận cơ sở dữ liệu nhấn mạnh đến tính chia sẻ và
tích hợp của dữ liệu trong toàn bộ hoạt động của một doanh
nghiệp (trong giáo trình này, chúng tôi sử dụng thuật ngữ
doanh nghiệp để đại diện chung cho các tổ chức có nhu cầu
sử dụng cơ sở dữ liệu trong hoạt động nghiệp vụ của mình).
Theo cách tiếp cận này, dữ liệu được lưu trữ có tổ chức, tập
trung dưới dạng một cơ sở dữ liệu và giữa các dữ liệu có sự
liên kết logic với nhau.
Quay trở lại ví dụ của công ty chuyên sản xuất các sản
phNm đồ gỗ trên, sau một thời gian hoạt động, lãnh đạo của
công ty nhận thấy rằng có rất nhiều bất cập cũng như hạn
chế trong cách tiếp cận dựa trên hệ thống xử lý tệp, và họ
quyết định chuyển sang cách tiệp cận dựa trên cơ sở dữ liệu.
Khi đó họ phải tiến hành xây dựng lên một mô hình dữ liệu
thống nhất, mô tả các hoạt động nghiệp vụ cho toàn bộ
doanh nghiệp, và dựa trên mô hình dữ liệu này dần dần họ
đã hình thành lên một cơ sở dữ liệu và được sử dụng thống
nhất trong toàn bộ công ty.
Dưới đây chúng ta sẽ xem xét các ưu điểm mà cách tiếp
cận dựa trên cơ sở dữ liệu mang lại so với cách tiếp cận dựa

trên các hệ thống xử lý tệp truyền thống:
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 23
• Tối thiểu hoá dư thừa dữ liệu: Mục đích thiết kế trong
cách tiếp cận cơ sở dữ liệu chính là cố gắng tích hợp
các tệp dữ liệu riêng rẽ (và cũng là dư thừa) trong mô
hình xử lý tệp trước đây vào một cấu trúc lôgic duy
nhất. Mỗi một sự kiện cụ thể sẽ được lưu trữ tại một
vị trí quy định trong cơ sở dữ liệu. Ví dụ với sự kiện
sản phNm có mã Product_id bằng 3 là một chiếc bàn
để máy tính có giá là 170 USD sẽ được lưu trữ tại
một vị trí nằm trong bảng PRODUCT. Cũng cần lưu
ý rằng, cách tiếp cận cơ sở dữ liệu có thể không loại
bỏ hoàn toàn vấn đề dư thừa dữ liệu, nhưng nó đã cho
phép người thiết kế có thể kiểm soát được vấn đề này.
Ví dụ, đối với mỗi đơn đặt hàng trong bảng ORDER
có chứa một trường Customer_id để biểu diễn mối
liên kết giữa các đơn đặt hàng và các khách hàng.
Tuy nhiên trong một số trường hợp, để nâng cao hiệu
quả truy vấn của cơ sở dữ liệu, chúng ta có thể chấp
nhận hình thức lưu trữ dư thừa dữ liệu (vấn đề này sẽ
được trình bày trong chủ đề 2 của giáo trình).
• Tính độc lập chương trình - dữ liệu: Tính độc lập với
dữ liệu được thể hiện ở sự tách biệt rõ ràng giữa
chương trình ứng dụng và các mô tả dữ liệu (siêu dữ
liệu), do vậy nó cho phép dữ liệu của một doanh
nghiệp được phép sửa đổi (tất nhiên là trong một giới
hạn nào đó) mà không phải thay đổi lại chương trình
thao tác trên các dữ liệu đó.
• Nâng cao tính nhất quán dữ liệu: Với việc loại bỏ
(chính xác hơn là kiểm soát được) tính dư thừa dữ

liệu, cách tiếp cận cơ sở dữ liệu đã giảm bớt được
đáng kể tính không nhất quán của dữ liệu. Ví dụ, nếu
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 24
địa chỉ của khách hàng được lưu trữ duy nhất, khi đó,
nếu khách hàng thay đổi địa chỉ, chúng ta chỉ việc
làm một động tác đơn giản là sửa đổi lại địa chỉ của
khách hàng ở vị trí duy nhất đó, các truy vấn liên
quan đến giá trị này sẽ được tự động nhận giá trị mới
khi được thực hiện. Như vậy, vấn đề về cập nhật, sửa
đổi dữ liệu rất đơn giản và nhất quán. Một điểm quan
trọng hơn, cách tiếp cận cơ sở dữ liệu sẽ làm giảm
đáng kể không gian nhớ so với phương pháp lưu trữ
dữ liệu trong các hệ thống xử lý tệp truyền thống.
• Nâng cao tính chia sẻ dữ liệu: cơ sở dữ liệu được
thiết kế nhằm mục đích chia sẻ dữ liệu. Mỗi một
người sử dụng hợp pháp được gán những quyền sử
dụng cơ sở dữ liệu khác nhau, đối với mỗi một người
(hoặc nhóm người) sử dụng sẽ được cung cấp những
khung nhìn sử dụng khác nhau, do vậy họ có thể chủ
động trong việc chia sẻ dữ liệu thông qua các quyền
kiểm soát dữ liệu.
• Nâng cao tính sản phNm của ứng dụng: Một lợi thế
đáng kể của cách tiếp cận cơ sở dữ liệu đó là giảm
đáng kể chi phí và thời gian cho việc phát triển những
ứng dụng nghiệp vụ. Có hai lý do quan trọng mà các
ứng dụng dựa trên cơ sở dữ liệu có thể được xây
dựng nhanh chóng hơn so với cách tiếp cận của các
ứng dụng dựa trên tệp truyền thống, đó là: khi xây
dựng các ứng dụng mới dựa trên cơ sở dữ liệu, người
lập trình không phải quan tâm đến vấn đề thiết kế các

tệp hay các thao tác chi tiết mức thấp. Lý do thứ hai
đó là các hệ quản trị cơ sở dữ liệu thường cung cấp
một loạt các công cụ hỗ trợ mức cao trong quá trình
Phân tích, thiết kế, xây dựng và quản trị các hệ thống cơ sở dữ liệu 25
xây dựng ứng dụng, như các công cụ sản sinh mẫu
biểu sinh báo cáo hay các giao diện nhập liệu cho
chương trình ứng dụng.
• Áp đặt dễ dàng các tiêu chuNn: Với cách tiếp cận cơ
sở dữ liệu, các tiêu chuNn như quy ước đặt tên, sử
dụng qui trình thống nhất trong việc truy nhập, cập
nhật và bảo vệ dữ liệu dễ dàng được thực hiện. Các
chức năng quản trị cơ sở dữ liệu thường cung cấp
một loạt các công cụ nhằm đảm bảo những tiêu chuNn
này luôn phải được thoả mãn. Tính chất này làm cho
việc bảo trì và trao đổi dữ liệu trở nên dễ dàng và
thuận lợi hơn.
• Nâng cao chất lượng dữ liệu: Với cách tiếp cận cơ sở
dữ liệu, người thiết kế có thể xây dựng các ràng buộc
toàn vẹn nhằm đảm bảo dữ liệu khi được đưa vào cơ
sở dữ liệu phải thoả mãn một số qui tắc nào đó. Hoặc
đối với những cơ sở dữ liệu lớn như kho dữ liệu, thì
thông thường dữ liệu được làm sạch trước khi được
đưa vào kho dữ liệu.
• Nâng cao khả năng truy nhập và trả lại dữ liệu: Với
các cơ sở dữ liệu quan hệ, người sử dụng không cần
nhiều kỹ năng về lập trình cũng có thể dễ dàng tìm
kiếm và hiển thị dữ liệu thông qua một ngôn ngữ hỏi
đáp dữ liệu rất thân thiện đã được tiêu chuNn hoá.
• Giảm chi phí bảo trì chương trình: Tính chất này là
hệ quả của tính độc lập chương trình - dữ liệu. Bởi

chúng ta biết rằng dữ liệu có thể bị thay đổi vì những
lý do khác nhau như: chúng ta có thể bổ sung thêm
những kiểu dữ liệu mới, sửa đổi các định dạng cũng

×