TRƯỜNG ĐAI
• HOC
• SƯPHAM
• 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
DANG
KHỐI
•
•
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành: Sư phạm Tỉn học
HÀ NỘI - 2016
TRƯỜNG ĐẠI
s ư PHẠM
HÀ NỘI
• HỌC
•
•
• 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á tri 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 e id, i =1 ..n
c
Là con
=>
Chứa
G
Thuộc
Ể
Không thuộc
3
Tồn tại
3
Không tồn tại
V
Với mọi
0
Rỗng
n
Phép giao
u
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ố ừê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 đề Amsữong 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Ữ LỆƯ 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 k h ố r 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 vỉ 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 ừong 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 ừong 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à Daì.
Ví dụ 1.1:
Đối tượng SINHVIEN có các thuộc tính như MaSV, Hoten, SDT, DC,..
Miền giá tri của các thuộc tính của đối tượng SINHVIEN:
Dom(MASV) = {char(4)} = {‘s v o r , ‘SV02’, ‘SV03’,...};
Dom(Hoten) = (char(40)} = {‘TrầnNgọc’, ‘LêLan’, ‘Vũ Yến’,...};
Dom(SDT)
=
{char(ll)}
=
{‘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 = {Al, 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á tri là Dom(Ai). Khi đó r là một tập
các bộ {hi, ÌÍ2,..., hm} được gọi là quan hệ ừên и với hj (j = 1 , 2 ,..., m) là một
hàm:
hj = и —> U ^ A , sao cho hj(Aj) e DA. (i = 1, 2,..., n)
ẠeƯ
1
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
Ai
A2
An
hi
hi(Ai)
hi(A2)
hi(An)
h2
h2 (A0
h2 (A2)
h 2 (An)
hm
hm(Ai)
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á ừị 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 = (di, ch,.. dm) E r ,r xác định trên u, X Q 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 = (Ai, A2 ,..., Ak) thì
t.x = (Di, 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 = {Ai, A2 ,..., An} được
gọi là R(U) hoặc R(Ai, A2 ,..., An).
1.1.3. Khóa của quan hệ [6]
Khóa của một quan hệ r ữên tập thuộc tính Ư = {Ai, 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ộ tl, t2 € r đều tồn tại thuộc
tính A
6
K sao cho ti(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 ữên mọi thuộc tính của K. Điều kiện này có thể viết ti(K)
^ t2 (K). Do yậy mỗi giá tri 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(Ai, A2 ,..., An) thì K’ Ç к Ç и, к cũng là khóa của r, nghĩa là bất
kỳ ti, t2 e r từ ti(K’) Ф t2 (K’).
Định nghĩa 1.5 [6]
Khóa của quan hệ r trên tập thuộc tính и = {Al, Кг,..., An} là tập con
K ç u sao cho bất kỳ hai bộ khác nhau ti, t2 e r luôn thỏa ti(K) Ф t2 (K) bất kỳ
tập con thực sự К ’ с К nào đó đều không có tính chất đó. Tập K' là siêu khóa
(super key) của quan hệ г nếu к 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ệ SINHVTEN. Mỗi giá trị
MaSV đều xác định duy nhất một loại mặt hàng ừong 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(Ai, A2 ,..., An) và s(Bi,
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 hop [6]
Cho 2 quan hệ г và s khả hợp. Hợp của г và s kí hiệu г и s là một quan
hệ gồm tất cả các bộ thuộc г 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:
г u s = { t l t e r hoặc t e s hoặc t
6
r và s}
Ví du 1.5
г (X Y
Z)
ai
bi
Zl
ai
b2
Z2
Y
Z)
ai
bi
Zl
ai
b2
Z2
a2
b2
Z2
s (X
S
(X
Y
Z)
аг
b2
Z2
1.2.2. Phép gịao [6]
Giao của hai quan hệ г và s khả hợp, kí hiệu r n 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 n s = { tltG r v à tG s }
Ví dụ 1.6
(X Y
Z)
ai
bi
Zl
ai
b2
Z2
a2
b2
Z2
(X Y
Z)
a2
Z2
b2
S
7
(X
Y
Z)
аг
b2
Z2
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 1 1 E r và t Ể s}
Ví dụ 1.7
(X Y
Z)
ai
bi
Zl
ai
b2
Z2
a2
b2
Z2
(X
Y
Z)
ai
bi
Zl
ai
b2
Z2
s (X
a2
Y
Z)
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 {Ai, A2 ,..., An} và s là quan
hệ xác định trên tập thuộc tính {Bi,
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 (ai, a2,..., an,bi,
bm) ữong đó (ai, a2,..., an) e r và (bi,
b2,..., bm) E s}
Ví du 1.8
■
(X
Y)
ai
bi
ai
b2
s (A
a2
(X Y
A
B
C)
ai
bi
a2
b2
Z2
ai
b2
a2
b2
Z2
8
B
C)
b2
Z2
1.2.5. Phép chiếu [6]
Phép chiếu ừê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 G R,
t[A] là giá trị của bộ t tại thuộc tính A. X ç R. Với X = {Bi,
Bm} thì
t[X] = t(t[Bi], 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
Пх(г) được định nghĩa như sau:
Пх(г) = {t[X]
11
e r}
Ví dụ 1.9
Cho quan hệ г = {А, в, с, D}; X = {A}; Y = {В, С}
г (А В
с
D
di
ai
bl
Cl
ai
b2
c2
аг
Ьг
C2
<1з
ã4
bi
c3
<Ỉ2
(r) (B
C)
bi
Cl
b2
c2
bi
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
9
• Các phép toán logic trong biểu thức F: A (và), V (hoặc), -I (không)
Hình thức hóa phép chọn được định nghĩa như sau:
ơ>(r) = {t 11 e r I F(t) = đúng}
F(t) được biểu diễn là giá ữị 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)
ai
bi
3
4
ai
b2
1
0
a2
b2
9
7
ã4
bi
6
9
ơz
Y
z
W)
ai
bi
3
4
a4
bi
6
9
1.2.7. Phép kết nối [6]
Gọi 0 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(Ư) đố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 IX s = {(t)u 11 € r; u € s và t[A] 0 u[B]}
A0B
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 0 với mỗi giá tri của cột s[B].
Trong trường hợp phép so sánh 0 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] G r và t[CDE] G s}
Ví du 1.11
r (A В
с
D
E)
s (G H)
ai
bi
Cl
2
6
6
ai
a2
b2
Cl
3
5
2
a2
a3
b3
Cl
4
4
ai
bi
Cl
7
5
a2
b2
Cl
6
6
(A в
С
D
E
G
H)
bl
Cl
2
6
6
ai
r*s (A в
С
D
E
G)
ai
bl
Cl
2
6
6
a2
b2
Cl
3
5
2
TỈ Xs
Q
Л
0
с
КII
ai
ả kết nối tự nhiên
1.2.8. Phép chùi [6]
Cho r là quan hệ xác định trên tập thuộc tính {Ai, Аг,..., An} và s là quan
hệ xác định trên tập thuộc tính {Bl,
Bm}. Gọi r là quan hệ n - ngôi và s
quan hệ m - ngôi (n > m, s Ф 0, {Bi, B2,.., Bm} Q {Al, A2,..., An}), phép chia
г -Т- s là tập của tất cả (n - m) - bộ t sao cho với mọi bộ u
11
6
s thì bộ t n u € s.
Ví dụ 1.12
r (A
В
С
D)
a
b
с
d
с
d
a
b
e
f
e
f
b
с
e
f
e
d
с
d
e
d
e
f
a
b
d
e
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
ừong những yếu tố quan ừọ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 и = {Al, Аг,..., An},
và X, Y là hai tập con của и.
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 ừên R(U) sao cho bất kỳ hai bộ ti, Í2
ti(X) = t2 (X)thìti(Y) = t 2 (Y).
12
6
R mà
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 Ư = {Al, A2 ,..., An},
cho X, Y, z, w Q u thì ta có một số tính chất cơ bản củacác phụ thuộc hàm
như sau:
1) Nếu Y £ X thì X -> Y
2) Nếu X —►Y thì x z —>YZ
3) Nếu X - » Y ,Y - » Z t h ì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ì w x ^ 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 Q 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: Neu X —>Y thì X W ^ Y W
3) Bắc càu: Neu X —>Y, Y —> Z t h ì 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 Ư, cho X £ ư . 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 I X —>A G F4-}.
13
Đôi khi ta kí hiệu Xp+để 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à
Ff = ( 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 —>А} u {Z —>A})+
1.6.
Khóa của lược đồ quan hệ [5]
Theo định nghĩa đã được trình bày ữong 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 ữong quan hệ. Thông thường ữong 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 Ư = {Ai, Аг,..., An},
F là một tập phụ thuộc hàm xác định trên ư , tập con bất 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 g P
b) Không tồn tại z Ç К sao cho z с и Ẽ 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 к 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+ = Ư
b) (К - A)+ Ф U; V А, К
14
Điều này có nghĩa là mỗi một giá tri 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á ừị 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 trung của các thuộc tính khóa)
Cho К là 1 khóa của lược đồ quan hệ а = (Ư, F). Khi đó với mọi tập con
X của К ta có x + n К = X
Định lý 1.2 (Công thức tính giao các khóa)
Cho lược đồ quan hệ а = (Ư, F) với n thuộc tính trong ư và m phụ thuộc
hàm trong F. Gọi Ui 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: Ui = и \ ỊJ (R \ L)
L—
»ReF
Định lý 1.3 (Định lý về khóa duy nhất)
Cho lược đồ quan hệ a = (U, F). Gọi Ư1 là giao của các khóa trong a. Khi
đó a có một khóa duy nhất khi và chỉ khi Ui+ = и
Thuật toán xác định một khóa của lược đồ quan hệ
* Thuật toán 1:
Input: U=( U, . U, . .... U n ) * 0
F = {f: Aj —>Bj IAj, Bj ç Ư}
A = u Aj và В = u Bj
Aj ç u, Bj ç u
A n В = {Ujb Uj2,...,Ujk}
15