Thứ Hai, 6 tháng 1, 2014

GIÁO TRÌNH CƠ SỞ DỮ LIỆU


4
II.6- Thuộc tính của các kiểu liên kết 33
II.7- Các kiểu thực thể yếu 34
III- Ví dụ về thiết kế mô hình ER 35
III.1- Xác định các kiểu thực thể, các thuộc tính và các kiểu liên kết 35
IV- Mô hình thực thể liên kết mở rộng (mô hình EER) 39
IV.1- Lớp cha, lớp con và sự thừa kế . 39
IV.2- Chuyên biệt hóa, tổng quát hóa 40
IV.2.1- Chuyên biệt hóa 40
IV.2.2- Tổng quát hóa . 42
IV.2.3- Phân cấp chuyên biệt và lưới chuyên biệt 43
IV.2.4- Các ràng buộc và các đặc trung của chuyên biệt hóa, tổng quát hóa . 43
IV.3- Sơ đồ mô hình EER . 44
V- Tổng kết chương và câu hỏi ôn tập . 45
V.1- Tổng kết chương 45
V.2- Câu hỏi ôn tập . 45
V.3- Bài tập . 46
CHƯƠNG III- MÔ HÌNH QUAN HỆ, CÁC RÀNG BUỘC QUAN HỆ VÀ ĐẠI SỐ
QUAN HỆ 48
I- Các khái niệm của mô hình quan hệ 48
I.1- Miền, thuộc tính, bộ và quan hệ 48
I.2- Các đặc trưng của các quan hệ . 50
I.2.1- Thứ tự của các bộ trong một quan hệ . 50
I.2.2- Thứ tự của các giá trị bên trong một bộ . 51
I.2.3- Các giá trị trong một bộ . 51
I.2.4- Thể hiện của một quan hệ 52
II- Các ràng buộc quan hệ, lược đồ cơ sở dữ liệu quan hệ 52
II.1- Các ràng buộc miền 52
II.2- Ràng buộc khoá và ràng buộc trên các giá trị không xác định (null) 53
II.3- Cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu quan hệ . 54
II.4- Toàn vẹn thực thể, toàn vẹn tham chiếu và khoá ngoài 58
III- Các phép toán trên mô hình quan hệ . 60
III.1- Các phép toán cập nhật 60
III.1.1- Phép chèn (Insert) 60
III.1.2- Phép xoá (Delete) . 61
III.1.3- Phép sửa đổi (Update) 62
III.2- Các phép toán đại số quan hệ . 62
III.2.1- Phép chọn (SELECT) . 63

5
III.2.2- Phép chiếu (PROJECT) 65
III.2.3- Phép đặt lại tên (RENAME) 66
III.2.4- Các phép toán lý thuyết tập hợp . 67
III.2.5- Phép nối (JOIN) . 70
III.2.6- Tập hợp đầy đủ các phép toán quan hệ 72
III.2.7- Phép chia 73
III.3- Các phép toán quan hệ bổ sung 74
III.3.1- Các hàm nhóm và các phép nhóm 74
III.3.2- Các phép toán khép kín đệ quy 75
III.3.3- Các phép toán nối ngoài (outer join), hợp ngoài (outer union) 75
III.4- Một số ví dụ về truy vấn trong đại số quan hệ 76
IV- Chuyển đổi mô hình ER thành mô hình quan hệ 77
IV.1- Các quy tắc chuyển đổi . 77
IV.2- Chuyển đổi mô hình cụ thể 81
V- Tổng kết chương và câu hỏi ôn tập 81
V.1- Tổng kết chương 81
V.2- Câu hỏi ôn tập . 82
V.3- Bài tập . 83
CHƯƠNG IV- PHỤ THUỘC HÀM VÀ CHUẨN HÓA CƠ SỞ DỮ LIỆU QUAN
HỆ, CÁC THUẬT TOÁN THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ . 86
I- Các nguyên tắc thiết kế lược đồ quan hệ . 86
I.1- Ngữ nghĩa của các thuộc tính quan hệ 86
I.2- Thông tin dư thừa trong các bộ và sự dị thường cập nhật 87
I.3- Các giá trị không xác định trong các bộ . 89
I.4- Sinh ra các bộ giả 89
II- Các phụ thuộc hàm 90
II.1- Định nghĩa phụ thuộc hàm 90
II.2- Các quy tắc suy diễn đối với các phụ thuộc hàm 93
II.3- Sự tương đương của các tập phụ thuộc hàm 97
II.4- Các tập phụ thuộc hàm tối thiểu . 98
III- Các dạng chuẩn dựa trên khóa chính . 99
III.1- Nhập môn về chuẩn hoá 99
III.2- Dạng chuẩn 1 101
III.3- Dạng chuẩn 2 102
III.4- Dạng chuẩn 3 104
III.5- Dạng chuẩn Boyce-Codd 104
IV- Các thuật toán thiết kế cơ sở dữ liệu quan hệ và các dạng chuẩn cao hơn . 106

6
IV.1- Định nghĩa tổng quát các dạng chuẩn 107
IV.2- Các thuật toán thiết kế lược đồ cơ sở dữ liệu quan hệ . 108
IV.2.1- Tách quan hệ và tính không đầy đủ của các dạng chuẩn . 108
IV.2.2- Phép tách và sự bảo toàn phụ thuộc . 109
IV.2.3- Phép tách và kết nối không mất mát 111
IV.3- Các phụ thuộc hàm đa trị và dạng chuẩn 4 118
IV.3.1- Định nghĩa phụ thuộc đa trị 118
IV.3.2- Các quy tắc suy diễn đối với các phụ thuộc hàm và phụ thuộc đa trị 120
IV.3.3- Dạng chuẩn 4 121
IV.3.4- Tách có tính chất nối không mất mát thành các quan hệ 4NF 121
IV.4- Các phụ thuộc nối và dạng chuẩn 5 . 122
V- Tổng kết chương và câu hỏi ôn tập . 124
V.1- Tổng kết chương 124
V.2- Câu hỏi ôn tập . 125
V.3- Bài tập . 126

7

Chương I- CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ
DỮ LIỆU
Các cơ sở dữ liệu và các hệ cơ sở dữ liệu đã trở thành một thành phần chủ yếu
trong cuộc sống hàng ngày của xã hội hiện đại. Trong vòng một ngày con người có
thể có nhiều hoạt động cần có sự giao tiếp với cơ sở dữ liệu như: đến ngân hàng để
rút tiền và gửi tiền, đăng ký chỗ trên máy bay hoặc khách sạn, truy cập vào thư viện
đã tin học hoá để tìm sách báo, đặt mua tạp chí ở một nhà xuất bản… Tại các ngân
hàng, các cửa hàng, người ta cũng cập nhật tự động việc quản lý tiền bạc, hàng hoá.
Tất cả các giao tiếp như trên được gọi là các ứng dụng của cơ sở dữ liệu
truyền thống. Trong các cơ sở dữ liệu truyền thống, hầu hết các thông tin được lưu
giữ và truy cập là văn bản hoặc số. Những năm gần đây, những tiến bộ về kỹ thuật
đã đưa đến những ứng dụng mới của cơ sở dữ liệu. Các cơ sở dữ liệu đa phương
tiện bây giờ có thể lưu trữ hình ảnh, phim và tiếng nói. Các hệ thống thông tin địa
lý có thể lưu trữ và phân tích các bản đồ, các dữ liệu về thời tiết và các ảnh vệ tinh.
Kho dữ liệu và các hệ thống phân tích trực tuyến được sử dụng trong nhiều công ty
để lấy ra và phân tích những thông tin có lợi từ các cơ sở dữ liệu rất lớn nhằm đưa
ra các quyết định. Các kỹ thuật cơ sở dữ liệu động và thời gian thực được sử dụng
trong việc kiểm tra các tiến trình công nghiệp và sản xuất. Các kỹ thuật tìm kiếm cơ
sở dữ liệu đang được áp dụng cho World Wide Web để cung cấp việc tìm kiếm các
thông tin cần thiết cho người sử dụng bằng cách duyệt qua Internet.
Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ các
cơ sở kỹ thuật của cơ sở dữ liệu truyền thống. Mục đích của giáo trình này là
nghiên cứu các cơ sở kỹ thuật đó. Trong chương này chúng ta sẽ định nghĩa cơ sở
dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu và các thuật ngữ cơ bản
khác.
I- Cơ sở dữ liệu
I.1- Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu và kỹ thuật cơ sở dữ liệu đã có ảnh hưởng rất lớn đến việc sử
dụng máy tính. Có thể nói rằng cơ sở dữ liệu đóng vai trò quan trọng trong mọi

8
lĩnh vực có sử dụng máy tính như giáo dục, thương mại, kỹ nghệ, khoa học, thư
viện,…. Thuật ngữ cơ sở dữ liệu trở thành một thuật ngữ phổ dụng.
Một cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu
trữ trên máy tính, có nhiều người sử dụng và được tổ chức theo một mô hình. Dữ
liệu là những sự kiện có thể ghi lại được và có ý nghĩa.
Ví dụ, để quản lý việc học tập trong một môi trường đại học, các dữ liệu là các
thông tin về sinh viên, về các môn học, điểm thi….Chúng ta tổ chức các dữ liệu đó
thành các bảng và lưu giữ chúng vào sổ sách hoặc sử dụng một phần mềm máy tính
để lưu giữ chúng trên máy tính. Ta có một tập các dữ liệu có liên quan đến nhau và
mang nhiều ý nghĩa, đó là một cơ sở dữ liệu.
I.2- Các tính chất của một cơ sở dữ liệu
Một cơ sở dữ liệu có các tính chất sau:
1. Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt
động của một công ty, một nhà trường, một ngân hàng… Những thay đổi của thế
giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu. Những
thông tin được đưa vào trong cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu
hoặc là một “thế giới nhỏ” (miniworld) .
2. Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic
và mang một ý nghĩa cố hữu nào đó. Một cơ sở dữ liệu không phải là một tập hợp
tuỳ tiện.
3. Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng.
Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định
phù hợp với mối quan tâm của người sử dụng. Nói cách khác, một cơ sở dữ liệu có
một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới
thực và một nhóm người quan tâm tích cực đến các nội dung của nó.
Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi. Có những cơ
sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc quản lý lương
ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng rất lớn (như các cơ
sở dữ liệu phục vụ cho việc tính cước điện thoại, quản lý nhân sự trên một phạm vi
lớn). Các cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có
thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết. Một cơ sở dữ
liệu có thể được tạo ra và duy trì một cách thủ công và cũng có thể được tin học

9
hoá. Một cơ sở dữ liệu tin học hoá được tạo ra và duy trì bằng bằng một nhóm
chương trình ứng dụng hoặc bằng một hệ quản trị cơ sở dữ liệu.
II- Hệ quản trị cơ sở dữ liệu
II.1- Định nghĩa hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử
dụng tạo ra, duy trì và khai thác một cơ sở dữ liệu. Nó là một hệ thống phần mềm
phổ dụng, làm dễ quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các
ứng dụng khác nhau.
Định nghĩa một 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 các dữ liệu sẽ được lưu trữ trong cơ sở.
Xây dựng một cơ sở dữ liệu là quá trình 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 một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ liệu
để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong
thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu.
Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hoá có
thể là phổ dụng (là một phần mềm đóng gói) hoặc có thể là chuyên dụng (là một
tập các phần mềm được tạo ra với một mục đích riêng).
Người ta gọi cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu bằng một thuật ngữ
chung là hệ cơ sở dữ liệu. Môi trường của một hệ cơ sở dữ liệu được mô tả bằng
hình vẽ dưới đây (hình I-1).
II.2- 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 hiện nay có các chức năng sau :
1. Lưu trữ các định nghĩa, các mối liên kết dữ liệu (gọi là siêu dữ liệu) vào
một từ điển dữ liệu. Các chương trình truy cập đến cơ sở dữ liệu làm việc thông
qua hệ quản trị cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu sử dụng dữ liệu trong từ
điển dữ liệu để tìm kiếm các cấu trúc thành phần dữ liệu và các mối liên kết được
yêu cầu. Mọi sự thay đổi trong các tệp cơ sở dữ liệu sẽ được tự động ghi lại vào từ
điển dữ liệu. Như vậy, hệ quản trị cơ sở dữ liệu giải phóng người sử dụng khỏi việc
lập trình cho các mối liên kết phức tạp trong mỗi chương trình, việc sửa đổi các

10
trị cơ sở dữ liệu loại bỏ sự phụ thuộc giữa dữ liệu và cấu trúc ra khỏi hệ thống.
ình I-1. Môi trường hệ cơ sở dữ liệu
2. Tạo ra các cấu trữ dữ liệu. Nó giúp
ngườ
ác dữ liệu được nhập vào để phù hợp với các cấu trúc dữ liệu ở
điểm
chương trình truy cập đến tệp cơ sở dữ liệu đã bị sửa đổi. Nói cách khác, hệ quản

Người sử dụng / Người lập trình
Chương trình ứng dụng / Truy vấn

Phần mềm xử lý
Truy vấn / Chương trình
Phần mềm truy cập đến các
dữ liệu được lưu trữ
Định nghĩa cơ sở dữ
liệu (Siêu dữ liệu )
Cơ sở dữ liệu

trúc phức tạp theo yêu cầu để lưu
i sử dụng làm nhiệm vụ khó khăn là định nghĩa và lập trình cho các đặc trưng
vật lý của dữ liệu.
3. Biến đổi c
2. Như vậy, hệ quản trị cơ sở dữ liệu giúp người sử dụng phân biệt dạng logic
và dạng vật lý của dữ liệu. Bằng việc duy trì sự độc lập dữ liệu, hệ quản trị cơ sở dữ
liệu chuyển các yêu cầu logic thành các lệnh định vị một cách vật lý và lấy ra các
dữ liệu yêu cầu. Điều đó cũng có nghĩa là hệ quản trị cơ sở dữ liệu tạo khuôn dạng

11
o ra một hệ thống bảo mật và áp đặt tính bảo mật và riêng tư trong cơ sở
dữ li
ạo ra các cấu trúc phức tạp cho phép nhiều người sử dụng truy cập đến
dữ li
Cung cấp các thủ tục sao lưu và phục hồi dữ liệu để đảm bảo sự an toàn và
toàn
à áp đặt các quy tắc an toàn để loại bỏ vấn đề toàn vẹn dữ liệu.
Điều
ấp việc truy cập dữ liệu thông qua một ngôn ngữ truy vấn. Một
ngôn ng
II.3- Các đặc trưng của giải pháp cơ sở dữ liệu
ệp (file) là một phương
pháp
điểm. Thứ nhất,
đó là
cho các dữ liệu được lấy ra để làm cho nó phù hợp với mong muốn logic của người
sử dụng.
4. Tạ
ệu.
5. T
ệu
6.
vẹn dữ liệu.
7. Xúc tiến v
đó cho phép ta làm tối thiểu sự dư thừa dữ liệu và làm tối đa tính nhất quán
dữ liệu.
8. Cung c
ữ truy vấn là một ngôn ngữ phi thủ tục cho phép người sử dụng chỉ ra cái gì
cần phải làm mà không cần phải chỉ ra nó được làm như thế nào. Các hệ quản trị
cơ sở dữ liệu cũng cung cấp việc truy cập dữ liệu cho những người lập trình thông
qua các ngôn ngữ thủ tục.
Trước khi khái niệm cơ sở dữ liệu ra đời, hệ thống t
được áp dụng trong việc quản lý. Một tệp có thể được 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. Ví dụ, trong một cơ
quan, bộ phận tài vụ sẽ có một cặp hồ sơ liên quan đến lương của các nhân viên, bộ
phận tổ chức có cặp hồ sơ liên quan đến vấn đề nhân sự… Việc xử lý để lấy ra các
thông tin như là các thống kê về lương, về quá trình công tác… lúc đầu được thực
hiện một cách thủ công. Dần dần, khối lượng thông tin ngày càng lớn, việc xử lý
thông tin ngày càng phức tạp, người ta sử dụng máy tính vào việc quản lý. Các cặp
hồ sơ được chuyển thành các tệp trên máy tính và việc xử lý thông tin được thực
hiện bằng cách lập trình (trong một ngôn ngữ lập trình thế hệ 3).
Việc quản lý theo giải pháp hệ thống tệp có rất nhiều nhược
sự dư thừa thông tin: cùng một thông tin được lưu trữ nhiều lần (chẳng hạn,
danh sách nhân viên có mặt trong tệp lương và cũng có mặt cả trong tệp nhân sự).
Điều đó gây ra việc lãng phí bộ nhớ và dễ gây sai sót trong khi cập nhật dữ liệu, dễ
sinh ra các dữ liệu không đúng đắn. Thứ hai, đó là việc phụ thuộc giữa chương

12
iải quyết được những nhược điểm đó. Cụ
thể, g
ở dữ liệu là hệ thống cơ sở dữ liệu
khôn
sở dữ liệu được nhúng vào trong
các c
t người có thể đòi hỏi một
phối
ử dụng phải cho phép nhiều người
sử d
trình ứng dụng và dữ liệu. Mỗi khi có sự thay đổi 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 thay đổi theo. Điều
đó gây ra khó khăn lớn cho việc bảo trì.
Giải pháp cơ sở dữ liệu ra đời đã g
iải pháp cơ sở dữ liệu có những đặc trưng sau:
1. Bản chất tự mô tả của hệ cơ sở dữ liệu.
Một đặc trưng cơ bản của giải pháp cơ s
g chỉ gồm có bản thân cơ sở dữ liệu mà còn có cả định nghĩa hoặc mô tả đầy
đủ về cấu trúc cơ sở dữ liệu và các ràng buộc. Định nghĩa này được lưu trữ trong từ
điển hệ thống, nó chứa các thông tin như là cấu trúc của mỗi tệp, kiểu và dạng lưu
trữ của từng mục dữ liệu. Các thông tin được lưu giữ trong từ điển gọi là siêu dữ
liệu (meta-data) và chúng mô tả cấu trúc của dữ liệu nguyên thuỷ (hình I-1). Phần
mềm hệ quản trị cơ sở dữ liệu và những người sử dụng cơ sở dữ liệu sử dụng từ
điển để lấy thông tin về cấu trúc của cơ sở dữ liệu.
2. Sự độc lập giữa chương trình và dữ liệu.
Trong hệ thống tệp, cấu trúc của các tệp cơ
hương trình truy cập, vì vậy bất kỳ một thay đổi nào về cấu trúc của một tệp
cũng đòi hỏi phải thay đổi tất cả các chương trình truy cập đến tệp đó. Ngược lại,
các chương trình truy cập của hệ quản trị cơ sở dữ liệu không đòi hỏi việc thay đổi
như thế. Cấu trúc của các tệp dữ liệu được lưu trữ trong từ điển tách rời với các
chương trình truy cập. Tính chất này gọi là sự độc lập dữ liệu – chương trình.
3. Hỗ trợ các khung nhìn dữ liệu nhiều thành phần.
Một cơ sở dữ liệu có nhiều người sử dụng, mỗi mộ
cảnh hoặc một khung nhìn (view) khác nhau. Một khung nhìn có thể là một
tập con của cơ sở dữ liệu hoặc nó có thể chứa các dữ liệu ảo, đó là các dữ liệu được
trích ra từ các tệp cơ sở dữ liệu khác nhau nhưng không được lưu trữ một cách rõ
ràng. Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cung cấp nhiều công
cụ để định nghĩa các khung nhìn nhiều thành phần.
4. Chia sẻ dữ liệu và nhiều người sử dụng.
Một hệ quản trị cơ sở dữ liệu nhiều người s
ụng truy cập đồng thời đến cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu phải có
phần mềm kiểm tra cạnh tranh để đảm bảo rằng các người sử dụng cập nhật đến

13
II.4- Ví dụ về một cơ sở dữ liệu
dữ liệu mà nhiều người đã quen biết: cơ sở
dữ li
cùng một cơ sở dữ liệu phải được thực hiện theo cách được kiểm tra để cho kết quả
của các cập nhật là đúng đắn.
Chúng ta hãy xem xét một cơ sở
ệu TRƯỜNG. Cơ sở dữ liệu này lưu giữ các thông tin liên quan đến sinh viên,
các môn học, điểm… trong một môi trường đại học. Cơ sở dữ liệu được tổ chức
thành 5 bảng, mỗi bảng lưu trữ các bản ghi dữ liệu cùng một kiểu. Bảng
SINHVIÊN lưu giữ dữ liệu về các sinh viên, bảng MÔNHỌC lưu giữ các dữ liệu
về các môn học, bảng HỌCPHẦN lưu giữ các dữ liệu về các học phần của các môn
học, bảng ĐIỂM lưu giữ điểm của từng học phần của các sinh viên và bảng
BIẾTTRƯỚC lưu giữ thông tin về các môn học cần biết trước của các môn học.
Cấu trúc của cơ sở dữ liệu và một vài mẫu dữ liệu ví dụ được trình bày ở hình I-2.
SINHVIÊN MãsốSV HọtênSV Lớp Chuyênngành
17 Nguyễn Nam K45T Tinhọc
8 Lê Bắc K45C CôngnghệTT

MÔNHỌC MãsốMH TênMH Sốđvht Khoa
101 Tinhọc cơ sở 8 ệ Công ngh
102 Cấu trúc DL và GT 5 Công nghệ
103 Toán rời rạc 5 Công nghệ
104 Cơ sở dữ liệu 3 Công nghệ

HỌCPHẦN MãsốHP MãsốMH Họckỳ Năm Têngiáoviên
1011 101 1 2001 Vân
1012 101 2 2002 Vân
1031 103 1 2001 Hoàng
1032 103 2 2002 Hoàng
1020 102 3 2002 Lân
1040 104 4 2002 Huy

Không có nhận xét nào:

Đăng nhận xét