Tải bản đầy đủ (.pdf) (13 trang)

Tổng quan xử lý vấn tin (CSDL phân tán)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (354.79 KB, 13 trang )

CHƯƠNG IV



TỔNG QUAN VỀ XỬ LÝ VẤN TIN
PGS.NCVC.TS LÊ HUY THẬP


n
ENO

1
TITLE

SAL

Elect. Eng.
Syst. Anal.
Mech.Eng
Progammer

40000
34000
27000
24000

1

Quan hệ PAY

E1


E2
E3
E4
E5
E6
E7
E8

ENAME

TITLE

J.Doe
M. Smith
A.Lee
J.Mmith
B.Casey
L.Chu
R.David
J.Jones

Elect. Eng
Syst. Anal
Mech.Eng
Programmer
Syst.Anal
Elect.Eng
Mech.Eng
Syst. Anal


Quan hệ EMP

n

n

ENO

PNO

RESP

DUR

E1
E2
E2
E3
E3
E4
E5
E6
E7
E8

P1
P1
P2
P3
P4

P2
P2
P4
P3
P3

Manager
Analyst
Analyst
Consultant
Engineer
Programmer
Manager
Manager
Engineer
Manager

12
24
6
10
48
18
24
48
36
40

Title- Chuyên môn
SAL: Salary-Lương

Elect. Eng Kỹ sư điện tử
Syst. Anal Nhà phân tích hệ thống
Mech.Eng Kỹ sư cơ khí
Programmer Lập trình viên
EMP: Employee-Nhân viê
PAY: Payment- Trả lương
Proj: Project-Dự án
ASG: assignment-Phân nhiệm
Resp: responsibility-Trách nhiệm
Manager: Người quản lý
Analyst: Nhà phân tích
Consultant: Tư vấn
Budget: Ngân sách

1
PNO

PNAME

BUDGET

LOC

P1
P2
P3
P4

Instrumentation
Dabatase Develop

CAD/ CAM
Maintenance

150000
135000
250000
310000

Montreal
New York
New York
Paris

Quan hệ PROJ

Quan hệ ASG

2


n
MaNV

1
TrinhDoCM

Luong

Kỹ sư điện
Phân tích và thiết kế hệ thống

Kỹ sư cơ khí
Lập trình viên

4000
3400
2700
2400

NV1
NV2
NV3
NV4
NV5
NV6
NV7
NV8

Quan hệ TraLuong

TenNV

TrinhDoCM

Nguyễn Văn Bổng
Lê Hồng Ngoc
Hoàng Trung Mã
Trịnh Kim Thanh
Ngô Đình Vinh
Trần Mỹ Lệ
Lê Hồng Hạnh

Nguyễn Trường Tam

Kỹ sư điện
Phân tích và thiết kế hệ thống
Kỹ sư cơ khí
Lập trình viên
Phân tích và thiết kế hệ thống
Kỹ sư điện
Kỹ sư cơ khí
Phân tích và thiết kế hệ thống

Quan hệ NhanVien

n

n
MaNV

MaDuAn

ChucVu

ThoiGianLV

NV1
NV2
NV2
NV3
NV3
NV4

NV5
NV6
NV7
NV8

DA1
DA1
DA2
DA3
DA4
DA2
DA2
DA4
DA3
DA3

Giám đốc
Nhân viên phân tích và thiết kế
Nhân viên phân tích và thiết kế
Nhân viên tư vấn
Kỹ sư
Lập trình viên
Giám đốc
Giám đốc
Kỹ sư
Giám đốc

12
24
6

10
48
18
24
48
36
40

1

MaD
uAn

TenDuAn

NganSac
h

ViTri

DA1
DA2
DA3
DA4

Thiết bị đo đạc
Phát triển CSDL
CAD/ CAM
Bảo dưỡng


150000
135000
250000
310000

Hải Phòng
Hà Nội
Hà Nội
TP.Hồ Chí Minh

Quan hệ DuAn

Quan hệ PhanNhiem

3


4.1. Bài toán xử lý vấn tin
Biến đổi câu vấn tin cấp cao (SQL) thành câu vấn tin cấp thấp (Relational Algebra =
RA).
- Câu vấn tin RA phải đạt được cả tính đúng đắn lẫn tính hiệu quả. Một biến đổi
được xem là đúng đắn, nếu các RA cùng cho ra một kết quả.
- Có rất nhiều RA sử dụng tài nguyên như nhau.
- Cần phải chọn một câu vấn tin RA để có tổng chi phí nhỏ nhất.
Ví dụ 4.1 –1
Xét 2 quan hệ: EMP và ASG “Hãy cho tên các nhân viên (ENAME) đang quản lý
(Manager) một dự án nào đó”?
Câu SQL là
SELECT ENAME
FROM

EMP, ASG
WHERE
EMP.ENO = ASG.ENO AND ASG.RESP = “Manager”
Hai trong các câu AQL là:
ENAME(RESP= “Manager”EMP.ENO=ASG.ENO(EMPx ASG)) (*) Và
ENAME(EMP ENO(RESP = “Manager” (ASG))) (**)
Rõ ràng là (**) sẽ được dùng vì nó sử dụng tài nguyên ít nhất.
4


Trong quan hệ phân tán, nếu chỉ xét các phép toán quan hệ thực hiện tại từng nút, chưa
đủ thông tin để diễn tả chiến lược thực hiện các câu truy vấn. Cần bổ sung thêm việc
trao đổi dữ liệu giữa các vị trí. Như vậy, thể xử lý vấn tin phân tán, thì ngoài các phép
toán quan hệ thực hiện tại từng nút, còn cần phải thực hiện:
1. Chọn thứ tự thực hiện các phép toán đại số quan hệ trong câu vấn tin,
2. Chọn các vị trí để xử lý dữ liệu
3. Cách biến đổi dữ liệu nữa.
Do những yêu cầu trên mà không gian lời giải tăng lên làm cho việc xử lý vấn tin phân tán
sẽ rất phức tạp.
Ví dụ 4.1–2. Câu hỏi
“Tìm tên các nhân viên đang quản lý một dự án nào đó”. Xét RA ở (**)
ENAME(EMPENO(RESP = “Manager”(ASG))) (xem ** ví dụ 4.1-1 )
Giả sử EMP và ASG được phân mảnh ngang như sau:
EMPH1 = ENO 

“E3”

(EMP)

EMPH2 = ENO >


“E3”

(EMP)

ASGH1 = ENO 

“E3” (ASG)

ASGH2 = ENO >

“E3”

(ASG)
5


Các mảnh ASGH1, ASGH2, EMPH1, EMPH2 theo thứ tự được lưu tại các vị trí 1, 2, 3, 4 và
k.quả lưu tại vị trí 5. Có hai chiến lược A và B lưu giữ và thực hiên câu vấn tin (hình 4.1) :
Nhận xét:
Chiến lược A:
EMP và ASG được phân mảnh theo cùng cách để thực hiện song song các phép chọn
và phép nối.
Chiến lược B:
Tập trung dữ liệu tại vị trí lưu kết quả trước khi xử lý câu vấn tin .
(a) Hình 4.1. Chiến lược A

Vị trí 5
Rerult = EMP1’  EMP2’


EMP1’

EMP2’

Vị trí 3
EMP1’ = EMPH1 ENO ASG1’
Vị trí 1
ASG1’ = RESP =

ASG1’
“Manager”

(ASGH1)

Vị trí 4

EMP2’ = EMPH2 ENO ASG2’
ASG2’
ASG2’ = RESP =

“Manager”

Vị trí 2
(ASGH2)

6


(b)Hình 4.1. Chiến lược B
Vị trí 5

Result = (EMPH1  EMPH2) ENO (RESP = “Manager” (ASGH1  ASGH2))

Vị trí 3

Vị trí 4

Vị trí 1

Vị trí 2

4.2. MỤC TIÊU CỦA XỬ LÝ VẤN TIN
Chỉ tiêu đánh giá là tổng chi phí thời gian cần để xử lý các phép toán tại các vị trí và
truyền dữ liệu giữa các vị trí. Bao gồm:

Chi phí cho CPU thực hiện các thao tác trên dữ liệu trong bộ nhớ chính.

Chi phí xuất nhập cho các thao tác xuất nhập vào đĩa, băng từ,…

Chi phí truyền dữ liêu giữa các vị trí tham gia vào quá trình thực hiện vấn tin. Bao
gồm chi phí phải trả khi phải xử lý thông báo (định dạng, giải định dạng,…) và khi
truyền dữ liệu trên mạng.
Phép toán

4.3. ĐỘ PHỨC TẠP CỦA
CÁC THUẬT TOÁN
(Hình 4.2)

Độ phức tạp

Chọn, Chiếu (Không loại bỏ trùng lặp)


O(n)

Chiếu (Có loại bỏ trùng lặp), Gộp nhóm

O(n+logn)

Nối, Nối nửa, Chia, Các phép toán tập hợp

O(n+logn)

Tích Dercartes

O(n2)

Hình Hình 4–2. Độ phức tạp của các phép toán đại số quan hệ

7


4.4. MÔ TẢ ĐẶC TRÝNG CỦA XỬ LÝ VẤN TIN
4.4.1. Ngôn ngữ dùng cho xử lý vấn tin
- Ngôn ngữ thứ nhất được dùng tại giai đoạn phân rã vấn tin:
Các phép toán quan hệ thường là SQL.
- Ngôn ngữ thứ 2 – Ngôn ngữ thành phẩm:
AQL được có bổ sung thêm việc truyền tin. Các phép toán của loại ngôn ngữ này được
cài đặt trực tiếp trong hệ thống. Việc xử lý vấn tin được thực hiện ở ngôn ngữ thứ hai
này.
4.4.2. Các kiểu tối ưu hoá
1/ Tối ưu hoá là chọn AQL tốt nhất.

Bằng cách tính chi phí cho từng phương án và chọn phương án có chi phí thấp nhất.
2/ Tối ưu hoá bằng phương pháp tìm kiếm vét cạn.
Tất cả các AQL đều được xem xét, phương pháp này thường có chi phí cao.
3/ Phương pháp ngẫu nhiên.
Lấy ngẫu nhiên một số AQL, và tìm AQL tốt nhất. Phương pháp này giảm được chi
phí, tuy nhiên kết quả chỉ là lời giải “cận” tối ưu.
4/ Phương pháp heuristic.
Một heuristic quan trọng trong các hệ phân tán là thay các phép nối bằng tổ hợp của
các nối nửa, nhằm giảm tối đa dữ liệu tham gia vào phép tính, tức là hạ thấp chi phí
truyền dữ liệu và xử lý trên CPU.
8


4.4.3. Thời điểm tối ưu hoá
(i) Tối ưu hoá tĩnh. Được thực hiện vào lúc biên dịch, ví dụ, tìm ra AQL tốt nhất trước khi
thực hiện CÂU VấN TIN.
(ii) Tối ưu hoá động. Thực hiện vào lúc thực hiện câu vấn tin. Tại mỗi thời điểm thực hiện
CVT sẽ chọn thao tác kế tiếp tốt nhất dựa trên các kết quả đã thu được trước đó. Ưu
điểm của phương pháp này là kích thước thực sự của các quan hệ trung gian luôn có
sẵn để vấn tin, vì thế làm giảm đi xác suất chọn sai. Khuyết điểm của nó là phải lặp lại
các bước tối ưu hoá cho mỗi lần thực hiện vấn tin.
(iii) Tối ưu hoá hỗn hợp. Cơ bản là phương pháp tĩnh nhưng được kết hợp với quá trình tối
ưu hoá động lúc thực hiện.
4.4.4. Số liệu thống kê
Hiệu quả của Tối Ưu Hoá (TƯH) vấn tin dựa vào số liệu thống kê về dữ liệu của CSDL.
Tối ưu hoá động, cần dựa vào số liệu thống kê để chọn ra thao tác khởi đầu để thực hiện
TƯH.
Tối ưu hoá tĩnh, dựa vào số liệu thống kê về CSDL nhiều hơn vì kích thước của các quan
hệ trung gian chỉ được đánh giá khi có các thông tin thống kê
4.4.5. Vị trí quyết định

Cách tiếp cận tập trung: Một vị trí đề ra chiến lược tìm kiếm, ta gọi là quyết định tập trung.
Quyết định tập trung đơn giản nhưng đòi hỏi phải có thông tin toàn bộ CSDL phân tán.
Cách tiếp cận phân tán: Nhiều vị trí đề ra chiến lược tìm kiếm của mình, các vị trí chỉ đòi
hỏi các thông tin cục bộ.
Cách tiếp cận hỗn hợp: Một vị trí đưa ra quyết định chính còn các vị trí khác thì đưa ra các
9
chọn lựa cục bộ của nó.


4.4.6. Tận dụng các mảng nhân bản
Câu vấn tin “phân tán” diễn tả trên quan hệ toàn cục được phân rã thành các câu vấn tin
trên các mảnh. Quá trình này được gọi là cục bộ hoá dữ liệu. Nhiệm vụ chính của nó là
cục bộ hoá dữ liệu có liên quan trong CVT. Để tăng hiệu quả, có thể nhân bản mảnh
cho nhiều vị trí.
Một số thuật toán lợi dụng sự tồn tại của các mảnh được nhân bản nhằm làm giảm số lần
truyền dữ liệu. Do vậy, thuật toán TƯH sẽ phức tạp hơn do có nhiều mảnh nên sẽ có
nhiều chiến lược thực thi tương đương.
4.4.7. Sử dung các nối nửa
Nối nửa làm giảm kích thước của quan hệ trung gian, làm giảm di dữ liệu cần trao đổi giữa
các vị trí. Tuy nhiên sử dụng nối nửa có thể làm tăng số lượng các thông báo và thời
gian xử lý nội bộ.

10


4.5. MÔ HÌNH CÁC TẦNG XỬ LÝ VẤN TIN (XEM HÌNH 4–3)

Tầng phân rã vấn tin

Lược đồ toàn cục


AQL trên các quan hệ phân tán
Vị trí
điều
khiển

Tầng cục bộ hoá dữ liệu

Lược đồ mảnh

Vấn tin theo mảnh
Số liệu trên các
mảnh

Tầng tối ưu hoá toàn cục
Các vị
trí cục
bộ

Vấn tin theo mảnh kèm với
các phép toán truyền
Tầng ối ưu hoá cục bộ

Lược đồ cục bộ

Vấn tin cục bộ đã tối ưu

Hình 4-3 Các tầng xử lý vấn tin
11



4.5.1. Tầng phân rã vấn tin
Chuyển SQL sang các AQL trên các quan hệ toàn cục. Thông tin cần cho quá trình biến
đổi này được mô tả trong lược đồ khái niệm toàn cục, và các quan hệ toàn cục.
Thông tin về việc phân tán dữ liệu không được dùng ở tầng này mà được dùng ở
tầng tiếp theo. Vì vậy, các kỹ thuật được sử dụng ở tầng này là của các DBMS tập
trung.
Phân rã vấn tin ở tầng này được chia làm 4 bước:
1. Chuyển SQL sang AQL và chú ý dùng độ ưu tiên của các toán tử logic.
2. Phân tích ngữ nghĩa đã được chuẩn hoá để phát hiện và loại bỏ các câu vấn tin sai.
3. Câu vấn tin đúng được đơn giản hoá bằng cách loại bỏ các vị từ thừa.
4. Câu vấn tin AQL sẽ được tái cấu trúc thành SQL.
4.5.2. Tầng cục bộ hoá dữ liệu
Vai trò của tầng này là cục bộ hoá dữ liệu của câu vấn tin nhờ sử dụng các thông tin về
sự phân bố dữ liệu. Xác định các mảnh tham gia vào CVT và biến đổi CVT phân
tán thành câu vấn tin trên các mảnh. Quan hệ gốc, nghĩa là trước khi phân mảnh
được tái thiết lại, rồi sử dụng chương trình, tức là sử dụng RA trên các mảnh
được gọi là chương trình cục bộ hoá.
Câu vấn tin theo mảnh được tạo ra qua hai bước:
1.
Câu vấn tin phân tán Toàn Cục (TC) được chuyển thành câu vấn tin theo mảnh
Cục Bộ (CB)) dựa vào chương trình tái thiết của nó.
2.
Câu vấn tin được đơn giản hoá và tái cấu trúc để tạo ra câu vấn tin tốt nhất.
12


4.5.3. Tầng tối ưu hoá vấn tin toàn cục
Đầu vào của tầng này là CVT cục bộ, nghĩa là câu vấn tin đại số trên các mảnh. Mục
đích của tối ưu hoá vấn tin là tìm ra một chiến lược thực thi tốt nhất câu vấn tin

này. Hàm mục tiêu là tổng chi phí nhỏ nhất. Tổng chi phí bao gồm ba loại chi phí:
chi phí xuất nhập, chi phí CPU và chi phí truyền tin.
Trong môi trường phân tán, chỉ xét chi phí truyền, xem nó là yếu tố chi phí quan trọng
nhất, tất nhiên chỉ đúng với các WAN, ở đó chi phí truyền lớn hơn rất nhiều so với
việc xử lý cục bộ.
4.5.4. Tầng tối ưu hoá vấn tin cục bộ
Tầng này được thực hiện tại các vị trí có các mảnh cần cho câu vấn tin. Mỗi câu vấn
tin con được thực hiện tại một vị trí nên được gọi là vấn tin cục bộ. Câu vấn tin
cục bộ sẽ được tối ưu hoá bằng cách sử dụng lược đồ cục bộ của vị trí. Tại mỗi
vị trí có thể chọn thuật toán để thực hiện các phép toán quan hệ.

13



×