MỞ ĐẦU 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, nhằm giải quyết các bài toán quản lý, tìm kiếm thông tin trong nhữn
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 3LỜI CAM ĐOAN
Học viên xin cam đoan đây là công trình tổng hợp và nghiên cứu của riêng học viên Các kết quả nêu trong luận văn là trung thực và rõ ràng được tìm hiểu trong cac tài liệu tham khảo
Xác nhận của giáo viên hướng dẫn
GS.TS Vũ Đức Thi
Học viên
Hà Mỹ Trinh
Trang 4MỤC LỤC
CHƯƠNG 1: KHÁI NIỆM CHUNG 10
1.1 Một số ký hiệu và quy ước 10
1.2 Quan hệ và một số khái niệm cơ bản 13
1.2.1 Quan hệ 13
1.2.2 Cơ sở dữ liệu quan hệ 15
1.2.3 Đại số quan hệ 15
1.3 Phụ thuộc hàm 15
1.3.1 Định nghĩa 15
1.3.2 Hệ tiên đề Arsmtrong 16
1.3.3 Bao đóng của tập phụ thuộc hàm và tập thuộc tính 16
1.3.4 Khóa tối tiểu của sơ đồ quan hệ và quan hệ 19
1.3.5 Các dạng chuẩn 20
1.3.6 Hệ Sperner 22
1.3.7 Các dạng tương đương của họ phụ thuộc hàm 28
CHƯƠNG 2: MỘT SỐ THUẬT TOÁN SIÊU ĐỒ THỊ VÀ TẬP TRÙ MẬT 30
2.1 Siêu đồ thị 30
2.1.1 Định nghĩa 30
2.1.2 Siêu đồ thị transversal 33
2.2 Tập độc lập 37
2.3 Tập trù mật 39
Trang 52.3.1 Tập trù mật của quan hệ 39
2.3.2 Tập trù mật của sơ đồ quan hệ 42
2.4 Khóa tối tiểu đối với phụ thuộc hàm 46
CHƯƠNG 3: ỨNG DỤNG TÌM KHÓA TỐI THIỂU TRONG MỘT FILE DỮ LIỆU 53
3.1 Mô tả bài toán 53
3.2 Cài đặt 53
3.2.1 Yêu cầu hệ thống 53
3.2.2 Cấu trúc các lớp chương trình 54
3.3Thử nghiệm chương trình 54
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
Trang 6DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Trong suốt luận văn, học viên sử dụng các quy ƣớc về ký hiệu và chữ viết tắt sau:
- s = (U,F): Sơ đồ quan hệ, với U là tập các thuộc tính và F là tập các phụ thuộc hàm
- R: Quan hệ trên tập thuộc tính
- FR: Tập tất cả các phụ thuộc hàm đúng trên quan hệ R
- F+: Bao đóng của tập phụ thuộc hàm
- :Tập tất cả các khóa tối tiểu của sơ đồ quan hệ s
- Trs(H): Họ tất cả các transversal của siêu đồ thị H
- Tr(H): Siêu đồ thị transversal của siêu đồ thị H
- Is: Họ các tập độc lập tối thiểu của sơ đồ quan hệ s
- Ls: Họ tất cả các bao đóng của tập thuộc tính của sơ đồ quan hệ s
- CSDL: Cơ sở dữ liệu
- Relation scheme: Sơ đồ quan hệ
- Strong scheme: Sơ đồ mạnh
- Minimal key: Khóa tối tiểu
Trang 7- Antikey: Phản khóa
- Minimum cover: Phủ tối tiểu
- Transversal hypergraph: Siêu đồ thị Transversal
- Dense families: Họ trù mật
- Simple hypergraph: Siêu đồ thị đơn
Trang 8MỞ ĐẦU
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, nhằm giải quyết các bài toán quản lý, tìm kiếm thông tin trong những 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 điện tử Có thể nói E F Codd là người đầu tiên đề xuất mô hình
dữ liệu quan hệ cho CSDL với công trình “A relational model for large shared data banks (1970)” và đã trở thành kinh điển Đây là mô hình được xây dựng trên cơ sở
lý thuyết toán học về các quan hệ, bao gồm các thực thể (đối tượng) và các mối quan hệ qua lại giữa chứng Chính điều này đã tạo cơ sở toán học với cấu trúc hoàn chỉnh làm nền tảng cho các vấn đề nghiên cứu lý thuyết về CSDL
Người ta xem CSDL quan hệ như là một tập hợp hữu hạn các quan hệ Trong đó mỗi quan hệ có thể được hình dung một cách trực quan như là một bảng chữ nhật gồm có các hàng và các cột Mỗi hàng là một bản ghi (record) lưu trữ các dữ liệu Mỗi cột là một thuộc tính
Trong lý thuyết thiết kế CSDL quan hệ, ràng buộc dữ liệu hay còn gọi là phụ thuộc dữ liệu có một ý nghĩa quan trọng trong việc đảm bảo tính nhất quán của dữ liệu Nghiên cứu ràng buộc dữ liệu là một vấn đề cần thiết Ý nghĩa của việc nêu ra khái niệm ràng buộc dữ liệu là nhằm đảm bảo cho các dữ liệu trong CSDL không mâu thuẫn, phản ánh đúng thế giới hiện thực Các nhà nghiên cứu đã đưa ra nhiều loại ràng buộc dữ liệu khác nhau để đáp ứng phù hợp với thực tế phong phú và đa dạng Loại dữ liệu ràng buộc đầu tiên là phụ thuộc hàm được giới thiệu bởi E F Codd vào năm 1970 G Czédli [10], [11] (1980)đã xem xét đến ba loại ràng buộc
dữ liệu khác nhau là: phụ thuộc đối ngẫu , phụ thuộc mạnh và phụ thuộc yếu Tiếp sau đó các tác giả J Demetrovics và G Gyepesi (1983), [1], [17] cũng tiếp tục nghiên cứu các ràng buộc dữ liệu này Với ba loại ràng buộc dữ liệu này, người sử dụng đôi khi có thể lấy được các thông tin thực mong muốn, ngay cả khi không tồn tại một phụ thuộc hàm nào giữa các tập thuộc tính và chỉ cần biết ít nhất một giá trị của các thuộc tính, chứ không phải tập toàn bộ các giá trị của thuộc tính của vế trái
Trang 9Hơn thế nữa, đôi khi việc xử lý và tìm kiếm thông tin được tiến hành nhanh chóng hơn vì chỉ cần phải tìm kiếm một phần của quan hệ mà thôi
Mục tiêu của luận văn là tiếp tục nghiên cứu về phụ thuộc hàm trên cơ sở siêu
đồ thị và tập trù mật Luận văn bao gồm 3 chương:
Chương 1: Khái niệm chung: Nhắc lại một số khái niệm cơ bản nhất của toán học Kế đến là một số khái niệm quan hệ và một số khái niệm cơ bản liên quan khác Tập trung giới thiệu về phụ thuộc hàm
Chương 2: Một số thuật toán siêu đồ thì và tập trù mật: Lý thuyết siêu đồ thị là một trong những lĩnh vực quan trọng của toán rời rạc có nhiều ứng dụng có ý nghĩa đối với nhiều lĩnh vực trong tin học Một siêu đồ thị Hchính là mở rộng của một đồ thị trên một tập hữu hạn các đỉnh U, với mỗi siêu cạnh Hi của H là một tập con khác rỗng của U Người ta đã chứng minh rằng lý thuyết siêu đồ thị được xem như
là một công cụ thích hợp để giải quyết các bài toán tổ hợp trong mô hình dữ liệu quan hệ Đặc biệt là khóa tối tiểu và phụ thuộc hàm
Luận văn nghiên cứu và tìm hiểu một số tính chất cũng như ứng dụng của họ trù mật Phát biểu và chứng minh một điều kiện cần và đủ để một họ bất kỳ trù mật trong quan hệ
Chương 3: Luận văn nghiên cứu một số thuật toán tìm khóa tối tiểu trong một quan hệ dựa trên cơ sở siêu đồ thị và tập trù mật Từ đó phát triển thành một chương trình tìm khóa tối tiểu trong một file dữ liệu
Trang 10CHƯƠNG 1: KHÁI NIỆM CHUNG
Chương này, đầu tiên nhắc lại một số khái niện của toán học cần thiết cho luận văn Kế đến giới thiệu sơ lược khái niệm quan hệ, cơ sở dữ liệu quan hệ và đại số quan hệ Cuối cùng tập trung giới thiệu khái niệm phụ thuộc hàm
Giả sử chúng ta cũng đã quen thuộc với các ký hiệu sau: thuộc (ϵ ), xây dựng tập ({ - |- }), tập rỗng ( ), tập hợp con ( ), tập hợp con thật sự ( ), hợp ( ), giao ( ), hiệu (-), n – bộ xắp thứ tự ((x1, …, xn)), tích Descartes (X1 × … × Xn) lượng từ phổ dụng ( ) và lượng từ tồn tại ( )
Hợp của một họ các tập hợp S, ký hiệu S, được định nghĩa là
Giao của một họ các tập hợp S, ký hiệu được định nghĩa là
Đặc biệt người ta còn hay xét đến các tập hợp con của một tập hợp cố định U nào đó Khi đó nếu X U thì U – X được gọi là phần bù của X đối với U Trong trường hợp này thay cho ký hiệu U – X ta viết là X, và U được gọi là tập hợp vũ trụ Tập lũy thừa của U, ký hiệu P (U) được định nghĩa là tập hợp gồm tất cả các tập hợp con của U, tức là
Trang 11P (U) = { X | X U}
Lực lượng của tập U ký hiệu là |U| Đặc biệt, tập hợp rỗng có lực lượng U Một quan hệ n ngôi R trên tập hợp U là một tập con tích Descretes Un Đặc biệt, nếu n= 2 thì R được gọi là quan hệ hai ngôi Khi đó thay vì viết (a, b) R người ta hay viết là a R b
Quan hệ hai ngôi R trên tập hợp U được gọi là
(1) Phản xạ nếu a R a với mọi a U
(2) Đối xứng nếu với mọi a, b U, a R b kéo theo b R a
(3) Phản đối xứng nếu với mọi a,b U, a R b và b R a kéo theo a = b (4) Bắc cầu nếu với mọi a, b, c U, a R b và b R c kéo theo a R c
Quan hệ hai ngôi R trên tập hợp U được gọi là quan hệ tương đương nếu quan
hệ R là phản xạ, đối xứng và bắc cầu Nếu R là quan hệ tương đương trên tập hợp U thì khi đó với mọi a U người ta gọi tập hợp
Trang 12Hai phần tử x, y U gọi là so sánh được đối với quan hệ thứ tự ≤ nếu x ≤ y hoặc y ≤ x Trường hợp nếu không tồn tại x ≤ y và y ≤ x thì người ta nói x và y không so sánh theo quan hệ thứ tự ≤
Tập hợp U được gọi là sắp thứ tự toàn phần (hay sắp thứ tự tuyến tính) bởi quan
hệ thứ tự ≤ nếu với phần tử bất kỳ của U đều so sánh được với nhau Khi đó, quan
hệ thứ tự ≤ trên U là quan hệ thứ tự toàn phần Trường hợp nếu tồn tại hai phần tử U không so sánh được với nhau theo quan hệ thứ tự ≤ thì người ta nói tập hợp U được sắp thứ tự bộ phận Khi đó quan hệ thứ tự ≤ cũng được gọi là quan hệ thứ tự bộ phận
Cho U là tập hợp được sắp thứ tự bởi quan hệ thứ tự ≤ và X U Phần tử a U được gọi là phần tử tối đại của U nếu
Phần tử b U được gọi là phần tử tối thiêu của U nếu
Phần tử c U được gọi là phần tử lớn nhất của U nếu
Phần tử d U được gọi là phần tử nhỏ nhất của U nếu
Phần tử m U được gọi là phần tử chặn trên của U nếu
Phần tử n U được gọi là phần tử chặn dưới của U nếu
Phần tử nhỏ nhất của tập hợp tất cả các phần tử chặn trên của X được gọi là cận trên của X trong U, ký hiệu Phần tử lớn nhất của tập hợp tất cả các phần tử chặn dưới của X được gọi là cận dưới của X trong U, ký hiệu
Trang 13Đối với một họ của các tập hợp bất kỳ S = {X1, , Xn}, chúng ta gọi
Ánh xạ được gọi là đơn ánh nếu với mọi x, x‟ X, x ≠ x‟ kéo theo f(x) ≠ f(x‟) Ánh xạ được gọi là toàn ánh nếu mọi y Y tồn tại ít nhất x
X sao cho f(x) = y.Ánh xạ được gọi là song ánh (hay một tương ứng 1 – 1) nếu f vừa là một đơn ánh vừa là toàn ánh
1.2 Quan hệ và một số khái niệm cơ bản
1.2.1 Quan hệ
Cho U = {a1, …, an} là một tập hữu hạn khác rỗng các thuộc tính Mỗi thuộc tính aicó một tập hợp khác rỗng dom(ai) Tập dom(ai) được gọi là miền giá trị của thuộc tính ai.Khi đó một tập con hữu hạn các tích Descretes dom(a1) × dom(a2) × …
× dom(an) được gọi là một quan hệ trên U, và ký hiệu R Rõ ràng quan hệ R trên U chính là một tập các bộ : R = {h1, …, hm} với
Trang 14Nhƣ vậy, một quan hệ R trên U có thể đƣợc biểu diễn bởi một bảng 2 chiều trong đó mỗi cột ứng với một thuộc tính và mỗi hàng ứng với một bộ
Nhƣ vậy, chúng ta có quan hệ gồm 4 bộ xác định trên tập thuộc tính SINHVIEN
= {STT, HOTEN, GIOITINH, NAMSINH, NGHANH, KHOA}
Trang 151.2.2 Cơ sở dữ liệu quan hệ
Một CSDL bao gồm một tập hữu hạn các quan hệ được gọi là cơ sở dữ liệu quan hệ Tuy nhiên, theo cách nhìn của người sử dụng thì một CSDL quan hệ là một tập hợp các bảng biến đổi theo thời gian
Một số thao tác trên CSDL quan hệ là: tạo lập những quan hệ mới, cập nhập dữ liệu và cuối cùng là khai thác thông tin từ CSDL quan hệ
Chức năng quan trọng nhất của CSDL là khai thác dữ liệu đã được lữu trữ một cách có hiệu quả
1.3 Phụ thuộc hàm
Khái niệm phụ thuộc hàm được đề xuất bởi E F Codd nêu ra và sau đó lần đầu tiên được đề hóa bởi W W Armstrong Đây là một loại ràng buộc dữ liệu xảy ra tự nhiên nhất giữa các tập thuộc tính Về cơ bản các hệ quản trị cơ sở dữ liệu lơn đều
sử dụng ràng buộc này
1.3.1 Định nghĩa
Cho U là tập hữu hạn khác rỗng các thuộc tính Một phụ thuộc hàm là một mệnh
đề có dạng X → Y, trong đó X, Y U Ta nói phụ thuộc hàm X → Y đúng trong quan hệR = {h1, …, hm} trên U nếu
Ta cũng nói R thỏa mãn phụ thuộc hàm X → Y
Gọi FR là họ tất cả các phụ thuộc hàm đúng trên quan hệ R
Trang 16Nhƣ vậy, ở ví dụ 1.2.1 ta có
{STT} → {HOTEN, GIOITINH, NAMSINH, NGHANH, KHOA}, nghĩa là thuộc tính STT xác định duy nhất các thuộc tính HOTEN, GIOITINH, NAMSINH, NGHANH, KHOA
họ phụ thuộc hàm không bị lệ thuộc vào các quan hệ (bảng) cụ thể Các công cụ của toán học đƣợc áp dụng để nghiên cứu làm sáng tỏ cấu trúc logic của mô hình dữ liệu quan hệ Đặc biệt, chúng ta sử dụng công cụ thuật toán để thiết kế các công đoạn xây dựng các hệ quản trị cơ sở dữ liệu
1.3.3 Bao đóng của tập phụ thuộc hàm và tập thuộc tính
Ta gọi sơ đồ quan hệ s là một cặp (U, F), trong đó U là tập hữu hạn khác rỗng các thuộc tính và F là tập các phụ thuộc hàm trên U
Trang 17Như vậy, khi cho một sơ đồ quan hệ có nghĩa chúng ta cho một đầu biểu gồm nhiều cột, nhưng không có dữ liệu và áp đặt các rằng buộc giữa các tập cột (bằng việc cho phụ thuộc hàm), nhưng các ràng buộc này phải tuân theo nghĩa của các cột Khi đó, bao đóng của một tập phụ thuộc hàm F, ký hiệu F+, được định nghĩa là tập tất cả các phụ thuộc hàm được dẫn xuất từ F bằng cách áp dụng các quy tắc từ (F1)-(F4)
W W Armstrong [12] (1974), đã chứng minh rằng Nếu s = (U, F) là một sơ đồ quan hệ thì luôn tồn tại một quan hệ R trên U sao cho Fr = F+ Một quan hệ R như vậy được gọi là quan hệ Armstrong của s Trong trường hợp này hiển nhiên các phụ thuộc hàm của s đều đúng trên R Khái niệm quan hệ Armstrong của s đã được R Fagin [22] (1980) nêu ra
Gọi X là tập con thuộc tính củaU Ký pháp X+ = Khi
đó X+
được gọi là bao đóng của tập thuộc tính X trên s
Bài toán xác định bao đóng X+ có độ phúc tạp là đa thức theo kích thước của s
Do đó, bài toán thành viên đối với sơ đồ quan hệ (nghĩa là cho sơ đồ quan hệ s = (U, F) và phụ thuộc hàm X → Y, kiểm tra xem X → Ycó phụ thuộc F+ hay không)
có thể được giải quyết bằng một thuật toán thời gian đa thức (D Maier [26] (1983),
C Berri và cộng sự [7] (1984))
Đối với quan hệ R trên tập thuộc tính U, ta đặt X+
Khi đó, X+
Rđược gọi là bao đóng của tập thuộc tính X trên R
Bài toán xác định bao đóng X+
R cũng có độ phúc tạp là đa thức theo kích thước của R (Vũ Đức Thi [29] (1986))
Lưu ý rằng, khi bàn về phụ thuộc hàm thì quan hệ R được xét là quan hệ của một sơ đồ quan hệ s = (U, F) nào đó, nghĩa là tập thuộc tính của R là U và R thỏa mãn mọi phụ thuộc của hàm F
Trang 18Dưới đây là một số tính chất cơ bản của bao đóng của tập thuộc tính trên sơ đồ quan hệ (trên quan hệ vẫn còn đúng) Ta có
Định lý 1.3.1 Giả sử s = (U, F) là một sơ đồ quan hệ X, Y U Khi đó
F được gọi tối thiểu nếu |F| ≤ |F‟| với mọi phủ F‟
* Thuật toán tìm bao đóng của tập thuộc tính
Trang 19• X (i+1)
=X (i) ∪Z ,∃(Y → Z ∈)F Y ⊆X (i)
, loại Y → Z )ra khỏi F
• Dừng khi X (i+1)
=X (i) hoặc khi X (i) =Q+Bước2: Kếtluận X F+
=X (i) :
1.3.4 Khóa tối tiểu của sơ đồ quan hệ và quan hệ
Cho s = (U, F) là một sơ đồ quan hệ, R là một quan hệ và K là một tập con thuộc tính của U Khi đó K được gọi là một khóa tối thiểu của s (tương ứng của R) nếu K thỏa các điều kiện sau:
(1) K → U F+ (tương ứng K → U FR),
(2) X K sao cho X → U F+ ( tương ứng X → U FR
Nếu K thỏa điều kiện (1) thì K được gọi là khóa của s (tương ứng của R)
Ký pháp KS (tương ứng KR) là tập tất cả khóa tối tiểu của s(tương ứng R)
Khóa tối tiểu của sơ đồ quan hệ và quan hệ đã được nhiều tác giả nghiên cứu như: [7], [12], [16], [19], [25], [27]
Đối với việc tìm một khóa tối tiểu của sơ đồ quan hệ và quan hệ, các thuật toán tương ứng của nó đều có độ phức tạp thời gian đa thức Biết rằng, theo [27] để tìm một khóa tối tiểu của sơ đồ quan hệ s = (U, F) chúng ta dịch chuyển sơ đồ quan hệ s
về sơ đồ quan hệ là sơ đồ quan hệ có số thuộc tính ít hơn và số phụ thuộc
+
và Khi đó, chúng ta chứng minh được một mối quan hệ tương đương khóa như sau:
Định lý 1.3.2 K là một khóa tối tiểu của nếu và chỉ nếu K (U – R) là một
khóa tối tiểu của s
Trang 20Rõ ràng, việc tìm một khóa tối tiểu trên sơ đồ quan hệ tốt hơn (bài toán này có
độ phức tạp là đa thức theo kích thước của ) trên sơ đồ quan hệ s ban đầu Những kết quả nghiên cứu về phép dịch chuyển sơ đồ quan hệ, có thể tìm thấy trong [14]
C T Yu và D T Johnson đã chứng tỏ rằng số các khóa tối thiểu của sơ đồ quan
hệ s = (U, F) được biểu diễn bằng hàm mũ theo |U|
Thuật toán xác định tập tất cả khóa tối tiểu của sơ đồ quan hệ cũng đã được nghiên cứu nhiều Trong đó, thuật toán của C L Lucchesivà cộng sự [25] (1978) là khá hiệu quả, dù rằng độ phức tạp của nó cũng là hàm mũ Thuật toán này được xem là thuật toán cơ bản để tìm tất cả khóa tối tiểu của một sơ đồ quan hệ
Đối với quan hệ R, bài toán tìm tập tất cả khóa tối tiểu cũng có độ phức tạp là làm mũ theo kích thước của R (J Demetrovics và Vũ Đức Thi [16] (1987), G Gottlob và L Libkin [24] (1990))
Thuộc tính a được gọi là thuộc tính cơ bản của sơ đồ quan hệ s (tương ứng của quan hệ R) nếu tồn tại một khóa tối tiểu (tương ứng ) để a là một thuộc tính của K Trong trường hợp ngược lại, a được gọi là thuộc tính không cơ bản Ký pháp Fn là tập hợp tất cả các thuộc tính không cơ bản
Thuộc tính cơ bản và thuộc tính không cơ bản đóng một vai trò quan trọng trong việc chuẩn hóa các sơ đồ quan hệ cũng như quan hệ
Bài toán xác định a là thuộc tính cơ bản hay không của một sơ đồ quan hệ là bài toán NP-đầy đủ (C L Lucchesivà S L Osborn [25] (1983)) Có nghĩa là, cho đến nay chưa có một thuật toán có độ phức tạp thời gian đa thức để giải quyết bài toán này Tuy nhiên, J Demetrovics và Vũ Đức Thi [16] (1987), đối với quan hệ thì bài toán này được giải quyết bằng một thuật toán thời gian đa thức
1.3.5 Các dạng chuẩn
Do việc cập nhật dữ liệu thông qua các thao tác thêm, xóa và sửa đổi gây nên những dị thường, mà nguyên nhân chính là do lặp lại một số dữ liệu trong quan hệ nên các quan hệ cần thiết phải được phân tách thành các quan hệ nhỏ hơn hay biến
Trang 21đổi về dạng chuẩn thích hợp Quá trình đó được gọi là quá trình chuẩn hóa Như vậy, việc chuẩn hóa các quan hệ như sơ đồ quan hệ đóng một vai trò cực kỳ quan trọng trong thiết kế cac hệ quản trị CSDL trên mô hình dữ liệu quan hệ của E F Codd Nhờ có chuẩn hóa chúng ta tránh được dư thừa dữ liệu, dị thường trong cập nhật và tăng tốc độ của các phép toán xử lý quan hệ
Cho F là một tập phụ thuộc trên hàm U và X → Y là một phụ thuộc hàm trong
F Tập Y được gọi là phụ thuộc hàm đầy đủvào X nếu X → Y là rút gọn trái, nghĩa
là không tồn tại một tập con thật sự Z của X sao cho Z → Y F+ Ngược lại, Y được gọi là phụ thuộc bộ phận vào X
Cho F là một tập phụ thuộc trên hàm U và X, Y U Tập Y được gọi là phụ thuộc bắc cầu vào X nếu tồn tại Z U sao cho X → Z F+, Z → Y F+, Z→ X F+
và Y Z, Ngược lại, Y được gọi là phụ thuộc trực tiếp vào X
Cho s = (U, F) là một sơ đồ quan hệ Khi đó s được gọi là:
(1) Ở dạng chuẩn một (1NF) ứng với tập phụ thuộc hàm F nếu toàn bộ miền giá trị của các thuộc tính trong quan hệ chỉ chứa giá trị nguyên tố
(2) Ở dạng chuẩn hai (2NF) ứng với tập phụ thuộc hàm F nếu s ở dạng chuẩn một và mọi thuộc tính không cơ bản của s điều phụ thuộc đầy đủ vào mọi khóa tối tiểu của s
(3) Ở dạng chuẩn ba (3NF) ứng với tập phụ thuộc hàm F nếu s ở dạng chuẩn một và không có thuộc tính nào của s phụ thuộc bắc cầu vào bất kỳ một khóa tối tiểu của s
(4) Ở dạng chuẩn Boyce – Codd (BCNF) ứng với tập phụ thuộc hàm F nếu s ở dạng chuẩn ba và không có thuộc tính nào của khóa tối tiểu s phục thuộc bắc cầu vào bất kỳ thuộc tính không khóas
Trang 22Đối với quan hệ R trên tập thuộc tính U, thì R được gọi là dạng chuẩn một (tương ứng dạng chuẩn hai, dạng chuẩn ba, dạng chuẩn Boyce – Codd) nếu R xác định trên sơ đồ quan hệ ở dạng chuẩn một (tương ứng dạng chuẩn hai, dạng chuẩn
ba, dạng chuẩn Boyce – Codd)
Từ các định nghĩa trên, chúng ta có nhận xét sau: Nếu sơ đồ quan hệ s (tương ứng quan hệ R) là BCNF thì s (tương ứng R) là 3NF, nếu s (tương ứng R) là 2NF
và nếu s (tương ứng R) là 2NF thì s (tương ứng R) là 1NF Tuy nhiên, điều ngược lại của nhận xét này là không đúng
Cho trước một sơ đồ quan hệ hay một quan hệ, kiểm tra xem sơ đồ quan hệ hay quan hệ đó đã là ở BCNF, hay 3NF hay chưa là rất quan trọng Những kết quả nghiên cứu về vấn đề này đã có nhiều tác giả nêu ra [13], [15], [17], [18], [20], [24], [29] Đối với một quan hệ R (tương ứng sơ đồ quan hệ s) trên U cho trước, bài toán xác định R(s) có phải là dạng chuẩn Boyce – Codd, được tính bằng thời gian đa thức theo kích thước của R(s) Đối với quan hệ R trên U cho trước, bài toán xác định R có phải là dạng chuẩn 3 hay không cũng là đa thức theo kích thước của R Tuy nhiên, đối với sơ đồ quan hệ s trên U cho trước, khi đó bài toán xác đính có phải dạng chuẩn 3 hay không là NP-đầy đủ Có nghĩa là cho đến nay, độ phức tạp thời gian của bài toán này không là đa thức
Đối với dạng chuẩn 2, các câu hỏi tương tự cho R lẫn s vẫn còn là bài toán mở Chúng ta phỏng đoán có độ phức tạp thời gian là hàm mũ trở lên
1.3.6 Hệ Sperner
Cho U là một tập hữu hạn, P(U) là tập lũy thừa của U và K là một con của P(U) Ta nói K là một hệ Sperner trên U nếu với mọi A,B K kéo theo A B Từ định nghĩa này, rõ ràng chúng ta thấy KS và KR (tập tất cả khóa tối tiểu của sơ đồ quan hệ s và quan hệ R) là hệ Sperner
Trang 23Lực lượng của một hệ Sperner K bất kỳ trên U không vượt quá , tức là
|K| ≤ , với |U| = n
J Demetrvics [12] (1980) đã chứng minh rằng: “Nếu s = (U, F) là một sơ đồ quan hệ thì KSlà một hệ SpernertrênU Ngược lại, nếu K là một hệ Sperner bất kỳ trên U thì luôn tồn tại một sơ đồ quan hệ sao cho KS = K”
Ví dụ 1.3.3 Cho K = {K1, …, Km} là một hệ SpernertrênU Khi đó s = (U, F),
ở đây F = {K1 → U, …, Km → U}, là sơ đồ quan hệ mà Ks = K
Tập phản khóa của hệ Sperner K, ký hiệu K-1, được định nghĩa như sau:
là tập tất cả các tập không phải là khóa lớn nhất
Trong luận văn này luôn quy ước rằng nếu hệ Sperner đóng vai trò là tập các khóa tối tiểu (tương ứng tập các phản khóa) thì hệ này không rỗng và không chứa tập (tương ứng không chứa tập U và ) Chúng ta coi mỗi phép so sánh hai thuộc tính là một phép cơ bản của thuật toán Vì vậy, nếu chúng ta giả sử rằng các tập con của U được biểu diễn như là các danh sách được sắp xếp các thuộc tính, thì phép toán Boolean trên hai tập con của U đòi hỏi khoảng |U| phép cơ bản
Biết rằng, nếu K là một hệ Sperner khác rỗng tùy ý thì luôn tồn tại một quan hệ
R để KR = K (J Demetrovics [12] (1979)) Từ kết quả này định nghĩa sau được đưa ra: “Cho R là một quan hệ và K là một hệ Sperner khác rỗng trênU Khi đó, Ta nói R biểu diễn K nếu KR = K”
Theo Demetrovics j., Vu Duc Thi [16] (1987), định lý sau cho chúng ta một điều kiện cần và đủ để một quan hệ biểu diễn một Sperner cho trước
Trang 24Định lý 1.3.4 Giả sử K là một hệ Sperner không rỗng và R là một quan hệ trên
U Khi đó R biểu diễn K nếu và chỉ nếu K-1
= max ( r), ở đây max ( r) là hệ bằng nhau cực đại của quan hệ R
Hệ bằng nhau cực đại của quan hệ được định nghĩa như sau: Cho R = {h1, …,
Hệ quả 1.3.5 Giả sử s = (U, F) là một sơ đồ quan hệ và R là một quan hệ trên
U Quan hệ được gọi là biểu diễn s nếu KR = KS Khi đó R biểu diễn s nếu và chỉ nếu Ks-1 = max( R)
Kết quả sau cũng được chỉ ra bởi J Demetrovics và Vũ Đức Thi [16] (1987)
Định lý 1.3.6 Giả sử K là một hệ Sperner trên U Khi đó
Từ hệ quả 1.3.5 và định lý 1.2.6, rõ ràng đối với quan hệ R vấn đề thuộc tính cơ bản được giải quyết bằng một thuật toán thời gian đa thức theo kích thước của R Tác giả Vũ Đức Thi đã đưa ra thuật toán tìm một tập phản khóa từ một hệ Sperner cho trước Thuật toán đó được mô tả như sau:
Thuật toán 1 3.7.(Tìm tập phản khóa)
Vào: Hệ Sperner K = {B1, …, Bm} trên U
Trang 25Ra: K-1
Phương pháp:
Bước 1: Đặt K1 = {U – (a) | a B1} Rõ rang K1 = {B1}-1
Bước q + 1 (q < m) Giả sử Kq = Fq {X1, …, Xtq} với X1, …, Xtq chứa Bq+1
và Fq = {A Kq | Bq+1 A} Với mọi i (i = 1, 2, …, tq), xây dựng phản khóa của {Bq+1} trên Xi tương tự như K1 Ký hiệu chúng là A1i, …, Arii (i = 1, 2, …, tq) Đặt
Kq+1 = Fq {APi | A Fq } Cuối cùng đặt K-1
là thời gian đa thức theo |U|, |K|, |K-1
| Rõ ràng, nếu số
Trang 26các phần tử của K là nhỏ thì thuật toán 1.3.7 rất hiệu quả Nó chỉ đòi hỏi thời gian
đa thức theo |U|
Chúng ta cùng tìm hiểu một số hệ Sperner đặc biệt, bao gồm hệ Sperner bão hòa, hệ Sperner được nhúng và hệ Sperner bao hàm Các hệ Sperner này có vai trò quan trọng trong việc nghiên cứu độ phức tạp của một số bài toán trong CSDL quan
hệ
Cho U là một tập hữu hạn Hệ Sperner K trên U được gọi là bão hòa nếu với mỗi X U thì K {X} Không phải là một hệ Sperner Hệ Sperner K trên U gọi là được nhúng nếu với mỗi X K có một Y H để X Y, trong đó H-1
= K Hệ Sperner K được gọi là bao hàm nếu với mỗi X K tồn tại một Y K-1
sao cho X
Y
G Gottlob và L Libkin [24] (1990) đã giới thiệu bồn bài toán, những bài toán này đóng vai trò quan trọng trong quá trình nghiên cứu cấu trúc và logic của mô hình dữ liệu quan hệ:
Bài toán 1.3.10 (Xây dựng quan hệ Amrstrong) Cho trước sơ đồ quan hệ s = (U, F), xây dựng quan hệ R sao cho FR = F+
Bài toán 1.3.11 (Bài toán suy diễn phụ thuộc) Cho trước quan hệ R trên U, xây
dựng sơ đồ quan hệ s = (U, F) sao cho F+ = FR
Bài toán 1.3.12 (Bài toán kéo theo phụ thuộc hàm-quan hệ) Cho trước sơ đồ
quan hệ s = (U, F) và quan hệ R trên U, xác định xem FR F+
Bài toán 1.3.13 (Bài toán tương đương phụ thuộc hàm-quan hệ) Cho trước sơ
đồ quan hệ s = (U, F) và quan hệ R trên U, xác định xem FR = F+
Bài toán 1.3.10 và 1.3.11 có tầm quan trọng trong thực tế C Beeri, M Dowd,
R Fagin, R Staman [7] (1984) chứng tỏ rằng độ phức tạp của hai bài toán này là hàm mũ, do đó không có thuật toán thời gian đa thức để giải hai bài toán này Bài toán 1.3.12 được xem là quan trọng trong lý thuyết thiết kế G Gottlob và L Libkin
Trang 27[24] (1990) chứng minh rằng độ phức tạp của bài toán này là co-NP-đầy đủ Bài toán 1.3.13 cho đến nay vẫn không xác định được độ phức tạp là đa thức hay không Tuy nhiên, bài toán này có thể tách thành hai bài toán con như sau:
Bài toán 1.3.13a Xác định xem tất cả các phụ thuộc hàm đúng trên quan hệ R
có thể được suy diễn từ F hay không, nghĩa là FR F+ Rõ ràng bài toán này là bài toán 1.3.12 ở trên
Bài toán 1.3.13b Xác định xem tất cả các phụ thuộc hàm đúng trên quan hệ R
có thể được suy diễn từ F hay không, nghĩa là FR F+ Rõ ràng bài toán này được giải quyết bằng một thuật toán thời gian đa thức
Do đo, bài toán 1.3.13 là kết hợp của bài toán con co-NP-đầy đủ và bài toán con
đa thức Độ phức tạp của bài toán này có lẽ là một bài toán mở
Tuy nhiên, độ phức tạp của các bài toán 1.3.10 – bài toán 1.3.13 sẽ là đa thức nếu lớp các quan hệ và sơ đồ quan hệ thỏa một số điều kiện nào đó Trước khi mô tả các điều kiện đó, chúng ta tìm hiểu với định nghĩa sau: Cho s = (U, F) là một sơ đồ quan hệ Ta nói rằng s là k-sơ đồ quan hệ nếu F = {K1 → U, …, Km → U}, trong đó {K1, …, Km} là một hệ SpernertrênU
Điều kiện 1.3.14 Sơ đồ quan hệ s = (U, F) là sơ đồ k-sơ đồ quan hệ, ở đây F =
{K1 → U, …, Km → U} và K = {K1, …, Km} là một hệ Sperner bão hòa
Điều kiện 1.3.15 Quan hệ R là ở BCNF và tập phản khóa là một hệ Sperner bão hòa
Điều kiện 1.3.16 Sơ đồ quan hệ s = (U, F) có dạng k-sơ đồ quan hệ và quan hệ
R là ở BCNF HọK = {K1, …, Km} và tập phản khóa là một hệ Sperner bão hòa
Các kết quả sau được chỉ ra bởi Nguyễn Kim Anh [1] (1993):
Định lý 1.3.17.Bài toán 1.3.10 được giải quyết trong thời gian đa thức nếu điều
kiện 1.3.14 được thỏa
Trang 28Định lý 1.3.18.Bài toán 1.3.11 được giải quyết bằng một thuật toán có độ phức
tạp thời gian đa thức nếu điều kiện 1.3.15 được thỏa
Định lý 1.3.19.Bài toán 1.3.12 - Bài toán 1.3.13 được giải quyết trong thời gian
đa thức nếu điều kiện 1.3.16 được thỏa
1.3.7 Các dạng tương đương của họ phụ thuộc hàm
Các dạng tương đương của họ phụ thuộc hàm chính là các công cụ để chúng ta
có thể nghiên cứu phong phú hơn nữa cấu trúc logic của họ phụ thuộc hàm Các dạng tương đương được giới thiệu sau đây là hàm đóng, nửa dàn giao và tập không giao
Ánh xạ L : P(U) P(U) được gọi là một hàm đóng trên U nếu với mọi X,
họ phụ thuộc hàm chúng ta có thể dùng công cụ hàm đóng
Cho I là một tập con của P(U) Khi đó I được gọi là nửa dàn giao trên U nếu
U I và X, Y I X ∩ Y I
Trang 29W W Amrstrong [6] (1974) chỉ ra rằng có tương ứng 1-1 giữa lớp các hàm đóng và lớp các nửa dàn giao trên U
Định lý 1.3.21.Giả sử L là một hàm đóng trênU Đặt Z(L) = {X | X U và L(X) = X} Khi đó Z(L) là nửa dàn giao trên U Ngược lại, nếu I là nửa dàn giao trên U thì tồn tại duy nhất một hàm đóng L sao cho Z(L) = I, ở đây L(X) = ∩ {X‟
Định lý 1.3.22.Nếu I là nửa dang giao thì NIlà tập không giao Ngược lại, nếu
N là tập không giao thì tồn tại duy nhất một nửa dàn giao I sao cho NI = N, ở đây
NI = {X I | X # ∩{X I | X X‟}}
Từ định lý 1.3.20, định lý 1.3.21 và định lý 1.3.22, rõ ràng là một tương ứng 1-1 giữa lớp các tập không giao và lớp các f-họ trên U
Ngoài các dạng tương đương được đề cập ở trên, chúng ta còn có một số dạng tương đương khác, chẳng hạn như hàm chọn, Các tính chất của hàm đóng, hàm chọn và mối liên hệ giữa chúngđã được các tác giả nêu ra [2],[4],[15]
Trang 30CHƯƠNG 2: MỘT SỐ THUẬT TOÁN SIÊU ĐỒ THỊ VÀ TẬP TRÙ MẬT
Mục đích chính của chương này là giới thiệu các công cụ dùng để nghiên cứu về tập phụ thuộc hàm, đó là siêu đồ thị và họ trù mật Những công cụ này được xem rất thích hợp để mô tả khóa, phụ thuộc hàm, các dạng chuẩn đối với phụ thuộc hàm, , trong lý thuyết CSDL quan hệ
2.1 Siêu đồ thị
2.1.1 Định nghĩa
Cho U là một tập hợp hữu hạn khác rỗng và P(U) là tập lũy thừa của U Họ H
= {Ei | Ei P(U), i = 1, 2, …, m} được gọi là một siêu đồ thị trên U nếu Ei ≠ với mọi i
Các phần tử của U được gọi là các đỉnh và tập E1, …, Em là các siêu cạnh (để đơn giản gọi là cạnh) của siêu đồ thị H
Như vậy, đồ thị chính là một siêu đồ thị với mỗi cạnh có lực lượng là hai
Định nghĩa siêu đồ thị như trên có khác với một số định nghĩa về siêu đồ thị của một số tác giả khác Tuy nhiên, chúng lại thích hợp cho một số ứng dụng trong lý thuyết CSDL Đặc biệt là bài toán liên quan đến khóa tối tiểu, các dạng chuẩn với phụ thuộc hàm, … C Berge [8] (1984) yêu cầu rằng hợp của các Ei của H bằng U, tuy nhiên ở đây chúng ta không yêu cầu điều này T Eiter và G Gottlob [21] (1991) định nghĩa siêu đồ thị H là một con của tập P(U), tức là các cạnh Ei của H là một tập con của U và có thể là tập rỗng Trong định nghĩa siêu đồ thị H các cạnh Ei của
H phải là một tập khác rỗng Định nghĩa siêu đồ thị như trên có thể tìm thất trong
R Fagin [23] (1983)và D Maier [26] (1983)
Siêu đồ thị H được gọi là đơn nếu nó thoả mãn
Ei, Ej H : Ei Ej Ei = Ej