1
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƢƠNG BÀI GIẢNG
HỌC PHẦN: CƠ SỞ DỮ LIỆU
Trình độ đào tạo
Hệ đào tạo
:
:
Đại học
Chính quy
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ CƢƠNG BÀI GIẢNG
HỌC PHẦN: CƠ SỞ DỮ LIỆU
Trình độ đào tạo: Đại học
Hệ đào tạo : Chính quy
Ngành : CNTT
NĂM 2014-2015
2
MỤC LỤC
1. CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU 7
1.1. Dữ liệu - thông tin 7
1.1.1. Dữ liệu 7
1.1.2.Thông tin 9
1.2. Các hệ thống xử lý truyền thống 9
1.3. Hệ cơ sở dữ liệu 10
1.3.1. CSDL là gì? 10
1.3.2. Hệ quản trị CSDL 11
1.3.2.Các chức năng của một hệ quản trị cơ sở dữ liệu 12
1.3.3.Các đặc trƣng của giải pháp cơ sở dữ liệu 13
1.3.4. Lƣợc đồ và trạng thái cơ sở dữ liệu 15
1.4. Các mô hình dữ liệu 16
Các loại mô hình cơ sở dữ liệu 17
1.4.1. Mô hình thực thể - liên kết (thực thể -quan hệ) 18
1.4.2. Mô hình dữ liệu quan hệ 18
1.4.3. Mô hình dữ liệu mạng 18
1.4.4. Mô hình dữ liệu phân cấp 19
2. MÔ HÌNH THỰC THỂ LIÊN KẾT 20
2.1. Sử dụng mô hình quan niệm bậc cao cho việc thiết kế cơ sở dữ liệu 20
2.2. Các thành phần cơ bản của mô hình ER 22
2.2. 1. Thực thể và thuộc tính 22
2.2. 2. Kiểu thực thể, tập thực thể, khóa và tập giá trị 23
2.2.3. Kiểu liên kết, tập liên kết và các thể hiện 25
2.2.4.Cấp liên kết, tên vai trò và kiểu liên kết đệ quy 26
2.2.5. Các ràng buộc trên các kiểu liên kết 27
2.2.6.Thuộc tính của các kiểu liên kết 28
2.2.7.Các kiểu thực thể yếu 28
2.3. Ví dụ về thiết kế CSDL dựa trên mô hình ER 29
2.4. Tổng kết mô hình thực thể - liên kết 31
2. 4.1 Tóm tắt 31
2.4.2.Câu hỏi luyện tập 31
3. MÔ HÌNH QUAN HỆ - CHUYỂN MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ 33
3.1.Các khái niệm 33
3.1.1.Thuộc tính (Attribute) 33
3.1.2.Lƣợc đồ quan hệ (relation schema) 34
3.1.3. Quan hệ (relation) 34
3.1.4.Bộ (tuple) 35
3.1.5.Siêu khóa - khóa (super key - key) 35
3.2. Cơ sở dữ liệu quan hệ và lƣợc đồ cơ sở dữ liệu quan hệ 37
3.3. Ràng buộc toàn vẹn 39
3.3.1. Khái niệm ràng buộc toàn vẹn 39
3
3.3.2. Các yếu tố của ràng buộc toàn vẹn 40
3.3.3. Phân loại ràng buộc toàn vẹn 41
3.4. Các phép tính trên cơ sở dữ liệu quan hệ 45
3.4.1 .Các phép toán cập nhật trên quan hệ 45
3.4.2. Tìm kiếm dữ liệu (truy vấn dữ liệu) 47
3.5. Các quy tắc chuyển đổi từ lƣợc đồ CSDL ER sang thiết kế quan hệ 47
3.6. Chuyển đổi mô hình cụ thể 52
4. BÀI TẬP VÀ THẢO LUẬN VỀ THIẾT KẾ CSDL DỰA TRÊN 2 Ô HÌNH CSDL: ER
VÀ QUAN HỆ 53
4.1. Nhắc lại lý thuyết 53
4.2. Bài tập – thảo luận 53
5. NGÔN NGỮ ĐẠI SỐ QUAN HỆ 53
5.1. Các phép toán đại số quan hệ 53
5.1.1.Phép chọn (SELECT) 53
5.1.2. Phép chiếu (PROJECT) 55
5.1.3. Phép đặt lại tên (RENAME) 56
5.1.4. Các phép toán lý thuyết tập hợp 57
5.1.5.Phép nối (JOIN) 58
5.1.6.Tập hợp đầy đủ các phép toán quan hệ 60
5.1.7.Phép chia 61
6. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ (TIẾP) 61
6.1.Các phép toán quan hệ bổ sung 61
6.1.1.Các hàm nhóm và các phép nhóm 61
6.1.2.Các phép toán khép kín đệ quy 62
6.2. Một số ví dụ về truy vấn trong đại số quan hệ 63
7. CƠ BẢN VỀ TỐI ƢU HÓA MỘT CÂU HỎI TRUY VẤN 64
7.1 Mở đầu 64
7.2 Tổng quan về tối ƣu hóa câu hỏi 64
7.3. Phƣơng pháp ƣớc lƣợng cây đại số quan hệ 66
7.4 Nguyên tắc tối ƣu hóa 67
7.5. Kỹ thuật tối ƣu hoá các biểu thức đại số quan hệ. 67
7.5.1. Biểu thức quan hệ 67
7.5.2. Biến đổi biểu thức quan hệ 68
7.5.3. Các quy tắc tƣơng đƣơng 68
7.5.4 Một số nhận xét khi thực hiện tối ƣu hóa câu hỏi 71
7.6. Ví dụ tối ƣu hóa các câu hỏi 72
7.7. Bài tập 73
8. BÀI TẬP – THẢO LUẬN VỀ NGÔN NGỮ ĐẠI SỐ QUAN HỆ 76
8.1. Nhắc lại lý thuyết 76
8.2. Bài tập – thảo luận 76
9. NGÔN NGỮ TRUY VẤN CẤU TRÚC SQL 76
4
9.1. SQL là chuẩn ngôn ngữ ANSI để truy cập CSDL 76
9.1.1. SQL là gì? 76
9.1.2. SQL là một chuẩn 77
9.2. Bảng CSDL 77
9.3. Ngôn ngữ truy vấn cấu trúc (SQL) 77
9.3.1. SQL là ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language) 77
9.3.2. SQL là ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language) 78
9.4. Các kiểu dữ liệu 78
9.5. Câu lệnh định nghĩa dữ liệu (create database, create table, alter table, drop table ) 79
9.5.1. Tạo một CSDL 79
9.5.2. Tạo một bảng trong một CSDL 79
9.5.3. Các ràng buộc toàn vẹn (TBTV) và cách tạo ràng buộc trên bảng 80
9.5.4.Lệnh sửa đổi bảng(alter table) 84
9.6. Bài tập 85
10.THỰC HÀNH CÂU LỆNH CREATE DATABASE, CREATE TABLE, ALTER TABLE,
DROP TABLE 86
11. TRUY VẤN DỮ LIỆU VÀ CẬP NHẬT DỮ LIỆU 86
11.1. Cập nhật dữ liệu 86
11.1.1. Câu lệnh thêm dữ liệu (insert) 86
11.1.2. Câu lệnh sửa đổi dữ liệu (update) 87
11.1.3. Câu lệnh xóa dữ liệu (delete) 87
11.2. Truy vấn cơ bản 88
11.2.1. Cú pháp cơ bản của câu lệnh select cơ bản 88
11.2.2. SQL và đại số quan hệ 89
11.2.3. Mệnh đề select 89
11.2.4. Mệnh đề where 90
11.2.5. Mệnh đề order by 92
11.2.6. Kết nối bảng 93
11.3. Các bài tập về truy vấn cơ bản 94
12. CÁC PHÉP TOÁN TẬP HỢP VÀ TRUY VẤN LỒNG 94
12.1. Các phép toán tập hợp 94
12.1.1. Toán tử UNION 94
12.1.2. Toán tử EXCEPT và INTERSECT 95
12.2. Truy vấn lồng 95
12.2.1. Truy vấn lồng phân cấp 96
12.2.2. Truy vấn lồng tƣơng quan 96
12.3. Bài tập liên quan đến các phép toán tập hợp và truy vấn lồng 97
13. THỰC HÀNH RBTV 97
14. THỰC HÀNH VỀ CẬP NHẬT DỮ LIỆU 97
15. THỰC HÀNH VỀ TRUY VẤN CƠ BẢN 97
16. THỰC HÀNH VỀ CÁC PHÉP TOÁN TẬP HỢP VÀ TRUY VẤN LỒNG 97
17. HÀM KẾT HỢP VÀ GOM NHÓM, MỘT SỐ TRUY VẤN KHÁC 97
5
17.1. Hàm kết hợp 97
17.1.1. Hàm count(), min(), max(), sum(), avg() 97
17.2. Gom nhóm 100
17.2.1. Cú pháp 100
17.2.2. Điều kiện trên nhóm 100
17.3. Thứ tự thực hiện câu truy vấn có mệnh đề Group by và Having 101
17.4. Bài tập liên quan đến hàm kết hợp và gom nhóm 102
17.5. Một số dạng truy vấn khác 102
17.5.1. Truy vấn con ở mệnh đề From 102
17.5.2. Điều kiện kết nối ở mệnh đề From 102
17.6. Các bài tập liên quan đến một số dạng truy vấn khác 103
18. THỰC HÀNH HÀM KẾT HỢP VÀ GOM NHÓM 103
19. THỰC HÀNH MỘT SỐ DẠNG TRUY VẤN KHÁC 103
20. KIỂM TRA THỰC HÀNH 103
21. PHỤ THUỘC HÀM 103
21.1. Khái niệm 103
21.2. Một số tính chất của phụ thuộc hàm 105
21.3. Định nghĩa suy dẫn theo quan hệ 106
21.4. Hệ tiên đề Amstrong (Armstrong‟s Axioms) 107
21.5. Định nghĩa suy dẫn theo hệ tiên đề Amstrong 108
21.6. Bao đóng của tập thuộc tính (closures of attribute sets) 108
21.6.1. Thuật toán tìm bao đóng của một tập thuộc tính 111
21.6.2. Thuật toán cơ bản tìm F
+
114
22. PHỦ CỦA TẬP PHỤ THUỘC HÀM 115
22.1. Định nghĩa tƣơng đƣơng 115
22.2. Các tập phụ thuộc hàm tƣơng đƣơng 116
22.3. Phụ thuộc hàm không dƣ thừa 117
22.3.1. Phụ thuộc hàm dƣ thừa 117
22.3.2. Phủ không dƣ 118
22.4 Phủ thu gọn 119
22.4.1. Phụ thuộc hàm có vế trái dƣ thừa: 119
22.4.2. Tập phụ thuộc hàm có vế phải một thuộc tính: 119
22.4.3. Tập phụ thuộc hàm không dƣ thừa (phủ không dƣ): 119
22.4.4. Tập phụ thuộc hàm tối thiểu: 120
23. BÀI TẬP VỀ PHỤ THUỘC HÀM 121
23.1. Nhắc lại lý thuyết 121
23.2. Bài tập áp dụng 121
24. KHÓA CỦA LƢỢC ĐỒ QUAN HỆ 121
24.1. Siêu khóa và khóa 121
24.2. Họ Sperner và khóa 122
24.3. Một số vấn đề về khóa 123
6
24.3.1.Tìm một khoá của lƣợc đồ quan hệ 123
24.3.2. Kiểm tra một tập cho trƣớc có phải là khoá hay không? 124
24.3.3. Giao của tất cả các khoá 124
24.3.4. Thuật toán kiểm tra một lƣợc đồ đã cho có một hay nhiều khoá 127
24.3.5. Thuật toán tìm tất cả các khoá của lƣợc đồ quan hệ 127
25. BÀI TẬP VỀ KHÓA CỦA LƢỢC ĐỒ QUAN HỆ 130
25.1. Nhắc lại lý thuyết 130
25.2. Bài tập 130
26. CÁC DẠNG CHUẨN CƠ BẢN CỦA LƢỢC ĐỒ QUAN HỆ 130
26.1. Một số khái niệm liên quan 130
26.2. Các dạng chuẩn 131
26.2.1. Dạng chuẩn 1( 1NF-first normal form) 132
26.2.2. Dạng chuẩn 2NF (second normal form) 133
26.2.3. Dạng chuẩn 3 (3NF- Third normal form) 135
26.2.4. Dạng chuẩn Boyce Codd ( BCNF- Boyce Codd normal form) 135
26.4. Mối quan hệ giữa các dạng chuẩn cơ bản 136
27. PHÉP TÁCH LƢỢC ĐỒ QUAN HỆ 137
27.1. Tách lƣợc đồ quan hệ 137
27.2. Phép tách bảo toàn phụ thuộc hàm 141
27.3. Tách không mất thông tin thành các lƣợc đồ ở dạng BCNF 141
27.4. Bài tập và thảo luận về phép tách 143
27.5.Tổng kết 143
28. BÀI TẬP – THẢO LUẬN VỀ CÁC DẠNG CHUẨN HÓA VÀ PHÉP TÁCH CỦA LĐ
144
28.1. Nhắc lại lý thuyết 144
28.2. Bài tập – thảo luận 144
7
1. CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU
Lý thuyết CSDL là lĩnh vực của tin học nhằm nghiên cứu các cơ chế, nguyên
lý, phƣơng pháp tổ chức, lƣu trữ dữ liệu trên các thiết bị mang tin, nhằm khai thác có
hiệu quả dữ liệu đƣợc lƣu trữ.
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.
1.1. Dữ liệu - thông tin
1.1.1. Dữ liệu
Dữ liệu là các sự kiện không có cấu trúc, không có ý nghĩa. Mọi thông tin đƣợc
quản lý trên máy tính điện tử theo bất kỳ phƣơng cách gì cũng đều phải đƣợc thể hiện
bằng các dữ liệu ghi trên một thiết bị lƣu trữ nào đó. Trong tin học, dữ liệu được hiểu
là sự biểu diễn các thông tin đưa vào máy tính điện tử để xử lý và thƣờng có các dạng
sau đây:
8
Hình 1-1. Các dạng dữ liệu cơ bản
Để lƣu trữ trong máy tính điện tử cả dữ liệu số, phi số và tri thức đều đƣợc mã hoã
bằng các số nhị phân.
- Dữ liệu dạng số bao gồm các số nguyên và các số thực. Ví dụ: 8 (Số nguyên), -57
(Số nguyên), 43.56 (Số thực). Một dạng dữ liệu khác đặc trƣng cho các đại lƣợng
logic thƣờng đƣợc “ số hoá ” qua các giá trị 0 và 1.
- Dữ liệu phi số bao gồm các văn bản (dạng chữ), âm thanh và hình ảnh.
- Dữ liệu dạng tri thức: bao gồm các sự kiện và các luật dẫn. Ví dụ: Bạn Hà đạt
điểm tổng kết 9 ở môn Tin học (sự kiện). Nếu học sinh đạt tổng kết từ 8 trở lên ở
môn nào thì học sinh ấy đƣợc xếp loại giỏi ở môn đó (Luật dẫn).
Tuỳ theo mục đích xử lý chúng ta có thể tiếp tục phân chia dữ liệu thành các cấu
trúc nhỏ hơn hoặc gộp các dữ liệu thành các cấu trúc lớn hơn, phức tạp hơn.
Vài ví dụ tiêu biểu về dữ liệu:
+ An đạt 550 điểm trên tổng số 600 điểm.
+ Nhà tôi cách trƣờng 10km.
+ Hà sinh ngày 23 tháng 6 năm 883.
+ Nhạc đƣợc ghi trên băng từ.
+ Bức hình của bạn.
Bản thân dữ liệu không có ý nghĩa nếu không đƣợc sắp sếp hay kết hợp thêm vài
dữ liệu nữa. Ví dụ nhƣ điểm của An. Thật tốt khi biết An đƣợc điểm cao nhƣng khi
dữ liệu này đƣợc kèm thêm một dữ liệu khác nhƣ:
+ An đạt 500 trên tổng số 600 điểm.
+ Hoà đạt 300 trên tổng số 600 điểm.
Thì chúng ta có thể làm đƣợc nhiều hơn. Bây giờ chúng ta có thể so sánh chúng và
biết thêm một ít về An:
+ An đạt 500 điểm và
+ An đạt điểm cao hơn Hoà.
Dữ liệu
Dữ liệu dạng
phi số
Dữ liệu dạng
số
Tri thức
Số
nguyên
Số
thực
Sự
kiện
Luật
dẫn
Hình
ảnh
Âm
thanh
Văn
bản
9
Xa hơn nếu chúng ta có điểm các sinh viên lớp An, ta sẽ biết nhiều hơn nữa. Ta có
thể tính xem An đứng thứ mấy trong lớp. Vì vậy dữ liệu đƣợc xem là quan trọng
chỉ khi nào đƣợc xử lý. Để hiểu rõ hơn hãy xem một ví dụ khác:
+ Bình sinh ngày 20 tháng 10 năm 881.
Kết hợp với với một dữ liệu nào đó nhƣ ngày hiện tại:
+ Hôm nay là ngày 20 tháng 10 năm 2004 sẽ cho ta biết đƣợc Bình bao nhiêu tuổi.
1.1.2.Thông tin
a. Khái niệm
Khi dữ liệu được xử lý để cho nó có ý nghĩa hơn thì lúc đó sẽ được gọi là thông
tin.
Một vài ví dụ về thông tin:
a. An đạt điểm cao hơn Hoà.
b. Chuyến tàu bị trễ mấy 30 phút.
c. Giờ thì bình 24 tuổi
b. Đặc điểm của thông tin
Thông tin mang lại cho con ngƣời sự hiểu biết, nhận thức tốt hơn về những đối
tƣợng trong đời sống xã hội, trong thiên nhiên, giúp cho họ thực hiện hợp lý công
việc cần làm để đạt tới mục đích một cách tốt nhất. Con ngƣời có nhu cầu đọc báo,
nghe đài, xem phim, video, đi tham quan, du lịch, tham khảo ý kiến ngƣời khác, để
nhận đƣợc thêm thông tin mới. Nốt nhạc trong bản sô-nát ánh trăng của Beethoven
làm cho ngƣời nghe cảm thấy đƣợc sự tƣơi mát, êm dịu của đêm trăng. Những thông
tin về cảm xúc của tác giả đó đƣợc truyền đạt lại.
Thông tin có thể đƣợc phát sinh, đƣợc lƣu trữ, đƣợc truyền, đƣợc tìm kiếm,
đƣợc xử lý, đƣợc sao chép, nhân bản. Thông tin cũng có thể méo mó, bị biến dạng, sai
lệch hoặc bị phá huỷ do nhiễu tác động hay do ngƣời xuyên tạc.
Thông tin đƣợc thể hiện dƣới nhiều dạng hình thức khác nhau nhƣ sóng ánh
sáng, sóng âm, sóng điện từ, các ký hiệu viết trên giấy hoặc khắc trên gỗ, trên đá, trên
các tấm kim loại… Chúng còn đƣợc gọi là những vật mang tin.
Cùng một thông tin có thể đƣợc biểu diễn bằng những dữ liệu khác nhau.
Cũng là năm đơn vị, trong hệ thập phân ta dùng ký hiệu “5” nhƣng trong hệ đếm La
mã lại dùng kí hiệu: “V”. Dữ liệu (kí hiệu) có thể là biểu diễn các thông tin khác nhau.
Cùng kí hiệu “I” nhƣng trong tiếng Anh có nghĩa là đại từ nhân xƣng ngôi thứ nhất
(tôi) còn trong toán học đó lại là chữ số La mã có giá trị là 1 đơn vị.
c. So sánh dữ liệu và thông tin
Dữ liệu
Thông tin
1. Một tập hợp các sự kiện và số liệu
1. Dữ liệu đƣợc tổ chức và sắp xếp
2. Không có giá trị nhiều
2. Luôn luôn có ích.
3. Đƣợc chuyển thành thông tin
3. Cũng có thể chuyển thành dữ liệu.
1.2. Các hệ thống xử lý truyền thống
10
Tiếp cận CSDL đã giải quyết 3 vấn đề của hệ tập tin theo lối cũ:
Vấn đề 1: cấu trúc logic và cấu trúc vật lý
Kiến trúc bên trong HQTCSDL quan hệ tách biệt rõ ràng giữa:
- cấu trúc luận lý của tất cả tập tin và chƣơng trình ứng dụng khai thác tập tin này và
- cấu trúc vật lý của csdl và phần lƣu trữ các tập tin.
Tiếp cận này tạo cho ngƣời quản trị CSDL có thể thay đổi cấu trúc vật lý hay nơi lƣu
trữ của tập tin
mà không ảnh hƣởng đến chƣơng trình ứng dụng.
Vấn đề 2: dƣ thừa dữ liệu
Khi HQTCSDLQH đƣợc giới thiệu, nhiều tổ chức mong tích hợp các tập tin đã phân
tán khắp trong
tổ chức vào một CSDL tập trung. Dữ liệu có thể chia sẻ cho nhiều ứng dụng khác nhau
và ngƣời sử dụng có thể khai thác đồng thời các tập con dữ liệu liên quan đến họ. Điều
này làm hạn chế sự dƣthừa dữ liệu.
Vấn đề 3: Sự khai thác dữ liệu của ngƣời sử dụng
Trong hệ QTCSDLQH ngƣời dùng có thể trực tiếp khai thác dữ liệu thông qua việc sử
dụng các câu truy vấn hay các công cụ báo cáo đƣợc cung cấp bởi hệ QTCSDL.
- Cơ sở dữ liệu là một tập các dữ liệu về một đối tƣợng cần đƣợc cần đƣợc quản lý,
đƣợc lƣu trữ trên các thiết bị mang tin, và đƣợc quản lý theo một cơ chế thống nhất,
nhằm thực hiện tốt các chức năng sau:
+ Mô tả dữ liệu.
+ Cập nhật dữ liệu.
+ Tìm kiếm nói riêng, khai thác dữ liệu nói chung.
- Hệ quản trị CSDL (database management system) là một hệ thống phần mềm
giúp ngƣời sử dụng có thể thực hiện các chức năng: mô tả dữ liệu, cập nhật và tìm
kiếm.
- Ngƣời quản trị CSDL là ngƣời có thể thực hiện các thao tác sau:
+ Tạo lập dữ liệu
+ Bổ sung dữ liệu
+ Xoá dữ liệu
+ Tìm kiếm
+ Bảo quản
1.3. Hệ cơ sở dữ liệu
1.3.1. CSDL là gì?
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 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.
11
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 các thiết bị mang tin, 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.
Ngày nay CSDL tồn tại trong mỗi ứng dụng thông dụng, ví dụ:
- Hệ kho và kiểm kê.
- Hệ đặt chỗ máy bay
- Hệ nguồn nhân lực.
- hệ dịch vụ công cộng nhƣ cấp nƣớc, điện, khí đốt
- Điều khiển quá trình chế tạo và sản xuất
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 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
1.3.2. Hệ quản trị CSDL
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.
12
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ệ 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 1-2. Môi trƣờng của một hệ cơ sơ dữ liệu
Một hệ quản trị CSDL (HQTCSDL) là Một tập các phần mềm quản lý CSDL và cung
cấp các dịch vụ xử lý CSDL cho các những ngƣời phát triển ứng dụng và ngƣời dùng
cuối.
- HQTCSDL cung cấp một giao diện giữa ngƣời sử dụng và dữ liệu.
- HQTCSDL biến đổi CSDL vật lý thành CSDL logic.
- Loại quan hệ nhƣ nhƣ ORACLE của Oracle, DB2 của IBM, ACCESS của Microsoft
Access
- Loại đối tƣợng là một tiếp cận khá mới trong thiết kế HQTCSDL và việc sử dụng
loại này sớm trở nên phổ biến.
Hiện tại, loại HQTCSDL chính đƣợc sử dụng trong công nghệ là loại HQTCSDL quan
hệ (RDBMS). Loại này đã chiếm lĩnh trong công nghệ trên 10-14 năm cuối cùng khi
đánh bật loại HQTCSDL phân cấp và gần đây là HQTCSDL mạng.
1.3.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 :
13
Kiểm soát đƣợc tính dƣ thừa của dữ liệu
- Tích hợp các nhu cầu dữ liệu của ngƣời dùng để xây dựng một CSDL
thống nhất
Chia sẻ dữ liệu
- Trong môi trƣờng đa ngƣời dùng, các HQT phải cho phép truy xuất dữ
liệu đồng thời
Hạn chế những truy cập không cho phép
- Từng ngƣời dùng và nhóm ngƣời dùng có một tài khoản và mật mã để
truy xuất dữ liệu
Cung cấp nhiều giao diện
- HQT cung cấp ngôn ngữ giữa CSDL và ngƣời dùng
Đảm bảo các ràng buộc toàn vẹn
- RBTV (Integrity Constraints) là những qui định cần đƣợc thỏa mãn để
đảm bảo dữ liệu luôn phản ánh đúng ngữ nghĩa của thế giới thực
- Một số RB có thể đƣợc khai báo với HQT và HQT sẽ tự động kiểm tra.
Một số RB khác đƣợc kiểm tra nhờ CTƢD
Khả năng sao lƣu dự phòng khi gặp sự cố
- Có khả năng khôi phục dữ liệu khi có sự hƣ hỏng về phần cứng hoặc
phần mềm
Các tính năng khác
- Chuẩn hóa
Cho phép DBA định nghĩa và bắt buộc áp dụng một chuẩn thống
nhất cho mọi ngƣời dùng
- Uyển chuyển
Khi nhu cầu công việc thay đổi, cấu trúc CSDL rất có thể thay
đổi, HQT cho phép thêm hoặc mở rộng cấu trúc mà không làm
ảnh hƣởng đến CTƢD
- Giảm thời gian phát triển ứng dụng
- Tính khả dụng
Khi có một sự thay đổi lên CSDL, tất cả ngƣời dùng đều thấy
đƣợc
1.3.3.Các đặc trưng của giải pháp cơ sở dữ liệu
Trƣớc khi khái niệm cơ sở dữ liệu ra đời, hệ thống tệp (file) là một phƣơng
pháp đƣợ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
14
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 điểm. Thứ nhất, đó là 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 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 đã giải quyết đƣợc những nhƣợc điểm đó. Cụ thể, giả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ở dữ liệu là hệ thống cơ sở dữ liệu không 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 1-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ơ sở dữ liệu đƣợc nhúng vào trong các
chƣơ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ột ngƣời có thể đòi hỏi một phối
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ử dụng phải cho phép nhiều ngƣời sử dụ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 cùng một cơ sở dữ liệu
15
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.
1.3.4. Lược đồ và trạng thái cơ sở dữ liệu
Trong một mô hình dữ liệu cần phải phân biệt rõ giữa mô tả của cơ sở dữ liệu và bản
thân cơ sở dữ liệu. Mô tả của một cơ sở dữ liệu đƣợc gọi là lược đồ cơ sở dữ liệu, nó
đƣợc xác định rõ trong quá trình thiết kế cơ sở dữ liệu và không bị thay đổi thƣờng
xuyên. Đa số các mô hình dữ liệu có các quy ƣớc hiển thị các lƣợc đồ. Hiển thị của
một lƣợc đồ đƣợc gọi là biểu đồ của lƣợc đồ đó. Một biểu đồ lƣợc đồ chỉ thể hiện một
vài khía cạnh của lƣợc đồ nhƣ là các kiểu bản ghi, các mục dữ liệu và một số kiểu ràng
buộc. Các khía cạnh khác không đƣợc thể hiện trong biểu đồ lƣợc đồ.
Các dữ liệu trong một cơ sở dữ liệu có thể thay đổi một cách thƣờng xuyên. Các dữ
liệu trong một cơ sở dữ liệu tại một thời điểm cụ thể đƣợc gọi là một trạng thái cơ sở
dữ liệu hoặc là ảnh (snapshot) của cơ sở dữ liệu. Nhiều trạng thái quan hệ có thể đƣợc
xây dựng để làm tƣơng ứng với một lƣợc đồ cơ sở dữ liệu cụ thể. Mỗi khi chúng ta
chèn vào hoặc loại bỏ một bản ghi, sửa đổi giá trị của một mục dữ liệu trong một bản
ghi, chúng ta đã làm thay đổi trạng thái của cơ sở dữ liệu sang một trạng thái khác.
Việc phân biệt giữa lƣợc đồ cơ sở dữ liệu và trạng thái cơ sở dữ liệu là rất quan trọng.
Khi chúng ta định nghĩa một cơ sở dữ liệu mới, ta chỉ đặc tả lƣợc đồ cơ sở dữ liệu cho
hệ quản trị cơ sở dữ liệu. Tại thời điểm này, trạng thái của cơ sở dữ liệu là một trạng
thái rỗng, không có dữ liệu. Chúng ta nhận đƣợc trạng thái ban đầu của cơ sở dữ liệu
khi ta nhập dữ liệu lần đầu tiên. Từ đó trở đi, mỗi khi một phép toán cập nhật đƣợc
thực hiện đối với cơ sở dữ liệu, chúng ta nhận đƣợc một trạng thái cơ sở dữ liệu khác.
Tại mọi thời điểm, cơ sở dữ liệu có một trạng thái hiện tại. Hệ quản trị cơ sở dữ liệu có
trách nhiệm đảm bảo rằng mỗi trạng thái cơ sở dữ liệu là một trạng thái vững chắc,
nghĩa là một trạng thái thoả mãn cấu trúc và các ràng buộc đƣợc đặc tả trong lƣợc đồ.
Vì vậy, việc đặc tả một lƣợc đồ đúng đắn cho hệ quản trị cơ sở dữ liệu là một việc làm
cực kỳ quan trọng và lƣợc đồ phải đƣợc thiết kế một cách cẩn thận. Hệ quản trị cơ sở
dữ liệu lƣu trữ các mô tả của các cấu trúc lƣợc đồ và các ràng buộc – còn gọi là siêu
dữ liệu – vào trong từ điển (catalog) của hệ quản trị sao cho phần mềm hệ quản trị cơ
sở dữ liệu có thể tham khảo đến lƣợc đồ khi nó cần. Đôi khi ngƣời ta còn gọi lƣợc đồ
là mục tiêu (intension) và trạng thái cơ sở dữ liệu là mở rộng (extension) của lƣợc đồ.
c. Ngƣời dùng (User)
Ngƣời dùng khai thác CSDL thông qua HQTCSDL có thể phân thành ba loại: ngƣời
quản trị CSDL, thiết kế viên, ngƣời dùng cuối.
+ Ngƣời quản trị: Có trách nhiệm quản lý hệ CSDL
- Cấp quyền truy cập CSDL
- Điều phối và giám sát việc sử dụng CSDL
+ Thiết kế viên:
Chịu trách nhiệm về
- Lựa chọn cấu trúc phù hợp để lƣu trữ dữ liệu
16
- Quyết định những dữ liệu nào cần đƣợc lƣu trữ
Liên hệ với ngƣời dùng để nắm bắt đƣợc những yêu cầu và đƣa ra một thiết kế
CSDL thỏa yêu cầu này
Có thể là 1 nhóm các DBA quản lý các CSDL sau khi việc thiết kế hoàn tất
+ Ngƣời dùng cuối
Ngƣời ít sử dụng
- Ít khi truy cập CSDL, nhƣng cần những thông tin khác nhau trong mỗi
lần truy cập và dùng những câu truy vấn phức tạp
- Ngƣời quản lý
Ngƣời sử dụng thƣờng xuyên
- Thƣờng xuyên truy vấn và cập nhật CSDL nhờ vào một số các chức
năng đã đƣợc xây dựng sẳn
- Nhân viên
Ngƣời sử dụng đặc biệt
- Thông thạo về HQT CSDL, tự xây dựng những truy vấn phức tạp cho
công việc
- Kỹ sƣ, nhà khoa học, ngƣời phân tích,…
d. Kiến trúc của cơ sở dữ liệu
Mức trong (lƣợc đồ trong)
- Mô tả cấu trúc lƣu trữ vật lý CSDL
Mức quan niệm (lƣợc đồ quan niệm)
- Mô tả cấu trúc của toàn thể CSDL cho 1 cộng đồng ngƣời sử dụng, gồm
thực thể, kiểu dữ liệu, mối liên hệ và ràng buộc
- Che bớt các chi tiết của cấu trúc lƣu trữ vật lý
Mức ngoài (lƣợc đồ ngoài)
- Còn gọi là mức khung nhìn (view)
- Mô tả một phần của CSDL mà 1 nhóm ngƣời dùng quan tâm đến và che
dấu phần còn lại của CSDL đối với nhóm ngƣời dùng đó
1.4. Các mô hình dữ liệu
Mô hình dữ liệu là sự trừu tƣợng hoá môi trƣờng thực. Mỗi loại mô hình dữ liệu
đặc trƣng cho một cách tiếp cận dữ liệu khác nhau của những nhà phân tích thiết kế
CSDL. Mỗi loại mô hình dữ liệu đều có những ƣu điểm và những mặt hạn chế của nó,
nhƣng vẫn có những mô hình dữ liệu nổi trội và đƣợc nhiều ngƣời quan tâm nghiên
cứu.
Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò rất lớn trong
việc xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu. Vì vậy, thiết kế cơ sở dữ liệu
trở thành hoạt động chính trong môi trƣờng cơ sở dữ liệu.
Việc thiết kế cơ sở dữ liệu đƣợc thực hiện đơn giản hơn nhiều khi ta sử dụng các mô
hình. Các mô hình là sự trừu tƣợng đơn giản của các sự kiện trong thế giới thực.
17
Các trừu tƣợng nhƣ vậy cho phép ta khảo sát các đặc điểm của các thực thể và các mối
liên hệ đƣợc tạo ra giữa các thực thể đó. Việc thiết kế các mô hình tốt sẽ đƣa ra các cơ
sở dữ liệu tốt và trên cơ sở đó sẽ có các ứng dụng tốt. Ngƣợc lại, mô hình không tốt sẽ
đƣa đến thiết kế cơ sở dữ liệu tồi và dẫn đến các ứng dụng không đúng.
Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm (kí hiệu) dùng để biểu
diễn các cấu trúc của cơ sở dữ liệu. Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu,
các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu. Nhiều mô hình còn
có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác
Sau đây chúng ta sẽ điểm qua lịch sử phát triển của các mô hình dữ liệu.
Vào những năm sáu mƣơi, thế hệ đầu tiên của CSDL ra đời dƣới dạng mô hình thực
thể kết hợp, mô hình mạng và mô hình phân cấp.
Vào những năm bảy mƣơi, thế hệ thứ hai của CSDL ra đời. Đó là mô hình dữ
liệu quan hệ do EF. Codd phát minh. Mô hình này có cấu trúc logic chặt chẽ. Đây là
mô hình đã và đang đƣợc sử dụng rộng khắp trong công tác quản lý trên phạm vi toàn
cầu. Việc nghiên cứu mô hình dữ liệu quan hệ nhằm vào lý thuyết chuẩn hoá các quan
hệ và là một công cụ quan trọng trong việc phân tích thiết kế các hệ CSDL hiện nay.
Mục đích của nghiên cứu này nhằm bỏ đi các phần tử không bình thƣờng của quan hệ
khi thực hiện các phép cập nhật, loại bỏ các phần tử dƣ thừa.
Sang thập kỷ tám mƣơi, mô hình CSDL thứ ba ra đời, đó là mô hình cơ sở dữ
liệu hƣớng đối tƣợng, mô hình cơ sở dữ liệu phân tán, mô hình cơ sở dữ liệu suy
diễn,…
Trong phần tiếp theo sau đây, chúng tôi sẽ trình bày về mô hình dữ liệu tiêu biểu nhất
để thiết kế (bƣớc đầu) một ứng dụng tin học đó là mô hình thực thể kết hợp. Trong các
chƣơng còn lại của giáo trình này chúng tôi sẽ trình bày về mô hình dữ liệu quan hệ.
Các loại mô hình cơ sở dữ liệu
Có rất nhiều mô hình dữ liệu đã đƣợc đề nghị. Chúng ta có thể phân loại các mô hình
dữ liệu dựa trên các khái niệm mà chúng sử dụng để mô tả các cấu trúc cơ sở dữ liệu.
Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm cung cấp các khái
niệm gắn liền với cách cảm nhận dữ liệu của nhiều ngƣời sử dụng. Các mô hình này
tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan tâm đến cái đƣợc biểu diễn
trong cơ sở dữ liệu chứ không phải cách biểu diễn dữ liệu.
Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý cung cấp các khái niệm
mô tả chi tiết về việc các dữ liệu đƣợc lƣu trữ trong máy tính nhƣ thế nào. Các khái
niệm do mô hình dữ liệu vật lý cung cấp nói chung có ý nghĩa đối với các chuyên gia
máy tính chứ không có ý nghĩa mấy đối với ngƣời sử dụng thông thƣờng. Ở giữa hai
loại mô hình này là một lớp các mô hình dữ liệu thể hiện, chúng cung cấp những khái
niệm mà ngƣời sử dụng có thể hiểu đƣợc và không xa với cách tổ chức dữ liệu bên
trong máy tính. Ngƣời ta còn gọi loại mô hình dữ liệu này là loại mô hình dữ liệu mức
18
logic. Các mô hình dữ liệu thể hiện che giấu một số chi tiết về việc lƣu trữ dữ liệu
nhƣng có thể đƣợc cài đặt trực tiếp trên hệ thống máy tính.
chúng ta sẽ nghiên cứu một mô hình dữ liệu mức quan niệm, mô hình thực thể - liên
kết, gọi tắt là mô hình ER (Entity – Relationship Model). Mô hình này sử dụng các
khái niệm thực thể, thuộc tính, mối liên kết, để diễn đạt các đối tƣợng của thế giới
thực. Một thực thể diễn đạt một đối tƣợng hoặc một khái niệm của thế giới thực. Ví
dụ, một thực thể là một nhân viên hoặc một dự án đƣợc mô tả trong cơ sở dữ liệu. Một
thuộc tính diễn đạt một đặc trƣng nào đó của thực thể. Chẳng hạn, họ tên, lƣơng… là
các thuộc tính của thực thể nhân viên. Một mối liên kết giữa hai hay nhiều thực thể
diễn đạt một mối quan hệ qua lại giữa các thực thể. Ví dụ, giữa thực thể nhân viên và
thực thể dự án có mối liên kết một nhân viên
làm việc trên một dự án. Mô hình dữ liệu hƣớng đối tƣợng cũng là một mô hình dữ
liệu bậc cao. Nó sử dụng các khái niệm nhƣ lớp, phƣơng thức, thông điệp… Bạn đọc
có thể tìm hiểu về mô hình này trong các tài liệu [1], [2].
Các mô hình dữ liệu thể hiện là các mô hình đƣợc sử dụng thƣờng xuyên nhất trong
các hệ cơ sở dữ liệu thƣơng mại. Ba mô hình nổi tiếng thuộc loại này là mô hình quan
hệ, mô hình mạng và mô hình phân cấp. Các mô hình mạng và phân cấp ra đời trƣớc
và đƣợc sử dụng rộng rãi trong quá khứ (trƣớc 870). Vào đầu những năm 70, mô hình
quan hệ ra đời. Do tính ƣu việt của nó, mô hình quan hệ dần dần thay thế các mô hình
mạng và phân cấp. Chúng ta sẽ nghiên cứu về mô hình quan hệ.
Các mô hình dữ liệu vật lý mô tả cách lƣu trữ dữ liệu trong máy tính giới thiệu các
thông tin nhƣ khuôn dạng bản ghi, sắp xếp bản ghi, đƣờng truy cập…
1.4.1. Mô hình thực thể - liên kết (thực thể -quan hệ)
Hiện nay mô hình dữ liệu quan hệ thƣờng đƣợc dùng trong các hệ quản trị CSDL, đây
là mô hình dữ liệu ở mức vật lý. Để thành lập đƣợc mô hình này, thƣờng là phải dùng
mô hình dữ liệu ở mức quan niệm để đặc tả, một trong những mô hình ở dạng đó là mô
hình thực thể quan hệ (sau đó mới dùng một số quy tắc để chuyển hệ thống từ mô
hình này về mô hình dữ liệu quan hệ).
1.4.2. Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ (Ralational Data Model)- gọi tắt là mô hình quan
hệ, do EF.Codd đề xuất năm 870. Nền tảng lý thuyết của 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ị.
Mô hình dữ liệu quan hệ là mô hình đƣợc nghiên cứu nhiều nhất, và thực tiễn đã cho
thấy rằng nó có cơ sở lý thuyết vững chắc nhất. Mô hình dữ liệu này cùng với mô hình
thức thể kết hợp đang đƣợc sử dụng rộng rãi trong việc phân tích và thiết kế CSDL
hiện nay.
1.4.3. Mô hình dữ liệu mạng
Mô hình dữ liệu mạng (Network Data Model) - còn đƣợc gọi tắt là mô hình mạng hoặc
mô hình lƣới (Network Model) là mô hình đƣợc biểu diễn bởi một đồ thị có hƣớng.
Trong mô hình này ngƣời ta đƣa vào các khái niệm: mẫu tin hay bản ghi (Record), loại
19
mẫu tin (Record Type) và loại liên hệ (Set Type):
(a) Loại mẫu tin (Recorde Type) là mẫu đặc trƣng cho 1 loại đối tƣợng riêng biệt.
Chẳng hạn nhƣ trong việc quản lý nhân sự tại một đơn vị, đố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 đồ thị biểu diễn mô hình mạng mỗi loại
mẫu tin đƣợc biểu diễn bởi 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. Trong ví dụ trên loại mẫu tin Phòng có các mẫu tin là các
phòng, ban trong đơn vị; loại mẫu tin nhân viê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ơ quan
(b) Loại liên hệ (Set Type) là sự liên kết giữa một loại mẫu tin chủ với một loại mẫu
tin thành viên. Trong đồ thị biểu diễn mô hình mạng mỗi loại liên hệ đƣợc biểu diễn
bởi một hình bầu dục (oval) và sự liên kết giữa 2 loại mẫu tin đƣợc thể hiện bởi các
cung có hƣớng (các mũi tên) đi từ loại mẫu tin chủ tới loại liên hệ và từ loại liên hệ tới
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 trong mối kết
hợp. Có các loại liên hệ sau:
1 - 1 (One-to-One): Mỗi mẫu tin của loại mẫu tin chủ chi 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ủ chi 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ó từ 1 đến
nhiều nhân viên. Mỗi 1 nhân viên chỉ thuộc một phòng ban nhất định.
n-1 (Many-to-One): Nhiều mẫu tin của loại mẫu tin chủ 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ông việc.
Đệ quy (Recursive): Một loại mẫu tin chủ cũng có thể đồng thời là loại mẫu tin
thành viên với chính nó. Ta nói rằng loại liên hệ này là đệ quy.
Ví dụ về mô hình dữ liệu mạng đối với CSDL nhân sự của một đơn vị.
Trong đồ thị này, chúng ta có 4 loại mẫu tin: PHÒNG, NHÂN-VIÊN, CÔNG-VIỆC
và LÝ-LỊCH;
4 loại liên kết:
phòng gồm 1 đến nhiều nhân-viên;
• nhân-viên có đúng 1 lý-lịch;
• nhiều nhân-viên cùng làm một công-việc;
• 1 nhân-viên có thể có 1 hay nhiều nhân-viên là thân nhân của mình.
1.4.4. Mô hình dữ liệu phân cấp
Mô hình dữ liệu phân cấp (Hierachical Data Model) - đƣợc gọi tắt là mô hình
phân cấp (Hierachical Model): Mô hình là một cây (Tree), trong đó mỗi nút của
cây biểu diễn một thực thể, giữa nút con và nút cha đƣợc liên hệ với nhau theo
một mối quan hệ xác định.
20
Mô hình dữ liệu phân cấp sử dụng các khái niệm sau:
(a) Loại mẫu tin: giống khái niệm mẫu tin trong mô hình dữ liệu mạng.
(b) Loại mối liên hệ: Kiểu liên hệ là phân cấp, theo cách:
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 thành viên là 1n, và từ mẫu tin (hay bản ghi - record) thành viên với
mẫu tin chủ là 11.
Giữa 2 loại mẫu tin chỉ tồn tại 1 mối liên hệ duy nhất.
Ví dụ: Mẫu phiếu điều tra dân số
Các dòng là các mẫu tin (hay bản ghi) có độ dài thay đổi.
Có 6 loại mẫu tin:
Mẫu tin đặc trƣng cho tỉnh, thành phố gồm: Mã số tỉnh thành, Tên tỉnh thành
phố. '02' là Mã số Thành phố Hồ Chí Minh.
· Mẫu tin đặc trƣng cho quận huyện gồm Mã số tỉnh thành + Mã số quận
huyện, Tên quận huyện trong tỉnh thành phố đó. '0201' là Mã số quận Nhất của
TP.Hồ Chí Minh.
· Mẫu tin đặc trƣng cho phƣờng xã gồm Mã số tỉnh thành + Mã số quận
huyện + Mã số phƣờng xã, Tên phƣờng xã thuộc quận huyện trong tỉnh thành
phố đó. '020101' là Mã số phƣờng Bến Nghé, Quận Nhất, TP.Hồ Chí Minh.
. Mẫu tin đặc trƣng cho địa bàn điều tra trong một phƣờng xã. '02010101' là
mã số địa bàn điều tra số 01 trong phƣờng Bến Nghé.
· Mẫu tin đặc trƣng cho hộ điều tra, gồm Mã số tỉnh + Mã số quận + Mã số
phƣờng + Mã số địa bàn + Số thứ tự hộ điều tra trong địa bàn, Tổng số nhân
khẩu trong hộ, Trong đó: Nữ, Tổng số trẻ dƣới 16 tuổi.
· Mẫu tin đặc trƣng cho nhân khẩu của hộ, gồm các thông tin xác định hộ
điều tra, Số thứ tự nhân khẩu trong hộ, Quan hệ với chủ hộ (8), Giới tính
(1,2,3), Tháng sinh, Năm sinh, Trình độ văn hóa,
Ở đây rõ ràng là một sự phân cấp trong file CSDL.
Một tỉnh thành phố (thì) có nhiều quận huyện, một quận huyện chỉ thuộc một
tỉnh thành duy nhất. Một quận huyện (thì) có nhiều phƣờng xã và một phƣờng
xã chỉ thuộc một quận huyện duy nhất. Mỗi phƣờng xã đƣợc chia thành nhiều
địa bàn điều tra, mỗi địa bàn chỉ thuộc một phƣờng xã duy nhất v.v
2. MÔ HÌNH THỰC THỂ LIÊN KẾT
Trong chƣơng này chúng ta sẽ làm quen với mô hình thực thể - liên kết, gọi tắt là mô
hình ER ( Entity-Relationship Model). Đó là một mô hình dữ liệu mức quan niệm phổ
biến, tập trung vào các cấu trúc dữ liệu và các ràng buộc. Mô hình này thƣờng đƣợc sử
dụng để thiết kế các ứng dụng cơ sở dữ liệu và nhiều công cụ thiết kế cơ sở dữ liệu sử
dụng các khái niệm của nó.
2.1. Sử dụng mô hình quan niệm bậc cao cho việc thiết kế cơ sở dữ liệu
21
Quá trình thiết kế một cơ sở dữ liệu sử dụng mô hình quan niệm bậc cao đƣợc minh
họa bằng hình 2-1
Bƣớc đầu tiên là tập hợp các yêu cầu và phân tích. Trong bƣớc này, ngƣời thiết kế cơ
sở dữ liệu phỏng vấn những ngƣời sử dụng cơ sở dữ liệu để hiểu và làm tài liệu về các
yêu cầu về dữ liệu của họ. Kết quả của bƣớc này là một tập hợp ghi chép súc tích về
các yêu cầu của những ngƣời sử dụng. Những yêu cầu sẽ đƣợc đặc tả càng đầy đủ và
chi tiết càng tốt. Song song với việc đặc tả các yêu cầu dữ liệu, cần phải đặc tả các yêu
cầu về chức năng của ứng dụng: đó là các thao tác do ngƣời sử dụng định nghĩa sẽ
đƣợc áp dụng đối với cơ sở dữ liệu.
Mỗi khi tất cả các yêu cầu đã đƣợc thu thập và phân tích, bƣớc tiếp theo là tạo ra lƣợc
đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức
cao. Bƣớc này gọi là thiết kế quan niệm. Lƣợc đồ quan niệm là một mô tả súc tích về
các yêu cầu dữ liệu của những ngƣời sử dụng. Nó bao gồm các mô tả chi tiết của các
kiểu thực thể, kiểu liên kết và các ràng buộc, chúng đƣợc biểu diễn bằng các khái niệm
do các mô hình dữ liệu bậc cao cung cấp. Lƣợc đồ quan niệm mức cao cũng có thể
đƣợc sử dụng nhƣ một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi của ngƣời sử
dụng đều thỏa mãn và các đòi hỏi này không chứa các mâu thuẫn. Giải pháp này cho
phép những ngƣời thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của dữ
liệu mà không cần quan tâm đến các chi tiết lƣu trữ. Một thiết kế cơ sở dữ liệu quan
niệm tốt sẽ làm dễ cho công việc của những ngƣời thiết kế cơ sở dữ liệu.
Trong quá trình (hoặc sau khi) thiết kế lƣợc đồ quan niệm, chúng ta có thể sử dụng các
phép toán cơ bản của mô hình dữ liệu để đặc tả các thao tác của ngƣời sử dụng đƣợc
xác định trong khi phân tích chức năng. Điều đó cũng giúp khẳng định rằng lƣợc đồ
quan niệm thỏa mãn mọi yêu cầu chức năng đƣợc xác định. Nếu có một số yêu cầu
chức năng không thể nêu ra đƣợc trong lƣợc đồ ban đầu thì ở bƣớc này có thể có sự
sửa đổi lƣợc đồ quan niệm cho phù hợp.
Bƣớc tiếp theo trong việc thiết kế cơ sở dữ liệu là việc cài đặt một cơ sở dữ liệu bằng
cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn. Hầu hết các hệ quản trị cơ sở dữ
liệu sử dụng một mô hình dữ liệu cài đặt (thể hiện), chẳng hạn nhƣ mô hình quan hệ
hoặc đối tƣợng, vì vậy lƣợc đồ quan niệm đƣợc chuyển từ mô hình dữ liệu bậc cao
thành mô hình dữ liệu cài đặt. Bƣớc này gọi là thiết kế logic hoặc là ánh xạ mô hình dữ
liệu. Kết quả của bƣớc này là một lƣợc đồ cơ sở dữ liệu dƣới dạng một mô hình dữ
liệu cài đặt của hệ quản trị cơ sở dữ liệu.
Bƣớc cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý. Trong bƣớc này ta phải
chỉ ra các cấu trúc bên trong, các đƣờng dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ
liệu. Song song với các hoạt động đó, các chƣơng trình ứng dụng cũng đƣợc thiết kế
và cài đặt nhƣ là các giao tác (transaction) cơ sở dữ liệu tƣơng ứng với các đặc tả giao
tác mức cao.
22
Hình 2-1. Sơ đồ mô tả các bước chính của việc thiết kế
2.2. Các thành phần cơ bản của mô hình ER
2.2. 1. Thực thể và thuộc tính
Đối tƣợng đƣợc trình bày trong mô hình ER là thực thể. Thực thể là một “vật” trong
thế giới thực, có sự tồn tại độc lập. Một thực thể có thể là cụ thể, tức là chúng ta có thể
cảm nhận đƣợc bằng các giác quan, hoặc có thể là trừu tƣợng, tức là cái mà chúng ta
không cảm nhận đƣợc bằng các giác quan nhƣng có thể nhận biết đƣợc bằng nhận
thức. Một cái ô tô, một nhân viên,… là những thực thể cụ thể. Một đơn vị công tác,
một trƣờng học… là những thực thể trừu tƣợng.
Mỗi một thực thể có các thuộc tính, đó là các đặc trƣng cụ thể mô tả thực thể đó. Ví
dụ, một thực thể Nhânviên đƣợc mô tả bằng Họtên, Tuổi, Địachỉ, Lương… của nhân
viên đó. Một thực thể cụ thể sẽ có một giá trị cho mỗi thuộc tính của nó. Ví dụ, nhân
viên nv1 có các giá trị cho các thuộc tính Họtên, Tuổi, Địachỉ, Lƣơng của nó là “ Lê
Thế giới thực
TẬP HỢP VÀ PHÂN TÍCH
CÁC YÊU CẦU
THIẾT KẾ QUAN NIỆM
THIẾT KẾ LÔ GIC
THIẾT KẾ VẬT LÝ
PHÂN TÍCH CHỨC NĂNG
THIẾT KẾ CHƢƠNG TRÌNH
ỨNG DỤNG
CÀI ĐẶT GIAO TÁC
Các yêu cầu chức năng
Đặc tả giao tác mức cao
Các yêu cầu cơ sở dữ liệu
Lƣợc đồ quan niệm
Lƣợc đồ lô gic
(Độc lập với hệ QTCSDL)
Các chƣơng trình ứng dụng
Lƣợc đồ bên trong
23
Vân”, 32, “Hà nội”, 500000. Các giá trị thuộc tính mô tả mỗi thực thể sẽ trở thành một
phần chính của các dữ liệu sẽ đƣợc lƣu giữ trong cơ sở dữ liệu. Trong mô hình ER có
mặt nhiều kiểu thuộc tính: thuộc tính đơn, thuộc tính phức hợp, thuộc tính đơn trị,
thuộc tính đa trị, thuộc tính đƣợc lƣu trữ, thuộc tính suy diễn đƣợc, thuộc tính có giá trị
không xác định, thuộc tính phức tạp.
Thuộc tính đơn là thuộc tính không thể phân chia ra đƣợc thành các thành phần nhỏ
hơn. Ví dụ, thuộc tính Tuổi của một nhân viên là một thuộc tính đơn. Thuộc tính phức
hợp là thuộc tính có thể phân chia đƣợc thành các thành phần nhỏ hơn, biểu diễn các
thuộc tính cơ bản hơn với các ý nghĩa độc lập.
Những thuộc tính có giá trị duy nhất cho một thực thể cụ thể gọi là các thuộc tính đơn
trị. Ví dụ, Họtên là một thuộc tính đơn trị của thực thể nhân viên, mỗi nhân viên có
một họ tên duy nhất. Trong một số trƣờng hợp, một thuộc tính có thể có một tập giá trị
cho cùng một thực thể. Những thuộc tính nhƣ vậy gọi là thuộc tính đa trị. Ví dụ, thuộc
tính Bằngcấp của một ngƣời. Một ngƣời có thể không có bằng cấp nào, ngƣời khác có
thể có một bằng, ngƣời khác nữa có thể có nhiều bằng. Nhƣ vậy, các ngƣời khác nhau
có thể có một số giá trị khác nhau cho thuộc tính Bằngcấp. Thuộc tính Bằngcấp là một
thuộc tính đa trị.
Thuộc tính được lưu trữ là các thuộc tính mà giá trị của nó đƣợc nhập vào khi cài đặt
cơ sở dữ liệu. Trong một số trƣờng hợp, hai hay nhiều thuộc tính có giá trị liên quan
đến nhau. Ví dụ, thuộc tính Tuổi và thuộc tính Ngàysinh của một ngƣời. Với một
ngƣời cụ thể, ta có thể tính tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của
Ngàysinh. Thuộc tính mà giá trị của nó có thể tính đƣợc thông qua giá trị của các
thuộc tính khác gọi là thuộc tính suy diễn được.
Các giá trị không xác định (null values): Trong một số trƣờng hợp, một thực thể cụ thể
có thể không có các giá trị áp dụng đƣợc cho một thuộc tính. Ví dụ, thuộc tính
Sốđiệnthoại của thực thể nhân viên sẽ không có giá trị đối với các nhân viên không có
số điện thoại. Trong trƣờng hợp nhƣ vậy, ta phải tạo ra một giá trị đặc biệt gọi là giá trị
không xác định (null). Giá trị không xác định đƣợc tạo ra khi một thuộc tính có giá trị
không áp dụng đƣợc hoặc khi không biết.
Các thuộc tính phức tạp: Là sự kết hợp của các thuộc tính phức hợp và đa trị.
2.2. 2. Kiểu thực thể, tập thực thể, khóa và tập giá trị
Các kiểu thực thể và các tập thực thể: Một cơ sở dữ liệu thƣờng chứa những nhóm
thực thể nhƣ nhau. Ví dụ, một công ty thuê hàng trăm nhân viên và lƣu giữ những
thông tin tƣơng tự liên quan đến mỗi nhân viên. Các thực thể nhân viên này chia sẻ các
thuộc tính giống nhau nhƣng mỗi thực thể có các giá trị riêng cho các thuộc tính đó.
Một kiểu thực thể là một tập hợp các thực thể có các thuộc tính nhƣ nhau. Một
kiểu thực thể trong cơ sở dữ liệu đƣợc mô tả bằng tên và các thuộc tính. Vídụ:
NHÂNVIÊN (Họtên, Tuổi, Lƣơng), CÔNGTY (Tên, Địađiểm, Giámđốc). Một tập hợp
các thực thể của một kiểu thực thể cụ thể trong cơ sở dữ liệu tại một thời điểm đƣợc
gọi là một tập thực thể, nó thƣờng đƣợc tham chiếu đến bằng cách sử dụng tên của
24
kiểu thực thể. Ví dụ, NHÂNVIÊN vừa dùng để chỉ một kiểu thực thể, vừa để chỉ tập
hợp hiện tại của tất cả các thực thể nhân viên trong cơ sở dữ liệu. Hình 2-2 minh họa
các kiểu thực thể NHÂNVIÊN, CÔNGTY và các tập thực thể tƣơng ứng.
Một kiểu thực thể đƣợc biểu diễn trong lƣợc đồ ER nhƣ là một hộp hình chữ nhật có
chứa tên kiểu thực thể. Các thuộc tính đƣợc đặt trong các hình ô van và đƣợc nối với
các kiểu thực thể bằng các đƣờng thẳng. Các thuộc tính phức hợp cũng đƣợc nối với
các thuộc tính thành phần của nó bằng đƣờng thẳng. Các thuộc tính đa trị đƣợc hiển thị
trong các hình ô van đúp (hình 2-3).
Một kiểu thực thể mô tả một lược đồ (hoặc một mục đích) cho một tập các thực thể
chia sẻ cùng một cấu trúc. Tập hợp các thực thể của một kiểu thực thể cụ thể đƣợc
nhóm vào một tập thực thể và đƣợc gọi là một thể hiện của một kiểu thực thể.
NHÂNVIÊN
(Họtên, Tuổi, Lƣơng)
CÔNGTY
(Tên, Địadiểm, Giámđốc)
Nv1
(Lê Lan, 30, 800000)
Nv2
(Trần Bá, 45, 1000000)
Nv3
(Hoàng Vân, 14, 600000)
Ct1
(CT Phần mềm, Hà nội, Vũ An)
Ct2
(CT Hoa quả, Hải phòng, Lê Hà)
Ct3
(CT Máy tính, Hà nội, Phan Anh)
Hình 2-2. Kiểu thực thể và tập thực thể
Thuộc tính khóa của một kiểu thực thể: Một ràng buộc quan trọng trên các thực thể của
một kiểu thực thể là khóa. Một kiểu thực thể thƣờng có một thuộc tính mà các giá trị
của nó là khác nhau đối với mỗi thực thể tiêng biệt trong một tập thực thể. Thuộc tính
nhƣ vậy gọi là thuộc tính khóa và các giá trị của nó có thể dung để xác định từng thực
thể một cách duy nhất. Ví dụ, thuộc tính Tên của kiểu thực thể CÔNGTY là khóa của
kiểu thực thể đó vì mỗi thực thể công ty có một tên duy nhất. Đôi khi, nhiều thuộc tính
kết hợp với nhau tạo thành một khóa, nghĩa là tổ hợp các giá trị của các thuộc tính này
phải khác nhau đối với mỗi thực thể. Trong trƣờng hợp nhƣ vậy ta có một thuộc tính
khóa phức hợp. Chú ý rằng khóa phức hợp phải tối thiểu, nghĩa là tất cả các thuộc tính
thành phần phải có mặt trong thuộc tính phức hợp để thỏa mãn tính chất duy nhất.
Trong biểu đồ đồ họa của mô hình ER, thuộc tính khóa đƣợc biểu diễn bằng cách gạch
ngang dƣới tên của nó (hình 2-3).
Khi chỉ ra rằng một thuộc tính là khóa của một kiểu thực thể nghĩa là tính chất duy
nhất nêu trên phải đƣợc thỏa mãn đối với đối với mỗi mở rộng của kiểu thực thể. Nhƣ
vậy, ràng buộc khóa cấm hai thực thể bất kỳ có giá trị cho thuộc tính khóa nhƣ nhau
tại cùng một thời điểm. Đó là một ràng buộc trên tất cả các thể hiện của thực thể. Ràng
25
buộc khóa cũng nhƣ các ràng buộc sẽ đƣợc giới thiệu về sau đƣợc lấy ra từ các ràng
buộc của “thế giới nhỏ” của cơ sở dữ liệu.
Một kiểu thực thể có thể có nhiều hơn một thuộc tính khóa. Ví dụ, nếu một công ty có
một mã số duy nhất và một tên duy nhất thì các thuộc tính Mãsốcông ty và Têncôngty
đều là các thuộc tính khóa. Một kiểu thực thể cũng có thể không có khóa. Một thực thể
không có khóa đƣợc gọi là kiểu thực thể yếu.
Hình 2-3. Biểu diễn kiểu thực thể và các thuộc tính
Miền giá trị của các thuộc tính: Mỗi thuộc tính đơn của một kiểu thực thể đƣợc kết
hợp với một miền giá trị. Đó là một tập các giá trị có thể gán cho thuộc tính này đối
với mỗi thực thể riêng biệt. Các miền giá trị không hiển thị trong các sơ đồ ER.
Một cách toán học, một thuộc tính A của kiểu thực thể E có tập giá trị V có thể đƣợc
định nghĩa nhƣ là một hàm từ E vào tập hợp lực lƣợng P(V) của V:
A: E → P(V)
Ta ký hiệu giá trị của thuộc tính A đối với thực thể e là A(e). Định nghĩa ở trên đúng
cho các thuộc tính đơn trị, đa trị và thuộc tính không xác định. Một giá trị không xác
định đƣợc biểu diễn bằng một tập rỗng. Với các thuộc tính đơn trị, A(e) là một giá trị
đơn cho thực thể e. Các thuộc tính đa trị không có các hạn chế trên A(e). Với một
thuộc tính phức hợp A, tập giá trị V là tích Đề các của P(V
1
)x P(V
2
)x….xP(V
n
), trong
đó V
1
, V
2
, …, V
n
là tập các giá trị cho các thành phần đơn của A.
2.2.3. Kiểu liên kết, tập liên kết và các thể hiện
Một kiểu liên kết R giữa n kiểu thực thể E
1
, E
2
, …,E
n
xác định một tập liên kết giữa
các thực thể của các kiểu đó. Cũng nhƣ các kiểu thực thể và tập thực thể, một kiểu liên
kết và tập liên kết tƣơng ứng với nó cũng có tên chung là R. Một cách toán học, tập
liên kết R là một tập hợp các thể hiện liên kết r
i
, i= 1,2,… trong đó mỗi r
i
liên kết n
thực thể riêng biệt e
1
,e
2
,…,e
n
và mỗi một thực thể e
j
trong r
i
là một thành phần của
kiểu thực thể E
j
, 1≤ j ≤ n. Nhƣ vậy, một kiểu liên kết R là một quan hệ toán học trên
E
1
, E
2
, …, E
n
hoặc có thể định nghĩa nhƣ là một tập con của tích Đề các E
1
x E
2
x …x
E
n
. Mỗi kiểu thực thể E
1
,E
2
, …, E
n
đƣợc gọi là tham gia vào kiểu liên kết R, và tƣơng
tự, mỗi thực thể riêng biệt e
1
, e
2
, …, e
n
đƣợc gọi là tham gia vào thể hiện liên kết r
i
= (
e
1
,e
2
,…,e
n
).
Một cách không hình thức, mỗi thể hiện liên kết r
i
trong R là một sự kết hợp của các
thực thể, mỗi thực thể thuộc về một kiểu thực thể tham gia vào liên kết. Mỗi liên kết r
i
nhƣ vậy diễn đạt một sự kiện rằng các thực thể tham gia trong r
i
có mối quan hệ với
NHÂNVIÊN
MãsốNV
Họtên
Ngàysinh
Bằngcấp
Họđệm
Tên