GIÁO
TRÌNH
CƠ
SỞ
DỮ
LIỆU
Dành
cho
sinh
viên
ngành
Công
nghệ
Thông
tin
Trang 1/109
LỜI
MỞ
ĐẦU
Để đáp ứng nhu cầu học tập của sinh viên chuyên ngành Công nghệ Thông tin,
bài giảng
Cơ sở dữ liệu được biên soạn theo chương trình hệ thống tín chỉ của Trường Đ
ại học Đà
Lạt, cung cấp các kiến thức cơ bản về lý thuyết cơ sở dữ liệu.
Giáo trình gồm 8 chương sau:
Chương
1
: giới thiệu chung
Chương
2
: trình bày mô hình thực thể kết hợp E_R (Entity Relationship)
để mô
hình hóa
các hoạt động trong thế giới thực, nhìn thế giới thực như là một tập các đối tượ
ng căn bản
được gọi là các thực thể, và các mối quan hệ
ở giữa các đối tượng này. Mô
hình được
phát triển để làm thuận tiện cho việc thiết kế cơ sở dữ liệu bằng cách đặc tả một
tổ chức.
Chương
3
:
trình bày mô hình dữ liệu quan hệ, các quy tắc chuyển đổi cơ sở dữ liệu biể
u diễn
dạng lược đồ E_R sang mô hình dữ liệu quan.
Chương
4,
5
và
6
: trình bày các ngôn ngữ truy vấn trên cơ sở dữ liệu. Trong chương 4 t
rình bày
ngôn ngữ đại số quan hệ, chương 5 trình bày ngôn ngữ tân từ và chương 6 trình bày ng
ôn ngữ
truy vấn SQL.
Chương
7
: trình bày các khái niệm liên quan đến phụ thuộc hàm, khóa, các thuật toán t
ìm phủ tối
thiểu của tập phụ thuộc hàm, tìm khóa và cuối chương trình bày về ràng buộc toàn vẹn
dữ liệu.
Chương
8
: Chương này giới thiệu các dạng chuẩn, phân rã bảo toàn thông tin,
bảo toàn
phụ thuộc hàm, qua đó cũng trình bày cách phân rã bảo toàn bảo toàn thông
tin và bảo
toàn phụ thuộc.
Mặc dù đã rất cố gắng trong quá trình biên soạn bài giảng nhưng chắc chắn bà
i giảng sẽ
còn nhiều thiếu sót và hạn chế. Rất mong nhận được sự đóng góp ý kiến quý bá
u của sinh
viên và các bạn đọc để giáo trình ngày một hoàn thiện hơn.
Trang 2/109
MỤC
LỤC
Lời mở đầu 2
Mục lục 3
Chương
1:
Giới
thiệu
chung
8
1. Giới thiệu chung
8
1.1.
Giới thiệu 8
1.2.
Định nghĩa CSDL. 10
1.3.
Các đối tượng sử dụng CSDL. 11
1.4.
Hệ quản trị CSDL. 12
1.5.
Các mức biểu diễn một CSDL 12
1.6.
Sơ đồ tổng quát một hệ quản trị CSDL 14
1.7.
Tính độc lập giữa dữ liệu và chương trình. 15
2. Các cách tiếp cận của một CSDL 15
2.1.
Cách tiếp cận theo mô hình dữ liệu mạng 16
2.2.
Mô hình dữ liệu phân cấp 17
2.3.
Mô hình dữ liệu quan hệ thực thể 18
2.4.
Mô hình dữ liệu quan hệ 18
2.5.
Mô hình dữ liệu hướng đối tượng 19
3. Bài tập 19
Chương
2:
Mô
hình
thực
thể
kết
hợp
21
1. Mô hình thực thể kết hợp. 21
1.1.
Thực thể - tập thực thể 21
1.2.
Thuộc tính 21
1.3.
Mối kết hợp 22
1.4.
Bản số 23
1.5.
Khoá 24
Trang 3/109
1.6.
Số chiều của mối kết hợp 25
1.7.
Tổng quát hóa và chuyên biệt hóa
25
1.8.
Tập thực thể yếu 26
2. Ví dụ 27
3. Bài tập 29
Chương
3:
Mô
hình
dữ
liệu
quan
hệ
30
1. Các khái niệm cơ bản 30
1.1.
Thuộc tính 30
1.2.
Quan hệ n ngôi 31
1.3.
Bộ 31
1.4.
Lược đồ quan hệ 32
1.5.
Khóa của một quan hệ 33
1.6.
Ràng buộc toàn vẹn 35
2. Các thao tác cơ bản trên quan hệ 35
2.1.
Phép thêm 35
2.2.
Phép xóa 36
2.3.
Phép sửa 36
3. Các bước chuyển đổi từ mô hình thực thể kết hợp
sang mô hình quan hệ 37
3.1.
Biến các tập thực thể chuyên biệt hóa về dạng bình thường 37
3.2.
Chuyển tất cả các tập thực thể thành quan hệ 38
3.3.
Mối kết hợp 39
3.4.
Nhập tất cả các quan hệ có cùng khóa 39
Chương
4:
Ngôn
ngữ
đại
số
quan
hệ
40
Trang 4/109
1. Các phép toán cơ sở 40
1.1.
Các phép toán tập hợp 40
1.2.
Các phép toán quan hệ 41
2. Các phép toán khác 46
2.1.
Phép kết hai quan hệ
46
2.2.
Phép kết nối nội 47
2.3.
Phép kết nối trái
48
2.4.
Phép kết nối phải 49
2.5.
Hàm kết hợp và gom nhóm 49
2.6.
Các phép toán cập nhật trên quan hệ 50
3. Bài tập 52
Chương
5:
Ngôn
ngữ
tân
từ
55
1. Ngôn ngữ tân từ có biến là bộ 55
1.1.
Một số khái niệm 55
1.2.
Định
nghĩa hình thức của phép tính bộ 55
1.3.
Lượng từ tồn tại
∃
và với mọi
∀
57
2. Ngôn ngữ tân từ có biến là miền giá trị 58
3. Bài tập 59
Chương
6:
Ngôn
ngữ
truy
vấn
SQL
61
1. Các lệnh hỏi 61
1.1.
Cú pháp lệnh truy vấn 61
1.2.
Phép chiếu 62
1.3.
Phép chọn 62
1.4.
Phép kết 63
Trang 5/109
1.5.
Một số lưu ý 63
2. Truy vấn lồng 65
3. Hàm kết hợp và gom nhóm 68
4. Các lệnh khai báo cấu trúc CSDL 69
5. Các thao tác cập nhật dữ liệu 72
6. Bài tập 73
Chương
7:
Phụ
thuộc
hàm,
khóa,
ràng
buộc
toàn
vẹn
74
1. Phụ thuộc hàm
74
1.1.
Khái niệm phụ thuộc hàm 74
1.2.
Hệ luật dẫn Amstrong 75
1.3.
Thuật toán tìm bao đóng của tập thuộc tính 77
1.4.
Bài toán thành viên 78
1.5.
Phủ tối thiểu của một tập phụ thuộc hàm 78
2. Khóa 82
2.1.
Định nghĩa 82
2.2.
Thuật toán tìm khóa
82
3. Ràng buộc toàn vẹn 85
3.1.
Định nghĩa – các yếu tố của ràng buộc toàn vẹn 85
3.2.
Các loại ràng buộc toàn vẹn 87
4. Bài tập 93
Chương
8:
Dạng
chuẩn
và
chuẩn
hóa
CSDL
96
1. Dạng chuẩn của lược đồ quan hệ 96
1.1. Dạng chuẩn 1 96
1.2. Dạng chuẩn 2 97
1.3. Dạng chuẩn 3 100
Trang 6/109
1.4. Dạng chuẩn BC 101
1.5. Kiểm tra dạng chuẩn 101
2. Phép phân rã 102
2.1. Phân rã bảo toàn thông tin 102
2.2. Phân rã bảo toàn phụ thuộc hàm 103
3. Thiết kế CSDL bằng cách phân rã 104
3.1. Phân rã thành dạng chuẩn BC (hoặc dạng chuẩn 3)
bảo toàn thông tin 104
3.2. Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin
vừa bảo toàn phụ thuộc hàm 108
4. Bài tập 108
Tài liệu tham khảo 109
Trang 7/109
Chương
1
Giới
Thiệu
Chung
Chương 1 giới thiệu cho học viên các khái niệm cơ bản về cơ sở dữ liệu (CS
DL) và hệ
quản trị CSDL.
1. Giới
thiệu
chung
1.1. Giới
thiệu
Xét một hệ thống các tập tin cổ điển: được tổ chức một cách riêng rẽ, phục v
ụ cho một
mục đích của một đơn vị hay một đơn vị con trực thuộc cụ thể. Ứng dụng là m
ột hệ quản
lý nhân sự của một công ty.
Tại một công ty đã được trang bị máy vi tính cho tất cả các phòng ban. Trong đó
:
Phòng
Tổ
chức
lưu
giữ
những
thông
tin
về
lý
lịch
của
nhân
viên
như
họ
tên,
bí
danh, giới tính, ngày sinh, ngày vào đoàn, ngày vào đảng, ngày tuyển d
ụng, hệ số
lương, hệ số phụ cấp, hoàn cảnh gia đình … Phần mềm được sử dụng để
quản lý là
Microsoft Access.
Phòng Tài vụ lưu giữ những thông tin về họ tên, hệ số lương, hệ số phụ
cấp, đơn vị
… để tính toán lương và phụ cấp dựa trên danh sách do phòng tổ chức
gởi sang.
Các bảng tính này được làm bởi Microsoft Excel.
Bộ phận Văn thư sử dụng Microsoft word để thảo các văn bản báo cáo
về tình hình
của đơn vị trong đó có nêu tổng số công nhân viên và trình độ chuyên
môn được
đào tạo.
Trong
khi
đó
tại
tổng
công
ty
các
phòng
ban
cũng
được
trang
bị
máy
vi
tính
và
cũng quản lý những thông tin của các cán bộ chủ chốt của công ty con là
giám đốc,
phó giám đốc, trưởng phó phòng.
Việc phát triển của hệ thống quản lý như sau:
Những chương trình ứng dụng mới phải được viết khi một nhu cầu nảy
sinh.
Các tập tin thường trực mới được tạo ra theo yêu cầu.
Trong một thời gian dài các tập tin có thể ở các dạng thức khác nhau.
Những chương trình ứng dụng có thể viết bởi các ngôn ngữ khác nhau.
Trang 8/109
Ưu
điểm:
Việc xây dựng những hệ thống tập tin riêng lẽ tại từng đơn vị quản lý
ít tốn thời
gian
bởi
lượng
thông
tin
cần
quản
lý
và
khai
thác
là
nhỏ,
không
đòi
hỏi
đầu
tư
nhiều nên triển khai nhanh.
Thông
tin
được
khai
thác
chỉ
phục
vụ
cho
mục
đích
hẹp
nên
khả
năn
g
đáp
ứng
nhanh chóng, kịp thời.
Hạn
chế:
Do thông tin được tổ chức ở mỗi phòng ban mỗi khác (thông tin và công cụ
triển khai)
nên rõ ràng sự phối hợp về mặt tổ chức và khai thác ở các phòng ban rất khó kh
ăn. Thông
tin ở phòng ban này không được sử dụng cho phòng ban khác, tại công ty co
n với tổng
công ty. Hơn nữa cùng một thông tin được cập nhật vào máy tại nhiều nơi khác
nhau. Do
đó có những hạn chế sau:
Dữ
liệu
dư
thừa
và
không
nhất
quán
Những thông tin giống nhau có thể bị trùng lắp ở một số nơi.
Tất cả những bản sao dữ liệu có thể không được cập nhật đúng.
Khó
khăn
trong
việc
truy
xuất
dữ
liệu
Có thể phải viết một trình ứng dụng mới thỏa yêu cầu mới đặt ra.
Có thể tạo ra dữ liệu này một cách thủ công nhưng mất thời gian.
Khó
khăn
khi
viết
chương
trình
ứng
dụng
đòi
hỏi
thông
tin
liên
qu
an
đến
nhiều
đơn
vị
Dữ liệu ở những tập tin khác nhau.
Dữ liệu ở các dạng thức khác nhau.
Ngoài ra còn một số vấn đề chưa được giải quyết như:
Nhiều
người
sử
dụng
Muốn thời gian trả lời nhanh hơn cho các tác vụ đồng thời.
Cần sự bảo vệ đối với những cập nhật đồng thời.
Các
vấn
đề
bảo
mật
Mỗi
người
sử
dụng
hệ
thống
chỉ
có
thể
truy
xuất
những
dữ
liệu
m
à
họ
được
phép thấy.
Trang 9/109
Chẳng hạn như những người tính lương và phụ cấp chỉ giải quyết c
ác mẫu tin
nhân viên, và không thể thấy được thông tin về lý lịch nhân viên; nhữ
ng thủ quỹ
chỉ truy xuất những dữ liệu về các khoản chi…
Khó khăn để ràng buộc điều này trong những chương trình ứng dụng.
Các
vấn
đề
toàn
vẹn.
Dữ liệu có thể được yêu cầu thỏa mãn những ràng buộc.
Chẳng
hạn
như
nhân
viên
đang
hưởng
chế
độ
nào
đó
ở
phòng
tổ
c
hức
thì
sẽ
không được hưởng chế độ trợ cấp cao nhất của phòng công đoàn.
Với cách tiếp cận xử lý-tập tin, khó khăn để thực hiện hoặc thay đổi
những ràng
buộc như vậy.
Khó
khăn
khi
nâng
cấp
hệ
thống.
Do hệ thống được tổ chức thành các tập tin riêng lẽ nên thiếu sự chi
a xẻ thông
tin giữa các phòng ban. Bên cạnh đó việc kết nối các hệ thống này vớ
i nhau hay
nâng cấp ứng dụng sẽ gặp rất nhiều khó khăn.
Những nhược điểm này đã dẫn tới việc phát triển các hệ thống quản trị cơ sở dữ
liệu.
1.2. Định
nghĩa
cơ
sở
dữ
liệu
Cơ sở dữ liệu (database) là một hệ thống các thông tin có cấu trúc được lưu tr
ữ trên các
thiết
bị
lưu
trữ
thứ
cấp
(băng
từ,
đĩa
từ…)
nhằm
thoả
mãn
yêu
cầu
khai
thác
thông
tin
đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều
mục đích
khác nhau.
Ưu
điểm
của
CSDL:
Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm
được tính nhất
quán và toàn vẹn dữ liệu
Dữ liệu có thể được truy xuất theo nhiều cách khác nhau
Khả năng chia xẻ thông tin cho nhiều người sử dụng và nhiều ứng dụng
khác nhau
Để đạt được những ưu điểm trên CSDL đặt ra những vấn đề cần giải quyết, đó l
à:
Tính
chủ
quyền
của
dữ
liệu
. Do sự chia xẻ của CSDL nên tính chủ
quyền của dữ
liệu có thể bị lu mời và làm mờ nhạt tinh thần trách nhiệm, được thể hiệ
n trên vấn
đề an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của
dữ liệu và
tính chính xác của dữ liệu. Nghĩa là người khai thác CSDL phải có ng
hĩa vụ cập
nhật các thông tin mới nhất của CSDL.
Trang 10/109
Tính
bảo
mật
và
quyền
khai
thác
thông
tin
của
người
sử
dụng
(NSD).
Do có
nhiều người cùng khai thác CSDL một cách đồng nên cần phải có một
cơ chế bảo
mật và phân quyền khai thác CSDL.
Tranh
chấp
dữ
liệu.
Nhiều người được phép truy cập vào cùng một tài
nguyên dữ
liệu (data source) của CSDL với những mục đích khác nhau như xem,
thêm, xóa,
sửa dữ liệu. Như vậy cần phải có cơ chế ưu tiên truy nhập dữ liệu cũng
như cơ chế
giải
quyết tình
trạnh
khoá
chết
(DeadLock)
trong
quá trình
khai
thác
c
ạnh tranh.
Cơ chế ưu tiên có thể được thực hiện dựa trên:
Cấp quyền ưu tiên cho người khai thác CSDL, người nào có quyền ư
u tiên cao
hơn thì được ưu tiên cấp quyền truy nhập dữ liệu trước.
Thời
điểm truy
nhập,
ai
có
yêu
cầu truy xuất trước thì có quyền tru
y nhập dữ
liệu trước.
Hoặc dựa trên cơ chế lập lịch truy xuất hay cơ chế khoá.
…
Đảm
bảo
dữ
liệu
khi
có
sự
cố.
Việc quản lý tập trung có thể làm tăng
khả năng
mất mát hoặc sai lệch thông tin khi có sự cố như mất điện đột xuất, một
phần hay
toàn bộ đĩa lưu trữ dữ liệu bị hư… Một số hệ điều hành mạng có cung c
ấp dịch vụ
sao lưu đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng - RAID), tự động k
iểm tra và
khắc
phục
lỗi
khi
có
sự
cố.
Tuy
nhiên
bên
cạnh
dịch
vụ
của
hệ
điều
hành,
một
CSDL nhất thiết phải có một cơ chế khôi phục dữ liệu khi các sự cố bất
ngờ xảy ra
để đảm bảo CSDL luôn ổn định.
1.3. Các
đối
tượng
sử
dụng
CSDL
Những người sử dụng không chuyên về lĩnh vực tin học và CSDL, do
đó CSDL
cần có các công cụ để giúp cho người sử dụng không chuyên có thể kha
i thác hiệu
quả CSDL
Các chuyên viên tin học biết khai thác CSD, đây là những người có thể
xây dựng
các ứng dụng khác nhau phục vụ cho những yêu cầu khác nhau trên CSD
L.
Những người quản trị CSDL, là những người hiểu biết về tin học, các
hệ quản trị
CSDL và hệ thống máy tính. Họ là người tổ chức CSDL (khai báo cấu tr
úc CSDL,
ghi nhận các yêu cầu bảo mật cho các dữ liệu cần bảo vệ…), do đó h
ọ cần phải
nắm rõ các vấn đề về kỹ thuật để có thể phục hồi dữ liệu khi có sự cố. H
ọ là những
người
cấp
quyền
hạn
khai
thác
CSDL
nên
họ
có
thể
giải
quyết các vấ
n đề
tranh
chấp dữ liệu.
Trang 11/109
1.4. Hệ
quản
trị
CSDL
Để giải quyết tốt những vấn đề đặt ra cho một CSDL như đã trình bày trong 1.2
thì cần có
một hệ thống các phần mềm chuyên dụng. Hệ thống này được gọi là hệ quản
trị CSDL
(Database
Management
System
-
DBMS),
là
công
cụ
hỗ
trợ
tích
cực
cho
các
nhà
phân
tích, thiết kế và khai thác CSDL. Hiện nay có nhiều hệ quản trị CSDL trên thị tr
ường như:
Visual Foxpro, SQL server, DB2, Microsoft Access, Oracle…
Một hệ quản trị CSDL phải có:
Ngôn ngữ giao tiếp giữa NSD và CSDL:
Ngôn
ngữ
mô
tả
dữ
liệu
(Data
Definition
Language -
DDL)
để cho
phép
khai
báo
cấu
trúc
của
CSDL,
khai
báo
các
mối
liên
hệ
của
dữ
l
iệu
(Data
Relationship) và các quy tắc (Rules, Constraint) quản lý áp đặt trên dữ
liệu.
Ngôn ngữ thao tác dữ liệu (Data Manipulaton Language - DML) cho
phép NSD
có thể thêm, xoá, dữ liệu trong CSDL.
Ngôn ngữ truy vấn dữ liệu (Structured Query Language - SQL) cho
phép NSD
truy vấn các thông tin cần thiết.
Ngôn
ngữ
quản
lý
dữ
liệu
(Data
Control
Language
-
DCL)
cho
p
hép
những
người quản trị hệ thống thay đổi cấu trúc của các bảng dữ liệu, khai bá
o bảo mật
thông tin và cấp quyền khai thác CSDL cho NSD.
Tự điển dữ liệu (Data dictionary) dùng để mô tả các ánh xạ liên kết,
ghi nhận các
thành
phần
cấu
trúc
của
CSDL,
các
chương
trình
ứng
dụng,
mật
mã,
quyền
sử
dụng…
Có biện pháp bảo mật tốt.
Có cơ chế giải quyết tranh chấp dữ liệu.
Có cơ chế sao lưu và phục hồi dữ liệu khi có sự cố xảy ra.
Có giao diện tốt, dễ sử dụng.
Bảo đảm tính độc lập giữa dữ liệu và chương trình: khi có sự thay đổi
dữ liệu (như
sửa
đổi
cấu
trúc
lưu
trữ
các
bảng
dữ
liệu,
thêm
các
chỉ
mục,…)
thì
c
ác
chương
trình ứng dụng đang chạy trên CSDL vẫn không cần phải viết lại hay c
ũng không
ảnh hưởng đến NSD khác.
1.5. Các
mức
biểu
diễn
một
CSDL
Để hệ thống có thể dùng được thì phải tìm dữ liệu một cách hiệu quả. Điều nà
y dẫn đến
việc cần phải thiết kế những cấu trúc dữ liệu phức tạp đối với việc biểu diễn dữ
liệu trong
Trang 12/109
cơ
sở
dữ
liệu.
Vì
nhiều
người sử
dụng các hệ
thống cơ sở dữ liệu không phả
i là người
hiểu biết nhiều về máy tính nên những người phát triển hệ thống phải che dấu
đi sự phức
tạp
khỏi
người
sử
dụng
thông
qua
một
số
mức
trừu
tượng,
nhằm
làm
đơn
gi
ản
hóa
sự
tương tác của người sử dụng đối với hệ thống.
Có 3 mức biểu diễn dữ liệu, cụ thể như sau:
Mức
trong
(mức
vật
lý
-
Physical
level)
Nói đến cách thức dữ liệu được lưu trữ thực sự. Trả lời câu hỏi dữ liệu
gì và lưu
trữ
chúng như thế nào? Cần các chỉ mục gì?
Ví dụ như chỉ mục, B-cây, băm.
Những người thao tác tại mức này là người quản trị CSDL và những
NSD chuyên
môn.
Mức
quan
niệm
hay
mức
logic
(conception
level,
logical
level)
Trả lời câu hỏi cần phải lưu trữ
bao nhiêu loại dữ
liệu? Đó là những
dữ liệu gì?
Mối quan hệ giữa chúng như thế nào?
Như vậy CSDL mức vật lý là sự cài đặt cụ thể của CSDL mức quan
niệm.
Mức
ngoài
hay
mức
nhìn
(view
level)
Là mức của NSD và các chương trình ứng dụng.
Làm việc tại mức này là các nhà chuyên môn, kỹ sư tin học, NSD không
chuyên.
Mỗi NSD hay mỗi chương trình ứng dụng có thể được nhìn CSDL
theo một góc
độ khác nhau. Tuỳ thuộc vào vai trò của NSD mà có thể thấy tất cả hoặc
một phần
của CSDL. NSD hay chương trình ứng dụng có thể không được biết về
cấu trúc tổ
chức lưu trữ thông tin trong CSDL. Họ chỉ có thể làm việc trên một p
hần CSDL
theo
cách
nhìn
do
người
quản
trị
hay
chương
trình
ứng
dụng
quy
đị
nh,
gọi
là
khung nhìn.
Trang 13/109
1.6. Sơ
đồ
tổng
quát
một
hệ
quản
trị
CSDL
Hình
1.2.
Sơ
đồ
tổng
quát
của
một
hệ
quản
trị
CSDL
Hình 1.2 minh họa sơ đồ tổng quát của một hệ quản trị CSDL. Có 3 mức: m
ức chương
trình khai báo cấu trúc và chương trình ứng dụng; mức mô tả CSDL, thao tác
CSDL và
các tự điển dữ liệu; mức CSDL.
Trang 14/109
Mỗi hệ quản trị CSDL có một ngôn ngữ khai báo hay mô tả (Data Definition L
anguage -
DDL) cấu trúc CSDL riêng. Những người thiết kế và quản trị CSDL thực hiệ
n các công
việc khai báo cấu trúc CSDL.
Các chương trình khai báo cấu trúc CSDL được viết bằng ngôn ngữ mà hệ quản
trị CSDL
cho phép. Hai công việc khai báo cấu trúc logic (là việc khai báo các loại dữ l
iệu và các
mối liên hệ giữa các loại dữ liệu đó, cùng các ràng buộc toàn vẹn dữ liệu) và kh
ai báo vật
lý (dữ liệu được lưu trữ theo dạng nào, có bao nhiêu chỉ mục)
Các chương trình ứng dụng được viết bằng ngôn ngữ thao tác CSDL (Data Ma
nipulation
Langage - DML) với mục đích:
Truy xuất dữ liệu
Cập nhật dữ liệu (thêm, xóa, sửa)
Khai thác dữ liệu
Ngôn
ngữ
thao
tác
CSDL
còn
được
sử
dụng
cho
những
người
sử
dụn
g
thao
tác
trực tiếp với CSDL.
Tự điển dữ liệu (Data Dictionary - DD) là một CSDL của hệ quản trị CSDL s
ử dụng để
lưu trữ cấu trúc CSDL, các thông tin bảo mật, bảo đảm an toàn dữ liệu và cá
c cấu trúc
ngoài. Tự điển dữ liệu còn được gọi là siêu CSDL (Meta-Database)
1.7. Tính
độc
lập
giữa
dữ
liệu
và
chương
trình
Độc
lập
dữ
liệu
vật
lý
Khả
năng
cập
nhật
lược
đồ
vật
lý
không
làm
cho
các
chương
trình
ứng
dụng
phải bị viết lại.
Việc cập nhật ở mức này thường cần thiết để cải tiến hiệu suất.
Độc
lập
dữ
liệu
logic
Khả năng cập nhật lược đồ logic mà không làm cho các chương trình
ứng dụng
phải bị viết lại.
Những cập nhật thường được thực hiện khi cấu trúc logic của cơ sở d
ữ liệu thay
đổi.
2. Các
cách
tiếp
cận
của
một
CSDL
Nền tảng của cấu trúc cơ sở dữ liệu là mô hình dữ liệu. Mô hình dữ liệu được
định nghĩa
là một sưu tập các công cụ khái niệm dùng cho việc mô tả dữ liệu, các mối q
uan hệ dữ
liệu, các ngữ nghĩa dữ liệu và các ràng buộc dữ liệu.
Trang 15/109
2.1. Cách
tiếp
cận
theo
mô
hình
dữ
liệu
mạng
Mô
hình
dữ
liệu
mạng
(Network
Data
Model)
hay
gọi
tắt
là
mô
hình
mạng
(Network
Model) là mô hình được biểu diễn bởi một đồ thị có hướng. Mô hình này được
xây dựng
bởi Honeywell vào năm 1964-1965. Trong mô hình này, có 3 khái niệm
được sử dụng:
mẫu tin hay bản ghi (record), loại mẫu tin (record type) và loại liên hệ (set type)
.
Loại
mẫu
tin
: đặc trưng cho một loại đối tượng riêng biệt. Chẳng hạn như tron
g quản lý
nhân sự tại một đơn vị thì đối tượng cần phản ảnh của thế giới thực có thể là Ph
òng, nhân
viên, công việc, lý lịch… do đó có các loại mẫu tin đặc trưng cho từng đối t
ượng này.
Trong mô hình mạng, mỗi loại mẫu tin được thể hiện bằng một hình chữ nh
ật, một thể
hiện (instance) của một loại mẫu tin được gọi là bản ghi (record) . Ở ví dụ trê
n loại mẫu
tin Phòng có các mẫu tin là các phòng ban trong công ty, loại mẫu tin Nhân v
iên có các
mẫu tin là các nhân viên đang làm việc tại các phòng ban của công ty…
Loại
liên
hệ:
là sự liên kết giữa một loại mẫu tin chủ với một mẫu tin thành vi
ên. Trong
mô hình mạng, một loại liên hệ được thể hiện bằng hình bầu dục và sự liên k
ết giữa hai
loại mẫu tin được thể hiện bằng các cung có hướng đi từ loại mẫu tin chủ đến l
oại liên hệ
và từ loại liên hệ đến loại mẫu tin thành viên.
Trong loại liên kết người ta còn chỉ ra số lượng các mẫu tin tham gia vào tro
ng mối kết
hợp. Có một số loại sau:
1÷ 1 (One to One): Mỗi mẫu tin của loại mẫu tin chủ kết hợp với đúng
1 mẫu tin
của loại mẫu tin thành viên. Ví dụ, mỗi nhân viên có duy nhất một lý lịch
cá nhân.
1÷ n
(One to
Many):
Mỗi
mẫu
tin
của
loại
mẫu
tin
chủ
kết
hợp với 1
hay nhiều
mẫu
tin
của
loại
mẫu
tin
thành
viên.
Ví
dụ,
mỗi
phòng
ban
có
thể
có
một
hoặc
nhiều nhân viên.
n ÷ 1 (Many to One): Nhiều mẫu tin của loại mẫu tin chủ kết hợp với
đúng 1 mẫu
tin của loại mẫu tin thành viên. Ví dụ, nhiều nhân viên cùng làm một côn
g việc.
Đệ quy (Recursive): Một loại mẫu tin chủ cũng có thể đồng thời là
mẫu tin thành
viên với chính nó. Ví dụ, trưởng phòng cũng là một nhân viên thuộc p
hòng trong
công ty.
Hình 1.4 minh hoạ một mô hình dữ liệu mạng.
Trang 16/109
Hình
1.4.
Mô
hình
dữ
liệu
mạng
Ưu
điểm:
đơn giản, dễ sử dụng.
Hạn
chế:
không thích hợp trong việc biểu diễn CSDL lớn do hạn chế về khả
năng diễn
đạt
ngữ
nghĩa
của
dữ
liệu,
đặc
biệt
là
các
dữ
liệu
và
mối
liên
hệ
phức
tạp
c
ủa
dữ
liệu
trong thực thế là rất hạn chế.
2.2. Mô
hình
dữ
liệu
phân
cấp
Mô
hình
dữ
liệu
phân
cấp
(Hieracical
Data
Model),
còn
gọi
là
mô
hình
phân
cấp
(Hieracical Model), được thực hiện thông qua sự kết hợp giữa IBM và North
American
Rockwell vào khoảng năm 1965. Mô hình là một cây, trong đó mỗi nút của cây
biểu diễn
một thực thể, giữa nút con với nút cha được liên hệ với nhau theo một mối q
uan hệ xác
định.
Loại
mẫu
tin
: giống trong mô hình dữ liệu mạng
Loại
mối
liên
hệ
: kiểu liên hệ là phân cấp:
Mẫu tin thành viên chỉ đóng vai trò thành viên của một mối liên hệ duy nhất,
tức là nó
thuộc một chủ duy nhất. Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin t
hành viên
là 1 ÷ n và từ mẫu tin thành viên với mẫu tin chủ là 1 ÷ 1
Trang 17/109
Giữa hai loại mẫu tin chỉ tồn tại một mối quan hệ duy nhất.
Hình 1.5 minh hoạ mô hình dữ liệu phân cấp một CSDL về điều tra dân số.
Hình
1.5.
Mô
hình
dữ
liệu
phân
cấp
2.3. Mô
hình
dữ
liệu
quan
hệ
Mô
hình
dữ
liệu
quan
hệ
(Relational
Data
Model)
còn
được
gọi
là
mô
hìn
h
quan
hệ
(Relational
Model)
do
E.F.Codd
đề
xuất
năm
1970.
Nền
tảng
cơ
bản
là
kh
ái
niệm
lý
thuyết
tập
hợp
trên
các
quan
hệ,
tức
là
tập
của
các
bộ
giá
trị
(value
tuples).
Trong
mô
hình
dữ
liệu
này
những
khái
niệm
được
sử
dụng
là
thuộc
tính
(attribute)
,
quan
hệ
(relation), lược đồ quan hệ (relation schema), bộ (tuple), khóa (key).
Mô hình quan hệ là mô hình được nghiên cứu nhiều nhất, và có cơ sở lý thuyết
vững chắc
nhất.
Mô
hình
quan
hệ
cùng
với
mô
hình
dữ
liệu
thực
thể
kết
hợp
đang
đượ
c
sử
dụng
rộng rãi nhất hiện nay trong việc phân tích và thiết kế CSDL. Chúng ta sẽ nghi
ên cứu chi
tiết về mô hình này trong chương sau.
2.4. Mô
hình
dữ
liệu
thực
thể
-
kết
hợp
Mô hình dữ liệu thực thể - kết hợp (Entity – Relationship Model) do Peter Pin_
Shan Chen
đề xuất năm 1976. Mô hình quan hệ-thực thể được dựa trên sự nhận thức thế
giới gồm có
Trang 18/109
một sưu tập các đối tượng căn bản, được gọi là các tập thực thể, và các mối
quan hệ ở
giữa các đối tượng này.Trong mô hình này các khái niệm được sử dụng là tậ
p thực thể
(entity set), thực thể (entity), thuộc tính của loại thực thể (entity attribute), khó
a của loại
thực
thể
(entity
key),
loại
mối
kết
hợp
(entity
relationship),
số
ngôi
của
m
ối
kết
hợp
(relationship degree), thuộc tính của mối kết hợp (relationship attribute), bản s
ố của mối
kết hợp (relationship cardinal).
Chi tiết của mô hình này sẽ được nghiên cứu trong chương sau.
2.5. Mô
hình
dữ
liệu
hướng
đối
tượng
Mô hình dữ liệu hướng đối tượng (Object Oriented Data Model) ra đời vào c
uối những
năm 80 và đầu những năm 90. Đây là loại mô hình tiên tiến nhất hiện nay dựa
trên cách
tiếp cận hướng đối tượng. Mô hình này sử dụng các khái niệm như lớp (class),
sự kế thừa
(inheritance), kế thừa bội (multi - inheritance). Đặc trưng cơ bản của cách tiếp
cận này là
tính
đóng
gói
(encapsulation),
tính
đa
hình
(polymorphism)
và
tính
tái
sử
dụng
(reusability).
3. Bài
tập
Bài
1:
Dựa vào những khái niệm đã học, hãy biểu diễn CSDL có các loại mẫu tin Ph
òng, Nhân
viên,
Công
việc,
lý
lịch
đã
trình
bày
trong
mô
hình
mạng
theo
cách
tiếp
cận
phân
cấp.Biết:
Loại liên hệ là phân cấp.
Phòng có nhiều nhân viên, mỗi nhân viên chỉ thuộc một phòng duy nhất
Công việc có nhiều nhân viên cùng làm; mỗi nhân viên chỉ làm một
công việc duy
nhất
Mỗi nhân viên có một lý lịch, mỗi lý lịch chỉ thuộc duy nhất một nhân
viên.
Bài
2:
Dựa vào những khái niệm đã học, hãy biểu diễn CSDL về tổng điều tra dân số
toàn quốc
có các loại mẫu tin tỉnh – thành phố, quận huyện, phường xã, địa bàn, hộ điều t
ra và nhân
khẩu đã trình bày trong mô hình phân cấp theo cách tiếp cận mạng. Biết:
Nhân khẩu thuộc một hộ điều tra
Hộ điều tra thuộc một địa bàn
Địa bàn điều tra thuộc một phường xã
Trang 19/109
Phường xã thuộc một quận huyện
Quận huyện thuộc một tỉnh, thành phố
Trang 20/109
Chương
2
Mô
Hình
Thực
Thể
Kết
Hợp
Mô
hình
dữ
liệu
thực
thể
kết
hợp
(E-R
-
entity-relationship
data
model)
do
Peter
Pin_Shan Chen đề xuất năm 1976, nhìn thế giới thực như là một tập các đối
tượng căn
bản được gọi là các thực thể, và các mối quan hệ
ở giữa các đối tượng này.
Mô hình đã
được phát triển để làm thuận tiện cho việc thiết kế cơ sở dữ liệu bằng cách đặc
tả một tổ
chức. Một lược đồ như vậy biểu diễn một cấu trúc logic tổng quát của cơ sở dữ l
iệu.
1. Mô
hình
thực
thể
kết
hợp
Những
khái
niệm
căn
bản
mà
mô
hình
thực
thể
kết
hợp
dùng:
thực
thể,
tập
thực
thể,
khóa, mối quan hệ, và thuộc tính.
1.1.
Thực
thể
-
Tập
thực
thể
Một thực thể (an entity) là một “sự vật” hoặc “đối tượng” mà nó tồn tại và c
ó thể phân
biệt được với các đối tượng khác. Ví dụ như một nhân viên trong một tổ chức l
à một thực
thể.
Một tập thực thể (an entity set) là một tập hợp các thực thể cùng loại mà chú
ng chia sẻ
cùng
những
tính
chất
hoặc
thuộc
tính.
Ví
dụ
như
tập
hợp
tất
cả
những
người
mà
họ
là
nhân viên của một tổ chức là một tập thực thể khách hàng.
Mỗi
tập
thực
thể
được
đặt
một
tên
gọi,
thông
thường
là
danh
từ.
V
í
dụ
như
KHACHHANG, HOADON,…
Ký hiệu: hình chữ nhật với tên gọi
NHANVIEN
Hình
2.1.
Tập
thực
thể
1.2. Thuộc
tính
Mỗi một tập thực thể có nhiều đặc trưng riêng được gọi là các thuộc tính. Mỗi
một thuộc
tính được đặt một tên, chẳng hạn như MaKH (mã khách hàng), HoTenKH (họ
tên khách
hàng)…
Ký hiệu: hình oval với tên gọi, có đường nối với thực thể
Trang 21/109
Khi phân tích một thuộc tính, thông thường cần xét đến kiểu dữ liệu và miền giá
trị tương