Phụ thuộc kết nối (Join Dependencies)

Một phần của tài liệu Phép suy dẫn của các phụ thuộc hàm trong mô hình dữ liệu dạng khối (Trang 25 - 35)

Định nghĩa 1.13[1]

Cho PRS = (U, D, dom) là một lƣợc đồ nguyên thủy Cho X1, …., XkU với k

i1

 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, YU, thì (XY XY*X (U-Y)

 Nếu X, YU với X1 X2 = U thì X1 *X2X1 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] (adsbygoogle = window.adsbygoogle || []).push({});

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 AiU, 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

i1

 , 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; AXi : li(A) = aA

(2) i=1,...., k; AXi : 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 lTAB then return (true) else return (false) (adsbygoogle = window.adsbygoogle || []).push({});

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 l1ABCDDEFG= l3ABCDDEFGnên l5 đƣợc thêm vào bảng với l3ABCD= l1ABCDvà l5 DEFG= l3DEFG

Tƣơng tự vì l2ABCDDEFG= l4ABCDDEFG 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 l7ABDEG= l5ABDEG và l7ACDFG = l6ACDFG

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 đề SCsc 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(XA) (adsbygoogle = window.adsbygoogle || []).push({});

Đị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 XY khi và chỉ khi Y X+SC

Ví dụ 1.6.3

Cho lƣợc đồ RS với U = ABCDEG

SC = { AC B, BACD, ABCD, ADEBCG, CGAE, BDACD, [ABCDE,CDG],[ ABDE,CDG,AC],[ ABCDE,EG]}

X=AC. Tính X+sc?

Giải:

U1 = U \ X = BDEG

SC1 = SC \ X = {  B, BD, DE BG, GE, BDD (loại), [BDE,DG], [BDE, DG,]( loại), [BDE, EG]}

= {  B, BD, DE BG, GE, [BDE, DG], [BDE, EG]} Vì   B nên B ∈ X+SC1.

28 Có D ∈ X+SC2 SC3 = SC 2 \ D ={ EG, GE, [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à (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Phép suy dẫn của các phụ thuộc hàm trong mô hình dữ liệu dạng khối (Trang 25 - 35)