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

các dạng biểu diễn khóa trong lược đồ quan hệ

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 (909.12 KB, 71 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG

NGUYỄN THỊ DUNG

CÁC DẠNG BIỂU DIỄN KHÓA TRONG
LƯỢC ĐỒ QUAN HỆ


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




Thái Nguyên – 2012


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG

NGUYỄN THỊ DUNG

KEY REPRESENTATIONS IN
RELATIONAL SCHEMATA
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01

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



NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS. TSKH NGUYỄN XUÂN HUY





Thái Nguyên - 2012

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

i
LỜI CẢM ƠN

Lời đầu tiên, em xin bày tỏ lòng cảm ơn và kính trọng sâu sắc đối với
Thầy PGS.TSKH Nguyễn Xuân Huy, người đã tận tình hướng dẫn em trong suốt
quá trình làm luận văn này. Thầy giúp em hiểu và tiếp cận những vấn đề khoa
học rất lý thú, hướng em vào nghiên cứu các lĩnh vực rất thiết thực và bổ ích. Em
đã học hỏi được rất nhiều ở Thầy cũng như phong cách làm việc, phương pháp
tiếp cận tri thức Em luôn được Thầy chỉ bảo tận tình trong suốt quá trình làm
luận văn.
Em cũng xin thể hiện sự kính trọng và biết ơn đến Quý Thầy Cô trong
ĐHCNTT-TT, trang bị cho chúng em đầy đủ về cơ sở vật chất cũng như tài liệu
chuyên ngành
Cuối cùng em xin cảm ơn các bạn học viên trong lớp Cao học K9A, những
người luôn bên cạnh và cung cấp những thông tin quý báu trong suốt quá trình

học tập, nghiên cứu để hoàn thành luận văn này.
Thái Nguyên, tháng 06 năm 2012
Học viên


Nguyễn Thị Dung





Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

ii

LỜI CAM ĐOAN

Tôi xin cam đoan, luận văn là kết quả của tự bản thân tôi tìm hiểu, nghiên
cứu. Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

iii
MỤC LỤC
Trang
Lời cảm ơn i
Lời cam đoan ii
Mục lục iii
Danh mục các kí hiệu, chữ cái viết tắt v
Danh mục hình vẽ vi
MỞ ĐẦU 1

Chƣơng I: CÁC KIẾN THỨC CƠ BẢN VỀ CƠ SỞ DỮ LIỆU 5
1.1 Khái quát về cơ sở dữ liệu quan hệ 5
1.2 Lược đồ quan hệ 7
1.3 Phụ thuộc hàm 7
1.3.1 Định nghĩa phụ thuộc hàm 7
1.3.2 Hệ tiên đề Armstrong 8
1.3.3 Bao đóng của tập phụ thuộc hàm 8
1.4 Bao đóng của tập thuộc tính 8
1.5 Khóa của lược đồ quan hệ 11
1.5.1 Cách tính giao các khóa 14
1.5.2 Thuật toán tìm 2 khóa của LĐQH 15
1.5.3 Các ví dụ 16
Chƣơng II: THU GỌN LƢỢC ĐỒ QUAN HỆ 21
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

iv
2.1 Định nghĩa kỹ thuật thu gọn LĐQH 22
2.2 Thuật toán thu gọn LĐQH 23
2.3 Các ví dụ 23
2.4 Bổ đề về siêu khóa trong phép thu gọn LĐQH 25
2.5 Hệ quả về siêu khóa trong phép thu gọn LĐQH 26
2.6 Bổ đề về khóa trong phép thu gọn LĐQH 27
Chƣơng III: CÁC DẠNG BIỂU DIỄN KHOÁ TRONG 29
LƢỢC ĐỒ QUAN HỆ
3.1 Dạng biểu diễn thứ nhất của khoá 29
3.1.1 Các ví dụ 30
3.1.2 Hệ quả về phép thu gọn LĐQH 35
3.2 Dạng biểu diễn thứ hai của khoá 35
3.2.1 Các ví dụ 36
3.2.2 Định nghĩa tập các vế trái cực tiểu 42

3.2.3 Bổ đề vế trái cực tiểu 42
3.2.4 Bổ đề các khóa sinh ra từ khóa của lược đồ 45
3.2.5 Bổ đề 48
3.3 Giới thiệu 50
3.4 Một số giao diện của chương trình 52
3.5 Các ví dụ 56
TÀI LIỆU THAM KHẢO 60
1. Kết luận 59
2. Kiến nghị 59
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

v

DANH MỤC CÁC KÍ HIỆU, CHỮ CÁI VIẾT TẮT

CSDL Cơ sở dữ liệu
LĐQH Lược đồ quan hệ
PTH Phụ thuộc hàm
FD Phụ thuộc hàm

Thuộc

Là con

Chứa
╞ Suy dẫn logic
├ Suy dẫn theo quan hệ
SAT(F) Là tập toàn thể các quan hệ trên U thỏa tập PTH
F
X

+
Bao đóng của tập thuộc tính X
\ Phép trừ logic

Phép giao

Phép hợp
≡ Tương đương
!≡ Không tương đương
≠ Khác

Với mọi
LS(F) Tập các vế trái của phụ thuộc hàm F
RS(F) Tập các vế phải của phụ thuộc hàm F

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

vi


DANH MỤC HÌNH VẼ
Hình 3.4.1 Giao diện chính 52
Hình 3.4.2 Giao diện nhập các thuộc tính 53
Hình 3.4.3 Giao diện nhập các PTH 53
Hình 3.4.4 Giao diện dạng thứ nhất biểu diễn khóa 54
Hình 3.4.5 Giao diện dạng thứ hai biểu diễn khóa 55

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

vii


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


1
MỞ ĐẦU
Cơ sở khoa học của luận văn
Cơ sở dữ liệu(CSDL) là một trong những lĩnh vực được tập trung nghiên
cứu và phát triển của công nghệ thông tin. Cùng với sự phát triển của công nghệ
thông tin, việc sử dụng các kiến thức về cơ sở dữ liệu ngày càng trở lên cần thiết.
Trong quản lý các cơ sở dữ liệu (CSDL), phụ thuộc dữ liệu được hiểu là những
mệnh đề mô tả các ràng buộc mà dữ liệu phải đáp ứng trong thực tế. Nhờ có
những mô tả phụ thuộc này mà hệ quản trị cơ sở dữ liệu có thể quản lý tốt được
chất lượng dữ liệu. Lý thuyết về các phụ thuộc dữ liệu đóng vai trò quan trọng
trong việc mô tả thế giới thực, phản ánh ngữ nghĩa dữ liệu trong cơ sở dữ liệu.
Phụ thuộc dữ liệu được Codd, tác giả của mô hình dữ liệu quan hệ đặt nền móng
từ những năm 70 với khái niệm phụ thuộc hàm. Sau đó một loạt tác giả khác tiếp
tục phát triển các dạng phụ thuộc bậc cao, phụ thuộc mờ cũng như xây dựng các
hệ tiên đề cho các lớp phụ thuộc - tức là đặt cơ sở lý thuyết về phụ thuộc dữ liệu.
Trong thực tế phụ thuộc dữ liệu nào cũng giới hạn ở việc so sánh hai bộ theo
đẳng thức, nghĩa là chỉ so sánh từng cặp trị tương ứng của hai bộ đó xem chúng
giống hay khác nhau. Ở đây từ kỹ thuật thu gọn các lược đồ quan hệ (LĐQH)
được gọi là phép dịch chuyển lược đồ quan hệ. Bản chất của kỹ thuật này là loại
bỏ khỏi LĐQH ban đầu một số thuộc tính không quan trọng theo nghĩa chúng
không làm ảnh hưởng đến kết quả tính toán các đối tượng đang được quan tâm
như bao đóng, khóa, phản khóa Chẳng hạn như nếu dịch chuyển LĐQH
a=(U,F) thu được LĐQH b=a/X(X

U) thì ta có khoá của LĐQH a sẽ được biểu
diễn như thế nào hay nếu ta có K=LM với L là vế trái cực tiểu của F thì M phải

được tính như nào?. Vậy là các phép dịch chuyển LĐQH được phát triển cho lớp
các phụ thuộc logic đầu tiên là phụ thuộc hàm cho ta một số kết quả lý thú về
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


2
biểu diễn bao đóng, khóa, phản khóa cùng một số dấu hiệu cần và đủ để nhận
biết các đặc trưng tương quan giữa các đối tượng nói trên.
Mục tiêu và nhiệm vụ của luận văn
Đề tài này tập trung vào tìm hiểu nghiên cứu cách biểu diễn khóa trong
lược đồ quan hệ qua thuật toán thu gọn lược đồ quan hệ theo thuộc tính khóa hay
giao các khóa cũng như tập các vế trái cực tiểu. Như vậy theo nhận xét tự nhiên
khi dịch chuyển lược đồ quan hệ về kích thước càng nhỏ thì thuật toán càng phát
huy hiệu quả.
Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài có thể vận dụng cho các quy trình thiết kế
các cơ sở dữ liệu quan hệ dùng trong hệ thống thông tin, cụ thể là:
- Tính bao đóng của các tập thuộc tính
- Tìm khóa của lược đồ quan hệ
- Thu gọn lược đồ quan hệ
- Các dạng biểu diễn khóa trong lược đồ quan hệ
Phƣơng pháp nghiên cứu
1. Tiếp cận chủ yếu để giải quyết các vấn đề đặt ra trong phạm vi đề tài là
tiên đề hóa. Cơ sở toán học các hệ tiên đề là định lý về tính xác đáng và
đầy đủ cùng với các định lý về điều kiện cần đủ cho các hệ tiên đề
tương đương.
2. Tiếp cận hình thức vận dụng chủ yếu các phương pháp và các cấu trúc
của toán học rời rạc( bao gồm cả logic hình thức), kết hợp với các
phương pháp đối sánh, mô hình hóa, tối ưu và quy hoạch rời rạc.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



3
3. Kết hợp chặt chẽ giữa lý thuyết và thực hành, sử dụng và phát triển các
phần mềm nói chung và các phần mềm toán học nói riêng để kiểm định
và thể hiện các kết quả lý thuyết.
Phạm vi nghiên cứu
Các kết quả thu được có thể vận dụng cho các quy trình thiết kế các cơ sở
dữ liệu quan hệ dùng tong các hệ thống thông tin, cụ thể là:
- Tính bao đóng của các tập thuộc tính
- Tìm khóa của LĐQH
- Thu gọn LĐQH
- Các dạng biểu diễn khóa của LĐQH
Cấu trúc của luận văn
Cấu trúc của luận văn gồm:
- Phần mở đầu
- Chương 1, 2 và 3
- Phần kết luận và đề nghị
- Tài liệu tham khảo
Nội dung chính của luận văn
Chương 1 giới thiệu các kiến thức cơ bản về CSDL, các định nghĩa về
quan hệ, thuộc tính, bộ. Phụ thuộc hàm cũng như thuật toán tính bao đóng của
các tập thuộc tính, tìm khóa của LĐQH.
Chương 2 trình bày một kỹ thuật thu gọn LĐQH hay còn gọi là phép dịch
chuyển LĐQH. Bản chất của kỹ thuật này là loại bỏ khỏi LĐQH ban đầu một số
thuộc tính không quan trọng theo nghĩa chúng không làm ảnh hưởng đến kết quả
tính toán các đối tượng đang được quan tâm như bao đóng, khóa, phản khóa Và
sau khi loại bỏ một số thuộc tính thì một số PTH sẽ được loại bỏ theo vì chúng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



4
trở thành phụ thuộc hàm tầm thường (có vế trái chứa vế phải) hoặc mang thông
tin tiền định.
Chương 3 là chương mang nội dung trọng tâm của đề tài, chương này
trình bày về hai dạng biểu diễn khóa trong LĐQH. Dạng thứ nhất ta đi thu gọn
LĐQH theo thuộc tính không khóa và giao các khóa. Dạng thứ hai ta đi tìm tập
vế trái cực tiểu để từ đó có quyết định thu gọn LĐQH theo tập vế trái cực tiểu
nào. Phần cuối cùng của chương 3 là cài đặt chương trình mô phỏng Các dạng
biểu diễn khóa trong LĐQH.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


5
Chƣơng I: CÁC KIẾN THỨC CƠ BẢN VỀ CƠ SỞ DỮ LIỆU
1.1 Khái quát về cơ sở dữ liệu quan hệ
Cơ sở dữ liệu(CSDL) là một trong những lĩnh vực được tập trung nghiên
cứu và phát triển của công nghệ thông tin. Trong quản lý các cơ sở dữ liệu
(CSDL), phụ thuộc dữ liệu được hiểu là những mệnh đề mô tả các ràng buộc mà
dữ liệu phải đáp ứng trong thực tế. Nhờ có những mô tả phụ thuộc này mà hệ
quản trị cơ sở dữ liệu có thể quản lý tốt được chất lượng dữ liệu. Lý thuyết về
các phụ thuộc dữ liệu đóng vai trò quan trọng trong việc mô tả thế giới thực,
phản ánh ngữ nghĩa dữ liệu trong cơ sở dữ liệu. Phụ thuộc dữ liệu được Codd,
tác giả của mô hình dữ liệu quan hệ đặt nền móng từ những năm 70 với khái
niệm phụ thuộc hàm. Một cách giải thích rất trực quan cho bài toán quản lý được
tổ chức theo hàng và cột, trong đó cột được biểu thị thuộc tính thông tin cần
quản lý của một đối tượng, thuộc tính này được gọi là tiêu đề của cột và các giá
trị trong cột đó có cùng một kiểu. Tập hợp tất cả các giá trị thuộc tính trên một
hàng( gọi là bộ) là dữ liệu về đối tượng đang quản lý.
Định nghĩa về Quan hệ, bộ, thuộc tính: Cho tập hữu hạn U= {A

1
, A
2
, ,A
n
}
khác rỗng (n>=1). Các phần tử của U được gọi là thuộc tính. Ứng với mỗi thuộc
tính A
i

U (i=1,2, ,n) có một tập chứa ít nhất 2 phần tử dom(A
i
) được gọi là
miền giá trị của A
i
, gọi D là tập hợp các dom(A
i
) ( i = 1,2, ,n). Một quan hệ R
với các thuộc tính U, kí hiệu R(U) là một ánh xạ t: U

D sao cho với mỗi
A
i

U ta có t(A
i
)

dom(A
i

). Mỗi ánh xạ được gọi là một bộ của quan hệ R
Mỗi quan hệ R có hình ảnh là một bảng, mỗi cột ứng với một thuộc tính,
mỗi dòng là một bộ.
Ta kí hiệu t(U) là một bộ trên tập thuộc tính.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


6
Một quan hệ rỗng là một quan hệ không chứa bộ nào. Vì mỗi quan hệ là
một tập các bộ, nên trong quan hệ không có 2 bộ trùng lặp.
Các kí hiệu và một số quy ƣớc
Các thuộc tính được kí hiệu bằng các chữ LATINH HOA đầu bảng chữ A,
B, C, D
Tập thuộc tính được kí hiệu bằng các chữ LATINH HOA cuối bảng chữ X,
Y, Z,
Các phần tử trong một tập thường được liệt kê như một xâu kí tự, không
có các ký hiệu biểu diễn tập, chẳng hạn ta viết X= ABC thay vì viết X= {A, B, C}.
XY biểu diễn hợp của hai tập X và Y, X

Y. Phép trừ hai tập X và Y được kí hiệu
là X\Y, hoặc X-Y.
Một phân hoạch của tập M( thành các tập con rời nhau và có hợp là M),
X
1
, X
2, ,
X
m
được kí hiệu là
M= X

1
| X
2,
|

|X
m

với ý nghĩa M= X
1

X
2



X
m
và X
i


X
j
= Ø , 1<=i, j>=m, i

j
Các bộ được biểu diễn bằng các chữ Latin thường có thể kèm chỉ số, thí
dụ t, u, v, i
1


Với mỗi bộ t trong quan hệ R(U) và mỗi tập con các thuộc tính X

U ta
kí hiệu t[X] hoặc t.X là hạn chế của bộ (ánh xạ) t trên tập thuộc tính X. Ta chấp
nhận quy ước tự nhiên là miền giá trị của mọi thuộc tính chứa ít nhất hai phần tử.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


7
Trong trường hợp một miền trị của thuộc tính chỉ chứa một giá trị duy nhất thì ta
có thể loại bỏ cột tương ứng của thuộc tính đó trong quan hệ.
Ta chấp nhận quy ước sau đây: Mọi cặp bộ t và v trong mọi quan hệ giống
nhau trên miền rỗng các thuộc tính
t.Ø = v.Ø
Hàm Artr(R) cho tập thuộc tính của quan hệ R
Hàm Card(R) cho lực lượng (số bội) của quan hệ R
Trong trường hợp tập thuộc tính U đã cho trước ta có thể viết đơn giản R
thay cho R(U).
Hai quan hệ R và S được gọi là tương thích nếu chúng có cùng một tập
thuộc tính, tức là nếu Artr(U) = Artr(S).
1.2. Lƣợc đồ quan hệ
Lược đồ quan hệ (LĐQH) là một cặp p = (U, F) trong đó U là tập hữu hạn
các thuộc tính, F là các PTH trên U.
Quy ước : Trong trường hợp không chỉ rõ tập PTH F, ta xem LĐQH chỉ là
một tập hữu hạn các thuộc tính U.
1.3. Phụ thuộc hàm
1.3.1 Định nghĩa phụ thuộc hàm
R (X
Y

)


u,v

R: u.X = v.X

u.Y = v.Y
Cho quan hệ R(U) và tập PTH F trên tập thuộc tính U. Ta nói quan hệ R
thỏa tập PTH F, ký hiệu R(F), nếu R thỏa mọi PTH trong F
tức là R(F)


f

F: R(f)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


8
1.3.2. Hệ tiên đề Armstrong
Cho quan hệ R(U). Giả sử X,Y,Z,W

U
F1. Tính phản xạ:
Nếu X

Y thì X
Y



F
+

F2. Tính gia tăng:
Nếu X

Y

F
+
thì XZ

YZ

F
+

F3, Tính bắc cầu:
Nếu X

Y

F
+
thì Y

Z

F

+
thì X

Z

F
+

Chú ý: Các PTH có vế trái chứa vế phải như, mô tả trong F1 được gọi là
tầm thường. Các PTH tầm thường thỏa trong mọi quan hệ.
1.3.3. Bao đóng của tập PTH
Cho tập PTH F trên tập thuộc tính U. Bao đóng của F, ký hiệu F
+
là tập
nhỏ nhất các PTH trên U chứa F và thỏa mãn các tính chất F1 – F3 của hệ tiên
đề Armstrong.
1.4. Bao đóng của tập thuộc tính
Cho tập hợp PTH F trên tập thuộc tính U và một tập con các thuộc tính X
trong U. Bao đóng của tập thuộc tính X, kí hiệu X
+
, là tập hợp các thuộc tính A


U mà PTH X

A có thể được suy diễn logic từ F nhờ hệ tiên đề Armstrong :
X
+
= {A


U│ X

A

F
+
}
 Thuật toán tìm bao đóng của tập thuộc tính
Cho tập PTH F trên tập thuộc tính U và một tập con các thuộc tính X trong
U. Để xác định bao đóng của tập thuộc tính X, kí hiệu X
+
ta xuất phát từ tập X và
bổ xung dần cho X các thuộc tính thuộc vế phải của các PTH L

R

f thỏa
điều kiện L

X. Thuật toán sẽ dừng khi không thể bổ xung thuộc tính nào cho
X.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


9
Algorithm Closure
Format : Closure (X, F)
Input : - Tập thuộc tính X

U

- Tập PTH F
Output: Y= X
+
= {A

U │ X

A

F
+
}
Method
Y: = X;
repeat
Z: = Y;
For each FD L

R in F do
If L

Y then Y: = Y

R;
Endif;
Endfor;
Until Y: = Z;
Return Y;
End Closure
 Đánh giá độ phức tạp

Giả sử n là số lượng các thuộc tính trong U, m là số lượng các PTH trong F
thì thuật toán trên có độ phức tạp đa thức bậc hai theo chiều dài dữ liệu O(mn
2
).
 Một số tính chất của bao đóng
Cho LĐQH a = (U,F). Khi đó

X,Y

U ta có:
1. Tính phản xạ : X

X
+

2. Tính đồng biến : X

Y, X
+

Y
+
3. Tính lũy đẳng : (X
+
)
+
= X
+
4. (XY)
+



X
+
Y
+


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


10
5. (X
+
Y
+
) = (XY
+
)
+
= (XY)
+

6. X

Y

F
+


Y

X
+
7. X

X
+
và X
+

X
8. X
+
= Y
+


X

Y và Y

X
 Bài toán thành viên
Đây là bài toán xác định xem một PTH có thuộc bao đóng của tập PTH
không ? thuật toán giải quyết vấn đề này dựa trên một định lý cơ bản, thể hiện
mối liên quan giưa bao đóng của tập thuộc tính và bao đóng của tập PTH.
Bài toán : Cho tập thuộc tính U, một tập các PTH F trên U và một PTH f : X

Y trên U. Hỏi rằng f


F
+
(f có là thành viên của F
+
) hay không.
X

Y

F
+

Y

X
+
Ý tưởng thuật toán : Kiểm tra X

Y

F
+
không?
- Tính X
+

- Kiểm tra Y

X

+
không ?
Nếu Y

X
+ thì
X

Y

F
+,
ngược lại thì X

Y

F
+

 Thuật toán cho bài toán thành viên
Algorithm IsMember
Format : IsMember (f,F)
Input : - TậpPTH F trên U
- PTH f trên U
Output: - True nếu f

F
+,

- False nếu f


F
+
Method
IsMember: = (RS(f)

Closure (LS (f),F)
End IsMember.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


11

1.5. Khóa của lƣợc đồ quan hệ
Cho LĐQH p = (U,F), tập thuộc tính K

U được gọi là khóa của LĐQH p
nếu:
i) K
+
= U
ii)

A

K: (K\{A})
+


U

Hai điều kiện trên tương đương với
(i) K

U
(ii)

A

K: (K\{A}) !

U
Nếu K thỏa mãn điều kiện (i) thì k được gọi là một siêu khóa.
Thuộc tính A

U được gọi là thuộc tính khóa (nguyên thủy hoặc cơ sở)
nếu A có mặt trong một khóa nào đấy. A được gọi là thuộc tính không khóa (phi
nguyên thủy hoặc thứ cấp ) nếu A không có mặt trong bất kì khóa nào. Ký hiệu
U
K
là tập các thuộc tính khóa của LĐQH p và U
0
là tập các thuộc tính không
khóa của p.
Chú ý : Trong một số tài liệu, thuật ngữ khóa được dùng theo nghĩa siêu
khóa và thuật ngữ khóa tối tiểu được dùng theo nghĩa khóa.
 Thuật toán tìm khóa của LĐQH
Tư tưởng: Xuất phát từ một số siêu khóa K tùy ý của LĐQH, duyệt lần lượt
các thuộc tính A của K, nếu bất biến (K\{A})
+
= U được bảo toàn thì A loại khỏi

K. Có thể thay kiểm tra (K\{A})
+
= U bằng kiểm tra A

(K\{A})
+
.
Algorithm Key
Function: Tìm một khóa của LĐQH
Fomat: Key (U,F)
Input: - Tập thuộc tính U
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


12
- Tập PTH F
Output: Khóa K

U thỏa
(i) K
+
= U
(ii)

A

K : (K\{A})
+



U
Method
K : = U;
For each attribute A in U do
If A

(K\{A})
+
then
K : = K \ {A}
Endif;
Endfor;
Return K;
End key.
Độ phức tạp tính toán: Thuật toán duyệt n thuộc tính, với mỗi thuộc tính
thực hiện phép lấy bao đóng với mức độ phức tạp n
2
m. Tổng hợp lại, độ phức tạp
tính toán của thuật toán là O(n
3
m).
Ví dụ 1: Cho LĐQH p = (U,F), trong đó:
U = {A, B, C, D, E,G, H}
F = { B

AC
HD

AE
AC


BE
E

H
A

D
G

E
G

B
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


13
}
Hãy tìm một khóa của p.
Dễ thấy, LĐQH p có khóa K = G, vì thỏa mãn hai điều kiện:
(i) K
+
= G
+
= ABCDEGH =U
(ii) G tối tiểu (theo nghĩa (K\{G})
+



U).
Ví dụ 2: Cho LĐQH p = (U,F), trong đó:
U = {A, B, C, D, E}
F = { D

E
AB

CD
C

AB}
Hãy tìm một khóa của p.
Dễ thấy rằng, LĐQH p có khóa K = C, vì thỏa mãn hai điều kiện:
(i) K
+
= C
+
= ABCD =U
(ii) C tối tiểu (theo nghĩa (K\{C})
+


U).
Ví dụ 3: Cho p = (U,F) trong đó: U = ABCDE
F = { C

B
DE


AC
A

DE}
Tìm khóa của LĐQH đã cho ?
Ta thấy, LĐQH P có khóa K = A, vì thỏa mãn hai điều kiện :
(i) K
+
= A
+
= ABCD =U
(ii) A tối tiểu (theo nghĩa (K\{A})
+


U).
Mặt khác, tương tự như trên ta cũng thấy rằng LĐQH p còn khóa thứ 2, đó
là K = DE.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


14
Để trả lời cho câu hỏi: Lược đồ có trên một khóa hay không, ta đi tìm giao
các khóa.
1.5.1. Cách tính giao các khóa
Những phần tử không xuất hiện ở vế phải thì nó có mặt ở mọi khóa, đó chính là
giao các khóa.
Vậy giao các khóa chính là những thuộc tính không xuất hiện ở vế phải.
Giả sử M là giao các khóa. Nếu m
+

= U thì lược đồ chỉ có đúng một khóa,
Nếu M
+


U thì lược đồ có trên 1 khóa.
Gọi M là giao các khóa khi và chỉ khi: M
+
= U.
Cho LĐQH p = (U,F) với n thuộc tính trong U và m PTH trong F. Gọi M là
giao các khóa của p. 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: M = U \

FRL
LR

)\(
.
 Thuật toán xác định giao các khóa trong LĐQH
Algorithm KeyIntersec
Fomat: KeyIntersec (U,F)
Input: - Tập thuộc tính U
- Tập PTH F
Output: - Giao các khóa M = U \

FRL
LR

)\(


Method
M : = U;
For each FD L

R in F do
M : = M \ (R\L) ;
Endfor;
Return M;
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


15
End KeyIntersec.

1.5.2. Thuật toán tìm 2 khóa của LĐQH
Bước 1: Tính giao các khóa
Bước 2: Lấy M
+
. Nếu M
+
= U

Lược đồ có 1 khóa M là duy nhất
M
+


U

Lược đồ có trên 1 khóa

Gọi thuật toán Key – Tìm khóa 1
Gọi thuật toán Key 2 – Tìm khóa 2
Tư tưởng: Xuất phát từ tập thuộc tính M = U, trước hết duyệt các thuộc tính
A của K, nếu bất biến (M\{A})
+
= U được bảo toàn thì loại A khỏi M. Sau đó
duyệt tương tự với các thuộc tính trong U\K.
Algorithm Key 2
Function : tìm một khóa thứ hai của LĐQH
Fomat: Key 2 (U,F)
Input: - Tập thuộc tính U
- Tập PTH F
- Khóa K

U
Output: Khóa thứ 2 , nếu có, M

U thỏa
(i) M
+
= U
(ii)

A

M : (M\{A})
+


U

Nếu không có khóa thứ 2: Ø
Method
M : = U;
For each attribute A in U \ K do
If A

(M\{A})
+
then
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×