Thuật toán phân tán SYSTEM R*

Một phần của tài liệu Nghiên cứu tối ưu truy vấn trong cơ sở dữ liệu phân tán (Trang 62)

Thuật toán tối ưu hóa truy vấn phân tán SYSTEM R* là sự mở rộng của thuật toán tối ưu hóa truy vấn tập trung SYSTEM R, SYSTEM R* chỉ áp dụng cho những bài toán mà toàn bộ quan hệ được phân tán, những bài toán mà quan hệ được phân mảnh hoặc nhân bản thì không phải là một lựa chọn phù hợp [15]. Trụ sở chính là nơi khởi tạo và phán tán truy vấn, lựa chọn trạm sẽ thực thi truy

vấn, xác định thứ tự phép nối, phương thức truyền tải dữ liệu. Còn trạm địa phương sẽ thực hiện tối ưu hóa cục bộ.

Thứ tự của phép nối và truyền tải dữ liệu giữa các trạm khác nhau là những vấn đề quan trọng được xử lý bởi trụ sở chính. Có hai phương thức để truyền tải dữ liệu liên trang:

 Truyền toàn bộ: toàn bộ quan hệ được gửi tới trạm nối và được lưu trữ tạm thời. Phương thức này có đặc điểm là có thể truyền một lượng lớn dữ liệu, có ít thông điệp và thực hiện tốt nhất trong trường hợp số quan hệ là nhỏ.

 Lấy khi cần: quan hệ bên ngoài (tức là quan hệ xuất hiện đầu tiên trong câu truy vấn giữa hai quan hệ) được quét liên tục và với mỗi bộ mà giá trị được nối thì sẽ gửi tới trạm của quan hệ bên trong (tức là quan hệ có liên quan của phép nối) để thực thi truy vấn, dữ liệu truy vấn được sẽ được gửi lại trạm của quan hệ bên ngoài.

Hàm tối ưu của thuật toán này là giúp giảm tổng thời gian truy vấn, bao gồm cả thời gian xử lý cục bộ tại các trạm và thời gian giao tiếp giữa các trạm.

Thuật toán 3.4. Thuật toán phân tán SYSTEM R* (Static*-QOA) [15]

Đầu vào: QT: cây truy vấn {QT: query tree}

Đầu ra:strat: chiến lược có chi phí thấp nhất

Bắt đầu

for mỗi quan hệriQT do

for mỗi đường dẫn truy cập APijtớirido

tính chi phí (APij)

best_APiAPijvới chi phí nhỏ nhất

formỗi thứ tự (ri1, ri2,..., rin) với i = 1,..., n!do

xây dựng chiến lược(...((best APi1⊳⊲ri2) ⊳⊲ri3) ⊳⊲ ...⊳⊲ rin)

tính chi phí của chiến lược

strat←chiến lược với chi phí thấp nhất

formối trạm k lưu trữ một quan hệ liên quan trong QTdo

LSkchiến lược cục bộ (chiến lược, k);

send (LSk, trạm k) {mỗi chiến lược cục bộ được tối ưu tại trạm k}

Kết thúc

Giả sử quan hệ bên ngoài r thực hiện nối với quan hệ bên trong s trên thuộc tính A, sẽ có bốn chiến lược nối. Trong mỗi chiến lược này, LT (local time) dùng để xác định thời gian xử lý cục bộ (thời gian vào/ra và thời gian xử lý của CPU), CT (communication time) dùng để xác định thời gian giao tiếp. Để

đơn gian, các chiến lược này không quan tâm đến thời gian sản sinh kết quả. Ký hiệu dlà trung bình các bộ của s khớp với một bộ của r:

d = ( ⋉ )

( ) (card: cardinality)

Chiến lược 1: chuyển toàn bộ quan hệ bên ngoài tới trạm của quan hệ bên trong

rồi thực hiện nối. Tổng chi phí (Total cost) trong chiến lược này như sau:

Total_cost= LT(lấy các bộ card(r)từ r) + CT(size(r))

+ LT(lấy các bộ dtừ s) * card(r)

Chiến lược 2: chuyển toàn bộ quan hệ bên trong tới trạm của quan hệ bên ngoài. Trong trường hợp này, các bộ dữ liệu nội bộ không thể được nối khi chúng được truyền đến nơi, và cần phải được lưu trữ trong một quan hệ tạm thời (adsbygoogle = window.adsbygoogle || []).push({});

t. Vì vậy, tổng chi phí của chiến lược này như sau:

Total cost= LT(lấy các bộcard(s)từ s) + CT(size(s)) + LT(lưu trữ các bộ card(s)trong t)

+ LT(lấy các bộ card(r)từ r) + LT(lấydbộtừ t) * card(r)

Chiến lược 3: lấy các bộ cần thiết của quan hệ bên trong cho mỗi bộ của quan

hệ bên ngoài. Trong trường hợp này, mỗi bộ trong r, giá trị thuộc tính nối sẽ chuyển tới trạm của s. Sau đó, d bộ dữ liệu của smà phù hợp với giá trị được lấy ra và gửi đến các trang trạmcủa rđể được nối khi nhận được. Vì vậy, tổng chi phí của chiến lược này như sau:

Total cost= LT(lấy các bộ card(r)từ r) + CT(length(A)) *card(r)

+ LT(lấy dbộ từ s) * card(r)+ CT(d * length(s)) *card(s)

Chiến lược 4: Di chuyển cả hai quan hệ đến một trạm thứ ba và thực hiện nối tại

đó. Trong trường hợp này quan hệ bên trong sẽ được chuyển đầu tiên đến trạm thứ ba và được lưu trữ trong một mối quan hệ tạm thời t. Sau đó, quan hệ bên ngoài được chuyển đến và thực hiện phép nối với t. Vì vậy, tổng chi phí của chiến lược này như sau:

Total cost= LT(lấy các bộ card(s)từ s) + CT(size(s))

+ LT(lưu các bộ card(s)trong t) + LT(lấy các bộ card(r)từ r) + CT(size(r)) + LT(lấy dbộ từ t) * card(r)

Phần trên giới thiệu hai thuật toán tối ưu truy vấn toàn cục: thuật toán phân tán Ingres (D-INGRES) và thuật toán R*. Các thuật toán này đều phụ thuộc vào các yếu tố như hàm mục tiêu, chiến lược tối ưu, kiểu mạng. Dưới đây là bảng so sánh, đánh giá về hai thuật toán trên [13]:

Bảng 3.1 So sánh các thuật toán

toán tiêu lược giao tiếp nối nửa mảnh D- Ingres Tổng thời gian trả lời vấn tin Tối ưu động Chuẩn hoặc quảng bá Thông điệp

Chi phí truyền tải

Chi phí xử lý Không Ngang R* Tổngchi phí đo lường Tối ưu tĩnh Chuẩn hoặc cục bộ Thông điệp

Chi phí truyền tải

dữ kiệu

Chi phí I/O và CPU

Không Không

CHƯƠNG 4. CÀI ĐẶT THỰC NGHIỆM 4.1 Hệ thống mạng của cơ sở dữ liệu

Hệ thống AP SD đã được cài đặt thực nghiệm trên môi trường mạng LAN, dữ liệu được phân tán tại các trạm và phân mảnh như đã phân tích trong Chương 3. Về môi trường triển khai, cấu hình, dữ liệu được mô tả như sau:

- Trạm thứ nhất là trạm chủ nơi phát ra các yêu cầu vấn tin

Tiêu chí Thông tin Ghi chú

Địa chỉ Ip máy/Tên miền 192.168.1.35/

1FWADIEUNT1-LT

Hệ điều hành Windows 7

Vi xử lý Intel core i3

Bộ nhớ chính (RAM) 4GB

Hệ quản trị CSDL SQL Server 2008 R2 (adsbygoogle = window.adsbygoogle || []).push({});

- Trạm thứ hai đặt tên CSDL là APSD_GM(AP Service Directory General Manager), chứa các bảng BusinessType, County, Organisation và SrvInformation (xem Hình 2.6):

Tiêu chí Thông tin Ghi chú

Địa chỉ Ip máy/Tên miền 192.168.1.36/ 1FWADIEUNT1

Hệ điều hành Windows 7

Vi xử lý Pentium ® Dual-Core

Bộ nhớ chính (RAM) 2GB

Hệ quản trị CSDL SQL Server 2008 R2

- Trạm thứ ba đặt tên CSDL là APSD_CG (AP Service Directory Cầu Giấy), chứa các bảng Department, Team, UnitPrice, Services, ServiceType, Contact, ContactType, ServiceRecord (xem hình 2.7):

Tiêu chí Thông tin Ghi chú

Địa chỉ Ip máy/Tên miền 192.168.1.37/ 1FWADIEUNT1

Hệ điều hành Windows 7

Vi xử lý Pentium ® Dual-Core

Bộ nhớ chính (RAM) 2GB

Hệ quản trị CSDL SQL Server 2008 R2

Luận văn sử dụng tính năng phân tán dữ liệu của SQL Server 2008 R2 (Publication), và cơ chế Linked Server cho phép kết nối từ xa đến một máy chủ cơ sở dữ liệu khác:

Hình 4.1 Các cơ sơ sở dữ liệu được phân tán

Hình 4.2 Các linked server cho kết nối từ xa

4.2 Các truy vấn đã thực hiện

Dưới đây là một số màn hình kết quả thực nghiệm của hệ thống AP SD tương ứng với các nghiệp vụ đã đề xuất và áp dụng thuật toán tối ưu phân tán Ingres (D-Ingres)sau khi đăng nhập thành công, người dùng có thể sử dụng các chức năng mà hệ thống cung cấp như: Thống kê các dịch vụ đã cung cấp, Thống kê dịch vụ đã tất toán, Thống kê nhân viên:

Hình 4.3 Màn hình đăng nhập hệ thống

Hình 4.4 Màn hình thống kê tất cả các dịch vụ đã cung cấp

Hình 4.6 Màn hình thống kê nhân viên

4.3Đánh giá

Từ kết quả thực nghiệm cho thấy, tổng thời gian thực thi truy vấn giảm đáng kể so với những truy vấn không được tối ưu. Thuật toán áp dụng phù hợp với lượng dữ liệu lớn, tức là dữ liệu càng lớn thì càng hiệu quả. Kết quả thực nghiệm cũng cho thấy rằng, với những truy vấn có càng nhiều điều kiện thì thời gian trả lời vấn tin khi chưa tối ưu và khi đã được tối ưu chênh lệch đáng kể. Dưới đây là một số biểu đồ cho sự so sánh này:

Hình 4.7 Biểu đồ so sánh thời gian thực thi truy vấn (dựa vào chức năng thống

Hình 4.8 Biểu đồ so sánh thời gian thực thi truy vấn (dựa vào chức năng thống

kê dịch vụ đã tất toán)

KẾT LUẬN 1. Các kết quả của luận văn

Nghiên cứu tối ưu hóa là một giải pháp hiệu quả cho những hệ thống phân tán với lượng dữ liệu lớn khi mà ngày nay các doanh nghiệp công ty phát triển ngày càng mạnh mẽ, không đơn thuần chỉ hoạt động kinh doanh trên một địa bàn, một khu vực địa lý mà phát triển phân tán ở nhiều nơi khác nhau, trên nhiều Quận/Huyện hoặc Tỉnh/Thành.

Kết quả của quá trình nghiên cứu nhằm giảm chi phí trả lời vấn tin trong môi trường phân tán.Như đánh giá ở trên, có thể thấy áp dụng việc tối ưu hóa sẽ tiết kiệm được rất nhiều thời gian thực thi truy vấn phân tán. (adsbygoogle = window.adsbygoogle || []).push({});

2. Hạn chế

Vì thời thực hiện đề tài có hạn, đề tài đã dừng lại ở mức độ nghiên cứu lý thuyết cơ sở dữ liệu phân tán, thực hiện thiết kế cơ sở dữ liệu phân tán cho một bài toán thử nghiệm và áp dụng một thuật toán tối ưu truy vấn nhằm giảm thời gian trả lời vấn tin. Thực nghiệm của đề tài mới chỉ thực hiện trên môi trường mạng LAN.

3. Hướngnghiên cứu tiếp theo

Hướng phát triển tiếp theo của đề tài là sẽ áp dụng thuật toán phân tán INGRES vào dự án thực tế phục vụ cho doanh nghiệp trên môi trường mạng diện rộng (WAN).

Ngoài ra, dựa trên kết quả đã đạt được, hướng nghiên cứu tiếp theo sẽ triển khai thực hiện: Cài đặt tối ưu truy vấn sử dụng thuật toán SYSTEM R* và SDD – 1, để đưa ra đánh giá về việc lựa chọn giải toán phù hợp cho từng bài toán cụ thể.

TÀI LIỆU THAM KHẢO Tiếng Việt

1. Cao Tùng Anh (2013), Cơ sở dữ liệu phân tán, Đại học Kỹ thuật công nghiệp TPHCM (tr.5-6)

2. Đại học công nghệ, Chuyên đề cơ sở dữ liệu phân tán, tr.241-288

3. Phạm Công Hòa, Hệ quản trị cơ sở dữ liệu phân tán - Thiết kế cơ sở dữ

liệu phân tán

4. Phạm Thế Quế (2009), Cơ sở dữ liệu phân tán, Học viện Công nghệ Bưu chính Viễn thông

5. Đào Ngọc Sơn (2012), Tóm tắt luận văn Thạc sĩ Nghiên cứu tối ưu hóa

truy vấn hệ cơ sở dữ liệu phân tán, tr.10-11,22-23

6. Đại học Hàng Hải Việt Nam (2010), Cơ sở dữ liệu nâng cao

7. Đại học Thái nguyên (2010), Cơ dữ dữ liệu 2 phân tán và suy diễn

8. slideshare.net (2008), Chương 4. Xử lý truy vấn trong cơ sở dữ liệu phân

tán, tr.1-56

9. Slide bài bài giảng Nguyễn Đình Thuân, Distributed Database

Tiếng Anh

10. Abraham Silberschatz, Henry F. Korth, S. Sudarshan (2011), Database System Concepts 6 Editor, pp.825-884

11. A. Hoffer, Ramesh Venkataraman, Heikki Topi (2013), Modern Database Management, CourseSmart eTextbook, 11th Edition, Chapter 12. Distributed Databases

12. AZHAR (2010), New Distributed Query Optimization Techniques, Paper presentation

13. Share Alike (2009), Distributed Database Management Notes – 3, Chapter 11. Distributed Query Processing

14. Chhanda ray (2009), Distributed Database Systems, pp.31-38

15. M. Tamer Özsu • Patrick Valduriez (2011), Principles of Distributed Database Systems, pp.1-295

Một phần của tài liệu Nghiên cứu tối ưu truy vấn trong cơ sở dữ liệu phân tán (Trang 62)