Phân rã vấn tin

Một phần của tài liệu Giáo trình hệ cơ sở dữ liệu phân tán và suy diễn phần 1 nguyễn văn huân, phạm việt bình (Trang 82 - 94)

- Đặc tính thứ hai của tậpcác vỊ tìr là tính cực tiểu Đây là một đặc tính cảm tính Vị từ đơn giản phải cĩ liên đới (relevant) trong việc xác định một mảnh M ột vị tìr khơng tham gia

2.4.2.Phân rã vấn tin

1 nếuj thuộc j(i) 0 ngược lạ

2.4.2.Phân rã vấn tin

Ph ân rã v ấn tin là giai đ o ạ n đầ u tiên c ủ a q u á trinh x ử lý câ u vấ n tin. N ĩ biến đối câu vấn tin ỏ' d ạ n g p hé p tính q u a n hệ t hà nh câ u vấn tin đại s ố qua n hệ. C á c vấn tin n h ậ p xuất đề u tham chiếu các q ua n hệ t o à n c ụ c và k h ơ n g d ù n g đế n c á c t h ơ n g tin p h â n bố d ữ liệu. Vì thế phâ n rã vấn tin đều g i ố n g n h a u t r o n g cả hệ t h ố n g t ập t r u n g lẫn phân tán, c âu vấn tin xuấ t sẽ đủíig về ngũ' nghĩa và đạt c hắ t l ư ợ n g t h e o n ghĩ a là đã loại bỏ cá c hành đ ộ n g k h ơ n g c ần thiếl. Phân rã vấn tin c ĩ thể x e m n h ư bố n birĩc liên tiếp nhau: c h u ẩ n hố, phân tích, loại bỏ d ư t hừa , viết lại câu vấn tin

Chuẩn hố

M ụ c đí ch của c h u ẩ n h o á ( n or ma l i z a t i o n ) là biến đồi câu vấ n tin t hà nh m ộ t d ạ n g chuẩn để x ử lý tiếp. Clìiiẩn h o á m ộ t vấ n tin nĩi c h u n g g ồ m c ĩ đặt các l ư ọ n g t ừ và l ư ợ n g t ừ hố vấn tin b ằ n g c ách áp d ụ n g đ ộ ưu tiên c ủ a cá c t ốn t ử logic.

Với các n gơn n g ữ q u a n hệ n h ư S Q L , biến đối q ua n t r ọ n g nhất là l ư ọ n g t ừ hố vấn tin ( mê nh đề W he re ) , c ỏ thé đ ĩ là m ộ t vị t ừ phi l ư ọ n g t ừ vĩi đ ộ p h ứ c tạp n à o đ ĩ vĩi tất cả các l ượ ng t ừ cần thiết ( V h o ặ c Ü) đ ư ọ c đặ t phí a trước. C ĩ hai d ạ n g c h u ẩ n c ĩ t hế c h o vị từ, m ộ t cĩ t h ứ bậc c a o c h o A N D (a) và loại c ị n lại c h o t h ử bậc c a o O R ( v ). D ạ n g c h u ẩ n hội là hội (vị t ừ A) eủ a các t uyển vị t ừ ( các vị từ v) : í

( P ỉ l V P | W . . . . V p | „ ) A ... A ( p , „ i V p,n.) V . . . . V p,„n)

t ro n g đố Pi| là một vị t ừ đ ơn giàn. N g ư ợ c lại, một lượiig t ừ hố ơ d ạ n g chiiấn t u y ế n nhtr sau: (P)l A Pi2 A . .. .A Pi,0 V ... V( p ,„ | A Pm2 A . . . . A p,„„)

Biến đồi c ác vị t ừ phi l ư ợn g từ là t ầm t h ư ờ n g b ằ n g c á c h s ử c á c q u y t ắc t ư ơ n g đ ư ơ n g c h o các p hé p t ố n logic (A, V, ~-i): 9

1 . Pl A Ọi <-> Pp A Pi 2. p Ị V P:> <:-> Pi 3. P l A ( P 2 A p .o < -> ( P l A P:> ) A P3 4. Pi V ( P:> V p^) <-> (Pi V pị. ) V P3 5. Pi a ( P2 V p O « ( P l A P 2 ) V ( P | A P ^ ) 6. Pi V ( A Ọy) o ( p i V P2 ) A ( p i V ) 7 . ....(P t A Ọị) O - n P iV - n p 2 8 . - i ( p i V p ^ ) C:> - i P i A “ -<p2 9.. ^ ( - . p ) cr> p

Nhận xét: Dạng chuẩn tuyển ít được dùng vì dẫn đến các vị từ nối và chọn trùng nhau. Dạng chuẩn hội hay dùng trong thực tế

Vi dụ 2.18:

Tim tên các nhân viên đang làm việc ở dự án P| trong 12 tháng hoặc 24 tháng. Câu vấn tin được diễn tả bằng SỌL như sau:

SELECT TênNV

FROM NV, PC

WHERE NV.M NV=PC.M NV

AND P C .M D A = “ P |”

AND Thời gian=12 OR Thời gian=24

Lượng từ hố ở dạng chuẩn hội là;

N V .M N V =PC.M N V A PC.MDA= “ P |” A (Thời gian = l2 V Thịi gian=24) Cịn lượng từ hố ờ dạng chuẩn tuyển là

- (NV.M N V=PC.M N V A PC.MDA=” P |” A Thời gian= 12) V

(NV.M N V=PC.M N V A PC.MDA=” P |” A Thời gian-24 )

ờ dạng sau, xử lý hai hội độc lập cĩ thể là một cơng việc thừa nếu các biểu thức con chung khơng được loại bỏ. '

Phăn tích

Phân tích câu vấn tin cho phép phế bị các câu vấn tin đã chuẩn hố nhưng khơng thể tiếp tục xử lý được hoặc khơng cần thiết, những [ý do chính là do chúng sai kiểu hoặc sai ngũ' nghĩa.

Một câu vấn tin gọi ià sai kiểu nếu nĩ cĩ một thuộc tính hoặc tên quan hệ chưa được khai báo trong lược đồ tồn cục, hoặc nếu nĩ áp dụng cho các thuộc tính cĩ kiểu khơng thích hợp.

Vi dụ 2.19: Cho quan hệ NV(MaNV, TenNV, Chucvii, Tienliiong)

Và câu vấn tin sau:

Select Maphong From NV

Where TenNV >200

Yêu cầu: Hãy kiểm tra câu vấn tin trên xem nĩ cĩ sai về kiểu khơng?

Trá lờ i’. Câu vấn tin trên là sai về kiểu, bởi vì hai lý do sau:

1 ). Thuộc tính Maphong chưa được khai báo trong lược đồ tồn cục. 2). Phép so sánh TenNV>200 khơng phù hợp với kiểu chuỗi TenNV. (adsbygoogle = window.adsbygoogle || []).push({});

- Một câu vấn tin gọi là sai nghĩa nếu các thành phần của nĩ khơng tham gia vào việc tạo ra kết quả, tức là các vị từ nối trong câu vấn tin bị thiếu và câu vấn tin cần được loại bị.

Ngồi ra. chúng ta cĩ thể thực hiện kiểm tra một câu vấn tin xem nĩ cĩ sai nghĩa hay khơng bằng cách cho nĩ thực hiện với một iớp các câu vấn tin quan hệ khá rộng rãi, đĩ là các

vấn tin khơng chứa các tuyến và phu định ta cĩ thể dùng đồ thị vấn tin. v ấ n tin chửa phép chọn nổi chiếu.

- Biểu diễn bằng đồ thị vấn tin: + 1 nút biểu thị quan hệ kết quả;

+ Các nút khác biểu thị cho quan hệ tốn hạng;

+ Một cạnh giữa hai nút khơng phải là quan hệ kết qua biêu diễn cho một nối; + Cạnh mà nút đích là kết quả sẽ biếu thị cho phép chiếu;

+ Các nút khơng phải là kẻt quá sẽ được gán nhãn là một vị từ cliọn hoặc 1 vị từ nơi (chính nĩ).

- Đồ thị nối: một đồ thị con quan trọng của đồ thị vấn tin, nĩ chỉ cĩ các nối.

Ví dụ 2.20 : PC (M ãNV, MaDA. NVụ. Tgian)

N V (M a N V ,T ê n N V , CVụ)

DA (MaDA, TênDA, Kphí, Đđiểm)

“ Tỉm tên, Nvụ các của những người cĩ Cvụ=’T P ‘ đã làm việc ở dự án ‘C A D /C A M ’ trong hơn 3 năm”

Select TênNV From PC, NV,DA

Where PC.MaNV - NV.MaNV and PC.MaDA DA.MaDA and TênD A ='C A D /C A M ’ and CVụ =^'TP' and tgian >36 Các vị từ đơn giản: p l; P C .M a N V -N V .M a N V p2: PC.MaDA DA.MaDA p3:T ên D A -* C A D /C A M ' p4; CVụ - T P ’ p5: tgian >36 Đồ thị vấn tin Đ ồ Ihị n ố i P3

V i ih 2.21: Select TenNV From PC. NV. DA

Where PC.MaNV = NV.MaNV

and T eiiD A ^'C A D /C A M ' and CVu - T P " and tgian >36

P5 ^

PC

P3 N V

=> ĐỒ thi khơng liên thơng

Nhận xét: Câu vấn tin sai ngữ nghĩa nếu đồ thị vấn tin của nĩ khơng liên thơng: I hoặc nhiều đồ

thị con bị tách rời vĩi đồ thị kết quả.

L o ạ i hỏ dii' thừa

Một câu vắn tin cúa ngirời sử dụng thường đirọc diễn tá trên một khung nhờn cĩ thể đưục bố sung thêm nliỉều vị từ đế cĩ được sự tương ứng khung nhờn - quan hệ, bảo đảm được tính lồn vẹn ngữ nghĩa và bảo mật. Thế nhưng lưọiig từ hố vấn tin đĩ được sửa đổi này cĩ thế chứa các vị từ dư thừa, cĩ thế phải khiến lặp lại một số cơng việc. Một cách làm đơn giản vấn tin là loại bỏ các vị từ thừa.

Loại bo vị từ dư thừa bằng qui tắc luỳ đãng; 10 1. p A p o p 2. p V p o p 3. p A True <=> p 4. p V False o p 5. p A False o False 6. p V True c > True 7. p A "I p False 8. p V —1 p o True 9. pi A (piV p2) <-:> pi 10. pi V (pi A p2) < > pi

Ví dụ 2.22: Select CVụ From NV Where (Not (CVụ = T P ’) and ( C V ụ = T P ’ or C V ụ = ’PP’) a n d n o t ( C V ụ = ’PP’)) or T ênN V =’M ai’ p l : C V ụ = T P ’ Lượng từ hố: p 2 :C V ụ = ’PP’ y (-^ pl A (pl V p2) A ^ p2 ) V p3 p3: TênN V =’M ai’ _ áp dụng ; (-T pl A ((pl A 1 p2 ) V (p2 A 1 p2 ))) V p3 áp dụng 3: ( - . p 1 A p 1 A p2 ) V (-T p 1 A p2 A I p2 ) V p3 áp dụng 7: (False -I p2) V ( - 1 pl A False) V p3 áp dụng 5: False V False V p3 = p3

Viết lại: Select CVụ From NV

where TênNV= ’Mai'

Viết lại câu vẩn tin (adsbygoogle = window.adsbygoogle || []).push({});

Bước này được chia thành hai bước nhỏ:

(1) Biến đổi câu vấn tin từ phép tính quan hệ thành đại số quan hệ. (2) Cấu trúc lại câu vấn tin đại số nhằm cải thiện hiệu năng.

Để cho dễ hiểu, chúng ta sẽ trinh bày câu vấn tin đại số quan hệ một cách hình ảnh bàng cây tốn từ. Một cây tốn tử là một cây với mồi nút lá biếu thị cho một quan hệ được lưu trong CSDL và các nút khơng phải là nút lá biếu thị cho một quan hệ trung gian được sinh ra bởi các phép tốn quan hệ. Chuỗi các phép tốn đi theo hướng từ lá đến gốc biểu thị cho kết quả vấri tin.

Biến đổi câu vấn tin phép tính quan hệ thành một cây tốn tử cĩ thể thu được dễ dàng bằng cách sau. Trong SQL. các nút lá cĩ sằn trong mệnh đề FROM thứ hai nút gốc được tạo ra như một phép chiếu chứa các thuộc tính kết quá. Các thuộc tính này nằm trong mệnh đề SELECT cùa câu vấn tin SQL. Thứ ba, lượng từ hố (mệnh đề Where cùa SQL) được dịch thành chuỗi các phép tốn quan hệ thích hợp (phép chọn, nối. hợp,...) đi từ các nút lá đến nút gốc. Chuỗi này cĩ thể được cho trực tiếp qua thứ tự xuất hiện cùa các vị từ và tốn tử.

Ví dụ 2.23: Câu vấn tin: “tìm tên các nhân viên trừ J.Doe đã làm cho dự án CAD/CAM

trong một hoặc hai năm’'. Biểu thức SQL là:

SELECT TênNV

AND AND AND AND PC.M DA=DA.M DA TênNV ^ “J.Doe” DA.TênDA=”C AD/CAM ” (Thời g i a n - 12 OR Thời gian^24) Các thể được ánh xạ thành cây trong hình dưới.

T Ĩ T ê n N V ^ T h ờ i g i a n = l 2 V rhừi g i a n = 2 4 ƠTênDA="CAD/CAM' Cỉ^ r ê n N V 7f” j , D o e ' [><3 M D A C hiếu Chọn N ối

Bằng cách áp dựng các quy tắc biến đổi, nhiều cây cĩ thể được thấy rằng tương đương vĩi cây đưọc tạo ra bằng phirơng pháp đirọc mơ tả ớ trẽn. Sáu quy tắc tưong đưo’ng hũ*Li ích nhất và đưọ’c xem là các p h é p tốn đại so quan hệ CO' bán:

R, s , T là nhũ‘ng quan hệ, trong đĩ R được định nghĩa trẽn các thuộc tính A = {A|, A„} và quan hệ s được định nghĩa trên các thuộc tính B ={B|, Bn}.

1. Tính giao hốn cùa phép tốn hai ngỏị

R X s o s X R R c x S o s t x i R

Quy tắc này cũng áp dụng được cho hợp nhưng khơng áp dụng cho hiệu tập họp hay nối nửa.

2. Tính kểt hợp cũa các phép tốrì hai ngơi

(R X I S) 1X1 T o R o o (S [XI T)

3. T'mh lũy đăng cuu cúc phép luán đov ngĩi

Nếu R được định nghĩa trên tập thuộc tính A và A ' c A. A " c A và A ' c A” thi

7Ca 7ĩa (Ka (R ))C :>7rA (R )

ơ p I (A I )( ơ |)2( A ’ l( R ) )■' |11 (A I ),' (1.’ ( A ’ )( R )

trong đĩ p, là một vị từ được áp dụng cho thuộc tính A,

4. Giao hốn ph ép chọn với phép chiếu

^ A l , , A n ( ơ p ( A p ) ( R . ) ) O T Ia i A n ( ơ p ( A p ) ( 7 l A I A M . A p ( R - ) ) )

Chú ý rằng nếu Ap là phần từ của {A|, ... A„ỉ thì phép chiếu cuối cùng trên {Ai. A2,...,A„} ở vế phải của liệ thức khơng cĩ tác dụng.

5. Giao hốn phép chọn với phép loan hai Iiịĩỏị

ơ,„An(R X S) (ơp(A„(R)) X s

ơ|KAÍ)(R t x l ixAị, lỉkl S) <-> (ơp(A|)(R)) o o p(Ạj, Hlii s ơ p ( A , ) ( R T ) c > ơ, „a„ ( R ) ^ ^ ơ p i A o ( T )

ổ. Giuo hốn phép chiếu với phép lốn hai nịỉịi

Neu C = A 'u B ‘, trong đĩ A 'c A, B 'c B, và A, B là các tập thuộc tính tưonu ímg của quan hệ R và s , chúng ta cĩ:

7Ic( R X S ) c-> 7tA(R)7iB(S) (adsbygoogle = window.adsbygoogle || []).push({});

IĨ(.'(R [ X I p(Ại, lỉị) ^ a ( R ) [ X I p(Ại. 1ỈJ) 7Ih(S)

71c( R U S ) TIaÍ R ) Ki i (S)

Các quy tác trên cĩ the dirọc su (lụng đế cắii ITÚC lại cáv một cách cĩ hệ thống nhằm loại bị các cây "xấu” . Một thuật tốn tái cấu trúc don gián sử dụng heuristic trong đĩ cĩ áp dụng các phép tốn đưn ngơi (cliọn/cliiéu) càng sứni càng tốt nhàm giám bĩi kích thước ciia quan hệ trung gian.

rái cấu trúc cây tron” hình trên sinh ra câ> tidim hinh SÍUI. Ket quá được xeni là đạt chất lượng theo nghĩa là nĩ tránli truv xuất nhiều lần đến cùng mộl quan hệ và các phép tốn chọn lựa nhiều nhất được thực hiện trước tiên.

T^TcnNV t x 71 M I M TC n M i ) A . T c n N V M N V 71M N V . T e n N V d t , .l e n D A = ‘C A D / C A M ’ ^ ■ ] 'h o i g ia n = 12 v ' i ' h o t g i a n = 2 4 D A N V 2 .4 .3 . C u c b ư h ư a d ü ’ lieu ph än tan

Tang cuc bo hưa du* lieu chiu träch nhiem dich cäu van tin dai so tren quan he tộn cuc sang cäu van tin dai so tren cäc mänh vat ly. Cuc bp hưa cư sü’ dung cäc thưng tin dugc luu trong mot lugc do phän mänh.

Tang näy xäc dinh xem nhung mänh näo cän cho cäu van tin vä bien doi cäu van tin phän tan thänh cäu van tin tren cäc mänh. Tao ra cäu van tin theo mänh dirgc thuc hien qua hai buưc. T ruac tien vän tin phän tän dugc änh xa thänli van tin theo mänh bäng cäch thay doi mưi quan he phän tän bäng chu’ong trinh täi th iä cüa nư. Thü- hai vän tin theo mänh dugc don giän hộ vä täi cäu trüc de tao ra mot cäu vän tin '"cư chät lugng'\ Qua trinh don giän hộ vä täi cäu

trúc cĩ thể được thực hiện theo những quy tắc được sử dụng trong tầng phân rã. Giống như trong tầag đĩ, câu vấn tin theo mảnh cuối cùng nĩi chung chưa đạt đến tối ưu bời vì thơng tin liên quan đến các mảnh chưa được sử dụng.

Cục bộ hố dữ liệu sẽ xác định các mảnh nào cằn cho câu vấn tin. Biến đổi câu vấn tin phân tán thành các câu vấn tin theo mảnh.

Trong phần này đối vĩi mồi kiểu phân mảnh ta sẽ trình bày các kỹ thuật rút gọn đế tạo các câu vấn tin tối ưu và đơn giản hơn.

Ta sẽ sử dụng các quy tắc biến đổi và các khám phá, chẳng hạn đẩy các phép tốn

đ ơ n ngơi xuống thấp n h ư cĩ thể,

Rút gọn phân mản/ĩ ngang nguyên thuỷ

- Việc phân mảnh ngang phân tán 1 quan hệ dựa trên các vị từ chọn. Do đĩ, chương trình cục bộ hố dữ liệu phân tán cho p h â n mành ngang là hợp cùa các m àn h.

Ví dụ 2.24: Cho quan hệ NV (MaNV, TenNV, CVụ) cỏ thể được phân thành các mành

N V 1 ,N V 2 ,N V 3 sau:

N V I “ ƠMũNv < V )

N V 2 - ơ t : . v - MaNv<-R6-(NV) U N V - N V I u N V 2 u N V 3 N V 3 - Ơ M a N V . i.;6'(NV)

Như vậy, dạng vấn tin gốc được xác định trên NV sể thu được nhờ thay NV bằng (NV - N V l u N V 2 u N V 3 ) .

Vậy, rút gọn vấn tin trên các quan hệ phân mánh ngang chú yếu là:

+ Xác định sau khi tái cấu trúc lại cây con, xem cáy nào tạo ra các quan hệ rỗng thì loại bỏ chúng đi.

+ Phân mảnh ngang cĩ thể được dùng để đơn giản hố phép chọn và phép nối.

Rút gọn với phép chọn: Chọn trên các mánh cĩ lượng từ mâu thuẫn với lượng từ hố

cùa quy tắc phân mảnh sẽ sinh ra quan hệ rồng ta loại bỏ chúng. Cho quan hệ R được phán mảnh ngang thành R|, R„ trong đĩ: R, ■QỊ, (R), quy tắc này được phát biểu thành:

Quy tắc ỉ: a Ị. (Rj) ^ 0 nếu Vx t h u ộ c R : n ( Pi(x) A Pj(x) )

ở đây: Pi, P, là c ác vị t ừ c h ọ n , X biểu thị c h o 1 bộ, p( x) biểu thị ''vị t ừ p đ ú n g với x".

Vi dự. Cho quan hệ NV(MaNV, TenNV. Cvu) đirợc phân mảnh như sau:

N V l =ƠMaNV.-tIv(NV)

N V 2 = ơ ’'E3'< MaNV<-E6’( N V )

Và cĩ càu vấn tin sau; (adsbygoogle = window.adsbygoogle || []).push({});

Select MaNV From NV

Where M a N V -'E 5 '

Bàng cách hốn vị phép chọn vĩi phép hợp chúng ta sẽ phát hiện ra vị từ chọn mâu thuẫn với các vị lừ cua N V 1. N V3. > tạo ra các quan hệ rỗng > loại bị. tức là:

ƠMnNV I;5'(N V I ) “ 0 aMaNV=-E5'(NV2) 0 ƠMaNV-'E5'(NV3) = 0 M a N V Ơ M a N V = ' E 5 ' M a N V Ơ M i i N V = - t ; 5 - u N V 2

Hình 2. Kki). Vấn tin gốc. tin đã rút gọn.

Rút gọn vớì p h ép noi:

- Nối trên các quan hệ phân mánh ngang cĩ thể được đon gián khi các quan hệ nối được phân mảnh theo các thuộc tính nối.

- Đơn giản hố gồm cĩ phân phối các nối trên các hợp rồi bỏ đi các nối vơ dụng. (R, u R.) X ] s - (R, I X s) ^ (R. I X s)

trong đĩ: R, là các mảnh, cịn R, s là các quan hệ.

Bằng phép biến đối này, các hợp cĩ thể đưọc di chuyển lẻn trên cây tốn tử đế tất cả các noi cĩ thể cĩ các mánh đều được lộ ra.

Các nối vơ dụng cĩ thế xác định được khi các lưọng từ hố cùa các mảnh cĩ mâu thuẫn. Giả sử rằng các mảnh R„ Rị được định nghĩa tương ứng theo các vị từ Pi và Pi trên cùng một quan hệ.

Khi đĩ cĩ quy tắc 2\ R, IX l R| = 0 nếu V x e R„ Vy e R| : -, (P i(x ) A P|(y))

Áp dụng quy tắc này cho phép nối hai quan hệ đuợc cài đật như các các nối từng phần song song cho các mảnh.

Ví dụ 2.25: Cho 2 quan liệ đưọc phân mành:

N V l = ơ m ; i n v < I - I (MV)

N V 2 - Ơ , , : , . M a N V í . , , . ( N V )

NV3 ƠM.NV |.;í,(N V ) NV(M aNV, TênNV, CVụ)

PC (M aNV, MaDA. NVụ, Tg)

Câu hỏi: Select *

From NV, PC

W here NV.MaNV = PC.MaNV + Xây dựng cây tốn tử gốc: * I x l PC I - CĨMiiNV í 1:1 (PC) PC2 Ơ M ;iN V 13 (NV) H ln h 2.1 l a) , vấn tin gốc.

+ Bằng cách hốn vị phép kết nối vĩi các phép hợp clu'ing ta sẽ được cây tương đương sau;

PCI N V 2 PCI N V 3 PC2 N V l

Hình 2.11b). Cây tương đương.

Áp dụng quy tắc 2, chúng ta cĩ: PCI t X N V l ^ 0

Một phần của tài liệu Giáo trình hệ cơ sở dữ liệu phân tán và suy diễn phần 1 nguyễn văn huân, phạm việt bình (Trang 82 - 94)