Ưu điểm của cách biểu diễn câu truy vấn bằng đại số quan hệ là thể hiện rõ thứ tự thực hiện các phép toán.. Một biểu thức đại số quan hệ là một chuỗi các phép toán và có thể được biểu
Trang 1GVHD: PGS.TS Đồng Thị Bích Thuỷ Nhóm 2:
Hoàng Tuấn Trần Đức Dũng Nguyễn Thanh Tuấn Phạm Thị Hồng Thanh
Xử lý truy vấn trong cơ sở dữ liệu
phân tán
Nhóm 2
Trang 2Nội dung trình bày
Biến đổi câu truy vấn toàn cục thành câu truy vấn trên các mảnh
Trang 3Mô hình dữ liệu phân tán sử dụng trong slide này (tham khảo sách 1 trang 46)
Cấu trúc dữ liệu
Vị từ phân mảnh
3
Nhóm 2
Trang 4Biến đổi câu truy vấn – CS lý thuyết
Mọi câu truy vấn đều có thể biểu diễn bằng đại số quan hệ Ưu điểm của cách biểu diễn câu truy vấn bằng đại số quan hệ là thể hiện rõ thứ tự thực hiện các phép toán.
Một biểu thức đại số quan hệ là một chuỗi các phép toán và có thể được biểu diễn bằng một cây toán tử (operator tree)
Ví dụ: Hãy cho biết các nhà cung cấp có đơn hàng cung cấp ở phía Bắc, được biểu diễn
bằng biểu thức đại số quan hệ sau
Biểu thức trên được biểu diễn bằng cây toán tử sau:
4
Nhóm 2
Trang 5Biến đổi câu truy vấn – CS lý thuyết
Cây toán tử cho ta thấy rõ thứ tự thực hiện các toán tử và kết quả trong từng bước Ở đây ta thấy thứ tự thực hiện là: kết, chọn, chiếu
Nhưng, chúng ta thấy
ra, thứ tự thực hiện tốt
nhất nên là: chọn, kết,
chiếu Ứng với cách
thực hiện này, cây
toán tử sẽ được biến
đổi như sau :
Các phép chuyển đổi trên cây toán tử sẽ tạo ra một phép biến đổi tương đương trên biểu thức quan hệ
5
Nhóm 2
Trang 6Biến đổi câu truy vấn – CS lý thuyết
Khái niệm tương đương:
Ηαι θυαν η Ρ1 ϖ◊ Ρ2 ệ đượ χ γ ι λ◊ τ νγ ọ ươ đươ νγ
Trang 7Các tính chất của 1 phép toán đại số
quan hệ
7
Nhóm 2
Trang 8Các tính chất của 1 phép toán đại số
quan hệ
Tính phân phối (distributivity) của phép toán 1 ngôi với phép toán 2 ngôi
U(R B S) ↔ U(R) B U(S)
Tính đặt thừa số chung (fratorization) của phép toán 1 ngôi
U(R) B U(S) ↔ U(R B S)
8
Nhóm 2
Trang 9Biến đổi tương đương trong đại số quan hệ - Tính giao hoán
)) (
)) (
S
R ∩ = ∩
R S S
R × = ×
R S
S
R ∪ = ∪
)) ( (
)) (
)) (
Trang 10Tính giao hoán của phép chọn và phép tích, phép kết
Phép biến đổi tương đương Ghi chú
Nếu Attr(F) ⊆ (Attr(R) – Attr(S))
Nếu Attr(F1) ⊆ (Attr(R) –
( ((
Trang 11Biến đổi tương đương trong đại số quan hệ - Tính giao
Trang 12Biến đổi tương đương trong đại số quan hệ
) ( R × S × T = R × S × T
) (
) ( R ∪ S ∪ T = R ∪ S ∪ T
) (
) ( R ∩ S ∩ T = R ∩ S ∩ T
()
)) ( (
) ( R F1 F2 R
12
Nhóm 2
Trang 13Cây biểu diễn tính kết hợp và luỹ đẳng
Trang 14Biến đổi tương đương trong đại số quan hệ
- Tính phân phối của phép chọn
Phép biến đổi tương đương Ghi chú và điều kiện
( )
) ( )
( )
) ( )
( )
F3 F3
14
Nhóm 2
Trang 15Biến đổi tương đương trong đại số quan hệ
- Tính phân phối của phép chiếu
Phép biến đổi tương đương Ghi chú và điều kiện
AR = A – Attr(S), AS = A- Attr(R)
πA (R S) → πAR (R) πAS(S) AR = A – Attr(S), AS = A-
Attr(R) Attr(F3) ⊆ A (dẫn xuất
từ điều kiện tích Đề các)
πA (R S) → πAR (R) πAS (S) AR = A – Attr(S),
AS = Attr(S) ∩ Attr (F3) Attr(F3) ⊆ A
) ( )
( )
( R S A R A S
) ( )
( )
Trang 16Biến đổi tương đương trong đại số quan hệ
- Tính nhân tử hóa của phép chọn
Phép biến đổi tương đương Ghi chú và điều kiện
FR = FS = F
F = FR, FR→FS F= FR ∧ FS
σFR (R) σFS (S) → σF (R S) F= FR ∧ FS
σFR (R) σFS (S) → σF (R S) F= FR, FS = true
) (
) ( )
σ
) (
) ( )
σ
) (
) ( )
Trang 17Biến đổi tương đương trong đại số quan hệ
- Tính nhân tử hóa của phép chiếu
Phép biến đổi tương đương Ghi chú và điều kiện
AR = A= AS
πAR (R) πAS(S) → πA (R S)
πAR (R) πAS(S) → πA (R S) A = AR
) (
) ( )
( R AS S A R S
π
) (
) ( )
A = ∪
AS AR
A = ∪
17
Nhóm 2
Trang 18Mô hình hoá tính phân phối và tính nhân tử
Trang 19Biến đổi tương đương trong đại số quan hệ (tt)
Từ các phép biến đổi trên, ta dẫn xuất ra một phép biến đổi rất hữu ích khi sử dụng trong
môi trường phân tán
19
Nhóm 2
Trang 20Nguyên tắc biến đổi tương đương
Trong cơ sở dữ liệu cục bộ, việc biến đổi tương đương được thực hiện theo 2 nguyên tắc
sau, nhằm làm giảm kích thước các toán hạng trong phép toán 2 ngôi trước khi thực hiện :
Trang 21Nguyên tắc biến đổi tương đương (tt)
Trang 22Đồ thị toán tử và biểu thức con chung
Biểu thức con chung (common subexpression) là biểu thức xuất hiện nhiều lần trong câu
truy vấn
Việc tìm ra các biểu thức con chung giúp chúng ta có thể áp dụng các luật sau để rút gọn
câu truy vấn, đơn giản cây toán tử:
Trang 23Biểu thức con chung (tt)
Các luật rút gọn dựa trên biểu thức con chung
Trang 24Tìm biểu thức con chung - Biến đổi cây toán
tử thành đồ thị toán tử
Xét ví dụ: Hãy cho biết các tên của các nhân viên làm việc trong phòng ban có mã người
quản lý là 373 nhưng tiền lương của họ không lớn hơn $35.000
Câu truy vấn viết bằng đại số quan hệ như sau:
24
Nhóm 2
Trang 25Biến đổi cây toán tử thành đồ thị toán tử
Trang 26Biểu thức chuẩn tắc
Biểu thức chuẩn tắc (canonical expression): của một biểu thức đại số quan hệ trên lược đồ toàn cục có được bằng cách thay thế mỗi tên quan hệ toàn cục xuất hiện trong nó bởi biểu thức đại số quan hệ tái tạo các quan hệ toàn cục từ các mảnh
Sử dụng tính phân phối của phép chọn và phép chiếu đối với phép hợp và phép kết để phân phối việc xử lý đến các mảnh
26
Nhóm 2
Trang 27đó cây biểu diễn cho biểu thức chuẩn tắc như sau
DEPT 2
∪
27
Nhóm 2
Trang 28Đại số quan hệ định tính
Quan hệ định tính (qualified relation) là một quan hệ được mở rộng bởi một vị từ định tính.
Ký hiệu một quan hệ định tính là một cặp [R: qR], trong đó:
Trang 29Các luật trong đại số quan hệ định tính
Trang 30Các luật trong đại số quan hệ định tính (tt)
Trang 31Đại số quan hệ định tính (tt)
Hai quan hệ định tính là tương đương nếu các thân của chúng là các quan hệ tương đương
và các vị từ định tính của chúng biểu diễn cùng hàm chân trị (nghĩa là, nếu áp dụng cả hai
vị từ định tính cho cùng một bộ thì chúng có cùng một giá trị chân trị)
Sử dụng các vị từ định tính để loại bỏ các mảnh không dùng để tạo ra kết quả của truy vấn.
Các phép biến đổi tương đương (liên quan đến quan hệ rỗng) dùng để đơn giản hóa cây
toán tử
31
Nhóm 2
Trang 32Nguyên tắc biến đổi tương đương 3 và 4
Nguyên tắc 3: Đẩy các phép chọn xuống phía các nút lá của cây, và sau đó thực hiện chúng bằng cách dùng đại số quan hệ định tính Thay thế kết quả của phép chọn bởi quan hệ rỗng
nếu vị từ định tính của kết quả bị mâu thuẫn.
Nguyên tắc 4: Sử dụng đại số quan hệ định tính để định trị vị từ định tính của các toán
hạng của các phép kết Thay thế cây con, bao gồm phép kết và các toán hạng của nó, bởi
quan hệ rỗng nếu vị từ định tính của kết quả của phép kết bị mâu thuẫn
Mục đích của việc làm này là đơn giản các quan hệ được phân mảnh ngang và các phép kết giữa các quan hệ được phân mảnh dọc.
32
Nhóm 2
Trang 33Đơn giản hóa trong các quan hệ phân
[DEPT3: DEPTNUM>20]
33
Nhóm 2
Trang 35Đơn giản hóa của phép kết trong các
quan hệ phân mảnh ngang
Ví dụ : Cho biết các nhà cung ứng có đơn hàng cung ứng
Π SNUM (SUPPLY SUPPLIER)
= ‘LA’]
[SUPPLIER 1 : CITY = ‘SF’]
[SUPPLIER 2 : CITY = ‘LA’]
35
Nhóm 2
Trang 36Đơn giản hóa của phép kết trong các
quan hệ phân mảnh ngang
Ví dụ : Π SNUM (SUPPLY SUPPLIER)
(b) Dạng đơn giản của phép kết giữa các
quan hệ phân mảnh ngang
= ‘LA’]
[SUPPLIER 1 :
CITY = ‘SF’]
[SUPPLIER 2 :
CITY = ‘LA’]
SNUM=SNUM
36
Nhóm 2
Trang 37Dùng suy diễn cho các phép đơn giản
hóa
Ở phần trên việc xác định mâu thuẫn giữa tiêu chí chọn của câu truy vấn với vị từ định tính của phân mảnh là rất hữu dụng, dễ phát hiện bởi vì cả hai sử dụng chung thuộc tính hay nhóm thuộc tính.
Tuy nhiên, việc xác định một công thức là mâu thuẫn có thể dùng bằng thông tin nội hàm phức tạp hơn và yêu cầu sử dụng bộ chứng định lý (theoem prover)
Xét ví dụ: Cho biết các nhà cung ứng có đơn hàng cung ứng cung cấp ở phía Bắc
Π SNUM σ AREA = ‘NORTH’(SUPPLY DEPTNUM = DEPTNUM DEPT)
37
Nhóm 2
Trang 38Dùng suy diễn cho các phép đơn giản hóa
= ‘LA’]
∪
[DEPT 2 : 10<DEPTNUM≤20]
[DEPT 1 : DEPTNUM≤10]
[DEPT 3 : DEPTNUM>20]
Trang 39Dùng suy diễn cho các phép đơn giản
Trang 40Dùng suy diễn cho các phép đơn giản hóa
Π SNUM
SNUM=SNUM
(a) Dạng đơn giản của cây toán tử dùng suy diễn
[SUPPLY 2 :SNUM = SUPPLIER.SNUM and SUPPLIER.CITY
= ‘LA’]
∪
[DEPT 2 : 10<DEPTNUM≤20]
[DEPT 1 : DEPTNUM≤10]
[DEPT 3 : DEPTNUM>20]
Trang 41Đơn giản hóa trong các quan hệ phân
mảnh dọc
Xác định chính xác một tập con các mảnh đủ để trả lời câu truy vấn, sau đó loại bỏ các mảnh còn
lại từ biểu thức cũng như loại bỏ phép kết dùng để tái tạo các mảnh lại thành các quan hệ toàn cục
Xét ví dụ: Hãy cho biết tên và lương của các nhân viên
Π SNUM, SAL EMP
41
Nhóm 2
Trang 42Đơn giản hóa trong các quan hệ phân
mảnh dọc
Π NAME, SAL
EMPNUM=EMPNUM
[EMP2: 10<DEPTNUM≤20]
[EMP1: DEPTNUM≤10]
[EMP3: DEPTNUM>20]
Trang 43A, B là những thuộc tính (hay tập thuộc tính)
Chương trình kết nữa cho phép kết bằng là:
S A=B (R A=B PB S)
43
Nhóm 2
Trang 44Chương trình kết nửa
Trang 48Tính chất của phép gom nhóm
Tính phân phối theo hàm union:
ℑG,AF (R1 R ∪ 2) → (ℑG,AF R1) ( ∪ ℑG,AF R2)
Điều kiện cần và đủ: mỗi nhóm Gi hoặc được chứa hoặc không giao với mọi toán hạng Rj.
∀i, j: (Gi R ⊆ j) v (Gi∩Rj= )∅
Trang 50Tính chất của Hàm kết hợp
Để có thể sử dụng hàm kết hợp trong phân tán nếu bất cứ đa tập hợp (multiset) S và sự phân tách của S thành đa tập hợp S1, S2, …, Sn, có thể xác định một tập hàm kết hợp F1, F2, …, Fm và một biểu thức E(F1,…., Fm) sao cho:
F(S) = E(F1(S1),…, F1(Sn), F2(S1),…,F2(Sn), …, Fm(S1),…,Fm(Sn))
Một đa tập hợp có các thành phần tái tạo.
Mỗi phần tử của S được ánh xạ đến một và chỉ một phần tử của một trong những đa tập hợp S1, , Sn
50
Nhóm 2
Trang 51Tính chất của Hàm kết hợp
S1, S2, …, Sn là những đa tập hợp được đưa ra bởi các giá trị của một cột đã cho của các phân mảnh R1, R2, …, Rn
S là đa tập hợp được đưa ra bởi các giá trị của cột tương ứng đó trên quan hệ toàn cục R
Hàm kết hợp tính trung bình với các hàm Fi và biểu thức E(Fi) là hàm tính trung bình
S SUM
F1 = ( i), = 1
n i
S COUNT
F2 = ( i), = 1 F1 = SUM ( Si), i = 1 n
51
Nhóm 2
Trang 53Tính chất của Hàm kết hợp
Tính toán phân tán của hàm kết hợp là một tính chất rất quan trọng trong cơ sở dữ liệu phân tán bởi vì:
Χ〈χ κ τ θυ χ α χ〈χ η◊µ Φ ế ả ủ 1(Σ1), , Φµ(Σµ) σαυ κηι τνη χ⌠ τη α ν µ τ ϖ τρ πην µ νη τηχη η π ν ι ể đư đế ộ ị ả ợ ơ
µ◊ η◊µ Ε đượ χ τη χ ηι ν τ ι ψ τηαψ ϖ πη ι ự ệ ạ đ ả đư α
τ τ χ δ λι υ ν τ ι ϖ τρ ⌠ ϖ◊ τνη η◊µ κ τ η π ấ ả ữ ệ đế ạ ị đ ế ợ
Tính chất này có thể áp dụng cho truy vấn
ℑAVG(QUAN) σ PNUM=‘P1’ SUPPLY
Không thể áp dụng nguyên tắc 6 cho truy vấn này bởi vì điều kiện cần và đủ của nguyên tắc không
có hiệu lực với nó
53
Nhóm 2
Trang 54Tính chất của Hàm kết hợp
Tạo ra hai truy vấn con độc lập thực hiện trên 2 phân mảnh SUPPLY1, SUPPLY2
ℑSUM(QUAN),COUNT σ PNUM=‘P1’ SUPPLYi , i = 1, 2
Gọi S1và C1 là giá trị trả về SUM(QUAN) và COUNT của biểu thức ứng với SUPPLY1 Tương tự S2 và C2 là của SUPPLY2
Sau đó, S1, S2, C1, và C2 sẽ được chuyển đến vị trí nơi mà câu truy vấn được tạo và giá trị AVG(QUAN) được tính và:
AVG(QUAN) = (S1 + S2)/(C1 + C2)
54
Nhóm 2
Trang 56Truy vấn có tham số
Truy vấn có tham số: là truy vấn mà trong đó các công thức trong các điều kiện chọn của truy vấn bao gồm các tham số mà các giá trị của chúng chưa được biết khi biên dịch truy vấn.
Truy vấn có tham số cho phép thực hiện truy vấn nhiều lần với nhiều giá trị khác nhau của các tham số; ở mỗi lần thực hiện sẽ trả về kết quả khác nhau
56
Nhóm 2
Trang 57Đơn giản hóa truy vấn có tham số
Trang 58Đơn giản hóa truy vấn có tham số
Đơn giản hóa truy vấn có tham số: áp dụng đại số quan hệ định tính để xác định các vị từ
định tính của các biểu thức con là mâu thuẫn với nhau.
Biểu diễn phép đơn giản hóa ở thời gian chạy:
Trang 59Đơn giản hóa truy vấn có tham số
Phép toán CUT có một đặc tả cho mỗi toán hạng đó là một công thức dùng các tham số của câu
truy vấn và vị từ định tính của phân mảnh
Mỗi công thức sẽ được chuẩn bị ở thời gian biên dịch và thực hiện tính toán ở thời gian chạy
Nếu công thức trả về true thì toán hạng tương ứng sẽ đưa vào phép hợp, false thì loại bỏ khỏi cây.
59
Nhóm 2
Trang 60Đơn giản hóa truy vấn có tham số
[DEPT3: DEPTNUM>20]
60
Nhóm 2
Trang 61Đơn giản hóa truy vấn có tham số
[DEPT3: DEPTNUM>20]
OR ($Y > 10 AND $Y≤ 20)
$X ≤ 10 OR
$Y ≤ 10
61
Nhóm 2
Trang 62Sử dụng vùng nhớ tạm khi truy vấn có
tham số nhiều lần
Thực hiện truy xuất mà phải lặp lại nhiều lần sẽ gây ra tốn một khoảng chi phí nhất định
Để giảm chi phí thực hiện sử dụng các quan hệ tạm thời ở nơi gốc của truy vấn
Ví dụ:
Hãy cho biết tên của các nhân viên đang làm việc ở phòng ban 12 mà có mã người quản lý
là $X ( tham số của truy vấn):
Π NAME σ MGRNUM = $X AND DEPTNUM = 12 EMP
62
Nhóm 2
Trang 63σ DEPTNUM=12
Τ ≡ Π NAME, MGRNUM
63
Nhóm 2
Trang 64• Chọn chiến lược nào có chi phí nhỏ nhất trong số các
chiến lược có thể có
hưởng của chi phí truyền các kết quả trung gian)
Tối ưu hóa các chiến lược truy xuất
64
Nhóm 2
Trang 65• Tăng hiệu suất (performance) của chương trình
• Trong cơ sở dữ liệu phân tán cần cân nhắc giữa khả năng
truyền dữ liệu và khả năng xử lý cục bộ (truy xuất đĩa,
khả năng xử lý CPU)
• Giả định rằng tối ưu toàn cục có thể thực hiện một cách
độc lập với tối ưu cục bộ Các giải thuật trong chương
này tính toán tối ưu hóa chỉ dựa trên chi phí truyền dữ
liệu giữa các site, với giả định rằng trước đó dữ liệu đã
được tối ưu hóa cục bộ ở mỗi site, sử dụng kỹ thuật của
cơ sở dữ liệu tập trung
Các mục tiêu của tối ưu hóa xử lý truy vấn
65
Nhóm 2
Trang 66Chi phí bao gồm 2 phần: chi phí truyền dữ liệu và độ trễ thời gian
Tối ưu hóa độ trễ thời gian sẽ tăng khả năng thực thi song
song của chương trình Tuy nhiên, tối ưu độ trễ thời gian
không thoả hiệp với tối ưu chi phí truyền
Chi phí truyền và độ trễ thời gian là hàm tuyến tính đối với kích thước dữ liệu truyền:
TC(x) = C0 + x.C1
TD(x) = D0 + x.D1
C0: chi phí khởi động quá trình truyền (hằng số)
D0: chi phí thiết lập kết nối
Chi phí trong quá trình truyền dữ liệu
66
Nhóm 2
Trang 67• Chỉ xem xét các thao tác quan trọng (phép kết)
• Thêm vào các thông tin định lượng cần thiết
cho việc đánh giá các chiến lược xử lý truy vấn
khác nhau
• Các thông tin thống kê cần thiết cho phân
tích định lượng của 1 mảnh Ri (gọi là profile):
Tổng số bộ dữ liệu trong mảnh Ri, ký hiệu là
Trang 68 Kích thước của mảnh, ký hiệu là size(Ri), là tổng các kích
thước của tất cả các thuộc tính: size(Ri) = Σsize(Ai) (Ai є Ri)
Tổng số các giá trị phân biệt của thuộc tính A ở site Ri, ký hiệu
là val(A[Ri])
là đồ thị tối ưu, nút là các mảnh đã thu gọn và cung biểu diễn cho phép kết
Mô hình mới cho xử lý câu truy vấn
68
Nhóm 2
Trang 70Ví dụ về profile cho mảnh SUPPLY:
Mô hình mới cho xử lý câu truy vấn
card(Supply) = 50,000
size
6 val
Trang 71• Ước lượng nhằm mục đích đánh giá ảnh hưởng của việc áp
dụng các thao tác khác nhau trong quá trình tối ưu hóa xử lý truy vấn
• Ký hiệu T là kết quả của việc áp dụng các thao tác trên các
Trang 72• Tổng số các giá trị phân biệt của thuộc tính B không nằm
trong biểu thức điều kiện chọn được xác định bởi hàm
thống kê toán học sau đây:
r, r < m/2
m, r ≥ 2m với n = card(R), m = val(B[R]), r = card(T)
Ước lượng profiles cho kết quả của các phép toán đại số quan hệ
72
Nhóm 2
Trang 73• Lực lượng:
Nếu chỉ chiếu trên 1 thuộc tính A: card(T) = val(A[R])
Nếu val(A1[R]).val(A2[R])…val(Ai[R]) < card(R)
thì card(T) = val(A1[R]).val(A2[R])…val(Ai[R])
Nếu phép chiếu có chứa khóa của R:
card(T) = card(R)
• Kích thước:
size(T) = sum(size(A i )), A i thuộc T.
• Các giá trị phân biệt của các thuộc tính chiếu giống như trong
quan hệ ban đầu
Ước lượng profiles: Phép chiếu
73
Nhóm 2