Định nghĩa 1.13[1]
Cho PRS = (U, D, dom) là một lƣợc đồ nguyên thủy Cho X1, …., XkU với k
i1
Xi = U
Một phụ thuộc kết nối (Join Dependencies) trên PRS ký hiệu là X1*....* Xk là một ràng buôc sao cho một quan hệ r trên PRS thỏa ràng buộc này nếu và chỉ nếur = r X1 *...*r Xk
Các kết quả sau đây dễ thấy một cách trực tiếp từ định nghĩa 1.13
Ví dụ 1.6.1:
BIA NG_UỐNG và BIA BAR đã đƣợc chỉ ra
Ở ví dụ này xét lƣợc đồ RS‟ có đƣợc từ RS bằng cách thay đổi chút ít về ràng buộc duy nhất trong SC. Giả sử rằng nếu một ngƣời từng uống một loại bia và thƣờng xuyên lui tới một BAR (mà BAR này có phục vụ loại bia ấy) thì anh ta uống loại bia ấy trong BAR đã nói đến.
21
NG_UONG BIA BAR
An Tiger Ngôi sao
An Tiger Phƣơng Nam
An Carlasberg Ngôi sao
Bình Tiger Ngôi sao
Dễ nhận thấy rằng
r=r [NG_UONG,BIA] * r [BIA,BAR] *[NG_UONG,BAR]
Hệ quả:
Cho PRS = (U, D, dom) là một lƣợc đồ nguyên thủy
Nếu X, YU, thì (XY XY*X (U-Y)
Nếu X, YU với X1 X2 = U thì X1 *X2X1 X2 X1
X1 X2 X2
Có thể coi mvd là một trƣờng hợp mở rộng của fd và là một trƣờng hợp đặc biệt của jd. Đáng tiếc là chƣa tìm thấy một hệ tiên đề xác đáng đầy đủ cho lớp jd nhƣ đối với mvd và fd. Tuy nhiên một thuật toán quyết định cho bài toán suy diễn trong lớp ràng buộc gồm các fd và jd, gọi là săn đuổi(chase) đƣợc đƣa ra bởi Maier, Mendelzon và Sagiv năm 1975. Thuật toán liên quan đến một số khái niệm sau đây.
NG_UONG BIA BIA BAR NG_UONG BAR
An Tiger Tiger Ngôi sao An Ngôi sao
An Carlasberg Tiger Phƣơng
Nam
An Phƣơng
Nam
22
Định nghĩa 1.14[1]
Cho U là một tập các thuộc tính
Vd = aA/AU tập các ký hiệu đƣợc chỉ số hóa bởi U là cá biến đƣợc phân biệt (disitinguished variables)
Vn = bA1,bA2,.../AU
là tập hợp các ký hiệu đƣợc chỉ số hóa bởi U và tập số nguyên dƣơng gọi là các biến không đƣợc phân biệt (undisitinguished variables) sao cho Vd Vn =
Một tablea T(U) là một quan hệ trên U, trong đó mỗi thuộc tính AiU, dom (Ai) = ai Vn
Định nghĩa 1.15[1]
Cho lƣợc đồ RS = (U,, dom, M, SC) j: X1* X2*... Xk là jd trên PRS, ( k
i1
, Xi = U)
* Bảng khởi tạo đối với j là một table T(U) = l1,...lk thỏa 2 điều kiện sau : (1) i=1,...., k; AXi : li(A) = aA
(2) i=1,...., k; AXi : li(A) = b1A
Ví dụ 1.6.2:
U=A,B,C,D j là jd AB *BC *CD Bảng khởi tạo đối với j là :
A B C D 1 aA aB b1 C b1 D 2 b1 A aB aC b2 D 3 b3 A b3 B aC aD
Thuật toán 1.6.1 (Chase):
Vào: phụ thuộc kết nối j và tập SC các fd và các jd trên lƣợc đồ nguyên thủy PRS = (U, D, dom)
23
Ra: true or false Phƣơng pháp var 1: row;
TAB, HELPTAB, OLDTAB: tableau; TAB := r (J)
repeat
OLDTAB :=TAB
for each Yi*…. *Y1 in SC do HELPTAB :=TAB;
for all l1…..;li in TAB do
if , j =1,….., l: li YiYj lj YiYj then begin for I :=1 to l do l Yi := li Yi od if HELPTAB then HELPTAB := HELPTAB l end od; for each X Y in SC do for each l1, l2 in TAB do if l1 X = l2 X
then
for each A in Y do if l1 (A) l2 (A)
24
then begin
if (l1(A) = aA) or (l2(A)= c then begin l1 (A) := aA; l2(A)= aA end if (l1(A) = bi A) and(l2(A)= bi A) then begin l1 (A) := bmin(i,j) A l2 (A) := bmin(i,j) A end end od od od
until TAB = OLDTAB for each A in U do l (A) := aA od; if lTAB then return (true) else return (false)
25
Ví dụ 1.6.2: Áp dụng săn đuổi
Cho RS = (U, D, dom, M, SC) là một lƣợc đồ quan hệ
U = A,B,C,D,E,F,G
SC = ABCD*DEFG,ABDEG*ACDFG J là phụ thuộc kết nối ABD * ACD *DEG * DFG Dùng thuật toán săn đuổi để chỉ ra SC = J
Bảng khởi tạo của J là r(J)
mr A B C D E F G 1 aA aB b1 C aD b1 E b1 F b1 G 2 aA b2 B aC aD b2 E b2 F b2 G 3 b3 A b3 b b3 C aD aE b3 F aG 4 b4 A b4 B b4 C aD b4 E aF aG Kí hiệu li là hàng thứ i của r(J)
Do l1ABCDDEFG= l3ABCDDEFGnên l5 đƣợc thêm vào bảng với l3ABCD= l1ABCDvà l5 DEFG= l3DEFG
Tƣơng tự vì l2ABCDDEFG= l4ABCDDEFG nên l6 đƣợc thêm vào bảng.
Sau hai lần thêm l5 và l6 bảng trở thành:
mr A B C D E F G 1 aA aB b1 C aD b1 E b1 F b1 G 2 aA b2 B aC aD b2 E b2 F b2 G 3 b3 A b3 b b3 C aD aE b3 F aG
26 4 b4 A b4 B b4 C aD b4 E aF aG 5 aA aB b1 C aD aE b3 F aG 6 aA b2 B aC aD b4 E aF aG
Do l5 ABDEGACDFG l6 ABDEGACDFG nên thêm l7 vào bảng với l7ABDEG= l5ABDEG và l7ACDFG = l6ACDFG
Hàng l7 chỉ gồm các biến đƣợc phân biệt nên kết luận SC J
Ý đồ của thuật toán Chase là biến đổi bảng khởi tạo của phụ thuộc kết nốij (j là jd cần đƣợc quyết định trong bài toán suy diến bởi một tập SC) bằng cách áp dụng các fd và jd có mặt trong SC thông qua các luật F và J sau đây cho đến khi không có thêm 1 trạng thái nào nữa cho bảng.
Luật F:
Y
X là fd thuộc SC. Nếu u và v là hai bộ trong T sao cho u[X] =v[X] thì đồng nhất u(A) và v(A) cho mỗi thuộc tính A thuộc Y bằng cách đặt lại tên một trong hai biến đó nhƣ sau:
Giả sử u(A) =d1 và v(A) =d2. Nếu d1 hoặc d2 là biến đƣợc phân biệt, chẳng hạn d1 là biến đƣợc phân biệt thế thì mọi xuất hiện của d2 đƣợc thay thế bởi d1. Nếu cả d1 lẫn d2 đều là biến không phân biệt thì mọi xuất hiện của
biến kèm chỉ số lớn hơn đƣợc thay thế bởi biến kia(biến có chỉ số nhỏhơn).
Luật J:
sc là jd thuộc SC, sc =X1 * X2*….*Xp. Nếu có w1, w2,…,wp là các hàng của T mà khi kết nối theo sc đƣợc w thì thêm w vào T.
Định lí 1.3[1]
Bài toán suy diễn trong lớp các ràng buộc gồm fd và jd quyết định đƣợc trong thời gian NP-hard.
27
Việc xét tính đúng của mệnh đề SCsc với sc là một phụ thuộc hàm(fd), khái niệm dịch chuyển lƣợc đồ quan hệ đã tham gia hữu hiệu vào biểu diễn bao đóng của tập thuộc tính và thuật toán tìm bao đóng.
Định lí 1.4(Demetrovics, Nguyễn Xuân Huy)
Cho U tập các thuộc tính, F tập các phụ thuộc hàm và kết nối. Với hai tập thuộc tính không giao nhau tuỳ ý X, Y U ta có :
(XY)+F = X(Y)+F\X Trong đó X+
= AU F(X A)
Định lí 1.5[1]
Cho tập SC các ràng buộc bao gồm phụ thuộc hàm và kết nối. Cho mộtphụ thuộc hàm f: X Y. Khi đó:
SC X Y khi và chỉ khi Y X+SC
Ví dụ 1.6.3
Cho lƣợc đồ RS với U = ABCDEG
SC = { AC B, BACD, ABCD, ADEBCG, CGAE, BDACD, [ABCDE,CDG],[ ABDE,CDG,AC],[ ABCDE,EG]}
X=AC. Tính X+sc?
Giải:
U1 = U \ X = BDEG
SC1 = SC \ X = { B, BD, DE BG, GE, BDD (loại), [BDE,DG], [BDE, DG,]( loại), [BDE, EG]}
= { B, BD, DE BG, GE, [BDE, DG], [BDE, EG]} Vì B nên B ∈ X+SC1.
28 Có D ∈ X+SC2 SC3 = SC 2 \ D ={ EG, GE, [E,G] } + SC3 = EG X+SC = ABCDEG
Dù sao thì bài toán suy dẫn đối với lớp jd trong tổng quát vẫn không đƣợc giải quyết hiệu quả nhƣ đối với lớp mvd. Nếu hạn chế lại, chỉ xét các jd có một số cố định ( tối đa) các thành phần kết nối, thuật toán săn đuổi làm việc với thời gian đa thức trên các lớp jd nhƣ vậy.
Định nghĩa 1.16[1]
Cho PRS = (U, D, dom) là một lƣợc đồ nguyên thủy và j là một phụ thuộc kết nối của PRS. Cho m là một số nguyên dƣơng j đƣợc gọi là m – cyclic nếu j tƣơng đƣơng với một tập các jd sao cho mỗi jd trong tập này tối đa chỉ có m thành phần kết nối
Định lý 1.6[1]
Cho m là một hằng nguyên dƣơng, bài toán suy dẫn đối với phụ thuộc hàm với m – cyclic kết nối là quyết định được trong thời gian đa thức.
Có thể dễ dàng thấy rằng l – cyclic jd là những phụ thuộc kết nối tầm thƣờng. Lớp phụ thuộc kết nối 2 – cyclic là lớp ít phức tạp nhất trong kiểm tra tính toán dữ liệu. Có thể biểu diễn cấu trúc các phụ thuộc kết nối (jd) bởi siêu đồ (bypergraph).Trong mối liên quan với cách biểu diễn này có khái niệm acyclic phân loại phụ thuộc kết nối.
Định nghĩa 1.17[1]
Một siêu đồ thị là l cặp có thứ tự (,) trong đó:
N là một tập hữu hạn các nút
là tập các cung
Mỗi cung thuộc là một tập con của N
29
N là tập các thuộc tính
Mỗi cung là một thành phần kết nối của jd
Định nghĩa 1.18[1]
Mỗi jd là acyclic nếu nó tƣơng đƣơng với một tập các mvd Một jd không acyclic gọi là cyclic
Định nghĩa 1.19[1]
Cho PRS = ( U, D, dom) là một lƣợc đồ nguyên thuỷ và j là một phụ thuộc kết nối của PRS. Cho m là một số nguyên dƣơng, j đƣợc gọi là
m – cyclic nếu j tƣơng đƣơng với một tập các jd sao cho mỗi jd trong tập này tối đa chỉ có m thành phần kết nối.
Định lí 1.7[1]
Cho m là một hằng nguyên dƣơng. Bài toán suy dẫn đối với phụ thuộc hàm và m – cyclic kết nối là quyết định được trong thời gian đa thức.
Có thể dễ dàng thấy rằng 1 –cyclic jd là những phụ thuộc kết nối tầm thƣờng. Lớp phụ thuộc kết nối 2 –cyclic là lớp ít phức tạp nhất trong kiểm tra tính toàn vẹn dữ liệu. Có thể biểu diễn cấu trúc các phụ thuộc kết nối (jd) bởi siêu đồ thị (hypergrapha). Trong mối liên quan với cách biểu diễn này có khái niệm acyclic và cyclic phân loại phụ thuộc kết nối.
Định nghĩa 1.20[1]
Một siêu đồ thị là 1 cặp có thứ tự ( N,) trong đó:
N là một tập hữu hạn các nút
là tập các cung
Mỗi cung thuộc là một tập con của N
Một jd có thể đƣợc biểu diễn bằng 1 siêu đồ thị ( N, ) trong đó là tập các thuộc tính
30
Định nghĩa 1.21[1]
Một jd là acyclic nếu nó tƣơng đƣơng với một tập các mvd Một jd không acyclic gọi là cyclic