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

Cơ sở lập trình bài giảng dành cho sinh viên Đại học, Cao đẳng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.73 MB, 91 trang )

TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG
KHOA CÔNG NGHỆ THÔNG TIN


HÀ VĂN LÂM

BÀI GIẢNG

CƠ SỞ DỮ LIỆU

Quảng Ngãi, tháng 12 năm 2016


TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG
KHOA CÔNG NGHỆ THÔNG TIN


BÀI GIẢNG

CƠ SỞ DỮ LIỆU
Dành cho sinh viên bậc đại học
ngành Công nghệ thông tin và Sư phạm tin

Quảng Ngãi, tháng 12 năm 2016


Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
Thời lượng: 03 tiết lý thuyết
Kết thúc chương này, sinh viên có thể:
 Hiểu được tại sao phải ra đời một hệ cơ sở dữ liệu
 Biết được các đối tượng sử dụng cơ sở dữ liệu


 Biết các yêu cầu(đặc tính)của hệ cơ sở dữ liệu
 Biết các thành phần của hệ quản trị cơ sở dữ liệu
1.1 DẪN NHẬP - TẠI SAO PHẢI CÓ MỘT CƠ SỞ DỮ LIỆU
1.1.1 Hệ thống tập tin cổ điển
- Trong quá trình xử lý thông tin, cách tiếp cận cổ điển được biểu diễn
dưới dạng sau:
OUTPUT
INPUT
- Phân tích dữ liệu (Output) dẫn đến nhu cầu cần (Input). Dữ liệu được
dùng cho chương trình ứng dụng nhất định.
1.1.2 Các ví dụ
Ứng dụng 1: Về quản lý tiền lương (QLTL). Lập bảng lương trong một đơn vị quản

STT
Họ tên
Bậc lương Phụ cấp Tiền lương
* Suy ra dữ liệu cần:
- Họ tên, Bậc lương, Bậc lương
* Dữ liệu được tổ chức thành các tập tin:
- Tập tin NHANVIEN_1 gồm:
Họ tên
Bậc lương
- Tập tin CHEDO_PHUCAP gồm:
* Sơ đồ khai thác của hệ QLTL như sau:

Phụ cấp

NHANVIEN_1

Bậc lương


CHEDO_PHUCAP

Chương trình
QLTL

Phiếu lương

1


Ứng dụng 2: Lập danh sách phân công (dự kiến) cho một công trình(QLCT)
STT
Họ tên
Chuyên môn
* Suy ra dữ liệu cần:
- Họ tên, Chuyên môn, Công trình
* Dữ liệu được tổ chức thành các tập tin:
- Tập tin NHANVIEN_2 gồm:
Họ tên
- Tập tin CONG_TRINH gồm:
* Sơ đồ khai thác của hệ QLTL như sau:

Công trình

Công trình

NHANVIEN_2

Chuyên môn

Chuyên môn

CONG_TRINH

Chương trình
QLCT

Phân công
Danh sách
Nhận xét:
- Việc xử lý, khai thác dữ liệu trong công tác quản lý khoa học còn đơn lẻ, tự
phát ở mỗi phòng ban chức năng của từng cơ quan, đơn vị theo một cấu trúc tổ chức
dữ liệu cho riêng mình.
- Việc triển khai như thế được tiến hành với thời gian ngắn, ít đầu tư, tốn kém
về nhân sự, vật chất…
- Chính quan điểm trên dẫn đến việc: trùng lắp thông tin, dư thừa thông tin, lại
không nhất quán về xử lý, quản lý thông tin. Quan trọng nhất vẫn là thiếu sự chia sẻ
thông tin tại một đơn vị.
- Do nhu cầu xử lý thông tin ngày càng qui mô, rộng hơn về nhiều khía cạnh...
nên đòi hỏi ra đời một hệ cơ sở dữ liệu để giải quyết những nhu cầu trên.
1.2 ĐỊNH NGHĨA MỘT CƠ SỞ DỮ LIỆU
1.2.1 Giới thiệu chung
- Nghiên cứu Cơ sở dữ liệu (CSDL) sẽ giúp chúng ta biết lưu trữ, cập nhật, tìm
kiếm thông tin nhanh, hiệu quả, tiết kiệm được bộ nhớ. Mặt khác còn giúp chúng ta
hiểu được các ràng buộc mang tính chất nội tại trên một mô hình cơ sở dữ liệu.
- Cơ sở dữ liệu là môn học liên quan nhiều đến lý thuyết đại số, logic toán và
2


nhiều lĩnh vực kiến thức tin học khác.

- Bất kỳ một ứng dụng tin học nào cũng chứa đựng các vấn đề về cách tổ chức
lưu trữ và khai thác dữ liệu.
- Hiện nay, hầu như CSDL gắn liền với mọi ứng dụng của tin học, chẳng hạn
như quản lý các hệ thống thông tin trong một cơ quan, đơn vị, trường học.. .
- Đó là các dữ liệu tác nghiệp của các Cơ quan, đơn vị trường học .. có thể bao
gồm: Dữ liệu về sản phẩm, dữ liệu về các tài khoản, dữ liệu về đào tạo, dữ liệu về
sinh viên, dữ liệu về lập kế hoạch công việc v.v...
- CSDL bảo đảm cho các cơ quan, đơn vị, trường học có khả năng quản lý tập
trung dữ liệu tác nghiệp của mình. Cần phải tính đến một người quản trị CSDL, chịu
trách nhiệm về dữ liệu tác nghiệp.
1.2.2 Định nghĩa một cơ sở dữ liệu
CSDL là một tập hợp dữ liệu được tổ chức có cấu trúc liên quan với nhau và
được lưu trữ trong máy tính. Để tối ưu hóa các thao tác cơ bản sau:
- Lưu trữ dữ liệu.
- Truy xuất thông tin.
- Cập nhật dữ liệu.
1.3 CÁC ĐỐI TƯỢNG SỬ DỤNG CSDL
1.3.1 Các đối tượng sử dụng CSDL
- Quản trị viên (Database Administrator - DBA)
+ 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 (Database Designer)
+ Chịu trách nhiệm về
- Lựa chọn cấu trúc phù hợp để lưu trữ dữ liệu.
- 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 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 (End User)

* 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.
3


* 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,…
1.3.2 Các đặc tính của hệ CSDL(yêu cầu)
1. Tính cấu trúc: Thông tin trong CSDL được lưu trữ theo cấu trúc nhất định.
2. Tính toàn vẹn: Các giá trị của dữ liệu được lưu trữ trong CSDL phải thỏa
mãn các ràng buộc. Tùy thuộc vào hành động và tổ chức của CSDL.
3. Tính nhất quán: Sau những lần cập nhật và ngay khi có sự cố(phần cứng,
Phần mềm) xảy ra trong quá trình cập nhật thì CSDL phải đảm bảo tính nhất quán dữ
liệu.
4. Tính an toàn và bảo mật thông tin: CSDL phải được bảo vệ an toàn, tránh
những truy cập không được phép và phải khôi phục được CSDL khi có sự cố xảy ra
(phần cứng, Phần mềm). Mỗi nhóm NSD có thamền hạn và mục đích khác nhau.
5. Tính không dư thừa: CSDL không lưu trữ những dữ liệu trùng lặp.
6. Tính cạnh tranh: Cạnh tranh trong truy xuất, do nhiều người sử dụng. Do đó
phải phân cấp cho chương trình ứng dụng.
1.3.3 Cấu trúc của CSDL: (Có 3 mức)
- Mức ngoài: Mô tả 1 phần của CSDL.

- Mức trung gian: Mô tả dữ liệu được lưu trữ trong CSDL và các mối quan hệ
(logic) giữa các mẫu tin.
- Mức vật lý: Mô tả dữ liệu được lưu trữ trong bộ nhớ.
1.4 HỆ QUẢN TRỊ CSDL (Data Base Management System - DBMS)
1.4.1 Khái niệm Hệ quản trị CSDL
Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như khai thác có
hiệu quả, đảm bảo sự bảo mật, sự cạnh tranh truy xuất..., cần thiết phải có những
phần mềm chuyên dùng để khai thác chúng, những phần mềm này được gọi là các hệ
quản trị CSDL (Data base management system- DBMS).
Hệ quản trị CSDL là một hệ thống phần mềm, có nhiệm vụ hỗ trợ cho những
nhà phân tích, thiết kế và những người khai thác CSDL, đảm bảo sự bảo mật, cạnh
tranh truy xuất, an toàn dữ liệu,... cung cấp cho người dùng những cách nhìn khác
nhau về CSDL.
Hiện nay, trên thị trường có nhiều hệ quản trị CSDL (DBMS) với chất lượng
khác nhau như: Oracle, DB2, Paradox, Ms Access, Visual Foxpro, MySQL, SQL
SERVER. . .
Lưu ý: Điều quan trọng để khai thác, tổ chức tốt một CSDL cần phải có một hệ
quản trị CSDL tối ưu, phù hợp với CSDL.
1.4.2 Các thành phần của Hệ quản trị CSDL (DBMS): (có 3 phần)
* Ngôn ngữ mô tả dữ liệu(DDL)
4


+ Mô tả về cấu trúc của CSDL.
+ Mô tả các mối quan hệ của dữ liệu.
+ Mô tả các ràng buộc toàn vẹn của dữ liệu.
* Ngôn ngữ thao tác dữ liệu(DML)
Có đặc tính như một ngôn ngữ lập trình bậc cao dùng để:
+ Cập nhật dữ liệu.
+ Khai thác dữ liệu (có 2 loại: Thủ tục và phi thủ tục).

* Tự điển dữ liệu(DD)
Là nơi tập trung các thông tin lưu trữ về:
+ Cấu trúc của CSDL(thuộc tính, quan hệ…).
+ Chương trình ứng dụng.
+ Mã bảo mật.
1.5 SƠ ĐỒ TỔNG QUÁT CỦA MỘT HỆ QUẢN TRỊ CSDL
1.5.1 Kiến trúc 3 lược đồ

1.5.2 Kiến trúc của Hệ quản trị CSDL
* 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 một 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.6 TÍNH ĐỘC LẬP GIỮA DỮ LIỆU VÀ CHƯƠNG TRÌNH
* Có hai mức độc lập dữ liệu
5


- Tính độc lập vật lý: Cho phép người Quản trị hệ quản trị CSDL có thể thay đổi
cách cài đặt các mẫu tin mà không ảnh hưởng đến chương trình ứng dụng.
- Tính độc lập logic: Cho phép sửa đổi cấu trúc của CSDL (thay đổi lược đồ
quan niệm) mà không ảnh hưởng đến chương trình ứng dụng sử dụng CSDL đó.
----oOo----


6


Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT ER (Entity - Relationship
model)
Thời lượng: 03 tiết lý thuyết + 03 tiết bài tập
Kết thúc chương này, sinh viên có thể:
 Hiểu được các thành phần cơ bản của mô hình thực thể liên kết ER
 Biết sử dụng khái niệm mô hình bậc cao cho việc thiết kế cơ sở dữ liệu
Trong chương này chúng ta sẽ làm quen với mô hình thực thể-liên kết (EntityRelationship model), gọi tắt là mô hình ER. Đó là một mô hình dữ liệu quan niệm bậc
cao phổ biến, tập trung vào các cấu trúc cơ sở dữ liệu và các ràng buộc.
2.1 SỬ DỤNG MÔ HÌNH KHÁI NIỆM BẬC CAO CHO VIỆC THIẾT KẾ CƠ
SỞ DỮ LIỆU

Hình 2.1 Sơ đồ mô tả các bước chính của việc thiết kế cơ sở dữ liệu
- 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 các đòi
hỏi về dữ liệu của họ.
7


- 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 được gọi là thiết kế khái niệm.
+ Lược đồ khái niệm là một mô tả súc tích về các yêu cầu dữ liệu của người
sử dụng, bao gồm các mô tả chi tiết của các kiểu thực thể, các 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. Vì những khái niệm này không chứa các chi tiết cài đặt (thể hiện), chúng
thường dễ hiểu và có thể sử dụng để giao lưu với người sử dụng.
+ 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 thoả mãn và 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ẽ 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, ta có thể sử
dụng các phép toán mô hình dữ liệu cơ bản để đặ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 thoả 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ể chỉ ra
trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ khái niệm cho phù
hợp.
- Bước tiếp theo trong thiết kế cơ sở dữ liệu là việc thể hiện (cài đặ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 thể hiện (chẳng hạn như mô hình cơ sở dữ
liệu quan hệ hoặc đối tượng). Vì vậy, lược đồ quan niệm được chuyển đổi từ mô hình
dữ liệu bậc cao thành mô hình dữ liệu thể hiện.
+ Bước này gọi là thiết kế lô gic 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 thể hiện
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 lưu trữ 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 áp dụng cũng
được thiết kế và cài đặt như là các giao dịch cơ sở dữ liệu tương ứng với các đặc tả
giao dịch mức cao.
2.2 CÁC THÀNH PHẦN CƠ BẢN CỦA MÔ HÌNH THỰC THỂ LIÊN KẾT
2.2.1 Thực thể, tập thực thể
a) 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à một vật cụ thể (chẳng hạn như một người, một cái ô tô,...) hoặc có thể là một
vật trừu tượng (chẳng hạn một công ty, một công việc, một môn học,...).

8


- Mỗi thực thể có các thuộc tính, đó là các tính chất cụ thể mô tả nó.
Ví dụ 1:
Một thực thể nhân viên được mô tả bằng họ tên, tuổi, địa chỉ, lương và công
việc 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ó. 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 được lưu
trữ trong cơ sở dữ liệu.
b) Tập thực thể
Tập hợp các thực thể giống nhau tạo thành một tập thực thể.
Ví dụ 2: (Hình 2.2) chỉ ra một số thực thể và các thuộc tính của chúng. Thực thể nhân
viên e1 có 4 thuộc tính : Họ tên, Địa chỉ, Tuổi, và Điện thoại. Giá trị của các thuộc
tính tương ứng là “Lê Minh”, “Quảng Ngãi”, “25”, “0553823856”.
NHANVIEN
e1
e2
e3

Họ tên
Lê Minh
Trần Chỉnh
Huỳnh Mỹ

Địa chỉ
Quảng Ngãi
Mộ Đức
Sơn Tịnh


Tuổi
25
28
32

Điện thoại
0553823856
0553823876
0553823456

Hình 2.2 Kiểu thực thể và tập thực thể
2.2.2 Các loại thuộc tính
Trong mô hình ER có mặt nhiều kiểu thuộc tính : thuộc tính đơn và thuộc tính
phức hợp, thuộc tính đơn trị và thuộc tính đa trị, thuộc tính được lưu trữ và thuộc tính
suy diễn được. Chúng ta sẽ định nghĩa các kiểu thuộc tính và minh họa chúng thông
qua các ví dụ.
a) Thuộc tính đơn và thuộc tính phức hợp
- Thuộc tính đơn: Các thuộc tính không thể phân chia được gọi là thuộc tính
đơn hay thuộc tính nguyên tố.
- Thuộc tính phức hợp: là các thuộc tính có thể phân chia ra thành các 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. Giá trị của một
thuộc tính phức hợp là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên
nó.
Ví dụ 3: thuộc tính Họ tên của thực thể Nhân viên có thể được phân chia thành Họ
đệm, Tên.
b) Thuộc tính đơn trị và thuộc tính đa trị
- Thuộc tính đơn trị: Đa số các thuộc tính có một giá trị duy nhất cho một thực
thể cụ thể, các thuộc tính như vậy gọi là các thuộc tính đơn trị.
Ví dụ: Tuổi là một thuộc tính đơn trị của một người.
- Thuộc tính đa trị: Trong một số trường hợp, một thuộc tính có thể có một tập

hợp các giá trị cho cùng một thực thể. Những thuộc tính như vậy được gọi là thuộc
9


tính đa trị.
Ví dụ 4: thuộc tính Bằng cấ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ố các giá trị khác nhau cho thuộc
tính Bằng cấp. Những thuộc tính như vậy được gọi là thuộc tính đa trị.
c) Thuộc tính lưu trữ và thuộc tính suy diễn được
Một số trường hợp, hai hay nhiều giá trị thuộc tính có liên quan đến nhau.
Ví dụ 5: thuộc tính Tuổi và thuộc tính Ngày sinh 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ày
sinh. Thuộc tính Tuổi như vậy gọi là thuộc tính suy diễn được và nó được suy diễn từ
thuộc tính Ngày sinh. Thuộc tính Ngày sinh được gọi là thuộc tính lưu trữ.
d) Thuộc tính không xác định giá trị(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ụ 6: Thuộc tính Điện thoạ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 value). Giá trị không xác định được tạo ra khi một thuộc tính
không có các giá trị áp dụng được hoặc khi không biết.
2.2.3 Kiểu thực thể, tập thực thể, khoá và tập giá trị
a) Kiểu thực thể và tập thực thể
- 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ả tên của nó và các thuộc tính. (Hình
2.2) ở trên chỉ ra kiểu thực thể có tên là NHÂNVIÊN và các thuộc tính của chúng.
- Một tập thực thể: Một tập hợp tất cả 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, nó thường được tham chiếu đến bằng cách

sử dụng tên của kiểu thực thể.
Ví dụ 7:
NHÂNVIÊN dùng để chỉ vừa là một kiểu thực thể, vừa là 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.
Một kiểu thực thể được biểu diễn trong sơ đồ ER như là một hình chữ nhật có
chứa tên kiểu thực thể. Các tên thuộc tính được đặt trong các hình ô van và được nối
với kiểu thực thể bằng các đường thẳng. Các thuộc tính phức hợp được nối với các
thuộc tính thành phần của nó bằng các đường thẳng. Các thuộc tính đa trị được hiển
thị trong các hình ô van nét đôi.

10


Hình 2.3 Biểu diễn kiểu thực thể và các thuộc tính
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ể.
b) Các thuộc tính khoá 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à Khoá
hoặc là ràng buộc về tính duy nhất trên các thuộc tính.
Mỗi 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ể riêng biệt trong một tập hợp.
Thuộc tính như vậy gọi là thuộc tính khoá và các giá trị của nó có thể dùng để
xác định từng thực thể một cách duy nhất.
Ví dụ 8: thuộc tính MaCT của kiểu thực thể CÔNG TY là khoá của kiểu thực thể đó
vì mỗi thực thể công ty có một MaCT duy nhất. Đôi khi, nhiều thuộc tính kết hợp với
nhau tạo thành một khoá, nghĩa là tổ hợp các giá trị của các thuộc tính phải khác nhau
đối với mỗi thực thể.
Trong trường hợp như vậy ta có thể định nghĩa một thuộc tính khoá phức hợp.
Chú ý rằng khoá 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 để thoả mãn tính chất duy nhất. Trong biểu
diễn đồ họa của mô hình ER, thuộc tính khoá có tên được gạch dưới ở bên trong hình
ô van.
Khi chỉ ra một thuộc tính là khoá 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 thoả mãn đối với mỗi mở rộng của kiểu thực thể. Đó là ràng
buộc cấm hai thực thể bất kỳ có giá trị cho thuộc tính khoá như nhau tại cùng một
thời điểm và không phải là tính chất của một thể hiện cụ thể, mà đúng hơn, nó là một
ràng buộc trên tất cả các thể hiện của kiểu thực thể. Ràng buộc khoá này cũng như
các ràng buộc khác sẽ được giới thiệu sau được lấy ra từ các ràng buộc của “thế giới
11


nhỏ” mà cơ sở dữ liệu biểu diễn. Một kiểu thực thể có thể có nhiều hơn một thuộc
tính khoá.
Ví dụ 9: kiểu thực thể NHANVIEN có thể có hai thuộc tính Sốchứngminhthư và
Sốthẻbảohiểm, cả hai đều là thuộc tính khoá. Một kiểu thực thể cũng có thể không có
khoá, trong trường hợp đó, nó được gọi là kiểu thực thể yếu.
c) Tập hợp giá trị (miền) 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 tập hợp giá trị
(hay còn gọi là miền giá trị). Đó là tập hợ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 tập giá trị không được hiển thị trong 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ị là 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)
Chúng ta tham chiếu đến giá trị của thuộc tính A đối với thực thể e như là
A(e). Định nghĩa ở trên đúng cho cả các thuộc tính đơn trị, thuộc tính đa trị, và cả
thuộc tính không xác định.
2.2.4 Các liên kết, các kiểu liên kết, các vai trò và các ràng buộc cấu trúc
* Các 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ể E1, E2,…., En xác định một tập hợ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à các 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 ri, trong đó mỗi ri
liên kết n thực thể riêng biệt (e1, e2, …, en), và mỗi thực thể ej trong ri là một thành
phần của kiểu thực thể Ej, 1<=j<=n. Như vậy, một kiểu liên kết là một quan hệ toán
học trên E1,E2,…,En, hoặc có thể định nghĩa như là một tập của tích Đề các E1x E2x
….xEn. Mỗi kiểu thực thể E1, E2,…., En đượ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 e1, e2, …., en được gọi là tham gia vào thể hiện liên
kết ri = (e1, e2, ….., en).
Một cách không hình thức, mỗi thể hiện liên kết ri 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
thể hiện liên kết ri như thế biểu diễn một sự kiện rằng các thực thể tham gia trong ri
có một quan hệ với nhau theo một cách nào đó ở trong thế giới thực.
Ví dụ 10: trong thực tế, các nhân viên làm việc cho các đơn vị, như vậy, có một kiểu
liên kết giữa kiểu thực thể NHANVIEN và kiểu thực thể ĐONVI liên kết các nhân
viên với các đơn vị mà họ làm việc cho.
Trong sơ đồ ER, các kiểu liên kết được biểu diễn bằng một hình thoi được nối
trực tiếp với các hình chữ nhật biểu diễn các kiểu thực thể tham gia vào liên kết.
(Hình 2. 4) minh hoạ các ví dụ về kiểu liên kết, thể hiện liên kết.

12


Hình 2.4 Kiểu liên kết và thể hiện liên kết
2.2.5 Cấp liên kết, tên vai trò và liên kết đệ quy
- Cấp của một liên kết: Cấp của một kiểu liên kết là số các kiểu thực thể tham
gia. Một kiểu liên kết có thể có cấp 1, cấp 2, cấp 3,…
Ví dụ 11: kiểu liên kết <làm việc cho> giữa kiểu thực thể NHANVIEN và kiểu thực
thể ĐONVI là một kiểu liên kết cấp 2. Kiểu liên kết <biết trước> giữa kiểu thực thể
Mônhọc với chính nó là một kiểu liên kết cấp 1. v.v…

- Các liên kết như các thuộc tính: Đôi khi chúng ta có thể coi một kiểu liên kết
như một thuộc tính của một kiểu thực thể.
Ví dụ 12: nếu kiểu thực thể NHANVIEN có thuộc tính ĐONVI để chỉ ra tên đơn vị
mà nhân viên làm việc cho, thì thuộc tính ĐONVI biểu thị một liên kết. Các thuộc
tính kiểu này có thể đơn trị hoặc đa trị tuỳ theo bản chất của mối liên kết.
- Các tên vai trò và các liên kết đệ quy: Mỗi một kiểu thực thể tham gia vào
một kiểu liên kết có một vai trò cụ thể trong liên kết. Tên vai trò chỉ rõ vai trò mà
thực thể của kiểu thực thể tham gia có trong mỗi thể hiện liên kết, và giúp đỡ việc
giải thích ý nghĩa liên kết là gì.
Ví dụ 13: trong kiểu liên kết <làm việc cho>, kiểu thực thể NHANVIEN đóng vai trò
của nhân viên hoặc công nhân, còn kiểu thực thể ĐONVI đóng vai trò của đơn vị
hoặc người thuê nhân viên.
Các tên vai trò là hoàn toàn không cần thiết trong các kiểu liên kết mà trong đó
các kiểu thực thể tham gia đều khác nhau, bởi vì mỗi tên kiểu thực thể có thể được sử
dụng như là một tên vai trò. Tuy nhiên, trong một số trường hợp, một kiểu thực thể
có thể tham gia vào kiểu liên kết với các vai trò khác nhau.
Trong những trường hợp như vậy tên vai trò trở nên quan trọng để phân biệt ý
nghĩa của mỗi sự tham gia. Các kiểu liên kết như vậy gọi là liên kết đệ quy. (Hình
2.5) chỉ ra một ví dụ về liên kết đệ quy: Trong các nhân viên làm việc cho một đơn
13


vị, có nhân viên được giao nhiệm vụ theo dõi các nhân viên khác (chẳng hạn làm tổ
trưởng, quản đốc, v…v). Như vậy sẽ có một kiểu liên kết <theo dõi> liên kết một
nhân viên với một người theo dõi (cũng là một nhân viên). Kiểu thực thể
NHÂNVIÊN tham gia hai lần vào kiểu liên kết < theo dõi>, một lần với vai trò người
bị theo dõi và một lần với vai trò người theo dõi.
2.2.6 Các ràng buộc trên các kiểu liên kết
Các kiểu liên kết thường có một số ràng buộc để hạn chế số các tổ hợp có thể
của các thực thể có thể tham gia trong tập hợp liên kết tương ứng. Các ràng buộc này

được xác định từ tình trạng của thế giới thực mà các liên kết biểu diễn.
Ví dụ 14: nếu Công ty có quy chế là mỗi nhân viên chỉ phải làm việc cho một đơn vị
thì ta phải mô tả ràng buộc này trong lược đồ. Có hai loại ràng buộc liên kết chính: tỷ
số lực lượng và sự tham gia.
- Các tỷ số lực lượng cho các mối liên kết cấp 2: Tỷ số lực lượng cho một liên
kết cấp 2 chỉ ra số các thể hiện liên kết mà một thực thể có thể tham gia vào.
Ví dụ 15: trong kiểu liên kết <làm việc cho> giữa ĐONVI và NHANVIEN, tỷ số lực
lượng là 1:N, điều đó có nghĩa là mỗi đơn vị có thể liên kết với nhiều nhân viên
nhưng một nhân viên chỉ có thể liên kết với một đơn vị. Các tỷ số lực lượng có thể có
là 1:1, 1:N, N:1 và M:N.
Ví dụ 16: (về liên kết 1:1) một nhân viên có thể <quản lý> một đơn vị và một đơn vị
có một nhân viên <quản lý>. Kiểu liên kết NHANVIEN <làm việc trên> DUAN có tỷ
số lực lượng là N:M vì nó phản ánh tham chiếu của thế giới thực là một nhân viên có
thể làm việc trên nhiều dự án và một dự án có nhiều nhân viên làm việc.
Các tỷ số lực lượng cho các liên kết cấp 2 được hiển thị trên các lược đồ ER
bằng cách ghi 1, N, M trên các hình thoi (Hình 2.5).

Hình 2.5 Tỷ số lực lượng của các kiểu liên kết
- Các ràng buộc tham gia và sự phụ thuộc tồn tại: Ràng buộc tham gia chỉ ra
rằng có phải sự tồn tại của một thực thể phụ thuộc vào liên quan đến một thực thể
khác thông qua một kiểu liên kết hay không. Có hai kiểu ràng buộc tham gia: ràng
buộc tham gia toàn bộ và ràng buộc tham gia bộ phận.
14


Ví dụ 17: nếu Công ty ấn định rằng mỗi nhân viên phải làm việc cho một đơn vị, thì
một thực thể NHANVIEN chỉ có thể tồn tại khi tham gia vào một thể hiện của liên
kết < làm việc cho>. Như vậy, sự tham gia của kiểu thực thể NHANVIEN vào liên
kết <làm việc cho> được gọi là tham gia toàn bộ, nghĩa là mỗi thực thể trong “tập
hợp toàn bộ” các thực thể NHANVIEN phải có liên kết với một thực thể ĐONVI

thông qua kiểu liên kết <làm việc cho>.
Sự tham gia toàn bộ còn được gọi là sự phụ thuộc tồn tại.
Ví dụ 18: Một nhân viên có thể quản lý (hoặc không) một đơn vị. Như vậy, việc tham
gia của kiểu thực thể NHANVIEN vào kiểu liên kết <quản lý> là bộ phận, nghĩa là
chỉ có một số hoặc “một phần của tập hợp” các thực thể NHANVIEN là có liên kết
với một ĐONVI thông qua kiểu liên kết <quản lý>, chứ không phải tất cả. Chúng ta
gọi tỷ số lực lượng và các ràng buộc tham gia bằng một cái tên chung là các ràng
buộc cấu trúc.
Trong lược đồ ER, sự tham gia toàn bộ được hiển thị như một đường thẳng nét
đôi nối các kiểu thực thể tham gia vào kiểu liên kết. Sự tham gia bộ phận được biểu
diễn bằng một đường thẳng nét đơn.
 Thuộc tính của các kiểu liên kết
Các kiểu liên kết cũng có thể có các thuộc tính, giống như các thuộc tính của
các kiểu thực thể.
Ví dụ 19: để ghi lại số giờ trong tuần một nhân viên làm việc trên một dự án, chúng
ta có thể đưa vào thuộc tính Sốgiờ cho kiểu liên kết <làm việc trên> hoặc để ghi lại
việc quản lý đơn vị của một nhân viên chúng ta có thể đưa vào thuộc tính
Ngàybắtđầu cho kiểu liên kết <quảnlý>.
 Các kiểu thực thể yếu
Các kiểu thực thể không có các thuộc tính khoá cho chính mình được gọi là
các thực thể yếu. Ngược lại, các kiểu thực thể thông thường (nghĩa là có thuộc tính
khoá) được gọi là thực thể mạnh.
Các thực thể của một kiểu thực thể yếu được xác định bằng cách liên kết với
các thực thể cụ thể của một kiểu thực thể khác tổ hợp với một số giá trị thuộc tính của
nó. Ta gọi kiểu thực thể khác đó là kiểu thực thể xác định hoặc kiểu thực thể chủ và
ta sẽ gọi kiểu liên kết làm liên kết một kiểu thực thể yếu với chủ của nó là liên kết xác
định của kiểu thực thể yếu.
Một kiểu thực thể yếu luôn luôn có một ràng buộc tham gia hoàn toàn (tồn tại
phụ thuộc) vào liên kết xác định của nó bởi vì một thực thể yếu không thể được xác
định mà không có thực thể chủ.

Ví dụ 20: ta xét kiểu thực thể PHUTHUOC, liên kết với kiểu thực thể NHANVIEN
được sử dụng để giữ dấu vết của các người phụ thuộc vào mỗi nhân viên thông qua
một liên kết 1:N. Các thuộc tính của PHUTHUOC là Họtên, Ngàysinh, Giới tính, và
Mốiquanhệ (đối với nhân viên). Hai người phụ thuộc của hai nhân viên khác nhau có
15


thể có cùng giá trị cho các thuộc tính nhưng nó là hai thực thể khác nhau. Chúng chỉ
được xác định như hai thực thể khác nhau sau khi xác định một thực thể nhân viên cụ
thể có liên quan đến từng người phụ thuộc. Mỗi thực thể nhân viên được gọi là chủ
của các thực thể phụ thuộc liên kết với nó.
Thông thường một kiểu thực thể yếu có một khoá bộ phận, đó là một tập hợp
các thuộc tính có thể xác định một cách duy nhất các thực thể yếu liên kết với cùng
một thực thể chủ.
Ví dụ 21: nếu như hai người phụ thuộc không bao giờ có tên giống nhau thì thuộc
tính Họtên của PHUTHUOC là một khoá bộ phận. Trong trường hợp xấu nhất, thuộc
tính phức hợp gồm tất cả các thuộc tính của thực thể yếu sẽ là một khoá bộ phận.
Trong sơ đồ ER kiểu thực thể yếu và mối liên kết xác định của nó được biểu
diễn bằng một hình chữ nhật và một hình thoi nét đôi.
2.2.7 Ví dụ về thiết kế một mô hình ER
Trong phần này chúng ta xét ví dụ về việc xây dựng mô hình ER cho cơ sở dữ
liệu CÔNGTY.
a) Đặt vấn đề
Giả sử rằng sau khi tập hợp các yêu cầu và sau bước phân tích, những người
thiết kế cơ sở dữ liệu mô tả lại hoạt động của Công ty bằng những câu như sau:
Công ty được tổ chức thành các đơn vị. Mỗi đơn vị có một tên duy nhất, một
mã số duy nhất, và một nhân viên cụ thể quản lý công ty. Việc nhân viên quản lý
công ty được ghi lại bằng ngày mà nhân viên đó bắt đầu làm quản lý. Một đơn vị có
thể có nhiều địa điểm.
Một đơn vị kiểm soát một số dự án. Mỗi dự án có một tên duy nhất, một mã số

duy nhất và một địa điểm.
Với mỗi nhân viên chúng ta lưu giữ Họ tên, Mã số bảo hiểm xã hội, địa chỉ,
lương, giới tính, ngày sinh. Một nhân viên được phân công vào một đơn vị nhưng có
thể làm việc trên nhiều dự án do nhiều đơn vị kiểm soát. Chúng ta lưu giữ lại số giờ /
tuần mà một nhân viên làm việc trên mỗi dự án. Chúng ta cũng lưu giữ dấu vết của
người theo dõi trực tiếp của mỗi nhân viên.
Mỗi nhân viên có những người phụ thuộc, những người này được hưởng chế
độ bảo hiểm. Thông tin về những người phụ thuộc gồm Họ tên, giới tính, ngày sinh
và mối quan hệ với nhân viên (là con hoặc bố, mẹ, ….).
b) 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
* Theo trên, chúng ta có 4 kiểu thực thể
- Một kiểu thực thể ĐONVI với các thuộc tính Tên, Mãsố, Địađiểm,
Ngườiquảnlý, và Ngàybắtđầuquảnlý. Các thuộc tính Tên, Mã số đều là các thuộc tính
khoá (do tính duy nhất của chúng). Địa điểm là một thuộc tính đa trị (vì một đơn vị
có thể có nhiều địa điểm).
- Một kiểu thực thể DUAN với các thuộc tính Tên, Mãsố, Địađiểm,
16


Đơnvịkiểmsoát. Cả hai thuộc tính Tên, Mãsố đều là các thuộc tính khoá.
- Một kiểu thực thể NHANVIEN với các thuộc tính Họtên, MãsốBHXH (Mã
số bảo hiểm xã hội), Giớitính, Địa chỉ, lương, Ngày sinh, Đơnvi, và Người theodõi.
Thuộc tính Họtên là một thuộc tính phức hợp (gồm Họđệm, Tên). Thuộc tính địa chỉ
cũng là phức hợp. Thuộc tính MãsốBHXH là thuộc tính khoá.
- Một kiểu thực thể PHUTHUOC với các thuộc tính NHANVIEN, HọtênPT
(Họ tên của người phụ thuộc), Giới tính, Ngàysinh, và Mốiquanhệ (đối với nhân
viên).
* Giữa các kiểu thực thể trên có các kiểu liên kết như sau
- Giữa ĐONVỊ và DUAN có một kiểu liên kết : ĐONVỊ kiểm soát các dự án.
Đây là một liên kết kiểu 1:N. Sự tham gia của dự án vào kiểu liên kết là toàn bộ

(nghĩa là một dự án bao giờ cũng có một đơn vị kiểm soát). Nếu như không phải mọi
đơn vị đều quản lý dự án thì sự tham gia của ĐONVỊ là bộ phận, ngược lại, sự tham
gia đó là toàn bộ. Thuộc tính Đonvikiểmsoát ở đây đóng vai trò là đơn vị kiểm soát
dự án, nó chỉ kiểu liên kết kiểm soát
- Giữa NHANVIEN và ĐONVỊ có hai kiểu liên kết: Nhân viên làm việc cho
đơn vị và nhân viên quản lý một đơn vị.
Kiểu liên kết làm việc cho là một liên kết kiểu N:1. Sự tham gia của cả hai
kiểu thực thể là toàn bộ (một nhân viên phải làm việc cho một đơn vị và một đơn vị
phải có các nhân viên làm việc). Thuộc tính Đonvi của kiểu thực thể nhân viên đóng
vai trò là đơn vị mà nhân viên làm việc cho nó. Thuộc tính này chỉ kiểu liên kết làm
việc cho Kiểu liên kết quản lý là một liên kết kiểu 1:1. Sự tham gia của NHANVIEN
là bộ phận bởi vì không phải nhân viên nào cũng quản lý đơn vị. Sự tham gia của
ĐONVỊ là toàn bộ vì đơn vị nào cũng phải có một người quản lý. Thuộc tính Người
quản lý của ĐONVỊ đóng vai trò người nhân viên quản lý đơn vị và thuộc tính
Ngàybắtđầuquảnlý là thuộc tính của kiểu liên kết quản lý
- Giữa kiểu thực thể NHANVIEN và kiểu thực thể NHANVIEN có một kiểu liên
kết đệ quy: NHANVIEN theo dõi NHANVIEN. Đây là liên kết kiểu 1:N, một nhân
viên theo dõi trực tiếp các nhân viên khác. Sự tham gia của NHANVIEN (ở cả hai
phía) là bộ phận bởi vì không phải nhân viên nào cũng có người theo dõi trực tiếp và
không phải nhân viên nào cũng theo dõi nhân viên khác. Thuộc tính Ngườitheodõi
đóng vai trò là nhân viên theo dõi.
- Giữa kiểu thực thể NHANVIEN và kiểu thực thể DUAN có một kiểu liên kết:
NHANVIEN làm việc trên DUAN, đây là một liên kết kiểu M:N, một nhân viên có
thể làm việc trên nhiều dự án và một dự án có thể có nhiều nhân viên làm việc. Sự
tham gia của NHANVIEN là bộ phận vì một nhân viên có thể không làm việc cho dự
án nào, ngược lại, sự tham gia của DUAN là toàn bộ vì dự án nào cũng phải có nhân
viên làm việc.
- Giữa kiểu thực thể NHANVIEN và kiểu thực thể PHUTHUOC có một mối
17



liên kết: người phụ thuộc phụ thuộc vào NHANVIEN hoặc NHANVIEN có những
người PHUTHUOC. Đây là kiểu liên kết 1:N, nhân viên có thể có những người phụ
thuộc. Sự tham gia của NHANVIEN là bộ phận và sự tham gia của phụ thuộc là toàn
bộ vì không phải nhân viên nào cũng có người phụ thuộc nhưng một người phụ thuộc
phải phụ thuộc vào một nhân viên. Thuộc tính Nhân viên của kiểu thực thể
PHUTHUOC đóng vai trò của nhân viên mà người phụ thuộc phụ thuộc vào. Thuộc
tính này chỉ liên kết phụ thuộc vào.
Sau khi phân tích ta, loại bỏ các thuộc tính được xem như các kiểu liên kết ra
khỏi các kiểu thực thể. Đó là các thuộc tính Ngườiquảnlý và Ngàybắtđầuquảnlý của
kiểu thực thể ĐONVI, thuộc tính Đonvikiểmsoát của kiểu thực thể DUAN, các thuộc
tính Đơnvi, Ngườitheodõi, Làmviệctrên của kiểu thực thể NHANVIEN và thuộc tính
Nhanvien của kiểu thực thể PHUTHUOC. Chúng ta có sơ đồ ER như (hình 2.6).

Hình 2.6 Lược đồ ER “CÔNG TY”
----oOo----

18


BÀI TẬP CHƯƠNG 2
Mô hình thực thể liên kết
Dựa vào các phân tích sơ bộ dưới đây, hãy lập mô hình thực thể liên kết cho
mỗi bài toán quản lý sau:
Bài 1: QUẢN LÝ LAO ĐỘNG
Để quản lý việc phân công các nhân viên tham gia vào xây dựng các công trình.
Công ty xây dựng ABC tổ chức quản lý như sau:
Cùng lúc công ty có thể tham gia xây dựng nhiều công trình, mỗi công trình có
một mã số công trình duy nhất (MACT), mỗi mã số công trình xác định các thông tin
như: tên gọi công trình (TENCT), địa điểm(ĐIAĐIEM), ngày công trình được cấp

giấy phép xây dựng (NGAYCAPGP), ngày khởi công (NGAYKC), ngày hoàn thành
(NGAYHT).
Mỗi nhân viên của công ty ABC có một mã số nhân viên(MANV) duy nhất,
một mã số nhân viên xác định các thông tin như: Họ tên (HOTEN), ngày sinh
(NGAYSINH), phái (PHAI), địa chỉ (ĐIACHI). Mỗi nhân viên phải chịu sự quản lý
hành chính bởi một phòng ban. Tất nhiên một phòng ban quản lý hành chính nhiều
nhân viên. Công ty có nhiều phòng ban (Phòng kế toán, phòng kinh doanh, phòng kỹ
thuật, phòng tổ chức, phòng chuyên môn, Phòng phục vụ,…). Mỗi phòng ban có một
mã số phòng ban(MAPB) duy nhất, mã phòng ban xác định tên phòng ban (TENPB).
Công ty phân công các nhân viên tham gia vào các công trình, mỗi công trình
có thể được phân cho nhiều nhân viên và mỗi nhân viên cùng lúc cũng có thể tham
gia vào nhiều công trình. Với mỗi công trình một nhân viên có một số lượng ngày
công (SLNGAYCONG) đã tham gia vào công trình đó.
Bài 2: QUẢN LÝ THƯ VIỆN
Một thư viện tổ chức việc cho mượn sách như sau:
Mỗi quyển sách được đánh một mã sách (MASH) dùng để phân biệt với các
quyển sách khác (giả sử nếu một tác phẩm có nhiều bản giống nhau hoặc có nhiều tập
thì cũng xem là có mã sách khác nhau), mỗi mã sách xác định các thông tin khác như
: tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất bản (NHAXB), năm xuất
bản (NAMXB).
Mỗi đọc giả được thư viện cấp cho một thẻ thư viện, trong đó có ghi rõ mã độc
giả (MAĐG), cùng với các thông tin khác như : họ tên (HOTEN), ngày sinh
(NGAYSINH), địa chỉ (ĐIACHI), nghề nghiệp (NGHENGHIEP).
Cứ mỗi lượt mượn sách, độc giả phải ghi các quyển sách cần mượn vào một
phiếu mượn, mỗi phiếu mượn có một số phiếu mượn (SOPM) duy nhất, mỗi phiếu
mượn xác định các thông tin như: ngày mượn (NGAYMUON), độc giả mượn, các
quyển sách mượn và ngày trả (NGAYTRA). Các các quyển sách trong cùng một
phiếu mượn không nhất thiết phải trả trong trong cùng một ngày.
----oOo---19



Chương 3: MÔ HÌNH QUAN HỆ
Thời lượng: 03 tiết lý thuyết + 03 tiết bài tập
Kết thúc chương này, sinh viên có thể:
 Hiểu được khái niệm của mô hình quan hệ
 Hiểu được các ràng buộc quan hệ, lược đồ CSDL quan hệ
 Biết các phép toán của mô hình quan hệ
 Biết chuyển đổi mô hình thực thể-liên kết thành mô hình quan hệ
Mô hình quan hệ được Ted Codd đưa ra đầu tiên vào năm 1970 và gây được
chú ý ngay tức khắc vì tính đơn giản và các cơ sở toán học của nó. Mô hình quan hệ
sử dụng khái niệm quan hệ toán học như là khối xây dựng cơ sở và có cơ sở lý thuyết
của nó trong lý thuyết tập hợp và logic vị từ bậc nhất.
Trong chương này chúng ta sẽ nói về các đặc trưng cơ bản của mô hình, các
ràng buộc của chúng và tập hợp các phép toán của mô hình quan hệ.
3.1 CÁC KHÁI NIỆM CỦA MÔ HÌNH QUAN HỆ
Mô hình quan hệ biểu thị cơ sở dữ liệu như một tập các quan hệ. Mỗi quan hệ
có thể được biểu diễn như một bảng giá trị, mỗi một dòng trong bảng biểu thị một tập
hợp các giá trị dữ liệu liên quan với nhau.
Trong chương trước, chúng ta đã đưa ra các khái niệm về kiểu thực thể và kiểu
liên kết như là các khái niệm để mô hình hoá dữ liệu của thế giới thực.
Trong mô hình quan hệ, mỗi một dòng trong bảng biểu thị một sự kiện tương
ứng với một thực thể hoặc một liên kết của thế giới thực.
Tên bảng và tên các cột dùng để giải thích ý nghĩa của các giá trị trong mỗi
hàng. Mọi giá trị trong một cột đều cùng một kiểu dữ liệu
Theo thuật ngữ mô hình quan hệ hình thức, mỗi hàng được gọi là một bộ, mỗi
đầu cột được gọi là một thuộc tính, và bảng được gọi là một quan hệ.
3.1.1 Miền, thuộc tính, bộ và quan hệ
Một miền D là một tập hợp các giá trị nguyên tử, điều đó có nghĩa là mỗi giá
trị trong miền là không thể phân chia trong phạm vi mô hình quan hệ. Để đặc tả một
miền, người ta chỉ ra một tên miền, một kiểu dữ liệu và khuôn dạng dữ liệu. Một số

ví dụ về miền:
Họ tên: Là một tập hợp các dãy chữ cái có độ dài <= 30
Tuổi: Là một tập các số nguyên nằm trong khoảng từ 1 đến 120
Ngoài ra, trong cơ sở dữ liệu người ta còn chỉ ra các thông tin phụ để thể hiện
các giá trị của miền, chẳng hạn các đơn vị tính như tiền, trọng lượng, …
Một lược đồ quan hệ R, ký hiệu là R(A1, A2,…., An), được tạo nên từ một tên
quan hệ R một danh sách các thuộc tính A1, A2,…., An. Mỗi một thuộc tính Ai là tên
vai trò của một miền D nào đó trong lược đồ quan hệ R. D được gọi là miền giá trị
của Ai và được ký hiệu là Dom(Ai). Một lược đồ quan hệ được sử dụng để mô tả một
20


quan hệ, R được gọi là tên của quan hệ đó. Cấp của một quan hệ là số các thuộc tính
của lược đồ quan hệ của nó.
Ví dụ 1: ta có lược đồ cấp 5: Sinhviên(Mãsố, Họtên, Ngàysinh, Giớitính, Địachỉ).
Quan hệ tương ứng với nó là một bảng có tên là Sinhviên, có 5 cột có tên là
các thuộc tính, mỗi thuộc tính có một miền.
Một quan hệ hoặc trạng thái quan hệ r của lược đồ quan hệ R(A1,A2,…., An)
được ký hiệu là r(R), là tập hợp các n-bộ r = t1, t2, ….., tn . Mỗi n-bộ t là một danh
sách có thứ tự của n giá trị, t = < v1, v2, ……, vn >, trong đó mỗi vi, 1<= i <= n, là một
phần tử của Dom(Ai) hoặc là một giá trị không xác định (null value). Giá trị thứ i của
bộ t, tương ứng với thuộc tính Ai được tham chiếu đến như là t[Ai]. (Hình 3.1) chỉ ra
một ví dụ của quan hệ SINHVIEN tương ứng với sơ đồ quan hệ SINHVIEN ở trên.
Mỗi bộ trong quan hệ biểu diễn một sinh viên cụ thể. Quan hệ được biểu diễn
như một bảng, trong đó mỗi bộ được biểu diễn như một hàng và mỗi thuộc tính tương
ứng với mỗi đầu cột chỉ ra vai trò của các giá trị trong cột đó. Các giá trị không xác
định biểu thị các thuộc tính mà giá trị của nó không biết được hoặc không tồn tại đối
với từng bộ sinh viên cụ thể.

Hình 3.1 Quan hệ SINHVIEN

Định nghĩa quan hệ ở trên có thể phát biểu lại như sau : Một quan hệ r(R) là
một quan hệ toán học cấp n trên các miền giá trị dom(A1), dom(A2),.., dom(An). Đó
là tập con của tích Đề cac của các miền xác định R.
r(R)  (dom(A1) x dom(A2) x … x dom(An))
Tích Đề cac mọi tổ hợp có thể có của các giá trị từ các miền đã cho. Như vậy,
nếu ta ký hiệu lực lượng của một miền D là D và giả thiết rằng mọi miền đều hữu
hạn thì tổng số các bộ trong tích Đề cac là:
dom(A1)*dom(A2)* … *dom(An)
Ngoài tất cả các tổ hợp có thể có này, một trạng thái quan hệ ở một thời điểm
cho trước – gọi là trạng thái quan hệ hiện tại – chỉ phản ảnh các bộ giá trị biểu diễn
một trạng thái cụ thể của thế giới thực. Nói chung, do trạng thái của thế giới thực thay
đổi, quan hệ cũng bị thay đổi thành trạng thái quan hệ khác.
21


Lược đồ R là ổn định, không thay đổi, trừ phi phải thêm vào một số thuộc tính
để biểu diễn một thông tin mới chưa được lưu trữ trong quan hệ.
Có thể xảy ra trường hợp nhiều thuộc tính có cùng một miền giá trị. Các thuộc
tính chỉ ra các vai trò khác nhau đối với miền.
Ví dụ 2: hai thuộc tính ĐịachỉNV và ĐịachỉĐV có cùng miền giá trị nhưng thuộc tính
thứ nhất tham chiếu đến địa chỉ của nhân viên còn địa chỉ thứ hai tham chiếu đến địa
chỉ của đơn vị.
3.1.2 Các đặc trưng của các quan hệ
a) Thứ tự của các bộ trong một quan hệ: Một quan hệ được định nghĩa như
một tập hợp các bộ. Các phần tử trong một tập hợp không có thứ tự, vì vậy các bộ
trong một quan hệ không có một thứ tự cụ thể. Tuy nhiên, trong một tệp, các bản ghi
được lưu trữ một cách vật lý trên đĩa vì vậy luôn có một thứ tự giữa các bản ghi. Thứ
tự này chỉ rõ bản ghi thứ nhất, bản ghi thứ i, …, bản ghi thứ n. Một cách tương tự, khi
ta biểu diễn một quan hệ như là một bảng, các hàng được hiển thị theo một thứ tự
nhất định.

Thứ tự các bộ không phải là một phần của định nghĩa quan hệ bởi vì một quan
hệ cố gắng biểu diễn các sự vật ở mức trừu tượng hoặc logic. Có thể có nhiều thứ tự
logic trên một quan hệ.
Ví dụ 3: các bộ giá trị trong quan hệ SINHVIEN ở (Hình 3.1) có thể sắp xếp theo
nhiều cách khác nhau: theo thứ tự logic của Họtên, theo thứ tự logic của Mã số, ….
Định nghĩa quan hệ không chỉ ra thứ tự logic nào cả, vì vậy không có thứ tự logic nào
hơn thứ tự logic khác. Các quan hệ chứa cùng một số hàng như nhau nhưng các hàng
được sắp xếp khác nhau, được xem như đồng nhất với nhau. Khi một quan hệ được
cài đặt như một tệp, một thứ tự vật lý có thể được chỉ ra trên các bản ghi của tệp.
b) Thứ tự các giá trị bên trong một bộ: Theo định nghĩa quan hệ ở trên, một
n-bộ là một danh sách có thứ tự của n giá trị. Như vậy thứ tự của các giá trị trong một
bộ là quan trọng, từ đó suy ra thứ tự của các thuộc tính trong một lược đồ quan hệ
cũng quan trọng. Tuy nhiên, ở mức logic thứ tự của các thuộc tính và các giá trị của
nó không thực sự quan trọng khi giữ được sự tương ứng giữa các thuộc tính và các
giá trị.
Có thể đưa ra một định nghĩa khác về quan hệ, định nghĩa này sẽ làm cho thứ
tự của các giá trị trong một bộ là không cần thiết. Theo định nghĩa này, một lược đồ
quan hệ R = { A1, A2, ….An} là một tập hợp các thuộc tính và một quan hệ r = {t1, t2,
… tm} là một tập hợp hữu hạn các ánh xạ từ R vào D, trong đó D = dom(A1) 
dom(A2)  …  dom(An). Trong định nghĩa này, với mỗi ánh xạ t trong r, t[Ai] phải
ở trong dom(Ai) với 1<= i <= n. Mỗi ánh xạ ti được gọi là một bộ.
Theo định nghĩ này, một bộ có thể xem như một tập hợp các cặp (tính>, <giá trị>), trong đó mỗi cặp cho một giá trị của ánh xạ từ một thuộc tính Ai đến
một giá trị vi của dom(Ai). Vì tên thuộc tính xuất hiện cùng với giá trị của nó nên thứ
22


tự của các thuộc tính là không quan trọng. Điều này làm nên ý nghĩa ở mức trừu
tượng hoặc logic vì chẳng có lý do gì để thích có một giá trị thuộc tính xuất hiện
trước một giá trị thuộc tính khác trong một bộ.

Khi một quan hệ được cài đặt như một tệp, các thuộc tính được sắp xếp một
cách vật lý như là các trường trong một bản ghi. Trong trường hợp đó chúng ta sẽ sử
dụng định nghĩa thứ nhất của quan hệ, trong đó các giá trị của các thuộc tính trong
một bộ là có thứ tự vì nó làm đơn giản rất nhiều khái niệm. Tuy nhiên, định nghĩa thứ
hai tổng quát hơn.
c) Các giá trị trong một bộ: Mỗi giá trị trong một bộ là một giá trị nguyên tử,
điều đó có nghĩa là nó không phân chia được thành các thành phần trong phạm vi của
mô hình quan hệ. Như vậy, trong mô hình quan hệ không cho phép có các thuộc tính
phức hợp và các thuộc tính đa trị. Các thuộc tính đa trị phải được biểu diễn bằng các
quan hệ còn các thuộc tính phức hợp chỉ được biểu diễn bằng các thuộc tính thành
phần đơn của nó.
Các giá trị của một vài thuộc tính trong một bộ cụ thể có thể không biết được
hoặc không thích ứng cho nó. Trường hợp đó, người ta sử dụng một giá trị đặc biệt
gọi là giá trị null.
Ví dụ 4: Giả sử quan hệ SINHVIEN có thuộc tính Sốđiệnthoạiởnhà. Trong một tập
thể sinh viên, có người có điện thoại ở nhà, có người không có và cũng có người có
nhưng không biết chắc.... Với những trường hợp không có hoặc không biết chắc,
thuộc tính Sốđiệnthoạiởnhà có giá trị null.
d) Thể hiện của một quan hệ: Một lược đồ quan hệ có thể được thể hiện như
là một tuyên bố hoặc một khẳng định.
Ví dụ 5: Lược đồ quan hệ SINHVIEN ở trên khẳng định rằng, một thực thể sinh viên
có một mã số, họ tên, ngày sinh, giới tính, địa chỉ. Mỗi bộ trong quan hệ được thể
hiện như là một sự kiện hoặc như một thể hiện cụ thể của một khẳng định.
Ngoài các quan hệ biểu diễn các sự kiện về các thực thể, một số quan hệ có thể
biểu diễn các sự kiện về mối liên kết.
Ví dụ 6: Lược đồ quan hệ NHANVIEN_DUAN(MãsốNV, MãsốDA, Sốgiờ) khẳng
định các nhân viên làm việc với các dự án. Mỗi bộ trong quan hệ này liên kết một
nhân viên với một dự án mà anh ta làm việc cho nó.
Như vậy, mô hình quan hệ biểu diễn các sự kiện về thực thể và các sự kiện về
liên kết dưới dạng duy nhất là các quan hệ.

3.2 CÁC RÀNG BUỘC QUAN HỆ, LƯỢC ĐỒ CSDL QUAN HỆ
Trong phần này chúng ta thảo luận về các hạn chế trên các dữ liệu trong một
lược đồ cơ sở dữ liệu quan hệ. Các hạn chế đó được gọi là các ràng buộc. Có các loại
ràng buộc: ràng buộc miền, ràng buộc khoá, ràng buộc toàn vẹn thực thể và ràng
buộc toàn vẹn tham chiếu.

23


×