phần mở đầu, bốn chương nội dung và phần kết luận. Trình bày tổng quan về mô hình dữ liệu quan hệ, các khái niệm FD, bao đóng của một tập thuộc tính, khóa của lược đồ quan hệ,…Trong đó tập trung trình bày về FD suy rộng và khát quát các phương pháp đã được sử dụng để phát hiện các FD và FD suy rộng. Trình bày về AFD và CFD (hai loại FD suy rộng điển hình) và một số kết quả có liên quan. Trình bày các thuật toán tính bao đóng của một tập thuộc tính đối với một tập FD, vấn đề rút gọn cho bài toán xác định khóa của lược đồ quan hệ và một số kết quả có liên quan.
Trình bày một phép biến đổi tiền xử lý hiệu quả các tập FD (nhằm hạn chế sự dư thừa trong một tập FD cho trước) và một số kết quả liên quan. Tổng kết các kết quả đã đạt được, những điểm còn tồn tại và hướng nghiên cứu tiếp theo. PHỤ THUỘC HÀM VÀ PHỤ THUỘC HÀM SUY RỘNG TRONG MÔ HÌNH DỮ LIỆU QUAN HỆ Chương này nhắc lại các khái niệm cơ bản của mô hình dữ liệu quan hệ, tập trung vào các khái niệm phụ thuộc hàm, phụ thuộc hàm suy rộng và khái quát các phương pháp đã được sử dụng để phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng. Nhắc lại một số khái niệm cơ bản Mô hình dữ liệu quan hệ được E.Codd đề xuất năm 1970 và ngay lập tức mô hình này đã gây được sự chú ý vì có tính đơn giản và cơ sở toán học vững chắc.
Mô hình dữ liệu quan hệ biểu thị dữ liệu trong một cơ sở dữ liệu như một tập các quan hệ. Về mặt trực quan, ta có thể hình dung một quan hệ như là một bảng giá trị gồm các hàng và các cột. Mỗi hàng trong bảng là một tập các giá trị có liên quan đến nhau, các giá trị này biểu thị một sự kiện tương ứng với một thực thể hay một mối quan hệ trong thế giới thực. Trong lý thuyết mô hình dữ liệu quan hệ, các thuật ngữ quan hệ, thuộc tính, miền và bộ tương ứng được dùng để chỉ bảng, cột, kiểu dữ liệu của một cột và một hàng trong bảng.
Miền Một miền D là một tập các giá trị nguyên tố, hiểu theo nghĩa mỗi giá trị trong miền là không thể phân chia được thành các thành phần nhỏ hơn trong phạm vi mô hình quan hệ. Mỗi miền được đặc tả thông qua một tên miền và một kiểu dữ liệu. Tương ứng với mỗi thuộc tính có một miền, các thuộc tính khác nhau không nhất thiết phải có các miền khác nhau. Quan hệ Một quan hệ trên (hay xác định trên) tập thuộc tính Ω = {A1, A2,…,An} là một tập con của tích Descartes Dom(A1) Dom(A2) … Dom(An), trong đó Dom(Ai) là miền trị của thuộc tính Ai, i = 1, 2,…, n.
6 Cho quan hệ r xác định trên tập thuộc tính Ω = {A1, A2,…,An}. Theo định nghĩa, ta có thể viết r dưới dạng sau: r {(a1, a2,…,an) | ai Dom(Ai), i = 1, 2,…, n} 1. Các tính chất đặc trưng của một quan hệ Để làm rõ hơn khái niệm quan hệ trong mô hình dữ liệu quan hệ, ta xem xét các tính chất đặc trưng sau đây của quan hệ: Mỗi quan hệ có một tên phân biệt. Mỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố.
Mỗi thuộc tính có một tên phân biệt. Các giá trị của một thuộc tính thuộc cùng một miền. Thứ tự của các thuộc tính là không quan trọng. Không có hai bộ trùng nhau trong một quan hệ.
Thứ tự của các bộ là không quan trọng. Mỗi giá trị trong một bộ phải là một giá trị nguyên tố. Mô hình dữ liệu quan hệ không cho phép có các thuộc tính phức hợp hoặc các thuộc tính đa trị. Đặc trưng này đòi hỏi mỗi thuộc tính đa trị phải được biểu diễn bằng một quan hệ và mỗi thuộc tính phức hợp phải được biểu diễn bằng các thành phần đơn của nó.
Trường hợp một số ô trong bảng (quan hệ) có thể là chưa biết được giá trị của chúng vào thời điểm đang xét hoặc không có giá trị nào thích hợp đặt cho một ô (thuộc tính) của một bộ nào đó thì một giá trị đặc biệt, gọi là giá trị null, được sử dụng cho các ô kiểu này. Thứ tự của các thuộc tính trong một quan hệ là không quan trọng khi đảm bảo được sự tương ứng giữa các thuộc tính với các giá trị. Vì các phần tử trong một tập hợp là không có thứ tự nên các bộ không có một thứ tự bắt buộc trong một quan hệ. Định nghĩa quan hệ cũng cho thấy rằng hai quan hệ được xem là đồng nhất nếu chúng có cùng các bộ cho dù thứ tự các bộ trong chúng khác nhau.
Lược đồ quan hệ Một lược đồ quan hệ S là một cặp có thứ tự S = <Ω, F>, trong đó Ω là 7 tập hữu hạn các thuộc tính của quan hệ, F là tập các ràng buộc giữa các thuộc tính. Một ràng buộc trên tập thuộc tính {A1, A2,…,An} là một tính chất trên tập tất cả các quan hệ xác định trên tập thuộc tính này. Mỗi ràng buộc còn được gọi là một phụ thuộc dữ liệu. Một lược đồ quan hệ được sử dụng để mô tả về cấu trúc và các ràng buộc của một quan hệ.
Một quan hệ có thể liên tục thay đổi theo thời gian nhưng cấu trúc và các ràng buộc của nó có thể ổn định trong một khoảng thời gian nhất định. Cho lược đồ quan hệ S = <Ω, F> với Ω = {A1, A2,…,An}. Nếu không quan tâm đến tập các ràng buộc F thì ta sẽ dùng ký hiệu S(A1, A2,…,An) hoặc S(Ω) thay cho S = <Ω, F>. Ta dùng ký hiệu r(S) để chỉ một quan hệ r (hay một thể hiện r) của lược đồ quan hệ S.
Với một bộ t của r(S) và X Ω, ta ký hiệu t[X] là bộ chỉ chứa các giá trị của bộ t tại các thuộc tính trong X. Một lược đồ cơ sở dữ liệu quan hệ là một tập các lược đồ quan hệ S’ = {S1, S2,…,Sp}. Một thể hiện của một lược đồ cơ sở dữ liệu quan hệ S’ là một tập các thể hiện DB = {r1(S1), r2(S2),…, rp(Sp)}. Một cơ sở dữ liệu quan hệ là một thể hiện của một lược đồ cơ sở dữ liệu quan hệ.
Một cơ sở dữ liệu quan hệ cỡ lớn là một cơ sở dữ liệu quan hệ chứa một lượng lớn dữ liệu (cỡ vài chục thuộc tính, hàng trăm nghìn bản ghi). Phụ thuộc hàm Phụ thuộc hàm là một loại phụ thuộc dữ liệu giữa hai nhóm thuộc tính của một lược đồ quan hệ và nó thể hiện tính chất ngữ nghĩa của các thuộc tính. Khái niệm phụ thuộc hàm Phụ thuộc hàm. Cho là tập thuộc tính và S() là một lược đồ quan hệ trên .
Khi đó Y được gọi là phụ thuộc hàm vào X trên lược đồ S(), ký hiệu là X Y, nếu với mọi quan hệ r trên lược đồ S(), với hai bộ bất kỳ t1, t2 r mà t1[X] = t2[X] thì t1[Y] = t2[Y]. 8 Nếu Y phụ thuộc hàm vào X thì ta cũng nói "X xác định hàm Y". Với mỗi quan hệ r trên lược đồ S(), ta nói r thỏa mãn (hay thỏa) phụ thuộc hàm X Y (hay phụ thuộc hàm X Y đúng trên r) nếu và chỉ nếu với mọi bộ t1, t2 r, t1[X] = t2[X] kéo theo t1[Y] = t2[Y]. Trong luận án này, ta hạn chế F của lược đồ S = <, F> chỉ gồm các phụ thuộc hàm.
Hệ quy tắc suy diễn Armstrong Với lược đồ quan hệ S = <, F> và X, Y , ta ký hiệu XY thay cho X Y. Với mọi X, Y, Z , hệ quy tắc suy diễn Armstrong đối với các phụ thuộc hàm gồm ba quy tắc sau đây: Q1. (Gia tăng): Nếu X Y thì XZ YZ. (Bắc cầu): Nếu X Y và Y Z thì X Z.
Ký hiệu F+ là tập tất cả các phụ thuộc hàm được suy diễn từ F bằng cách áp dụng một số hữu hạn lần các quy tắc của hệ quy tắc suy diễn Armstrong. Bao đóng của một tập thuộc tính Cho tập phụ thuộc hàm F xác định trên tập thuộc tính (phụ thuộc hàm Y Z xác định trên tập thuộc tính nếu Y, Z ) và X . Ta gọi bao đóng của tập thuộc tính X đối với tập phụ thuộc hàm F, ký hiệu là X F , là tập tất cả các thuộc tính A của sao cho X A được suy diễn từ F nhờ hệ quy tắc suy diễn Armstrong. Khóa của lược đồ quan hệ Một quan hệ là một tập hợp các bộ.
Các phần tử trong một tập hợp là phân biệt nên không thể có hai bộ trùng nhau trong một quan hệ. Như vậy, với mỗi lược đồ quan hệ S = <Ω, F>, tồn tại một tập thuộc tính SK Ω có tính chất: với mỗi thể hiện r(S) thì t1[SK] ≠ t2[SK], với t1, t2 là hai bộ khác nhau bất kỳ trong r. 9 Siêu khóa của một lược đồ quan hệ S là một tập gồm một hay nhiều thuộc tính của lược đồ S có tính chất xác định duy nhất một bộ trong mỗi thể hiện của S. Cho lược đồ quan hệ S = <Ω, F>.
Nếu SK là siêu khóa của S thì mọi tập con của Ω mà chứa SK cũng là siêu khóa của S. Một siêu khóa "nhỏ nhất" được gọi là một khóa. Khóa của một lược đồ quan hệ S là một siêu khóa của S sao cho mọi tập con thực sự của siêu khóa này đều không phải là siêu khóa của S. Mỗi lược đồ quan hệ luôn có ít nhất một khóa và có thể có nhiều khóa.
Một thuộc tính xuất hiện trong một khóa nào đó được gọi là thuộc tính khóa. Ngược lại, một thuộc tính không xuất hiện trong bất kỳ khóa nào được gọi là thuộc tính không khóa. Sử dụng khái niệm phụ thuộc hàm, khái niệm khóa và siêu khóa của lược đồ quan hệ được định nghĩa lại như sau: Cho lược đồ quan hệ S = <, F> và K . Ta nói K là một khóa của S nếu hai điều kiện sau đây đồng thời được thỏa mãn: (i).
Nếu K' K thì (K' ) F+ Nếu K thỏa mãn điền kiện (i) thì K được gọi là một siêu khóa của S. Như vậy, mọi khóa của S đồng thời cũng là siêu khóa của S.