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 ≠ Khác Với mọi LSF Tập các vế trái của phụ thuộc hàm F RSF Tập các vế phải của phụ thuộ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2VÀ 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
Trang 4LỜ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
Trang 5LỜ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 đủ
Trang 6MỤ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
Trang 72.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
Trang 8DANH 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
≠ 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
Trang 9DANH 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
Trang 11MỞ ĐẦ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(XU) 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ề
Trang 12biể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
Trang 133 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
Trang 14trở 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
Trang 15Chươ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= {A1, A2, ,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 AiU (i=1,2, ,n) có một tập chứa ít nhất 2 phần tử dom(Ai) được gọi là
miền giá trị của Ai, gọi D là tập hợp các dom(Ai) ( 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
AiU ta có t(Ai) dom(Ai) 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
Trang 16Mộ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 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),
X1, X2, , X m được kí hiệu là
M= X1| X2,| |X m
với ý nghĩa M= X1 X2 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, i1
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ử
Trang 17Trong 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)
R (XY) 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)
Trang 181.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
Trang 205 (X+ Y+) = (XY+)+ = (XY)+
6 X Y F+ Y X+
7 X X+ và X+ X
8 X+ = Y+ X Y và YX
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
Trang 211.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) KU
(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à U0 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
Trang 22Độ 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 n2
Trang 23}
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
Trang 24Để 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 \
F R L
L R
L R
)
\ (
Trang 25End 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)
Trang 26c p có còn khóa nào khác ngoài K1 không? Vì sao?
d Xác định các tập thuộc tính không khóa U0 của p
Giải
a Xác định phần giao của các khóa trong p
Trang 27Theo công thức, ta có: M = U \
F R L
L R
)
\ ( = ABCDE – ABDE = C
Vậy khóa K1 của p là AC
c p còn khóa khác ngoài khóa K1 vì:
M+= C+ = C U nên lược đồ có hơn một khóa
Dễ thấy rằng, ngoài khóa K1, lược đồ còn có khóa K2 = BC vì thỏa mãn hai
điều kiện sau:
(i) K+ = BC+ = ABCDE = U (ii) BC tối tiểu (theo nghĩa (K\{BC})+ U)
Tương tự, ta còn tìm được khóa thứ 3 của lược đồ quan hệ p như sau: K3 =
CD
d Xác định tập các thuộc tính không khóa U0 của p
- Thuộc tính khóa là thuộc tính có mặt trong mọi khóa, ký hiệu là Uk
- Thuộc tính không khóa là thuộc tính không có mặt trong bất cứ khóa nào,
ký hiệu là U0
Ta có: U = ABCD, U = E
Trang 28Ví dụ 2: Cho LĐQH p = (U, F) trong đó: U = ABC
F = {AB C
CA}
a Hãy xác định phần giao của các khóa trong p
b Tìm một khóa K1 của p
c p có còn khóa nào khác ngoài K1 không? Vì sao?
d Xác định các tập thuộc tính không khóa U 0 của p
Giải
a Xác định phần giao của các khóa trong p
Theo công thức, ta có: M = U \
F R L
L R
)
\ ( = ABC – CA = B
c p còn khóa khác ngoài khóa K1 vì:
M+= B+ = B U nên lược đồ có hơn một khóa
Dễ thấy rằng, ngoài khóa K1, lược đồ còn có khóa K2 = AB vì thỏa mãn hai
điều kiện sau:
(i) K+ = AB+ = ABC = U (ii) AB tối tiểu (theo nghĩa (K\{AB})+ U)
d Xác định tập các thuộc tính không khóa U của p
Trang 29- Thuộc tính khóa là thuộc tính có mặt trong mọi khóa, ký hiệu là Uk
- Thuộc tính không khóa là thuộc tính không có mặt trong bất cứ khóa nào,
c p có còn khóa nào khác ngoài K1 không? Vì sao?
d Xác định các tập thuộc tính không khóa U0 của p
Giải
a Xác định phần giao của các khóa trong p
Theo công thức, ta có: M = U \
F R L
L R
)
\ ( = ABCD – ABC = D
c p còn khóa khác ngoài khóa K1 vì:
M+= D+ = DC U nên lược đồ có hơn một khóa
Trang 30Dễ thấy rằng, ngoài khóa K1, lược đồ còn có khóa K2 = AD vì thỏa mãn hai
điều kiện sau:
(i) K+ = AD+ = ABCD = U (ii) AD tối tiểu (theo nghĩa (K\{AD})+ U)
d Xác định tập các thuộc tính không khóa U0 của p
- Thuộc tính khóa là thuộc tính có mặt trong mọi khóa, ký hiệu là Uk
- Thuộc tính không khóa là thuộc tính không có mặt trong bất cứ khóa nào,
ký hiệu là U0
Ta có: Uk = ABD, U0 = C
Trang 31CHƯƠNG II : THU GỌN LƯỢC ĐỒ QUAN HỆ
2.1 Định nghĩa kỹ thuật thu gọn LĐQH
Cho hai LĐQH p = (U, F) , q = (V, G) và tập thuộc tính M U Ta nói LĐQH q nhận được từ LĐQH p qua phép thu gọn theo tập thuộc tính M, nếu sau khi loại bỏ mọi xuất hiện của các thuộc tính của M trong lược đồ p thì thu được lược đồ q
Nếu sau khi thực hiện phép thu gọn theo M cho LĐQH p ta thu được LĐQH
q thì ta viết q = p\M
Thao tác loại bỏ M được thực hiện trên lược đồ p = (U, F) để thu được lược
đồ q = (V, G) như sau :
1 Tính V = U\M có độ phức tạp O(n) với n là số lượng thuộc tính trong U
2 Mỗi PTH X Y trong F ta tạo ra PTH X\M Y\M cho G Thủ tục này
ký hiệu là G = F\M Tính F\M đòi hỏi độ phức tạp O(m,n) với m là số lượng PTH trong F
Như vậy q = P\M = (U\M, F\M) được thực hiện với độ phức tạp O (m, n), tức là tuyến tính theo chiều dài dữ liệu vào (của LĐQH p)
Sau khi thực hiện thủ tục G = F\M nếu :
- G chứa PTH tầm thường (dạng X Y, X Y) thì ta loại các PTH này khỏi G
- G chứa các PTH trùng lặp thì ta bớt các PTH này
Ví dụ 1: Cho LĐQH p = (U, F) ; U = abcdefg
F = {abc de, bcd ag,
de fc,
ce fg}
Trang 32e Ø, (loại)} = {abde, bda}
Ta cũng dễ nhận thấy kỹ thuật thu gọn LĐQH thỏa tính hợp thành và giao
hoán, cụ thể nếu p là LĐQH trên tập thuộc tính U và X, Y là hai tập con rời nhau của U thì
p\XY = (p\X)\Y = (p\Y)\X
2.2 Thuật toán thu gọn LĐQH
G : = G{L\MR\M};
Endfor;
Trang 33Với M = ADH, hãy xác định q = (V,G) = p\M?
Ta có: V = U\ADH = ABCDEH\ADH = BCE,
p\XY = (p\X)\Y = (p\Y)\X
Ví dụ 2 : Cho LĐQH p = (U, F), U = ABCDEH
F = {AED,
BCE,
Trang 34EBC}
DỂ TÌM TẬP KHÓA Key (p) của lược đồ p chúng ta xây dựng một lược đồ
q bằng cách xóa khỏi lược đồ p các thuộc tính A, D, H
Ta thu gọn lược đồ q = (V,G) trong đó :
V = U\ADH = ABCDEH \ ADH = BCE,
Trang 35Ta dễ dàng suy ra Key(q) = Ø
Để thu được Key (p), ta chỉ cần thêm vào Key (q) các thuộc tính vừa thu gọn ABC Ta được Key (p) = ABC
Ví dụ 4: Cho LĐQH p = (U,F), Với tập thuộc tính U = ABCDEH
Tập PTH F = {ABC, CA, BCD, ACDB, DEH, BEC,
Ta tìm được khóa của lược đồ q: Key(q) = {B,D,E,H} Để thu được Key (p),
ta thêm thuộc tính C vào khóa của q
Ta được Key (p) = {BC, DC, EC, HC}
2.4 Bổ đề về siêu khóa trong phép thu gọn LĐQH
Cho hai LĐQH p = (U,F), q = (V,G) và XU Biết q= p\X Khi đó :
i) Nếu M là siêu khóa của p thì M\X là siêu khóa của q
ii)Nếu Z là siêu khóa của q thì ZM là siêu khóa của p Nói riêng nếu
XU 0 và Z là siêu khóa của q thì Z là siêu khóa của p
Chứng minh
i) Giả sử M là siêu khóa của a Đặt P =M\X, ta có XP = Ø và MXP
Vì M là siêu khóa của p, vận dụng tính đồng biến của bao đóng và công thức biểu diễn bao đóng ta có, U = XV = M+
F (XP)+F = XP+F\X Từ đẳng thức