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
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
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
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
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.
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.
để 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)
đượ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
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
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
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
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
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