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

Khoá và các thuật toán tìm khoá trong mô hình dữ liệu dạng khối

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.05 MB, 54 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN

BÙI TRÂM ANH

KHÓA VÀ CÁC THUẬT TOÁN
TÌM KHÓA TRONG
MÔ HÌNH DỮ LIỆU DẠNG KHỐI

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tin học

HÀ NỘI – 2016


TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
KHOA CÔNG NGHỆ THÔNG TIN

BÙI TRÂM ANH

KHÓA VÀ CÁC THUẬT TOÁN
TÌM KHÓA TRONG
MÔ HÌNH DỮ LIỆU DẠNG KHỐI
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tin học

Người hướng dẫn khoa học
PGS.TS. Trịnh Đình Thắng

HÀ NỘI – 2016



LỜI CẢM ƠN
Em xin bày tỏ lòng biết ơn sâu sắc tới PGS. TS. Trịnh Đình Thắng đã
tận tình chỉ bảo và giúp đỡ em trong suốt quá trình nghiên cứu và thực hiện
khóa luận tốt nghiệp.
Em xin gửi lời cảm ơn đến quý thầy cô khoa Công nghệ thông tin trường
Đại học sư phạm Hà Nội 2 đã tạo điều kiện, quan tâm, giúp đỡ em trong thời
gian hoàn thiện đề tài.
Đây là lần đầu tiên làm quen với công việc nghiên cứu, nội dung của
cuốn khóa luận này không tránh khỏi những thiếu sót. Em rất mong nhận được
sự đóng góp quý báu của các thầy giáo, cô giáo và các bạn sinh viên.
Sinh viên thực hiện

Bùi Trâm Anh


LỜI CAM ĐOAN
Tôi xin cam đoan đề tài: “Khóa và các thuật toán tìm khóa trong mô
hình dữ liệu dạng khối” là kết quả mà tôi đã trực tiếp nghiên cứu. Trong quá
trình nghiên cứu tôi đã sử dụng tài liệu của một số tác giả. Tuy nhiên đó chỉ là
cơ sở để tôi rút ra được những vấn đề cần tìm hiểu ở đề tài của mình. Đây là
kết quả của cá nhân tôi, hoàn toàn không trùng với kết quả của các tác giả khác.
Nếu sai tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên

Bùi Trâm Anh


DANH MỤC CÁC KÍ HIỆU, CHỮ CÁI VIẾT TẮT
Trong khóa luận tốt nghiệp này dùng thống nhất các kí hiệu và các chữ

cái viết tắt sau:
Kí hiệu
(chữ cái)

Ý nghĩa

A, B, C

Thuộc tính

X, Y, Z

Tập thuộc tính

Dom(A)

Miền giá trị của thuộc tính A

r hoặc r(R)

Khối r trên lược đồ R

x(i) = (x, Ai)

Các thuộc tính chỉ số của lược đồ khối x ∈ id, i =1..n



Là con




Chứa



Thuộc



Không thuộc



Tồn tại



Không tồn tại



Với mọi



Rỗng




Phép giao



Phép hợp


DANH MỤC BẢNG BIỂU
Bảng 1.1. Biểu diễn quan hệ r ................................................................. 5
Bảng 1.2: Bảng cơ sở dữ liệu sinh viên .................................................. 6


DANH MỤC HÌNH VẼ
Hình 2.1. Biểu diễn khối nhân viên NV(R) ............................................ 19
Hình 3.1. Chương trình tìm khóa trong mô hình dữ liệu dạng khối ....... 41
Hình 3.2. Thông tin chương trình ........................................................... 42
Hình 3.3. Hướng dẫn sử dụng ................................................................. 42


MỤC LỤC
LỜI CẢM ƠN
LỜI CAM ĐOAN
DANH MỤC CÁC KÍ HIỆU, CHỮ CÁI VIẾT TẮT
DANH MỤC BẢNG BIỂU
DANH MỤC HÌNH VẼ
MỞ ĐẦU ......................................................................................................... 1
CHƯƠNG I. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ ................................. 4
1.1. Các khái niệm cơ bản ......................................................................... 4
1.1.1. Thuộc tính và miền thuộc tính .................................................. 4
1.1.2. Quan hệ, lược đồ quan hệ ......................................................... 4

1.1.3. Khóa của quan hệ ...................................................................... 5
1.2. Các phép toán đại số trên lược đồ quan hệ ........................................ 6
1.2.1. Phép hợp ................................................................................... 7
1.2.2. Phép giao ................................................................................... 7
1.2.3. Phép trừ ..................................................................................... 8
1.2.4. Tích Đề-Các .............................................................................. 8
1.2.5. Phép chiếu ................................................................................. 9
1.2.6. Phép chọn .................................................................................. 9
1.2.7. Phép kết nối............................................................................... 10
1.2.8. Phép chia ................................................................................... 11
1.3. Phụ thuộc hàm .................................................................................... 12
1.3.1.Các quy tắc suy diễn đối với các phụ thuộc hàm ...................... 13
1.3.2. Hệ tiên đề Amstrong cho các phụ thuộc hàm ........................... 13


1.4. Bao đóng của lược đồ quan hệ .......................................................... 13
1.4.1. Bao đóng của tập phụ thuộc hàm .............................................. 13
1.4.2. Bao đóng của tập thuộc tính ..................................................... 13
1.5. Phủ của tập các phụ thuộc hàm .......................................................... 14
1.6. Khóa của lược đồ quan hệ.................................................................. 14
CHƯƠNG II. MÔ HÌNH DỮ LIỆU DẠNG KHỐI ....................................... 19
2.1. Khối, lược đồ khối, lát cắt.................................................................. 19
2.2. Các phép toán đại số quan hệ trên khối ............................................. 21
2.2.1. Phép hợp ................................................................................... 21
2.2.2. Phép giao ................................................................................... 22
2.2.3. Phép trừ ..................................................................................... 23
2.2.4. Tích Đề-Các .............................................................................. 23
2.2.5. Tích Đề-Các theo tập chỉ số ...................................................... 24
2.2.6. Phép chiếu ................................................................................. 24
2.2.7. Phép chọn .................................................................................. 25

2.2.8. Phép kết nối............................................................................... 25
2.2.9. Phép chia ................................................................................... 26
2.3. Phụ thuộc hàm trên khối .................................................................... 26
2.4. Bao đóng trong mô hình dữ liệu dạng khối ....................................... 27
2.4.1. Bao đóng của tập phụ thuộc hàm .............................................. 27
2.4.2. Bao đóng của tập chỉ số ............................................................ 28
2.5. Khóa của khối .................................................................................... 29
2.6. Phép dịch chuyển lược đồ khối .......................................................... 30
CHƯƠNG III. KHÓA TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI ........... 34


3.1. Khóa của lược đồ khối R đối với tập phụ thuộc hàm F trên R .......... 34
3.2. Thuật toán tìm khóa trong mô hình dữ liệu dạng khối ...................... 35
3.3. Giao diện chương trình ...................................................................... 41
KẾT LUẬN ..................................................................................................... 43
TÀI LIỆU THAM KHẢO ............................................................................... 44


MỞ ĐẦU
1. Lý do chọn đề tài
Công nghệ thông tin ngày càng phát triển và ngày càng trở nên quan
trọng trong xã hội ngày nay. Cơ sở dữ liệu là một trong những lĩnh vực nghiên
cứu đóng vai trò nền tảng trong sự phát triển của công nghệ thông tin. Cơ sở
dữ liệu giải quyết các bài toán quản lý, tìm kiếm thông tin trong hệ thống lớn,
đa dạng phức tạp cho nhiều người sử dụng trên máy tính. Để có thể xây dựng
một hệ thống cơ sở dữ liệu tốt người ta thường sử dụng các mô hình dữ liệu
thích hợp. Đã có rất nhiều mô hình được sử dụng trong các hệ thống cơ sở dữ
liệu như: mô hình thực thể - liên kết, mô hình mạng, mô hình phân cấp, mô
hình hướng đối tượng, mô hình dữ liệu datalog và mô hình quan hệ. Trong số
đó thì mô hình quan hệ được quan tâm hơn cả. Trong những năm gần đây, việc

nghiên cứu mở rộng mô hình dữ liệu quan hệ đã được nhiều nhà khoa học quan
tâm. Theo hướng nghiên cứu này một mô hình dữ liệu mới đã được đề xuất, đó
là mô hình dữ liệu dạng khối.
Để góp phần hoàn chỉnh thêm về mô hình dữ liệu dạng khối và việc sử
dụng khóa trong mô hình dữ liệu dạng khối, em đã lựa chọn đề tài “Khóa và
các thuật toán tìm khóa trong mô hình dữ liệu dạng khối” cho khóa luận tốt
nghiệp của mình.
2. Mục đích nghiên cứu
Tìm hiểu khái quát về mô hình dữ liệu dạng khối, sau đó nghiên cứu về
khóa và các thuật toán tìm khóa trong mô hình dữ liệu dạng khối. Từ đó xây
dựng chương trình Demo tìm khóa trong mô hình dữ liệu dạng khối nhằm tạo
cơ sở để xây dựng hệ thống cơ sở dữ liệu dạng khối.
3. Nhiệm vụ nghiên cứu
Nghiên cứu lý thuyết về mô hình dữ liệu dạng khối, cụ thể về khóa và
các thuật toán tìm khóa trong mô hình dữ liệu dạng khối.

1


4. Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: mô hình dữ liệu dạng khối và khóa trong mô hình
dữ liệu dạng khối.
- Phạm vi nghiên cứu: Các thuật toán tìm khóa trong mô hình dữ liệu dạng
khối.
5. Ý nghĩa khoa học và thực tiễn của đề tài
- Ý nghĩa khoa học: Mô hình dữ liệu dạng khối có thể xem là một mở rộng
của mô hình dữ liệu quan hệ. Mô hình dữ liệu dạng khối mở ra khả năng
quản lý dữ liệu động, đáp ứng nhu cầu thực tế cao. Hiện nay, việc xây
dựng chương trình tìm khóa trong mô hình dữ liệu dạng khối nhanh,
chính xác đang được các nhà quản trị cơ sở dữ liệu và các lập trình viên

quan tâm và phát triển.
- Ý nghĩa thực tiễn: Chương trình tìm khóa trong mô hình dữ liệu dạng
khối xây dựng thành công sẽ giúp cho việc tìm khóa trong quá trình xây
dựng cơ sở dữ liệu dạng khối trong thực tế.
6. Phương pháp nghiên cứu
- Phương pháp lấy ý kiến chuyên gia: tham khảo ý kiến của chuyên gia về
mô hình dữ liệu dạng khối và khóa trong mô hình dữ liệu dạng khối để có thể
thiết kế chương trình phù hợp với yêu cầu thực tiễn.
- Phương pháp nghiên cứu lý luận: Nghiên cứu qua việc đọc sách báo và
các tài liệu liên quan đến mô hình cơ sở dữ liệu quan hệ và mô hình dữ liệu
dạng khối nhằm xây dựng cơ sở lý thuyết của đề tài và các biện pháp cần thiết
để giải quyết các vấn đề của đề tài.
- Phương pháp thực nghiệm: Thông qua quan sát thực tế, yêu cầu của cơ
sở, những lý luận được nghiên cứu và kết quả đạt được qua những phương pháp
trên.

2


7. Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận và hướng phát triển, nội dung khóa luận
gồm 3 phần:
Chương I: Mô hình cơ sở dữ liệu quan hệ
Chương II: Mô hình dữ liệu dạng khối
Chương III: Khóa và các thuật toán tìm khóa trong mô hình dữ liệu dạng
khối

3



CHƯƠNG I. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
1.1.

Các khái niệm cơ bản

1.1.1. Thuộc tính và miền thuộc tính [3, 5]
Định nghĩa 1.1
- Thuộc tính là các đặc điểm riêng của một đối tượng. Mỗi thuộc tính có
một tên gọi và phải thuộc về một kiểu dữ liệu nhất định.
- Tập tất cả các giá trị có thể có của thuộc tính Ai, gọi là miền giá trị của
thuộc tính đó, ký hiệu: Dom(Ai), hay viết tắt là DAi.
Ví dụ 1.1:
Đối tượng SINHVIEN có các thuộc tính như MaSV, Hoten, SDT, DC,..
Miền giá trị của các thuộc tính của đối tượng SINHVIEN:
Dom(MASV) = {char(4)} = {‘SV01’, ‘SV02’, ‘SV03’,…};
Dom(Hoten) = {char(40)} = {‘Trần Ngọc’, ‘Lê Lan’, ‘Vũ Yến’,…};
Dom(SDT)

=

{char(11)}

=

{‘0987654321’,‘01663124614’,
‘01298766722’,…};

Dom(DC) = {char(50)} = {‘Hà Nội’, ‘Bắc Giang’, ‘Lào Cai’,…};
1.1.2. Quan hệ, lược đồ quan hệ [3, 5]
Định nghĩa 1.2

Cho U = {A1, A2,..., An} là một tập hữu hạn không rỗng các thuộc tính.
Mỗi thuộc tính Ai (i = 1, 2,..., n) có miền giá trị là Dom(Ai). Khi đó r là một tập
các bộ {h1, h2,..., hm} được gọi là quan hệ trên U với hj (j = 1, 2,..., m) là một
hàm: hj = U →

D

Ai U

Ai

, sao cho hj(Aj) ∈ DAi (i = 1, 2,..., n)

Ta có thể xem một quan hệ như một bảng, trong khi đó mỗi hàng (phần
tử) là một bộ và mỗi cột tương ứng với một thành phần gọi là thuộc tính. Biểu
diễn quan hệ r thành bảng như sau:
4


A1

A2

...

An

h1

h1(A1)


h1(A2)

...

h1(An)

h2

h2(A1)

h2(A2)

...

h2(An)

...

...

...

...

...

hm

hm(A1)


hm(A2)

...

hm(An)

Bảng 1.1. Biểu diễn quan hệ r
Định nghĩa 1.3 [6]
Mỗi bộ giá trị là các thông tin của một đối tượng thuộc quan hệ. Bộ giá
trị cũng thường được gọi là một mẫu tin hay bản ghi, dòng của bảng.
Bộ giá trị (SV01, Trần Ngọc, 0987654321, Hà Nội) là một bộ.
Nếu có một bộ t = (d1, d2,…, dm) ∈ r, r xác định trên U, X ⊆ U thì t(X)
được gọi là giá trị của tập thuộc tính X trên bộ t. Nếu X = (A1, A2,..., Ak) thì
t.X = (D1, D2,..., Dk)
Định nghĩa 1.4
Tất cả các thuộc tính trong một quan hệ cùng với mối liên hệ giữa chúng
được gọi là lược đồ quan hệ.
Lược đồ quan hệ R xác định với tập thuộc tính U = {A1, A2,..., An} được
gọi là R(U) hoặc R(A1, A2,..., An).
1.1.3. Khóa của quan hệ [6]
Khóa của một quan hệ r trên tập thuộc tính U = {A1, A2,..., An} là tập con
K ⊆ U thỏa mãn các tính chất sau: Với bất kỳ hai bộ t1, t2 ∈ r đều tồn tại thuộc
tính A ∈ K sao cho t1(A) ≠ t2(A). Nói một cách khác, không tồn tại hai bộ mà
có giá trị bằng nhau trên mọi thuộc tính của K. Điều kiện này có thể viết t1(K)
≠ t2(K). Do vậy mỗi giá trị của K là xác định duy nhất.

5



Trong lược đồ quan hệ có thể có rất nhiều khóa. Việc tìm khóa của lược
đồ quan hệ là rất khó khăn.
Để có thể định nghĩa khóa một cách tốt hơn, lưu ý rằng, nếu K’ là khóa
của quan hệ r(A1, A2,..., An) thì K’ ⊆ K ⊆ U, K cũng là khóa của r, nghĩa là bất
kỳ t1, t2 ∈ r từ t1(K’) ≠ t2(K’).
Định nghĩa 1.5 [6]
Khóa của quan hệ r trên tập thuộc tính U = {A1, A2,..., An} là tập con
K ⊆ U sao cho bất kỳ hai bộ khác nhau t1, t2 ∈ r luôn thỏa t1(K) ≠ t2(K) bất kỳ
tập con thực sự K’  K nào đó đều không có tính chất đó. Tập K' là siêu khóa
(super key) của quan hệ r nếu K là một khóa của quan hệ r.
Ví dụ 1.3
MaSV

Hoten

SDT

DC

SV01

Trần Ngọc

0987654321

Hà Nội

SV02

Lê Lan


01663124614

Bắc Giang

SV03

Vũ Yến

01298766722

Lào Cai

Bảng 1.2: Bảng cơ sở dữ liệu sinh viên
Ta có thuộc tính MaSV là khóa của quan hệ SINHVIEN. Mỗi giá trị
MaSV đều xác định duy nhất một loại mặt hàng trong quan hệ SINHVIEN.
1.2.

Các phép toán đại số trên lược đồ quan hệ

Định nghĩa 1.6 [5]
Hai quan hệ r(A1, A2,..., An) và s(B1, B2,..., Bn) được gọi là khả hợp nếu
như hai quan hệ này có cùng bậc n và dom(Ai) = dom(Bi), với 1 ≤ i ≤ n. Điều
đó có nghĩa là hai quan hệ có cùng số các thuộc tính và mỗi cặp thuộc tính
tương đương có cùng miền giá trị.

6


1.2.1. Phép hợp [6]

Cho 2 quan hệ r và s khả hợp. Hợp của r và s kí hiệu r ∪ s là một quan
hệ gồm tất cả các bộ thuộc r hoặc thuộc s hoặc thuộc cả hai quan hệ. Biểu diễn
hình thức phép hợp có dạng:
r ∪ s = {t | t ∈ r hoặc t ∈ s hoặc t ∈ r và s}
Ví dụ 1.5
r (X Y

Z)

s (X

Y

Z)

a2

b2

z2

a1

b1

z1

a1

b2


z2

r ∪ s (X Y

Z)

a1

b1

z1

a1

b2

z2

a2

b2

z2

1.2.2. Phép giao [6]
Giao của hai quan hệ r và s khả hợp, kí hiệu r ∩ s là tập các bộ thuộc cả
quan hệ r và s. Biểu diễn hình thức phép giao có dạng:
r ∩ s = {t | t ∈ r và t ∈ s}
Ví dụ 1.6

r (X Y

Z)

s (X

Y

Z)

a2

b2

z2

a1

b1

z1

a1

b2

z2

a2


b2

z2

r ∩ s (X Y

Z)

a2

b2

z2

7


1.2.3. Phép trừ [6]
Hiệu của 2 quan hệ r và s khả hợp kí hiệu là r – s là tập các bộ thuộc r
nhưng không thuộc s. Biểu diễn hình thức phép trừ có dạng:
r – s = {t | t ∈ r và t ∉ s}
Ví dụ 1.7
r (X Y

Z)

s (X

Y


Z)

a2

b2

z2

a1

b1

z1

a1

b2

z2

a2

b2

z2

r - s (X Y

Z)


a1

b1

z1

a1

b2

z2

1.2.4. Tích Đề-Các [6]
Gọi r là quan hệ xác định trên tập thuộc tính {A1, A2,..., An} và s là quan
hệ xác định trên tập thuộc tính {B1, B2,..., Bm}. Tích Đề-Các của 2 quan hệ r và
s kí hiệu là r x s là tập tất cả các (m + n ) – bộ với n thành phần đầu có dạng
một bộ thuộc r và m thành phần sau đó là một bộ thuộc s. Biểu diễn hình thức
có dạng:
r x s = {t /t có dạng (a1, a2,..., an, b1, b2,..., bm) trong đó (a1, a2,..., an) ∈ r và (b1,
b2,..., bm) ∈ s}
Ví dụ 1.8
r (X Y)
a1

b1

a1

b2


r x s (X Y

A

B

C)

a1

b1

a2

b2

z2

a1

b2

a2

b2

z2
8

s (A


B

C)

a2

b2

z2


1.2.5. Phép chiếu [6]
Phép chiếu trên một quan hệ thực chất là loại bỏ đi một số thuộc tính và
giữ lại những thuộc tính còn lại của quan hệ đó. Gọi t là một bộ thuộc r, A ∈ R,
t[A] là giá trị của bộ t tại thuộc tính A. X ⊆ R. Với X = {B1, B2,.., Bm} thì
t[X] = t(t[B1], t[B2],..., t[Bm]).
Gọi X là tập con của thuộc tính R. Phép chiếu trên tập X của hệ r, ký hiệu
∏x(r) được định nghĩa như sau:

∏x(r) = {t[X] | t ∈ r}
Ví dụ 1.9
Cho quan hệ r = {A, B, C, D}; X = {A}; Y = {B, C}
r (A B

C

D

a1


b1

c1

d1

a1

b2

c2

d2

a2

b2

c2

d3

a4

b1

c3

d2


∏𝑌(𝑟) (B

C)

b1

c1

b2

c2

b1

c3

1.2.6. Phép chọn [6]
Phép chọn là phép tính để xây dựng một tập con các bộ của quan hệ đã
cho thỏa mãn biểu thức F xác định. Biểu thức F được diễn tả bằng một tổ hợp
Boolen của các toán hạng, mỗi toán hạng là một phép so sánh đơn giản giữa
hai biến là hai thuộc tính hoặc giữa một biến là một thuộc tính và hằng cho giá
trị “đúng” hoặc “sai” đối với mỗi bộ đã cho khi kiểm tra riêng bộ ấy.
 Các phép so sánh trong biểu thức F: >, <, =, ≥ , ≠, ≤
9


 Các phép toán logic trong biểu thức F: ∧ (và), ∨ (hoặc), ¬ (không)
Hình thức hóa phép chọn được định nghĩa như sau:
𝜎𝐹 (r) = {t | t ∈ r | F(t) = đúng}

F(t) được biểu diễn là giá trị của các thuộc tính xuất hiện trong biểu thức
F tại bộ t thỏa các điều kiện của F.
Ví dụ 1.10
r (X Y

Z

W)

a1

b1

3

4

a1

b2

1

0

a2

b2

9


7

a4

b1

6

9

𝜎𝑍<𝑊 (r) (X

Y

Z

W)

a1

b1

3

4

a4

b1


6

9

1.2.7. Phép kết nối [6]
Gọi θ là một trong các phép so sánh {=, > , ≥, <, ≤, ≠}. Phép kết nối
được định nghĩa như sau:
Phép kết nối của quan hệ r(U) đối với thuộc tính A với quan hệ s(V) đối
với thuộc tính B được định nghĩa qua:
r ⨝ s = {(t)u | t ∈ r; u ∈ s và t[A] θ u[B]}
AθB
Dĩ nhiên ở đây cần giả thiết rằng mỗi giá trị của cột r[A] đều có thể so
sánh được qua phép θ với mỗi giá trị của cột s[B].
Trong trường hợp phép so sánh θ là “=” gọi là kết nối bằng. Trường hợp
kết nối bằng tại thuộc tính cùng tên của hai quan hệ và một trong hai thuộc tính
đó được loại bỏ qua phép chiếu, thì phép kết nối được gọi là kết nối tự nhiên và
10


sử dụng kí hiệu “*”. Khi đó phép kết nối tự nhiên của hai quan hệ r(ABC) và
S(CDE) biểu diện qua:
r(ABC)*s(CDE) = {t[ABCDE]/t[ABC] ∈ r và t[CDE] ∈ s}
Ví dụ 1.11
r (A B

r⨝s

C


D

E)

a1

b 1 c1

2

6

6

a1

a2

b 2 c1

3

5

2

a2

a3


b 3 c1

4

4

a1

b 1 c1

7

5

a2

b 2 c1

6

6

C

D

E

G


H)

b 1 c1

2

6

6

a1

C

D

E

G)

a1

b 1 c1

2

6

6


a2

b 2 c1

3

5

2

(A B

s (G H)

(A=H)∩(G>D)

a1

Kết quả kết nối tự nhiên
r*s (A B

1.2.8. Phép chia [6]
Cho r là quan hệ xác định trên tập thuộc tính {A1, A2,..., An} và s là quan
hệ xác định trên tập thuộc tính {B1, B2,..., Bm}. Gọi r là quan hệ n - ngôi và s
quan hệ m - ngôi (n > m, s ≠ ∅, {B1, B2,.., Bm} ⊆ {A1, A2,..., An}), phép chia
r ÷ s là tập của tất cả (n - m) - bộ t sao cho với mọi bộ u ϵ s thì bộ t ∩ u ∈ s.

11



Ví dụ 1.12
r (A

B

C

D)

a

b

c

d

c

d

a

b

e

f

e


f

b

c

e

f

e

d

c

d

e

d

e

f

a

b


d

e

r ÷ s (A

1.3.

s (C D)

B)

a

b

e

d

Phụ thuộc hàm
Khi xét đến mối quan hệ giữa dữ liệu trong cơ sở dữ liệu quan hệ, một

trong những yếu tố quan trọng nhất được xét đến là sự phụ thuộc giữa các thuộc
tính này với các thuộc tính khác. Từ đó có thể xây dựng những ràng buộc cũng
như loại bỏ đi những dư thừa dữ liệu trong một cơ sở dữ liệu.
Phụ thuộc hàm là những mối quan hệ giữa các thuộc tính trong cơ sở dữ
liệu quan hệ. Khái niệm về phụ thuộc hàm có một vai trò rất quan trọng trong
việc thiết kế mô hình dữ liệu. Một trạng thái phụ thuộc hàm chỉ ra rằng giá trị

của một thuộc tính được quyết định một cách duy nhất bởi giá trị của thuộc tính
khác. Sử dụng các phụ thuộc hàm để chuẩn hóa lược đồ quan hệ về dạng chuẩn
3 hoặc chuẩn Boye-Codd.
Định nghĩa 1.7 [6]
Cho lược đồ quan hệ R xác định trên tập thuộc tính U = {A1, A2,..., An},
và X, Y là hai tập con của U.
Nói rằng X → Y (đọc là X xác định hàm Y hoặc Y phụ thuộc hàm vào
X) nếu với mọi quan hệ r xác định trên R(U) sao cho bất kỳ hai bộ t1, t2 ∈ R mà
t1(X) = t2(X) thì t1(Y) = t2(Y).
12


1.3.1. Các quy tắc suy diễn đối với các phụ thuộc hàm [5]
Cho lược đồ quan hệ R xác định trên tập thuộc tính U = {A1, A2,..., An},
cho X, Y, Z, W ⊆ U thì ta có một số tính chất cơ bản của các phụ thuộc hàm
như sau:
1) Nếu Y ⊆ X thì X → Y
2) Nếu X → Y thì XZ → YZ
3) Nếu X → Y, Y → Z thì X → Z
4) Nếu X → YZ thì X → Y và X → Z
5) Nếu X → Y, X → Z thì X → YZ
6) Nếu X → Y, WY → Z thì WX → Z
1.3.2. Hệ tiên đề Amstrong cho các phụ thuộc hàm [6]
Gọi R là quan hệ trên tập thuộc tính U. Khi đó với các tập thuộc tính X,
Y, Z ⊆ U, ta có hệ tiên đề Amstrong như sau:
1) Phản xạ: Nếu Y ⊆ X thì X → Y
2) Tăng trưởng: Nếu X → Y thì XW → YW
3) Bắc cầu: Nếu X → Y, Y → Z thì X → Z
1.4.


Bao đóng của lược đồ quan hệ [5]

1.4.1. Bao đóng của tập phụ thuộc hàm
Định nghĩa 1.8
Giả sử F là tập các phụ thuộc hàm trên sơ đồ quan hệ s = <R, F>. Gọi F+
là tập tất cả các phụ thuộc hàm có thể suy dẫn logic từ F bởi các luật của hệ tiên
đề Armstrong. Khi ấy F+ được gọi là bao đóng của F.
1.4.2. Bao đóng của tập thuộc tính
Định nghĩa 1.9
Cho lược đồ quan hệ R xác định trên tập thuộc tính U, cho X ⊆ U. Bao
đóng của tập thuộc tính X đối với F kí hiệu là X+ là tập tất cả các thuộc tính A
mà X → A được suy diễn từ F. Ta có: X+ = {A | X → A ∈ F+}.

13


Đôi khi ta kí hiệu XF+ để lấy bao đóng của X theo tập phụ thuộc hàm F.
1.5.

Phủ của tập các phụ thuộc hàm [6]
Gọi F và G là các tập phụ thuộc hàm. Ta nói rằng F và G tương đương

nếu F+ = G+. Khi đó ta nói F phủ G hay G phủ F.
Mỗi tập các phụ thuộc hàm F đều được phủ bằng tập các phụ thuộc hàm
G mà vế phải các phụ thuộc hàm đó không bao gồm quá một thuộc tính.
Tập các phụ thuộc hàm F được gọi là tối tiểu nếu:
- Mỗi vế phải của một phụ thuộc hàm thuộc F chỉ có một thuộc tính
- Không tồn tại một phụ thuộc hàm X → A thuộc F mà
F+ = (F – { X → A})+
- 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})+
1.6.

Khóa của lược đồ quan hệ [5]
Theo định nghĩa đã được trình bày trong phần 1.1.3 thì khóa là một hoặc

một tập thuộc tính xác định duy nhất trong quan hệ. Thông thường trong một
lược đồ quan hệ có thể tồn tại nhiều khóa. Trong số đó, sẽ có một khóa được
chọn làm khóa chính.
Định nghĩa 1.10
Cho lược đồ quan hệ R xác định trên tập thuộc tính U = {A1, A2,..., An},
F là một tập phụ thuộc hàm xác định trên U, tập con bất kỳ K ⊆ U. K được gọi
là khóa của lược đồ quan hệ R khi và chỉ khi nó thỏa mãn hai điều kiện sau:
a) K ⊆ U ∈ F+
b) Không tồn tại Z ⊆ K sao cho Z ⊆ U ∈ F+
Điều kiện (a) và (b) khẳng định các thuộc tính không khóa phụ thuộc đầy
đủ vào khóa. Từ định nghĩa trên có thể suy ra rằng K là khóa của lược đồ quan
hệ khi và chỉ khi nó thỏa mãn hai điều kiện:
a) K+ = U
b) (K - A)+ ≠ U; ∀ A, K
14


Điều này có nghĩa là mỗi một giá trị của khóa xác định duy nhất giá trị
của các thuộc tính không khóa. Giá trị khóa khác nhau thì giá trị các bộ có chứa
giá trị khóa cũng khác nhau. Nếu loại bỏ một phần thông tin về khóa thì thông
tin của các thuộc tính còn lại không thể xác định được. Như vậy khóa là tập các
thuộc tính sao cho bao đóng của nó là nhỏ nhất. Nghĩa là nếu thêm hoặc loại bỏ
các phần tử của khóa sẽ là dư thừa hay thiếu thông tin.
Các tính chất đơn giản của khóa trong lược đồ quan hệ [5]

Định lý 1.1 (Đặc trưng của các thuộc tính khóa)
Cho K là 1 khóa của lược đồ quan hệ a = (U, F). Khi đó với mọi tập con
X của K ta có X+ ∩ K = X
Định lý 1.2 (Công thức tính giao các khóa)
Cho lược đồ quan hệ a = (U, F) với n thuộc tính trong U và m phụ thuộc
hàm trong F. Gọi U1 là giao các khóa của a. Khi đó có thể xác định giao các
khóa bằng một thuật toán tuyến tính theo mn qua công thức: U1 = U \

 ( R \ L)

L  RF

Định lý 1.3 (Định lý về khóa duy nhất)
Cho lược đồ quan hệ a = (U, F). Gọi U1 là giao của các khóa trong a. Khi
đó a có một khóa duy nhất khi và chỉ khi U1+ = U
Thuật toán xác định một khóa của lược đồ quan hệ
* Thuật toán 1:
Input: U = {U1, U2,...,Un} ≠ ∅
F = {f: Aj →Bj | Aj, Bj ⊆ U}
A = ∪ Aj và B = ∪ Bj
Aj ⊆ U, Bj ⊆ U
A ∩ B = {Uj1, Uj2,...,Ujk}

15


×