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

Tìm hiểu các phụ thuộc bao hàm trong mô hình quan hệ và ứng dụng vào việc chuyển đổi sang mô hình EER

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.27 MB, 79 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC

NGUYỄN THẾ ANH

T×m hiÓu c¸c phô thuéc bao hµm
trong m« h×nh quan hÖ vµ øng dông
vµo viÖc chuyÓn ®æi sang m« h×nh EER
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Huế, 2015


MỤC LỤC
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các thuật ngữ
Danh mục các chữ viết tắt
Danh mục các bảng
Danh mục các hình vẽ, đồ thị
MỞ ĐẦU .......................................................................................................... 1
Chương 1. CÁC RÀNG BUỘC DỮ LIỆU TRONG MÔ HÌNH
QUAN HỆ ................................................................................................ 3
1.1. Giới thiệu chung về vấn đề toàn vẹn ngữ nghĩa......................................... 3
1.2. Khái niệm ràng buộc toàn vẹn ................................................................... 3
1.2.1. Các yếu tố của ràng buộc toàn vẹn ......................................................... 4


1.2.2. Phân loại ràng buộc toàn vẹn .................................................................. 7
1.3. Các ràng buộc cấu trúc ............................................................................. 10
1.4. Các ràng buộc phụ thuộc .......................................................................... 10
1.4.1. Phụ thuộc hàm ....................................................................................... 11
1.4.2. Phụ thuộc bao hàm ................................................................................ 11
1.4.3. Phụ thuộc đa trị ..................................................................................... 12
1.5. Kết luận .................................................................................................... 13
Chương 2. GIỚI THIỆU MÔ HÌNH THỰC THỂ - MỐI QUAN HỆ
MỞ RỘNG ............................................................................................. 15
2.1. Giới thiệu .................................................................................................. 15
2.2. Mô hình thực thể - mối quan hệ (ER) ...................................................... 15
2.2.1. Thực thể ................................................................................................. 15
2.2.2. Thuộc tính ............................................................................................. 16


2.2.3. Mối quan hệ ........................................................................................... 17
2.3. Mô hình thực thể - mối quan hệ mở rộng (EER) ..................................... 18
2.3.1. Lớp cha, lớp con và sự kế thừa ............................................................. 18
2.3.2. Chuyên biệt hóa và tổng quát hóa ......................................................... 19
2.3.3. Mô hình kiểu Union và kiểu Category .................................................. 25
2.4. Chuyển đổi mô hình EER sang mô hình quan hệ .................................... 27
2.5. Kết luận .................................................................................................... 37
Chương 3. TRÍCH XUẤT MÔ HÌNH EER TỪ MÔ HÌNH QUAN HỆ
CÓ SỬ DỤNG CÁC RÀNG BUỘC PHỤ THUỘC BAO HÀM....... 38
3.1. Giới thiệu .................................................................................................. 38
3.2. Các giả thuyết ........................................................................................... 39
3.3. Tiến trình trích xuất .................................................................................. 45
3.3.1. Phân loại các quan hệ và các thuộc tính................................................ 46
3.3.2. Phát hiện các phụ thuộc bao hàm .......................................................... 47
3.3.3. Xác định tập thực thể ............................................................................ 51

3.3.4. Xác định mối quan hệ ........................................................................... 53
3.3.5. Các mối quan hệ được xác định bởi các quan hệ biểu diễn mối quan hệ59
3.3.6. Các mối quan hệ kết tập ........................................................................ 62
3.4. Gán các thuộc tính .................................................................................... 64
3.5. Ví dụ minh họa tiến trình trích xuất từ mô hình quan hệ
sang mô hình EER ................................................................................... 66
3.6. Kết luận .................................................................................................... 67
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 69
TÀI LIỆU THAM KHẢO ............................................................................... 70


DANH MỤC CÁC THUẬT NGỮ
Attribute

Thuộc tính

Composite Attribute

Thuộc tính phức hợp

Dangling Key Attribute

Thuộc tính khóa bộ phận

Derived Attribute

Thuộc tính dẫn xuất

Domain


Miền trị

Entity

Thực thể

Entity Type

Kiểu thực thể

Entity-Relationship Model

Mô hình thực thể - mối quan hệ

Extended Entity-Relationship Model

Mô hình thực thể - mối quan hệ mở rộng

Foreign Key Attribute

Thuộc tính khóa ngoài

Functional Dependencies

Phụ thuộc hàm

General Key Attribute

Thuộc tính khóa tổng quát


Inclusion Dependencies

Phụ thuộc bao hàm

Multivalued Attribute

Thuộc tính đa trị

MultiValued Dependencies

Phụ thuộc đa trị

N-ary Relationship

Mối quan hệ đa nguyên bậc n

Non Key Attribute

Thuộc tính không khóa

Partial Key

Khoá bộ phận

Primary Key

Khoá chính

Primary Key Attribute


Thuộc tính khóa chính

Regular Relationship Relation

Quan hệ mối quan hệ thông thường

Relationship

Mối quan hệ

Relational Model

Mô hình quan hệ


Simple Attribute

Thuộc tính đơn

Single-valued Attribute

Thuộc tính đơn trị

Strong Entity Relation

Quan hệ tập thực thể mạnh

Specific Relationship Relation

Quan hệ mối quan hệ chuyên biệt


Strong Entity Type

Kiểu thực thể mạnh

Subclass

Lớp con

Superclass

Lớp cha

Weak Entity Relation

Quan hệ tập thực thể yếu

Weak Entity Type

Kiểu thực thể yếu


DANH MỤC CÁC CHỮ VIẾT TẮT
CSDL

Cơ sở dữ liệu

DBMS

Hệ quản trị cơ sở dữ liệu


DKA

Thuộc tính khóa bộ phận

ER

Entity Relationship

EER

Extended – Entity Relationship

FD

Phụ thuộc hàm

FKA

Thuộc tính khóa ngoài

GKA

Thuộc tính khóa tổng quát

INDs

Phụ thuộc bao hàm

MVDs


Phụ thuộc đa trị

NKA

Thuộc tính không khóa

PKA

Thuộc tính khóa chính

RBTV

Ràng buộc toàn vẹn


DANH MỤC CÁC BẢNG

Số hiệu
bảng

Tên bảng

Trang

3.1

Biểu diễn quan hệ cấu trúc EER

39


3.2

Phân loại các thuộc tính quan hệ

43

3.3

Xác định EER được cấu trúc bởi các mối quan hệ và các
thuộc tính

44

3.4

Phân loại các quan hệ và thuộc tính

47


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Số hiệu
hình vẽ

Tên hình vẽ

Trang


2.1

Mối quan hệ nhị nguyên

17

2.2

Biểu diễn lớp cha và lớp con trong mô hình EER

19

2.3

Ký hiệu chuyên biệt hóa và các lớp con trong mô hình EER

20

2.4

Tổng quát hoá CAR, TRUCK và MOTOCYCLE thành
VEHICLE

21

2.5

Chuyên biệt hóa toàn phần

21


2.6

Chuyên biệt hóa riêng phần

22

2.7

Chuyên biệt hóa toàn phần và trùng lặp (sử dụng chữ o)

22

2.8

Đưa thuộc tính phân biệt lớp con với trường hợp lớp con phân
ly

23

2.9

Đưa thuộc tính phân biệt lớp con với trường hợp lớp con
trùng lặp

24

2.10

Sơ đồ lưới với lớp con chia sẻ ENGINEERING_MANAGER


24

2.11

Sơ đồ lưới với sự đa kế thừa của CSDL trường đại học

25

2.12

Sự hợp nhất của hai hay nhiều lớp sử dụng ký hiệu category

26

2.13

Mô hình EER và CSDL của một trường đại học

27

3.1

Ví dụ mẫu mô hình quan hệ

41

3.2

Các bước trong kỹ thuật đảo ngược của cơ sở dữ liệu quan hệ


45

3.3

Xác định một tập thực thể mạnh

52

3.4

Xác định một tập thực thể yếu

53


3.5

Xác định mối quan hệ is-a

54

3.6

Xác định một quan hệ bao hàm

56

3.7


Một khóa ngoài xác định một quan hệ nhị nguyên

58

3.8

Một khóa ngoài xác định một quan hệ is-a

59

3.9

Một quan hệ biểu diễn mối quan hệ thông thường xác định
một quan hệ n-ary

61

3.10

Một quan hệ biểu diễn mối quan hệ chuyên biệt xác định một
quan hệ n-ary

62

3.11

Xác định một mối quan hệ tổng thể

64


3.12

Mô hình EER thu được từ tiến trình trích xuất

67


1

MỞ ĐẦU
Chúng ta đang sống và làm việc trong thời đại phát triển công nghệ thông tin,
nhu cầu sử dụng thông tin ngày càng nhiều. Yêu cầu của việc truy cập thông tin không
những phải nhanh mà còn cần chính xác và đầy đủ. Với một lượng lớn dữ liệu từ các
lĩnh vực khác nhau đang ngày càng tăng nhanh. Do đó, để sử dụng và khai thác dữ liệu
một cách hiệu quả thì việc thiết kế cơ sở dữ liệu (CSDL) trở thành một vấn đề đã và
đang được quan tâm đối với nhiều nhà làm tin học.
Tuy nhiên, trong nhiều tổ chức, một số lượng lớn các CSDL đã được phát triển
trong nhiều năm qua. Khó khăn chính đối với các CSDL này là ý nghĩa của dữ liệu
thường bị mất, do đó không ai biết được chính xác dữ liệu và mối quan hệ giữa các dữ
liệu là gì. Điều này gây cản trở việc sử dụng dữ liệu một cách hiệu quả và làm giảm đi
tính chính xác của các hoạt động bảo trì. Việc hiểu biết này chỉ có thể đạt được bằng
cách tăng mức độ trừu tượng của chính CSDL và thể hiện nó như là một mô hình mức
khái niệm. Vì mô hình ER là mô hình mức khái niệm được sử dụng rộng rãi nên luận
văn sẽ tìm hiểu một phương pháp trích xuất một mô hình ER mở rộng (EER) từ một
CSDL đang tồn tại. Phương pháp này phân tích lược đồ dữ liệu và các thể hiện dữ liệu
mà bao gồm thông tin chi tiết về miền ứng dụng.
Cách tiếp cận của phương pháp trích xuất được bàn đến trong luận văn này là
dựa vào các ràng buộc phụ thuộc bao hàm (Inclusion Dependencies) trên mô hình
quan hệ. Phụ thuộc bao hàm hình thức hóa các ràng buộc liên quan hệ giữa các thuộc
tính. Đây là một loại ràng buộc phụ thuộc dữ liệu nhằm đặc tả những giá trị của một

thuộc tính được bao hàm trong tập hợp giá trị của thuộc tính khác.
Theo đó, luận văn gồm các phần như sau: phần mở đầu, ba chương nội dung,
phần kết luận và tài liệu tham khảo.
Nội dung Chương 1 là nhằm giới thiệu khái quát các ràng buộc dữ liệu trong mô
hình quan hệ.
Nội dung Chương 2 là nhằm giới thiệu khái quát mô hình ER và một mô hình
mở rộng của mô hình ER, đó là mô hình EER.


2

Dựa vào các nội dung trình bày trong Chương 1 và Chương 2, Chương 3 tập
trung trình bày phương pháp trích xuất một mô hình EER từ mô hình quan hệ có sử
dụng các ràng buộc phụ thuộc bao hàm.
Do thời gian còn hạn chế nên Luận văn không thể tránh khỏi những nhầm lẫn và
thiếu sót. Chúng tôi mong nhận được những ý kiến đóng góp của quý thầy cô, bạn bè và
những người quan tâm đến Luận văn này.


3

Chương 1
CÁC RÀNG BUỘC DỮ LIỆU TRONG MÔ HÌNH QUAN HỆ
1.1. Giới thiệu chung về vấn đề toàn vẹn ngữ nghĩa
Một số vấn đề khó khăn cho một hệ cơ sở dữ liệu là bảo đảm tính nhất quán
CSDL. Một trạng thái CSDL được gọi là nhất quán nếu CSDL thỏa một tập các ràng
buộc, được gọi là ràng buộc toàn vẹn ngữ nghĩa [3]. Duy trì CSDL nhất quán đòi hỏi
phải sử dụng đến nhiều cơ chế khác nhau như điều khiển hoạt động đồng thời, độ tin
cậy, bảo vệ và kiểm soát tính toàn vẹn ngữ nghĩa. Kiểm soát toàn vẹn ngữ nghĩa bảo
đảm được tính nhất quán của CSDL bằng cách phế bỏ các chương trình cập nhật dẫn

đến các tình trạng CSDL không nhất quán hoặc bằng cách kích hoạt các hành động đặc
biệt trên CSDL nhằm hóa giải tác dụng của các chương trình cập nhật. Chú ý rằng
CSDL đã cập nhật phải thỏa tập các ràng buộc toàn vẹn.
Nói chung, các ràng buộc toàn vẹn ngữ nghĩa là những qui tắc biểu thị những
hiểu biết (tri thức) về các tính chất của một ứng dụng. Chúng định nghĩa các tính chất
tĩnh hoặc động của các ứng dụng mà chúng ta không thể nắm bắt trực tiếp bằng các
khái niệm đối tượng và hoạt động vào trong một mô hình dữ liệu. Vì vậy khái niệm về
một qui tắc toàn vẹn có liên quan mật thiết với mô hình dữ liệu theo nghĩa là những
thông tin có ý nghĩa hơn về ứng dụng có thể nắm bắt được nhờ các qui tắc này. Vì vậy
chúng có vai trò rất quan trọng trong quá trình thiết kế CSDL. Chúng ta có thể diễn tả
mối liên kết giữa các đối tượng, chẳng hạn như các phụ thuộc bao hàm trong mô hình
quan hệ hoặc mô tả các đặc tính và cấu trúc của đối tượng. Sự đa dạng của ứng dụng
CSDL đòi hỏi phải có các ràng buộc toàn vẹn mạnh mẽ để làm phong phú thêm cho
mô hình dữ liệu.
1.2. Khái niệm ràng buộc toàn vẹn
Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các
bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các quan hệ của
một lược đồ CSDL. Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ
của những quan hệ có liên quan trong CSDL đều phải thoả mãn ở mọi thời điểm.
Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn ... Trong thực tế ràng
buộc toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực.


4

Chẳng hạn mỗi sinh viên phải có một mã sinh viên duy nhất, hai thí sinh dự thi vào
một trường phải có số báo danh khác nhau, một sinh viên dự thi một môn học không
quá 3 lần,…
Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các ràng
buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ phân tích thiết

kế - đó là một việc làm rất quan trọng. Ràng buộc toàn vẹn được xem như là một
công cụ để diễn đạt ngữ nghĩa của CSDL. Một CSDL được thiết kế cồng kềnh nhưng
nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn có giá trị cao hơn rất nhiều so
với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các ràng buộc
toàn vẹn của CSDL.
Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời điểm
cập nhật dữ liệu (thêm, sửa, xoá). Những ràng buộc toàn vẹn phát sinh phải cần được
ghi nhận và xử lý một cách tường minh (thường là bởi một hàm chuẩn hoặc một
đoạn chương trình).
Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai trong
số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ liệu, nếu
không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến những hậu quả
nghiêm trọng về tính an toàn và toàn vẹn dữ liệu, đặc biệt là đối với những cơ sở dữ
liệu lớn.
1.2.1. Các yếu tố của ràng buộc toàn vẹn
Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng
và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị vi phạm:
- Điều kiện:
Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội
dung của nó. Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng
ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn
SQL,… ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu diễn bằng
phụ thuộc hàm.
Ví dụ 1.1. Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý
sinh viên.
Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học khác
trong trường.


5


Mỗi lớp học phải thuộc về một khoa của trường.
Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ sinh
viên nào trong trường.
Mỗi học viên phải đăng ký vào một lớp học trong trường. Mỗi học viên chỉ
được thi tối đa 3 lần cho mỗi môn học.
Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm được
của một lớp tại một thời điểm nào đó.
- Bối cảnh:
Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có hiệu
lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra khi tiến hành
cập nhật dữ liệu. Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan
hệ.
Chẳng hạn với ràng buộc toàn vẹn R trên thì bối cảnh của nó là quan
hệ Sinhvien.
- Bảng tầm ảnh hưởng:
Trong quá trình phân tích thiết kế một CSDL, người phân tích cần lập bảng
tầm ảnh hưởng cho một ràng buộc toàn vẹn nhằm xác định thời điểm cần phải tiến
hành kiểm tra khi tiến hành cập nhật dữ liệu.
Thời điểm cần phải kiểm tra ràng buộc toàn vẹn chính là thời điểm cập nhật
dữ liệu.
Một bảng tầm ảnh hưởng của một ràng buộc toàn vẹn có dạng sau:
Tên quan hệ

Thêm (T)

r1

Sửa (S)


Xoá (X)

+

r2
r3

-(*)


rn
Bảng này chứa toàn các ký hiệu +, – hoặc -(*).
Chẳng hạn + tại (dòng r1, cột thêm) thì có nghĩa là khi thêm một bộ vào quan hệ
r1 thì ràng buộc toàn vẹn bị vi phạm.


6

Dấu - Tại ô (dòng r2, cột sửa) thì có nghĩa là khi sửa một bộ trên quan hệ r2
thì ràng buộc toàn vẹn không bị vi phạm.
Quy ước:
- Không được sửa thuộc tính khoá.
- Nếu không bị vi phạm do không được phép sửa đổi thì ký hiệu là - (*).
- Hành động cần phải có khi phát hiện có ràng buộc toàn vẹn bị vi phạm:
Khi một ràng buộc toàn vẹn bị vi phạm, cần có những hành động thích hợp.
Thông thường có 2 giải pháp:
Thứ nhất: Đưa ra thông báo và yêu cầu sửa chữa dữ liệu của các thuộc tính
cho phù hợp với quy tắc đảm bảo tính nhất quán dữ liệu. Thông báo phải đầy đủ và
phải thân thiện với người sử dụng. Giải pháp này là phù hợp cho việc xử lý thời gian
thực.

Thứ hai: Từ chối thao tác cập nhật. Giải pháp này là phù hợp đối với việc xử lý
theo lô. Việc từ chối cũng phải được lưu lại bằng những thông báo đầy đủ, rõ ràng vì
sao thao tác bị từ chối và cần phải sữa lại những dữ liệu nào?
Khóa nội, khoá ngoại, giá trị NOT NULL là những ràng buộc toàn vẹn miền

giá trị của các thuộc tính. Những ràng buộc toàn vẹn này là những ràng buộc toàn
vẹn đơn giản trong CSDL.
Các hệ quản trị cơ sở dữ liệu thường có các cơ chế tự động kiểm tra các
ràng buộc toàn vẹn về miền giá trị của khóa nội, khoá ngoại, giá trị NOT NULL.
Việc kiểm tra ràng buộc toàn vẹn có thể tiến hành vào những thời điểm sau đây.
Thứ nhất: Kiểm tra ngay sau khi thực hiện một thao tác cập nhật CSDL.
Thao tác cập nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất cứ một ràng
buộc toàn vẹn nào, nghĩa là nó không làm mất tính toàn vẹn của CSDL. Nếu vi phạm
ràng buộc toàn vẹn, thao tác cập nhật bị coi là không hợp lệ và sẽ bị hệ thống hủy bỏ
(hoặc có một xử lý thích hợp nào đó).
Thứ hai: Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra ràng buộc
toàn vẹn được tiến hành độc lập với thao tác cập nhật dữ liệu. Đối với những
trường hợp vi phạm ràng buộc toàn vẹn, hệ thống có những xử lý ngầm định hoặc
yêu cầu người sử dụng xử lý những sai sót một cách tường minh.


7

1.2.2. Phân loại ràng buộc toàn vẹn
Trong quá trình phân tích thiết kế CSDL, người phân tích phải phát hiện tất
cả các ràng buộc toàn vẹn tiềm ẩn trong CSDL đó. Việc phân loại các ràng buộc toàn
vẹn là rất có ích, nó nhằm giúp cho người phân tích có được một định hướng để
phát hiện các ràng buộc toàn vẹn, tránh bỏ sót. Các ràng buộc toàn vẹn có thể được
chia làm hai loại chính như sau:
Thứ nhất: Ràng buộc toàn vẹn có phạm vi là một quan hệ bao gồm: ràng

buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính, ràng buộc toàn vẹn
liên bộ.
Thứ hai: Ràng buộc toàn vẹn có phạm vi là nhiều quan hệ bao gồm: ràng buộc
toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ - liên quan hệ, ràng buộc toàn
vẹn liên thuộc tính - liên quan hệ.
Để minh hoạ, chúng ta xét ví dụ sau đây:
Ví dụ 1.2. Cho một CSDL C dùng để quản lý việc đặt hàng và giao hàng của
một công ty. Lược đồ CSDL C gồm các lược đồ quan hệ sau:
Q1: Khach (MAKH, TENKH, DIACHIKH, DIENTHOAI)
Mô tả:
Mỗi khách hàng có một mã khách hàng (MAKH) duy nhất, mỗi MAKH
xác định tên khách hàng (TENKH), địa chỉ (DIACHIKH), số điện thoại
(DIENTHOAI).
Q2: Hang (MAHANG, TENHANG, QUYCACH, DVTINH)
Mô tả:
Mỗi mặt hàng có một mã hàng (MAHANG) duy nhất, mỗi MAHANG xác
định tên hàng (TENHANG), quy cách hàng (QUYCACH), đơn vị tính (DVTINH).
Q3: Dathang (SODH, MAHANG, SLDAT, NGAYDH, MAKH)
Mô tả:
Mỗi mã số đặt hàng (SODH) xác định một ngày đặt hàng (NGAYDH) và mã
khách hàng tương ứng (MAKH). Biết mã số đặt hàng và mã mặt hàng thì biết được
số lượng đặt hàng (SLDAT). Mỗi khách hàng trong một ngày có thể có nhiều lần đặt
hàng.
Q4: Hoadon (SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT)
Mô tả:
Mỗi hoá đơn tổng hợp có một mã số duy nhất là SOHD, mỗi hoá đơn bán hàng


8


có thể gồm nhiều mặt hàng. Mỗi hoá đơn xác định ngày lập hoá đơn (NGAYLAP),
ứng với số đặt hàng nào (SODH). Giả sử rằng hoá đơn bán hàng theo yêu cầu của chỉ
một đơn đặt hàng có mã số là SODH và ngược lại, mỗi đơn đặt hàng chỉ được giải
quyết chỉ trong một hoá đơn. Do điều kiện khách quan có thể công ty không giao đầy
đủ các mặt hàng cũng như số lượng từng mặt hàng yêu cầu trong đơn đặt hàng nhưng
không bao giờ giao vượt ngoài yêu cầu. Mỗi hoá đơn xác định một trị giá của những
mặt hàng trong hoá đơn (TRIGIAHD) và một ngày xuất kho giao hàng cho khách
(NGAYXUAT).
Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)
Mô tả:
Mỗi SOHD, MAHANG xác định giá bán (GIABAN) và số lượng bán
(SLBAN) của một mặt hàng trong một hoá đơn.
Q6: Phieuthu (SOPT, NGAYTHU, MAKH, SOTIEN)
Mô tả:
Mỗi phiếu thu có một số phiếu thu (SOPT) duy nhất, mỗi SOPT xác định một
ngày thu (NGAYTHU) của một khách hàng có mã khách hàng là MAKH và số tiền
thu là SOTIEN. Mỗi khách hàng trong một ngày có thể có nhiều số phiếu thu.
1.2.2.1. Ràng buộc toàn vẹn có bối cảnh gồm một quan hệ
a. Ràng buộc toàn vẹn liên bộ
+ Ràng buộc toàn vẹn về khoá chính
Đây là một trường hợp đặc biệt của ràng buộc toàn vẹn liên bộ, ràng buộc toàn
vẹn này rất phổ biến và thường được các hệ quản trị CSDL tự động kiểm tra.
Ví dụ 1.3. Với r là một quan hệ trên lược đồ quan hệ Khach ta có ràng buộc
toàn vẹn sau:
R1:  t1, t2  r
t1.MAKH ≠ t2.MAKH

R1

Thêm


Sửa

Xóa

Khach

+

-

-

+ Ràng buộc toàn vẹn về tính duy nhất
Ví dụ 1.4. Mỗi phòng ban phải có một tên gọi duy nhất
Ngoài ra nhiều khi ta còn gặp những ràng buộc toàn vẹn khác chẳng hạn như
ràng buộc toàn vẹn sau trong quan hệ sau đây:


9

KETQUA(MASV, MAMH, LANTHI, DIEM)
Mỗi sinh viên chỉ được đăng thi mỗi môn thi tối đa là 3 lần
b. Ràng buộc toàn vẹn về miền giá trị
Ràng buộc toàn vẹn có liên quan đến miền giá trị của các thuộc tính trong một
quan hệ. Ràng buộc này thường gặp. Thông thường các hệ quản trị CSDL đã tự động
kiểm tra (một số) ràng buộc loại này.
Ví dụ 1.5. Với r là một quan hệ của Hoadon ta có ràng buộc toàn vẹn sau:
R 3:  t  r
t.TRIGIAHD > 0


R3

Thêm

Sửa

Xóa

Hoadon

+

+

-

c. Ràng buộc toàn vẹn liên thuộc tính
Ràng buộc toàn vẹn liên thuộc tính (một quan hệ) là mối liên hệ giữa các
thuộc tính trong một lược đồ quan hệ.
Ví dụ 1.6. Với r là quan hệ của Hoadon ta có ràng buộc toàn vẹn sau:
R4 :  t  r
t.NGAYLAP <= t.NGAYXUAT

R4

Thêm

Sửa


Xóa

Hoadon

+

+

-

1.2.2.2. Ràng buộc toàn vẹn có bối cảnh gồm nhiều quan hệ
a. Ràng buộc toàn vẹn về khoá ngoài
Ràng buộc toàn vẹn về khoá ngoài là một trường hợp đặc biệt của ràng buộc
bao hàm. Cũng giống như ràng buộc toàn vẹn về khoá nội, loại ràng buộc toàn vẹn
này rất phổ biến trong các CSDL.
Ví dụ 1.7.
R2.dathang[MAKH]  khach[MAKH]

R2

Thêm

Sửa

Xóa

Dathang

+


+

-

Khach

-

-

+

b. Ràng buộc toàn vẹn liên thuộc tính liên quan hệ
Ràng buộc loại này là mối liên hệ giữa các thuộc tính trong nhiều lược đồ
quan hệ.
Ví dụ 1.8. Với r, s lần lượt là quan hệ của Dathang và Hoadon. Ta có ràng
buộc toàn vẹn R5 như sau:
R5 :  t1  r,  t2  s


10

Nếu t1.SODH=t2.SODH thì t1.NGAYDH <= t2.NGAYXUAT
R5

Thêm

Sửa

Xoá


Dathang

+

-

-

Hoadon

+

+

-

c. Ràng buộc toàn vẹn liên bộ liên quan hệ
Ràng buộc loại này là mối liên hệ giữa các bộ trong một lược đồ cơ sở dữ
liệu. Chẳng hạn như tổng số tiền phải trả trong mỗi hoá đơn (chitiethd) phải bằng
TRỊ GIÁ HOÁ ĐƠN của hoá đơn đó trong quan hệ Hoadon. Hoặc số lượng học
viên trong một lớp phải bằng SOHOCVIEN của lớp đó.
Ngoài ra còn có một số loại RBTV khác như: ràng buộc toàn vẹn về thuộc
tính tổng hợp, ràng buộc toàn vẹn do tồn tại chu trình, ràng buộc toàn vẹn về giá trị
thuộc tính theo thời gian.
1.3. Các ràng buộc cấu trúc
Các ràng buộc cấu trúc diễn tả những đặc tính ngữ nghĩa cơ bản vốn có trong
mô hình. Thí dụ về những ràng buộc như thế nào là ràng buộc khóa duy nhất trong mô
hình quan hệ. Vì vậy chúng có vai trò rất quan trọng trong quá trình thiết kế CSDL.
Chúng tôi có thể diễn tả mối liên kết giữa các đối tượng, chẳng hạn như các phụ thuộc

bao hàm trong mô hình quan hệ, hoặc mô tả các đặc tính và cấu trúc của đối tượng.
1.4. Các ràng buộc phụ thuộc
Trong vòng hai thập kỷ qua, một số phụ thuộc dữ liệu đã được giới thiệu để tạo
thuận lợi cho việc thiết kế "tốt" lược đồ quan hệ. Những chuẩn đã được nghiên cứu
rộng rãi bao gồm phụ thuộc hàm (FD), phụ thuộc đa trị (MVDs). Những phụ thuộc dữ
liệu truyền thống đã dẫn đến các định nghĩa của một số dạng chuẩn. Một lược đồ quan
hệ được cho là "tốt" nếu nó là ở dạng chuẩn Q, trong đó Q còn có thể gọi "thứ ba",
"Boyce-Codd", "thứ tư" hay "thứ năm". Bằng việc thiết kế các lược đồ quan hệ trong
dạng chuẩn tốt, chúng loại bỏ dư thừa mà có thể có mặt trong một mối quan hệ và phá
vỡ các vấn đề của việc cập nhật bất thường. Các dạng chuẩn truyền thống thất bại
trong việc xác định dư thừa có thể tồn tại trên một quy mô tổng thể. Để giải quyết vấn
đề này, một dạng chuẩn thứ ba cải tiến (3NF) được giới thiệu. Nó đã được chứng minh
rằng nếu một lược đồ cơ sở dữ liệu D là cải thiện 3NF, khi đó mỗi lược đồ quan hệ


11

trong D cũng là trong Codd 3NF [3]. Hơn nữa, các lược đồ cơ sở dữ liệu tổng thể là
không có dư thừa (đối với tập hợp các FD còn giữ trong cơ sở dữ liệu).
Nó đã được gợi ý rằng tất cả các phụ thuộc dữ liệu đã được đề xuất, FD và phụ
thuộc bao hàm (INDs) có lẽ là hai loại phổ biến nhất của những ràng buộc trong một
cơ sở dữ liệu quan hệ [7].
1.4.1. Phụ thuộc hàm
Khái niệm về phụ thuộc hàm trong một quan hệ (Functional dependencies) là
một khái niệm có tầm quan trọng hết sức lớn đối với việc thiết kế cơ sở dữ liệu quan
hệ.
Định nghĩa 1.1. Cho R(U) là một sơ đồ quan hệ với U = {A 1 ,A 2 ,…,A n } là tập
các thuộc tính. X và Y là tập con của U. Chúng ta nói rằng X xác định Y hay Y phụ
thuộc hàm vào X và kí hiệu X  Y nếu với mọi quan hệ r xác định trên R(U) và với
hai bộ t 1 và t 2 bất kì mà t 1 [X] = t 2 [X] thì t 1 [Y] = t 2 [Y].

Tập tất cả các phụ thuộc hàm trên một sơ đồ quan hệ kí hiệu là FD (Functional
Dependencies) [1]. Cần chú ý rằng, chúng ta chỉ xét các phụ thuộc hàm thỏa mãn cho
mọi quan hệ trên sơ đồ tương ứng của nó. Chúng ta không thể xem xét một phụ thuộc
hàm thỏa một quan hệ r đặc biệt (ví dụ quan hệ rỗng) của sơ đồ R rồi sau đó qui nạp
rằng phụ thuộc đó thỏa trên R.
1.4.2. Phụ thuộc bao hàm
Một lược đồ quan hệ là một đối tượng R(U), trong đó R là tên của lược đồ quan
hệ và U là một dãy hữu hạn <A1, ....., Am> của thuộc tính. Để đơn giản, chúng ta đôi
khi viết A1, ....., Am cho <A1, ....., Am>. Để tránh các tham chiếu không rõ ràng, chúng
tôi cũng viết R. A để chỉ một thuộc tính A trong một lược đồ quan hệ R. A bộ t trên U
= <A1, ....., Am> là một chuỗi <a1, ....., am> đó, ai là một yếu tố từ các miền của Ai. Một
mối quan hệ (trên R(U), hoặc đơn giản hơn R) là một bộ dữ liệu trên U. Nếu t = ....., am> là một bộ qua U = <A1, ....., Am>, và X = <Ai1, ....., Aik> trong đó i1, ....., ik là
các thành viên riêng biệt của {1, ....., m}, khi đó t[X] là <Ai1, ....., Aik>. Nếu r là một
quan hệ trên R, khi đó r[X] = {t[X]|  r}. Một lược đồ cơ sở dữ liệu D = {R1(U1), .....,
Rn(Un)} (hoặc đơn giản là {R1, ....., Rn}) là một tập hợp các lược đồ quan hệ [3]. Một
cơ sở dữ liệu trên D là một ánh xạ liên kết mà mỗi lược đồ quan hệ Ri(Ui) với một mối
quan hệ ri trên Ri. Trong phần còn lại của bài viết này, chúng tôi sẽ áp dụng các ký
hiệu sau đây: nếu R là một lược đồ quan hệ, thì biểu thị một quan hệ r trên R; Tương


12

tự, đại diện cho một cơ sở dữ liệu d trong lược đồ cơ sở dữ liệu D. Người ta biểu diễn
thuộc tính đơn lẻ bằng bảng chữ cái từ phía trước của bảng chữ cái (A, B,…) và tập
thuộc tính với các chữ cái từ phía sau (X, Y,…).
Định nghĩa 1.2. Giả sử Ri(A1, .....,Am) và Rj(B1, ....., Bp) là hai lược đồ quan hệ
(không nhất thiết khác nhau) trong một lược đồ cơ sở dữ liệu D ={R1, ..., Rn}. Nếu X
là một chuỗi các k thành viên riêng biệt của A1, ....., Am, và nếu Y là một chuỗi các k
thành viên riêng biệt của B1, ....., Bp, khi đó chúng ta nói rằng phụ thuộc bao hàm

(IND) Ri[X]  Rj[Y] chứa trong một cơ sở dữ liệu d nếu bất cứ khi nào ri và rj là quan
hệ trong d, nó phải được các trường hợp ri[X]  rj[Y].
IND1 (phản xạ): R[X]  R[X], nếu X là một chuỗi các thuộc tính khác biệt của
R.
IND2 (chiếu & hoán vị): nếu R[A1, ....., Am]  S[B1, ....., Bm], khi đó R[Ai1,
....., Aik]  S[Bi1, ....., Bm], cho mỗi i1, ....., ik số nguyên khác biệt từ {1, ....., m}.
IND3 (bắc cầu): Nếu R[X]  S[Y] và S[Y]  T[Z], khi đó R[X]  T[Z].
INDs của mẫu R[X]  R[X] được cho là tầm thường. Một IND là không tầm
thường nếu nó không phải là tầm thường. Rõ ràng chúng ta chỉ quan tâm đến INDs đó
là không tầm thường [3], [7].
Một phụ thuộc bao hàm được ký hiệu là A.X

B.Y, trong đó A và B là các mối

quan hệ, X là một thuộc tính hoặc một tập các thuộc tính của A, và Y là một thuộc tính
hoặc một tập các thuộc tính của B. X và Y phải có cùng một số thuộc tính. Phụ thuộc
bao hàm này cho thấy rằng các bộ giá trị xuất hiện trong A.X phải là một tập hợp con
của tập hợp các giá trị xuất hiện trong B.Y.
1.4.3. Phụ thuộc đa trị
Trong các phần trước chúng ta đã xem xét một loại phụ thuộc dữ liệu giữa các
tập thuộc tính của các sơ đồ quan hệ là phụ thuộc hàm và các sử dụng hàm để chuẩn
hóa các sơ đồ quan hệ về dạng chuẩn ba hay về dạng chuẩn Boye-Codd. Tuy nhiên,
trong thực tế, phụ thuộc hàm không phải là một loại phụ thuộc duy nhất xuất hiện
trong các sơ đồ quan hệ mà còn có những phụ thuộc khác nữa cũng là nguyên nhân
gây nên sự dư thừa dữ liệu và vấn đề không nhất quán dữ liệu. Chẳng hạn, trong một
trường đại học, một môn học không phải được dạy bởi một giảng viên và cũng không
phải được dạy cho một đối tượng học trong trường học. Thực tế, trong trường đại học


13


này, một môn học có thể được dạy bởi một số giảng viên và không phụ thuộc vào dạy
cho đối tượng nào. Mối quan hệ ràng buộc này giữa các tập thuộc tính và một sơ đồ
quan hệ gọi là phụ thuộc đa trị. Bây giờ, chúng ta hãy xem định nghĩa hình thức của
phụ thuộc đa trị.
Định nghĩa 1.3. Cho R(U) là một sơ đồ quan hệ với U  { A1 , A2 ,..., An } là tập các
thuộc tính. X và Y là tập con của U. Chúng ta nói rằng X xác định đa trị Y hay Y phụ
thuộc đa trị vào X và kí hiệu  Y nếu với mọi quan hệ r xác định trên R(U) và với
hai bộ t1 và t 2 bất kỳ mà t1[ X ]  t2[ X ] thì tồn tại bộ t 3 sao cho:
t3[ X ]  t1[ X ], t3[ X ]  t1[Y ] và t3[ Z ]  t2 [ Z ] với Z  U \ XY .

Do tính đối xứng của t1 và t 2 dễ dàng thấy rằng trong r còn tồn tại bộ t 4 sao
cho: t4 [ X ]  t2 [ X ], t4 [Y ]  t2 [Y ] và t4[Z ]  t1[Z ] với Z  U \ XY .
Tập tất cả các phụ thuộc đa trị trên một lược đồ quan hệ kí hiệu là MVD
(MultiValued Dependencies) [1]. Có thể thấy phụ thuộc hàm là một trường hợp đặc
biệt của phụ thuộc đa trị, bởi vậy, cũng như các phụ thuộc hàm, chúng ta cũng có một
hệ tiên đề đúng đắn và đầy đủ đối với các phụ thuộc hàm và phụ thuộc đa trị.
1.5. Kết luận
Các ràng buộc toàn vẹn đảm bảo rằng các thay đổi thực hiện đối với cơ sở dữ
liệu bởi những người sử dụng hợp pháp không dẫn đến mất tính toàn vẹn dữ liệu.
Trong chương này, chúng tôi đã xem xét một số ràng buộc điển hình, bao gồm các
ràng buộc miền, các ràng buộc về khóa và một số dạng ràng buộc khác.
Các ràng buộc miền đặc tả một tập các giá trị có thể được kết hợp với một thuộc
tính. Các ràng buộc như vậy cũng có thể cấm sử dụng các giá trị null đối với các thuộc
tính đặc biệt.
Các ràng buộc toàn vẹn tham chiếu đảm bảo rằng một giá trị xuất hiện trong
một quan hệ đối với một tập các thuộc tính nhất định trong một quan hệ khác.
Các phụ thuộc hàm là một sự tổng quát hóa của các phụ thuộc khóa. Chúng yêu
cầu rằng giá trị đối với một tập các thuộc tính nhất định xác định duy nhất giá trị đối
với một tập các thuộc tính khác.

Các ràng buộc miền, ràng buộc toàn vẹn tham chiếu và các phụ thuộc hàm được
kiểm tra khá dễ dàng. Việc sử dụng các ràng buộc phức tạp hơn có thể dẫn tới một
tổng chi phí đáng kể. Chúng ta chỉ ra hai cách để biểu diễn các ràng buộc tổng quát


14

hơn. Các khẳng định là các biểu thức khai báo chỉ định các vị từ mà chúng ta yêu cầu
luôn luôn được thỏa mãn. Các kích hoạt là các thủ tục được thực hiện khi các sự kiện
nhất định xảy ra.
Trong chương tiếp theo chúng tôi giới thiệu một số khái niệm của mô hình ER,
tìm hiểu một mô hình ER mở rộng, đó là mô hình EER do tác giả Elmasri và Navathe
đề xuất tiếp đến chúng tôi trình bày các bước kèm các thuật toán để chuyển đổi mô
hình EER sang mô hình quan hệ.


15

Chương 2
GIỚI THIỆU MÔ HÌNH THỰC THỂ
MỐI QUAN HỆ MỞ RỘNG
2.1. Giới thiệu
Mô hình ER là một mô hình khái niệm do Peter Chen đề xuất năm 1976, được
sử dụng rộng rãi từ năm 1988, dựa vào việc nhận thức thế giới thực thông qua tập các
đối tượng được gọi là các thực thể và các mối quan hệ giữa những đối tượng này. Mô
hình này thường được biểu diễn dưới dạng lược đồ, được gọi là lược đồ thực thể - mối
quan hệ (gọi tắt là lược đồ ER). Trong thực tế đã có nhiều hệ thống thông tin được
thiết kế xuất phát từ mô hình ER. Song, ta thấy rằng các khái niệm của mô hình ER chỉ
dừng lại ở mức các tập thực thể, các mối quan hệ, các thuộc tính, khóa, và các ràng
buộc cấu trúc [6].

Chương này sẽ giới thiệu khái quát về mô hình ER, mô hình ER mở rộng, mô
hình quan hệ và chuyển đổi mô hình EER sang mô hình quan hệ.
2.2. Mô hình thực thể - mối quan hệ (ER)
Mô hình ER thường được biểu diễn dưới dạng lược đồ, được gọi là lược đồ
thực thể - mối quan hệ (gọi tắt là lược đồ ER). Trong thực tế đã có nhiều hệ thống
thông tin được thiết kế xuất phát từ mô hình ER. Ngoài việc đóng vai trò là mô hình
khái niệm, mô hình này còn được xem là một trong những mô hình dữ liệu ngữ nghĩa.
Thông qua mô hình ER, người ta có thể xác định được các tập thực thể của một hệ
thống thông tin, đồng thời ngữ nghĩa của mô hình còn được thể hiện bởi các mối quan
hệ giữa các tập thực thể.
2.2.1. Thực thể
Thực thể là các đối tượng mà chúng ta cần quản lý. Thực thể thường chỉ là một
người, nơi chốn, biến cố hay một khái niệm. Mỗi thực thể có thể có một hoặc nhiều
thuộc tính. Các thuộc tính không được trùng tên.
Kiểu thực thể (entity type): Là tập thực thể có cùng một tính chất chung. Kiểu
thực thể có tên và nên đặt danh từ số ít, dùng chữ in hoa. Trong mô hình ER ta sử dụng
hình chữ nhật để biểu diễn kiểu thực thể.
Thể hiện kiểu thực thể: Là đối tượng cụ thể của một tập thực thể.


16

Ví dụ:
- STUDENT là một kiểu thực thể.
- Sinh viên Nguyễn Văn A là một thể hiện của kiểu thực thể STUDENT
Kiểu thực thể mạnh (strong entity type): Là kiểu thực thể tồn tại độc lập với
các kiểu thực thể khác.
Kiểu thực thể yếu (weak entity type): Là kiểu thực thể mà sự tồn tại của nó
phụ thuộc vào kiểu thực thể khác.
Kiểu thực thể mà kiểu thực thể yếu phụ thuộc vào gọi là kiểu thực thể chủ. Mối

quan hệ giữa kiểu thực thể yếu và kiểu thực thể chủ gọi là mối quan hệ định danh.
2.2.2. Thuộc tính
Mỗi kiểu thực thể có một số thuộc tính của nó. Một thuộc tính (attribute) là một
đặc tính của kiểu thực thể mà đáng quan tâm đối với người thiết kế CSDL. Thuộc tính
được diễn tả trong sơ đồ ER bằng hình bầu dục.
Thuộc tính đơn (simple attribute): Là thuộc tính không thể chia nhỏ thành
các thành phần.
Thuộc tính phức hợp (composite attribute): Là thuộc tính được xây dựng từ
tập thuộc tính khác.
Thuộc tính đơn trị (single-valued attribute): Là thuộc tính có một giá trị cho
một thể hiện của thực thể.
Thuộc tính đa trị (multivalued attribute): Là thuộc tính có thể có nhiều hơn
một giá trị cho một thể hiện của thực thể.
Ví dụ: Thuộc tính trình độ đại học của một người là thuộc tính đa trị vì một
người có thể có một hoặc nhiều hơn một trình độ đại học.
Thuộc tính dẫn xuất (derived attribute): Là thuộc tính mà giá trị của nó có
thể tính toán từ những thuộc tính liên quan, thuộc tính này được biểu diễn bằng hình
oval nét đôi.
Ví dụ: Thuộc tính thâm niên công tác (Years_Employee) là thuộc tính dẫn xuất
từ thuộc tính ngày tuyển dụng (Date_Employee).
Giá trị null: Trong một số trường hợp, một tập thực thể có thể không có giá trị
thích hợp cho một thuộc tính, lúc đó một giá trị đặc biệt gọi là giá trị null được tạo ra.
Ví dụ một người không có trình độ đại học sẽ có giá trị null cho thuộc tính
College_Degree trong kiểu thực thể PERSON.


×