Tải bản đầy đủ (.doc) (60 trang)

Phân tích các dạng chuẩn hoá dữ liệu trong mô hình quan hệ và một số thuật toán

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 (264.7 KB, 60 trang )

Trang1
Luận văn tốt nghiệp

Nguyễn Văn Giang

LỜI GIỚI THIỆU
Ngày nay, mọi ngành, mọi lĩnh vực trong đời sống, trong khoa học
kinh doanh cũng như trong mọi mặt vận động của xã hội dưới mọi quy mơ
từ xí nghiệp nhà máy, cơng ty đến quốc gia, quốc tế đều đã áp dụng công
nghệ thông tin vào quản lý và nhiều lĩnh vực khác như: điều khiển các quá
trình sản xuất, điều khiển tự động, trợ giúp quyết định, thương mại điện tử ...
Môn cơ sở dữ liệu là một trong những môn quan trọng liên quan đến
các vấn đề thu thập, xử lý và cho những thông tin cần thiết từ dữ liệu. Mục
tiêu chính của mơn này là đưa ra các phương pháp để tổ chức thông tin làm
sao cho tối ưu nhất các khâu trên của dữ liệu[3]. Để tiến hành các mục tiêu
trên, người ta đi xây dựng các mơ hình dữ liệu, và trên cơ sở mơ hình dữ liệu
này người ta đi xây dựng các hệ cơ sở dữ liệu. Từ các mơ hình này, nhân
loại đã đạt được nhiều thành công rực rỡ trên lĩnh vực này mà sản phẩm của
nó được thương mại hố trên khắp thế giới như: Foxbase, Foxpro, DBase,
Access, SQL for Windows,...
Lý thuyết cơ sở dữ liệu nguyên cứu các cơ chế, nguyên lý và phương
pháp tổ chức dữ liệu trên các vật mang tin để khai thác có hiệu quả dữ liệu
trong các hệ thống tin học ứng dụng cũng như trong các hệ lưu trữ và tra cứu
thông tin. Trong số các mơ hình cho việc tổ chức và khai thác cơ sở dữ liệu
(CSDL), trên thực tế mơ hình quan hệ [6] là được quan tâm hơn cả. Bởi vì
mơ hình này được xây dựng trên cơ sở lý thuyết và các quan hệ có cơ sở
tốn học chặt chẽ, xử dụng rộng rãi các công cụ đại số và logíc. Trong cơ sở
dữ liệu quan hệ, các quan hệ có hình ảnh trực quan như là các bảng biểu
thơng thường mà ta hay gặp. Điều đó tạo nên những thuận lợi trong việc
thực hiện các thao tác trên các quan hệ, các ngôn ngữ thao tác trên cơ sở dữ



Trang2
Luận văn tốt nghiệp

Nguyễn Văn Giang

liệu quan hệ có khả năng tổ hợp cao và hiệu quả. Việc cập nhật dữ liệu trong
mơ hình

quan hệ khá dễ dàng. Điều đáng quan tâm là cơ sở dữ liệu quan hệ còn cho
phép đảm bảo được tính an tồn dữ liệu, tính nhất quán dữ liệu và tính độc
lập dữ liệu [5].
Trong quá trình nguyên cứu và xử lý bảng biểu, các bảng này do các
chuyên gia trong lĩnh vực tin học đề xuất ra, trong những năm 1970, người
sáng lập ra mơ hình dữ liệu quan hệ đã đề xuất ra 4 dạng chuẩn để chuẩn hoá
các tệp dữ liệu (các bảng biểu). Nhờ các dạng chuẩn này, khi xử lý các tệp
dữ liệu người ta tách được dữ liệu gốc ( do các chuyên gia trong mọi lĩnh
vực đề xuất ra ). Vì thế các tệp dữ liệu con đã ở trong dạng chuẩn rồi và khi
xử lý người ta lưu trữ các tệp dữ liệu con trong máy chứ không phải là các
tệp dữ liệu lớn, nhưng một điều rất quan trọng là, để khỏi mất mát thông tin
( có tính pháp lý ) thì phải phục hồi tệp gốc ở bất cứ thời điểm nào cần,
muốn hồi phục được người ta phải dùng phép nối tự nhiên nối tất cả các tệp
dữ liệu con thì ta sẽ được tệp dữ liệu gốc lớn. Việc lưu trữ các tệp dữ liệu
con thường chiếm ít bộ nhớ hơn các tệp dữ liệu gốc to, tốc độ chuẩn hoá các
tệp dữ liệu đã được chuẩn hoá nhanh hơn rất nhiều các tệp dữ liệu chưa
được chuẩn hoá ( tệp dữ liệu gốc to). Nhờ có những đóng góp như vậy mà
người sáng lập ra đã được nhận giải thưởng Turing[3]. Cho đến nay tất cả
các hãng máy tính trên thế giới khi xây dựng Mơ hình dữ liệu quan hệ ( xử
lý các tệp dữ liệu ) đều đã áp dụng các phụ thuộc hàm và các dạng chuẩn
trong ngôn ngữ sử lý của họ, trong đó đặc biệt là phép kết nối tự nhiên .

Mục tiêu của luận văn là tập chung nghiên cứu các tính chất của phụ
thuộc hàm và các dạng chuẩn của mơ hình dữ liệu quan hệ.
Nội dung chính của đề tài được trình bày trong 4 chương


Trang3
Luận văn tốt nghiệp

Nguyễn Văn Giang

Chương 1: Tổng quan về cơ sở dữ liệu
Chương 2: Giới thiệu về phụ thuộc hàm và một số tính chất của chúng
Chương 3: Các dạng chuẩn hố dữ liệu trong mơ hình quan hệ và một
số thuật toán của chúng
Chương 4: Cài đặt một số chương trình thực hiện cho thuật tốn đã
nêu trên.
Trong thời gian hoàn thành bản luận văn tốt nghiệp, em xin chân
thành cảm ơn khoa CNTT và các thầy cô giáo đã giúp đỡ và truyền đạt cho
em những kiến thức cơ bản trong những năm học vừa qua.
Đặc biệt em xin chân thành cảm ơn thầy Đoàn Văn Ban - Viện CNTT
đã tận tình giúp đỡ và chỉ dẫn cho em những kiến thức và phương pháp làm
việc để em hoàn thành bản luận văn tốt nghiệp.


Trang4
Luận văn tốt nghiệp

Nguyễn Văn Giang

CHƯƠNG I : TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU

I.1. KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU
Để lý giải cho các khái niệm, trước hết chúng ta hãy xem xét hệ thống bán
xe máy của cơng ty HONDA Việt Nam bằng máy tính. Dữ liệu lưu trữ trong máy
tính bao gồm thơng tin về hành khách, loại xe, phân khối và giá cả .... Mọi thông
tin về mối quan hệ này được biểu diễn trong máy thông qua việc đặt mua xe của
khách hàng.Vậy làm sao để biểu diễn dữ liệu đó và bảo đảm cho khách hàng mua
đúng chiếc xe mà mình đăng kí. Những dữ liệu nêu trên được lưu trữ trong máy
theo một quy định nào đó được gọi là cơ sở dữ liệu (CSDL). Phần chương trình để
xử lý, thay đổi số liệu này là các hệ quản trị cơ sở dữ liệu [6].
Tổng quát chúng ta có các định nghĩa sau :
1. Cơ sở dữ liệu: Là khối dữ liệu phản ánh thông tin được lưu trữ trên hệ thống
theo một cấu trúc nào đó gọi tắt là cơ sở dữ liệu ( CSDL ).
2. Hệ quản trị cơ sở dữ liệu: Là một hệ thống phần mềm quản lý cơ sở dữ liệu
và tập các thao tác xử lý dữ liệu.
Hệ quản trị cơ sở dữ liệu là rất quan trọng, như là một bộ diễn dịch với ngôn
ngữ bậc cao nhằm giúp người sử dụng có thể dùng được hệ thống mà ít nhiều
khơng cần quan tâm đến thuật toán chi tiết hoặc biểu diễn ở trong máy.
3. Chức năng của hệ quản trị cơ sở dữ liệu
a. Thiết lấp cơ sở dữ liệu : Gồm các giai đoạn
- Khai báo
- Định nghĩa


Trang5
Luận văn tốt nghiệp

Nguyễn Văn Giang

- Nạp dữ liệu vào cơ sở dữ liệu
b. Cập nhật dữ liệu:

- Bổ sung dữ liệu vào cơ sở dữ liệu,

- Loại bỏ dữ liệu khỏi cơ sở dữ liệu,
- Sửa dữ liệu trong cơ sở dữ liệu.
c. Khai thác dữ liệu trong cơ sở dữ liệu
- Tìm kiếm thơng tin theo u cầu,
- Kết xuất thông tin theo yêu cầu.
I.2. KHÁI QUÁT CHUNG VỀ MƠ HÌNH DỮ LIỆU
Thơng thường việc thiết kế và xây dựng các hệ thống thông tin quản lý,
chúng ta cần xử lý các tệp (tệp ) dữ liệu, các tệp này bao gồm nhiều bản ghi
( record ) và có cùng cấu trúc xác định. Đồng thời, mỗi bản ghi được phân chia
thành các trường dữ liệu. Mỗi cơ sở dữ liệu là một hệ thống các tệp dữ liệu , mỗi
tệp này có cấu trúc bản ghi khác nhau .
Mỗi hệ quản trị cơ sở dữ liệu là một hệ thống quản lý và điều hành các tệp
dữ liệu.
Trong quá trình thiết kế và xây dựng các hệ quản trị cơ sở dữ liệu, người ta
tiến hành xây dựng các mơ hình dữ liệu. Mơ hình dữ liệu phải thể hiện được bản
chất mối quan hệ cơ bản của các dữ liệu mà dữ liệu này phản ánh các mối quan hệ
và các thực thể trong thế giới thực. Có thể thấy mơ hình dữ liệu phản ánh khía cạnh
cấu trúc logíc mà khơng đi vào khía cạnh vật lý của cơ sở dữ liệu.
Yếu tố quan trọng nhất của cấu trúc cơ sở dữ liệu là dạng cấu trúc dữ liệu
lưu trữ được mơ tả. Có thể thấy rằng loại dữ liệu nền tảng của việc mô tả các mối
quan hệ là loại bản ghi. Bởi vì các ràng buộc giữa các loại bản ghi tạo ra bản chất
cấu trúc cơ sở dữ liệu. Vì thế dựa trên việc xác định các ràng buộc giữa các loại dữ


Trang6
Luận văn tốt nghiệp

Nguyễn Văn Giang


liệu được cho như thế nào mà chúng ta phân loại các mơ hình dữ liệu. Có nghĩa là
từ cách nhìn của người sử dụng việc mô tả các dữ liệu và các ràng buộc giữa các
dữ liệu được thực hiện như thế nào. Hiện nay đã có nhiều loại mơ hìmh dữ liệu.
Bốn

loại mơ hình dữ liệu đang được sử dụng rộng rãi là: Mơ hình phân cấp, Mơ hình
mạng, Mơ hình quan hệ, Mơ hình hướng đối tượng.
I.2.1. Mơ hình phân cấp [6]
Mơ hình dưc liệu là một cây, trong đó các nút biểu diễn các tập thực thể,
giữa các con và nút cha được liên hệ theo một mối quan hệ xác định ( Dựa trên cấu
trúc cây)
Ví dụ hình sau: Gốc Alà thực thể lớn, ta chia thực thể A làm 3 thực thể nhỏ
hơn là B,C,D. Trong đó thực thể B ta lại chia ra làm 3 thực thể nhỏ hơn là G,H,I,
tương tự C có hai thực thể nhỏ là K và L, và D có 3 thực thể nhỏ là M,N và P
A

B
G

C

H

I

D

K


L

M

I.2.2. Mơ hình mạng [6]
Mơ hình biểu diễn là một đồ thị có hướng ( Cấu trúc đồ thị )
A
B

C
D

E

N

P


Trang7
Luận văn tốt nghiệp

Nguyễn Văn Giang

Ví dụ: Mơ tả cho mơ hình dữ liệu mạng: Cho 5 đỉnh A,B,C,D,E. Các đỉnh
này nối với nhau bởi các đường, trong đó đỉnh A gọi là tệp dữ liệu lớn được phân
chia thành các tệp dữ liệu nhỏ hơn. Tương tự ta có các đỉnh tiếp theo được thể hiện
giống như đỉnh A và chúng được biểu diễn như hình trên.

I.2.3. Mơ hình quan hệ [6]

Mơ hình này dựa trên cơ sở khái niệm lý thuyết tập hợp của các quan hệ, tức
là tập các k _ bộ với k là cố định, các ràng buộc trên được thể hiện qua các quan hệ
(bảng ).
I.2.4. Mơ hình hướng đối tượng
Hệ thống được xem như là tập các thực thể ( Đối tượng ), tác động qua lại
với nhau thông qua các thông báo để thực hiện các nhiệm vụ đặt ra. Đây là mơ
hình mới đang được tập trung nghiên cứu và phát triển ứng dụng.
Trong 4 loại mơ hình trên thì mơ hình quan hệ có nhiều ưu điểm và được
nhiều người quan tâm hơn cả, bởi lẽ mơ hình dữ liệu quan hệ có tính độc lập dữ
liệu rất cao, lại rễ sử dụng. Điều quan trọng hơn cả là mô hình quan hệ được hình
thức hố tốn học tốt, do đó được nghiên cứu, phát triển và cho được nhiều kết quả
lý thuyết cũng như ứng dụng trong thực tiễn .
Mơ hình dữ liệu quan hệ là một mơ hình rất tiện lợi để mơ tả cấu trúc Logíc
của các cơ sở dữ liệu. Như vậy, ở mức logíc mơ hình bao gồm các tệp được biểu
diễn dưới dạng các bảng. Do đó đơn vị cơ sở dữ liệu quan hệ là một bảng, trong đó
các dịng của bảng là các bản ghi dữ liệu cụ thể ( đó là các thể hiện cụ thể của các
bản ghi ) còn tên các cột trong bảng là các thuộc tính.


Trang8
Luận văn tốt nghiệp

Nguyễn Văn Giang

Trên cơ sở mơ hình dữ liệu quan hệ, đến nay đã phát triển thêm một số loại
mơ hình khác nhau nhằm mơ tả và thể hiện thế giới thực một cách chính xác và
phù hợp như mơ hình quan hệ thực thể ( Entily Relationship Model), mơ hình dữ
liệu hướng đối tượng ( Object Oriented Model ),...
Theo cách nhìn của người sử dụng thì một cơ sở dữ liệu quan hệ là một tập
các bảng biến đổi theo thời gian.

Với ưu điểm về tính cấu trúc đơn giản và khả năng hình thức hố phong phú
cơ sở dữ liệu quan hệ dễ dàng mô phỏng các hệ thống thơng tin tiết kiệm có tính

độc lập cao, dễ sửa đổi, bổ xung cũng như khai thác dữ liệu. Mặt khác, việc khai
thác và áp dụng kĩ thuật tổ chức và sử dụng bộ nhớ cho phép cài đặt các cơ sở dữ
liệu quan hệ đem lại hiệu quả cao và làm cho cơ sở dữ liệu khẳng định được ưu thế
của mình trên thị trường.


Trang9
Luận văn tốt nghiệp

Nguyễn Văn Giang


Trang10
Luận văn tốt nghiệp

Nguyễn Văn Giang

CHƯƠNG II : CÁC PHỤ THUỘC HÀM
Đặt vấn đề:
- Khái niệm thực thể: Là đối tượng có trong thực tế mà chúng ta cần khảo sát và
giải quyết nhiều vấn đề liên qua đến đối tượng này.
Ví dụ: Thực thể sinh viên, thực thể con người, thực thể hệ thống kế tốn tài
vụ ,...
Thơng thường người ta chia các thực thể lớn thành các thực thể đơn giản
hơn và đến khi một thực thể được mô tả bàng một tệp dữ liệu.
Hệ thống quản lý công chức


Hệ thống công chức do ban tổ
chức cán bộ chính phủ

Các
bộ,
ngành

Tỉnh,
Huyện

Hệ thống cơng chức do ban
tổ chức TW

Tổng
cơng
đồn

Hội
phụ
nữ

Các
ban

- Các thuộc tính: Là đặc trưng của một thực thể. Các thuộc tính dùng để phân biệt
thực thể đó với thực thể khác.
Ví dụ: Thực thể sinh viên có các thuộc tính sau :Mã_SV, Họ_tên, Giới_tính,
Nơi_sinh, Quê_quán ...



Trang11
Luận văn tốt nghiệp

Nguyễn Văn Giang

Nếu một thực thể được mơ tả bằng một tệp dữ liệu thì các thuộc tính được
mơ tả bằng các trường dữ liệu. Như vậy thực thể là một bảng thì thuộc tính là một
cột trong bảng đó.

- Thể hiện của một thực thể: Một mơ tả cụ thể của thực thể đó. Nếu thực thể là
một tệp dữ liệu thì thể hiện là một dịng ( bản ghi ) của tệp dữ liệu đó .
Từ ví dụ thực thể Sinh viên trên chúng ta mơ tả một cách tổng qt các
thuộc tính của thực thể.
Mã_SV

Họ tên

Giới tính

Năm sinh

Quê quán

01

Nguyễn văn Giang

Nam

01-01-1977


Phú thọ

02

Nguyễnviệt Cường

Nam

12-5-1974

Vĩnh phúc

03

Phan Hoa

Nữ

13-7-1978

Hà tĩnh

.

...

...

...


...

.

.. .

.. .

.. .

.. .

.

...

...

...

...

20

Hoàng quốc Khanh

Nam

12-6-1976


Hà nội

Dễ thấy rằng thực thể sinh viên trên chính là tệp dữ liệu mô tả về thông tin
của các Sinh viên của một trường nào đó, với năm thuộc tính cụ thể gồm: Mã_sv,
Họ_tên, Giới_tính, Năm_sinh, Quê_quán. Trong tệp dữ liệu trên có 20 bản ghi.
II.1. PHỤ THUỘC HÀM
II.1.1. Khái niệm về phụ thuộc hàm
Trên cơ sở nghiên cứu tệp dữ liệu người ta định nghĩa chính xác tệp dữ liệu
như sau ( đơi khi người ta cịn gọi là quan hệ ).
Cho trước R = { a1, a2,..., an } là tập hữu hạn và khơng rỗng, nó được gọi là
tập các thuộc tính. Mỗi thuộc tính ai ( i = 1,2,...,n ) là một miền giá trị D(a i ) và


Trang12
Luận văn tốt nghiệp

Nguyễn Văn Giang

D(ai) có thể trùng nhau được. Khi đó r = { h1,h2,...,hm } được gọi là các tệp dữ
liệu quan hệ nếu h:

R→∪ D, ai ∈R(aI)
Với điều kiện hj( ai ) ∈ D(aI)
Ví dụ: Sinh viên = {Mã_sv, Họ_tên,....}
Với định nghĩa này chúng ta lập được một bảng tương đương sau:
a1

a2


...

an

h1(a1)

h1(a2)

...

h1(an)

h2(a1)

h2(a2)

. ..

h2(an)

...

...

...

...

hm(a1)


hm(a2)

...

hm(an)

Định nghĩa này là quan trọng nhất và nó là hạt nhân của mơ hình cơ sở dữ
liệu quan hệ.
Vì h1, h2, ..., hm là các thành phần trong tập hợp của tệp dữ liệu nhở. Một hạn
chế là khơng chấp nhận có hai dịng giống nhau trong một tệp dữ liệu, có nghĩa là:
∀ i ≠ j ⇒ hI ≠ hj .
Đứng về khía cạnh sử dụng, một hệ cơ sở dữ liệu quan hệ đó là một tập hợp
các tệp dữ liệu được định nghĩa như sau:
Một hệ cơ sở dữ liệu là một tập hợp hữu hạn các tệp dữ liệu đã được định
nghĩa ở trên và chúng được thay đổi theo thời gian. Đây là hệ cơ sở dữ liệu quan
hệ.
II.1.2. Định nghĩa phụ thuộc hàm
Cho trước R = { a1, a2,..., an }là tập các thuộc tính và r = { h1, h2, ..., hm }.


Trang13
Luận văn tốt nghiệp

Nguyễn Văn Giang

Giả sử A,B ⊆ R. Khi đó ta nói rằng B phụ thuộc hàm vào A hoặc A xác
định hàm vào B :

Nếu mọi hi, hj ∈ r ta có ( a ∈A mà hi(a) = hj(a)) => ( b∈B ( hi(b) = hj(b))) ⇒
A→B

Có thể thấy rằng, B mà phụ thuộc hàm vào A nếu hai dòng bất kỳ mà các giá
trị của tập thuộc tính A bằng nhau từng cặp một thì kéo theo các giá trị trên tập
thuộc tính B cũng phải bằng nhau từng cặp một.
Ví dụ: Trong quan hệ Xe_máy có các thơng tin về số xe, mác của xe, màu
của xe, giá xe, năm sản xuất.
Số xe

Mác

Màu

Giá

Năm sản xuất

100

Honda

Đỏ

500

1996

300

Dream

Mận


700

1998

500

Wave

Xanh biển

1000

1999

Theo định nghĩa, trong quan hệ trên, nếu số xe xác định màu xe thì khi biết
số xe người ta biết ngay được màu của xe, giá trị về màu này là duy nhất.
Số xe → Màu
Số xe → Giá
Mác → Giá
Định nghĩa phụ thuộc hàm là rất quan trọng, nó nói lên mối quan hệ ngữ
nghĩa trong nội bộ một tệp dữ liệu. Mối quan hệ ngữ nghĩa này được thể hiện giữa
các tập cột. Ngoài phụ thuộc hàm ra, hiện nay người ta đã phát hiện ra trên ba
mươi loại phụ thuộc dữ liệu. Người ta cũng chỉ ra tương ứng mỗi phụ thuộc dữ liệu
ấy là một lớp bài tốn có trong thực tiễn. Nhưng phổ thơng nhất vẫn là phụ thuộc


Trang14
Luận văn tốt nghiệp


Nguyễn Văn Giang

hàm, vì nó đơn giản và nó phổ thơng theo nghĩa nếu tập cột A xác định hàm với
tập cột B có nghĩa rằng A là xác định duy nhất B.
Giả sử: f(x1) = y1, f(x2) = y2. Nếu x1 = x2 ⇒ f(x1) = f(x2) ⇒ y1 = y2

Với ý nghĩa đơn giản và phổ thơng như vậy. Chỉ có phụ thuộc hàm mới đưa
ra được thương trường.
II.1.3. Định nghĩa hệ tiên đề Amstrong cho phụ thuộc hàm
Gọi F là tập tất cả các phụ thuộc hàm đối với lược đồ quan hệ R, và X→Y là
một phụ thuộc hàm, X,Y là tập con của R. Nói rằng X →Y được suy diễn logíc từ
F nếu mối quan hệ r trên R đều thoả mãn các phụ thuộc hàm của F thì cũng thoả
mãn X →Y[3].
Chẳng hạn F = {A →B, B →C } thì A →C suy ra từ F.
Gọi F+ là bao đóng của F, tức là tập tất cả các phụ thuộc hàm được suy diễn
logíc từ F. Nếu F = F+ thì F là họ đầy đủ của các phụ thuộc hàm.
Gọi R = {A1,A2,...,An}là tập các thuộc tính. X,Y,Z,W ⊆ R.
Hệ tiên đề Amstrong bao gồm :
A1(phản xạ): Nếu Y ⊆ X thì X→Y
A2(tăng trưởng):Nếu Z ⊆ R, X→Y thì XZ → YZ
A3(bắc cầu):Nếu X→Y, Y→Z thì X→Z
Xét ví dụ sau: AB → C, C → A
Cần chứng minh rằngBC → ABC. Thật vậy từ
1. C → A(giả thiết)
2. BC → AB (tăng trưởng)
3. AB → C (giả thiết)


Trang15
Luận văn tốt nghiệp


Nguyễn Văn Giang

4. AB → ABC (tăng trưởng (3) thêm AB)
5. BC → ABC (bắc cầu từ (2) và (4)).

Chúng ta có các bổ đề sau:
Bổ đề 1:
Hệ tiên đề Amstrong là đúng. Có nghĩa là F là tập phụ thuộc hàm đúng trên
quan hệ r. Nếu X→Y là một phụ thuộc hàm được suy dẫn từ F nhờ hệ tiên đề
Amstrong thì X→Y là đúng trên quan hệ r.
Chứng minh: Lần lượt kiểm tra tính đúng đắn của ba đề A1,A2,A3
A1: Tiên đề A1 rõ ràng là đúng vì khơng thể có hai bộ bằng nhau trên X mà
lại không bằng nhau trên tập con của nó .
A2: Giả sử rằng quan hệ r thoả X→Y.
Tồn tại hai bộ t,u sao cho t[XZ] = u[XZ] mà t[YZ] = u[YZ]. Vì rằng t[Z] =
u[Z] nên để có t[YZ] # u[YZ] thì t[Y] # u[Y]. Nhưng vì t[X] = u[X]nên t[Y] # u[Y]
là trái với giả thiết X→Y. Với t[YZ] = u[YZ].
A3: Cho X→Y và Y→Z đúng trên quan hệ r . Giả sử tồn tại hai bộ t và u ∈ r
sao cho t[X] = u[X] và t[Z] # u[Z].
Từ X→Y suy ra t[X] = u[X] nên t[Y] = u[Y].
Nhưng lại có t[Y] = u[Y] và t[Z] # u[Z] là trái với giả thiết X →Y.
Do vậy t[Z] = u[Z]. Suy ra X →Z đúng trên quan hệ r.
Bổ đề 2:
a. Luật hợp: nếu X →Y và X →Z thì X →YZ .
b. Luật tựa bắc cầu: nếu X →Y và WY →Z thì XW →Z.


Trang16
Luận văn tốt nghiệp


Nguyễn Văn Giang

c. Luật tách: nếu X →Y và Z ⊆ Y thì X →Z .
Chứng minh:
a. Từ X →Y dùng luật tăng trưởng, thêm X ta có X →XY .

khi X →Z, dùng luật tăng trưởng thêm Y ta có XY →YZ
Và cuối cùng dùng luật bắc cầu suy ra cho X →XY và XY →ZX có X→YZ.
b. Từ X →Y dùng luật tăng trưởng thêm W có WX →WY . Dùng luật bắc
cầu cho WX →WY và WY →Z suy ra WX →Z .
c. Vì Z ⊆ Y nên X →Z ( theo luật phản xạ )
Dùng luật bắc cầu cho X →Y và Y →Z có X →Z.
Một hệ quả quan trọng của luật tách và luật hợp là nếu X →Y suy ra X→Ai
với mọi A i ∈ Y.
Để dễ dàng chứng minh cho tính đầy đủ của hệ tiên đề Amstrong, ở đây đưa
thêm khái niệm bao đóng của tập các thuộc tính của tập các phụ thuộc hàm. Gọi F
là tập các phụ thuộc hàm trên tập thuộc tính R, X ⊆ R. X+ là bao đóng của X đối
với F được định nghĩa như sau:
X+ = {A \ X →A ∈F+ }
Nói cụ thể X+ là tập tất cả các thuộc tính A mà phụ thuộc hàm X→A có thể
được suy diễn logíc từ F nhờ hệ tiên đề Amstrong.
Bổ đề 3:
X →Y suy diễn từ hệ tiên đề Amstrong khi và chỉ khi Y ⊆ X+
Chứng minh:
Giả sử Y = A1,A2,,...,An với A1,A2,,...,An là các thuộc tính và Y ⊆ X+.


Trang17
Luận văn tốt nghiệp


Nguyễn Văn Giang

Từ định nghĩa X+ có X→Ai , áp dụng hệ tiên đề Amstrong cho mỗi i có
X→Ai, Ai ∈Y, nhờ luật tách. Từ đó suy ra Y ⊆ X+ .
Định lý 1:
Hệ tiên đề Amstrong là đúng và đầy đủ.

Chứng minh:
Tính đúng đắn của hệ tiên đề đã được chứng minh qua bổ đề 1.ở đây chỉ cần
chứng minh tính đầy đủ tức là nếu X→Y khơng thoả trên r thì X→Y khơng thể suy
diễn từ F.
Gọi F là tập các phụ thuộc hàm trên tập thuộc tính R. Giả sử rằng X→Y là
khơng thể suy dẫn được từ hệ tiên đề. Xét quan hệ r gồm hai tập sau:
11...1

11...1

11...1

00...0

Các thuộc tính thuộc X+

Các thuộc tính cịn lại

Trước hết cần chỉ ra rằng tất cả các phụ thuộc hàm thuộc F đều thoả r. Thật
vậy, giả sử (V→W) ∈F nhưng không thoả trên r. Do đó V ⊆ X+ , hoặc hai bộ của r
sẽ khơng bằng nhau ít nhất trên một thuộc tính của V. Như vậy W không thể là tập
con của X+ hoặc V → W thoả trên r .

Gọi A ∈ W nhưng A khơng thuộc X+. Vì XV ∈ X+, X→V suy ra từ bổ đề 3 .
( X→V ∈ F ) do vậy, nhờ luật bắc cầu suy ra X→A, nhưng do A không thuộc X+
như giả thiết, do vậy là mâu thuẫn. Từ đó kết luận rằng mỗi (V→W) ∈ F đề thoả
trên r .
Bây giờ cần chứng minh rằng X→Y không thoả trên r. Giả sử rằng X→Y là
thoả trên r. Như trên có X ⊆ X+ và suy ra Y ⊆ X+, nếu không hai bộ là bằng nhau
trên X nhưng không bằng nhau trên Y. Theo bổ đề 3 thì X→Y có thể suy ra được


Trang18
Luận văn tốt nghiệp

Nguyễn Văn Giang

từ hệ tiên đề, điều đó là hồn tồn mâu thuẫn. Do vậy X→Y khơng thể đúng trên r.
Đến đây có thể kết luận rằng: Nếu

X→Y khơng suy dẫn được từ hệ tiên đề

Amstrong thì X→Y khơng suy dẫn logíc được từ F. Hệ tiên đề đầy đủ.

II.1.4. Phủ của các tập phụ thuộc hàm
Cho tập phụ thuộc hàm F, hãy thay thế F bằng phụ thuộc G sao cho G vẫn
đảm bảo đúng chức năng của F. Khi đó ta gọi G là phủ của tập phụ thuộc hàm F.
Bổ đề 4:
Mỗi ttập phụ thuộc hàm F đều được phủ bằng tập các phụ thuộc hàm G sao
cho G mà vế phải các phụ thuộc hàm đó bao gồm khơng q một thuộc tính .
Chứng minh:
Gọi G là tập các phụ thuộc hàm X→A sao cho với X→Y thuộc F thì A ∈
Y . Từ X→Y suy ra X→A (theo luật tách)

Do vậy G ⊆ F+ .
Ngược lại, có F ⊆ G+ vì nếu Y = A1,...,An thì X→Y được suy ra
X→A1,. . . , X→An nhờ luật hợp .
Để có thể phục vụ quá trình thiết kế lược đồ cơ sở dữ liệu, sau đây sẽ đưa ra
một số khái niệm.
Gọi các tập phụ thuộc hàm F là tối thiểu nếu :
a/ Mỗi vế phải của một phụ thuộc hàm F chỉ có một thuộc tính .
b/ Khơng tồn tại một phụ thuộc hàm X→A thuộc F mà
F+ = (F - { X→A}) +


Trang19
Luận văn tốt nghiệp

Nguyễn Văn Giang

c/ Không tồn tại một phụ thuộc hàm X→A thuộc F và một tập con Z của X
mà : F+ = (F - { X→A} ∪ { Z→A } ) +.
Thực vậy điều kiện b/ bảo đảm cho tập F khơng có phụ thuộc hàm nào là dư
thừa và diều kiện c/ đảm bảo không có một thuộc tính nào tham gia phía trái của
phụ thuộc hàm là dư thừa. Vế phải của phụ thuộc hàm ở điều kiện a/ chỉ có một
thuộc tính bảo đảm chắc chắn khơng có một thuộc tính nào trên vế phải là dư thừa .

II.1.5. Định nghĩa sơ đồ quan hệ
Cho trước R = { a1, a2,..., an }
A,B ∈ R, đặt A→ B là một phụ thuộc hàm.
Khi đó S là một sơ đồ quan hệ nếu:
S = < R,F > trong đó F = <A1→B1,...,At→Bt>
F gồm t phụ thuộc hàm thì tập ấy gọi là sơ đồ quan hệ. t phụ thuộc hàm này
do người thiết kế đặt ra, dựa trên cơ sở nội dung của các cột a1,a2,..,an.

Sơ đồ quan hệ đó là đầu biểu ( cấu trúc tệp ) cộng với các ràng buộc logíc
(các phụ thuộc hàm ) do người thiết kế đề xuất ra ,các phụ thuộc hàm này làm
nhiệm vụ không chỉ phân tích mối quan hệ lơgíc mà cịn kiểm tra tính đúng đắn
của dữ liệu nữa.
II.1.6. Định nghĩa khố
Cho trước r = {h1,h2,...,hm} là tệp dữ liệu trên tập thuộc tính R = { a 1, a2,...,
an}.
Khi đó A ⊆ R được gọi là khoá của tệp dữ liệu r nếu A→R.sao cho bất kỳ
hai bộ khác nhau t1,t2 ∈ r ln thoả mãn
t1(A) ≠ t2(A)
- A là khố tối tiểu nếu :


Trang20
Luận văn tốt nghiệp

Nguyễn Văn Giang

A→R
Không tồn tại A’ sao cho A’ ⊂

A(A’ tập con thực sự của A)

mà A’ → R
Khoá cho sơ đồ quan hệ: Cho trước s = <R,F> là sơ đồ quan hệ .Trong đó F =
<A1→B1,...,At→Bt>.
Khi đó :

A ⊆ R được gọi là khố của s nếu A→R∈F+.
A là k hoá tối tiểu của s nếu :

- A→R∈F+
- Không tồn tại A’ sao cho A’ ⊂

A sao cho A’→R∈F+

Khố đây chính là hình ảnh của cột mã số hay cột số thứ tự trong Tệp dữ
liệu nào đó .
Ví dụ: Quan hệ Hàng_hố được cho như sau:
MSMH

Tên hàng

Số lượng

10101

Xi măng

2000

10102

Thép

1500

10111

Tấm lợp


1000

Trong ví dụ này biểu diễn quan hệ Hàng_hố, trong đó MSMH là khố. Mỗi
giá trị MSMH đều xác định duy nhất một loạI mặt hàng trong quan hệ Hàng_hố.
II.1.7. Định nghĩa bao đóng


Trang21
Luận văn tốt nghiệp

Nguyễn Văn Giang

Cho trước S = <R,F> là sơ đồ quan hệ với R = {a1,a2,...,an} là tập hữu hạn
các thuộc tính. Trong đó F = <A1→B1,...,At→Bt>. Và A ⊆ R. Khi đó bao đóng
của A trong S là A+ .
Trong đó :
A+ = {a : a ∈ R và A→{a}∈F+ }
Cho r = {h1,h2,...,hm} là tệp dữ liệu trên tập thuộc tính R = {a 1,a2,...,an}, A∈
R.
A+r = {a : a ∈ R và Ar→{a}}
A+r được gọi là bao đóng của A trong r.

Nếu A là một tập bất kỳ ( tập cột bất kỳ ) thì A + là tập hợp tất cả những cột
mà phụ thuộc hàm vào A trong sơ đồ quan hệ S, chúng ta có A+r là tập hợp tất cả
các cột mà phụ thuộc hàm vào {a} trong tệp dữ liệu r. Dễ thấy rằng theo hệ tiên đề
của Amstrong thì.
A ⊆ A+
A ⊆ A+r
Trên cơ sở địmh nghĩa này chúng ta có các kết quả sau :
Giả sử S = <R,F > là sơ đồ quan hệ .

A→B ∈ F <=> B ⊆ A+
Cho r = {h1,h2,...hm }là tệp dữ liệu trên R = {a1,a2,...,an} .
ta có A→B (B phụ thuộc hàm r vào A) <=> B ⊆ A+r
Kết quả này nói lên rằng một tập B nào đó mà phụ thuộc và tập A khi và chỉ
khi B là tập con của bao đóng của A. Nhờ có kết quả này, người ta không cần phải
lưu trữ tất cả các phụ thuộc hàm của một tệp dữ liệu hoặc của một sơ đồ quan hệ
(số lượng này như chúng ta đã biết có thể là một hàm số mũ ) mà vẫn kiểm tra


Trang22
Luận văn tốt nghiệp

Nguyễn Văn Giang

được hai tập thuộc tính bất kỳ (hai tập cột bất kỳ ) có phụ thuộc hàm với nhau hay
không, bằng cách kiểm tra một tập này có phải là tập con của tập kia hay khơng. Vì
vậy chúng ta chúng ta phải tính được bao đóng của một tập cột bất kỳ. Nói cách
khác chúng ta phải tính được A+.
Người ta đã tìm ra được hai thuật tốn để tính A + và A+r với thời gian tính là
đa thức sẽ được trình bầy ở chương sau..
II.2. CÁC PHÉP TOÁN TRÊN CƠ SỞ DỮ LIỆU QUAN HỆ
II.2.1. Phép chèn (Insert)
Phép chèn là phép thêm một bộ vào quan hệ r{A1,A2,...,An} có dạng: r =
r∪t.

Cú pháp:
Insert{r;A1=d1,A2=d2,...,An=dn}.
Trong đó Ai với i= 1,2,...,n là tên các thuộc tính và Di ∈ Dom(Ai) là các giá
trị thuộc miền trị tương ứng của thuộc tính Ai.
Ví dụ: Thêm một bộ t4 = ( Vũ văn Tần ,1960,Trương ĐHĐĐ,422 ) vào

quan hệ Nhân_viên trên:
Insert(Nhân_viên ; Họ tên = Vũ vă Tần, Năm _sinh = 1960, Công tác= ĐH
ĐĐ, Lương=425).
Nếu xem như các trường là cố định, khi đó có thể biểu diễn phép chèn dưới
dạng không tường minh như sau :
Insert (r ;d1,d2,...,dn).
Mục đích của phép chèn là thêm một bộ phận vào một quan hệ nhất
định.Kết quả của phép tính này có thể gây ra một số sai sót với những lý do sau
đây :


Trang23
Luận văn tốt nghiệp

Nguyễn Văn Giang

1. Bộ mới thêm vào là không phù hợp với lược đồ quan hệ cho trước;
2. Một số giá trị của một số thuộc tính nằm ngồi miền giá trị của bộ đó;
3. Giá trị khố của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ .
Do vậy, tuỳ từng hệ cụ thể sẽ có từng cách khắc phục riêng.
II.2.2. Phép loại bỏ (Del)
Phép loại bỏ là phép xoá một bộ ra khỏi quan hệ cho trước. Giống như phép
chèn, phép loại bỏ có dạng: r = r – t
DEL(r; A1 = d1, A2 = d2,..., An = dn ) hoặc
DEL( r; d1,d2,...,dn) .
Ví dụ: Loại bỏ bộ t2 từ quan hệ Sinh_viên ở ví dụ trước:
Del(Sinh_viên; 372013, Trần hà, 1976, NN, 6.95 )

Tất nhiên không phải lúc nào phép loại bỏ cũng cần đầy đủ thông tin về bộ
cần loại bỏ. Nếu có giá trị về bộ đó tại các thuộc tính khố K ={B1,...,Bi}khi đó

phép loại bỏ chỉ cần viết :
DEL( r; B1 = e1,B2 = e2,..., Bi = ei )
II.2.3. Phép thay đổi (CH)
Trong thực tế không phải lúc nào cũng chỉ dùng phép chèn hoặc loại bỏ đi
một bộ mà nhiều khi chỉ cần sửa đổi một số giá trị nào đó tại một số thuộc tính, lúc
đó cần thiết phải sử dụng phép thay đổi .
Gọi tập {C1,C2,...,Cp}là tập các thuộc tính mà tại đó các giá trị của bộ cần
thay đổi, khi đó phép thay đổi có dạng : r = r \ t ∪ t’
CH( r; A1 = d1, A2 = d2, ...,An = dn; C1 =e1, C2 = e2,...Cp = ep)
Nếu K = {B1,B2,...,Bm}là khố của quan hệ, khi đó chỉ cần viết :
CH( r; B1 = d1, B2 = d2,...,Bm = dm; C1 = e1, C2 = e2,...,Cp = ep )


Trang24
Luận văn tốt nghiệp

Nguyễn Văn Giang

Ví dụ:
Phép thay đổi là phép tính rất thuận lợi hay dùng. Cũng có thể không dùng
phép thay đổi mà dùng tổ hợp của phép loại bỏ và phép chèn bộ mới. Do đó những
sai sót của phép thay đổi cũng sẽ xảy ra tương tự như phép chèn và phép loại bỏ.
II.3. CÁC PHÉP TÍNH XỬ LÝ BẢNG

u cầu bài tốn:
Trong phần này chúng ta sẽ khảo sát một số phép toán sử lý bảng ( Tệp dữ
liệu ). Chúng tạo nên ngôn ngữ xử lý dữ liệu. Ngôn ngữ xử lý dữ liệu là một ngôn
ngữ quan trọng trong hệ quản trị cơ sở dữ liệu ngững hệ quản trị Cơ sở dữ liệu này
là những công cụ sắc bén cho chúng ta trong q trình xử lý, đặc biệt là xử lý
thơng tin trong các hệ thông tin quản lý như: SQL for Windows, Orcale, IBM

DB2, Foxpro, Access,...

Ngôn ngữ xử lý dữ liệu đều dựa trên mơ hình dữ liệu quan hệ. Trong đó hạt
nhân chủ yếu là tệp dữ liệu (bảng). Chúng ta sẽ khảo sát những phép toán xử lý tệp
dữ liệu cơ bản nhất của cái nằm trong ngôn ngữ xử lý dữ liệu này. Các phép toán
này được đề xuất bởi người sáng lập ra mơ hình dữ liệu quan hệ.
Các phép toán xử lý tệp dữ liệu sau đây được chắt lọc từ ngôn ngữ xử lý dữ
liệu (Ngôn ngữ đại số quan hệ).
Đại số quan hệ như là cơ sở của ngôn ngữ bậc cao để thao tác trên quan hệ.
Người khai thác cơ sở dữ liệu phải nêu ra những câu hỏi diễn tả yêu cầu tìm kiếm
thơng tin, kết xuất thơng tin. Đại số quan hệ cung cấp các phép toán để đáp ứng
nhu cầu trên.
Gọi r là một quan hệ trên tập thuộc tính R = {A1,...,An}
ở đây ln giả thiết rằng quan hệ r là tập hữu hạn các bộ. Đối với các phép
hợp, giao và trừ, hai quan hệ tham gia phải là khả hợp.


Trang25
Luận văn tốt nghiệp

Nguyễn Văn Giang

Cho trước hai quan hệ
A
a
a
b
a

r=


B
a
c
c
a

C
c
b
d
d

t=

D
a
b
e

A
a
c
f

E
b
d
g


Từ hai quan hệ trên ta có các phép tính sau:
II.3.1. Phép hợp
Giả sử r và t là hai tệp dữ liệu cùng có n cột , trong ví dụ trên thì r và t có 3
cột. Khi đó quan hệ r ∪ t là một quan hệ (tệp dữ liệu ) cũng n cột bao gồm các bản
ghi (dòng) của cả r lẫn t. Chú ý rằng những bản ghi giống nhau chỉ giữ lại một lần,
nếu r và t là tệp dữ liệu có tên các cột khác nhau thì tệp dữ liệu hợp khơng ghi tên
cột nữa. Nói cách khác là chỉ có khung mà thơi.

Phép tốn này dùng để hồ lẫn hai tệp dữ liệu có cùng số cột. Hai tệp này
đều có cấu trúc cột như nhau, như vậy ta dùng phép hợp này thông thường đối với
hai tệp có cùng số cột cùng cấu trúc cột .
Kí kiệu của phép hợp hai quan hệ : r ∪ t
Biểu diễn hình thức phép hợp có dạng: r ∪ t :={s : s ∈ r hoặc s ∈ t}
Từ hai quan hệ cho trước ta có phép hợp của hai quan hệ r và t:
r∪t:

=

II.3.2. Phép trừ

a
a
b
a
e

a
c
c
a

f

b
b
d
d
g


×