Phân mảnh dọc (Vertical Fragmentation)

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 26)

Phân mảnh dọc quan hệ r sinh ra các mảnh r1, r2, ..., rn, sao cho mỗi mảnh chứa một tập con các thuộc tính của quan hệ r và khoá của nó. Mục đích của phân mảnh dọc là phân chia quan hệ rthành tập các quan hệ nhỏ hơn để có nhiều ứng dụng có thể chỉ cần thực hiện trên một mảnh. Mảnh tối ưu là mảnh sinh ra một lược đồ phân mảnh cho phép giảm tối thiểu thời gian thực hiện của

ứng dụng trên mảnh đó. Thực chất đây là phép chiếu trên tập con các thuộc tính của quan hệ. Theo cách này, tập thuộc tính R của rsẽ được tách thành [4, 15]:

R = R1 ∪ R2∪ … ∪ Rn Mỗi mảnh riđược định nghĩa như sau: ri = ∏ (r) Chúng ta sẽ xây dựng lại rbằng phép nối tự nhiên như sau:

r= r1r2∗ … ∗ rn

Ví dụ 1.7: Tách dọc quan hệ TAIKHOAN thành hai quan hệ TAIKHOAN1 VÀ TAIKHOAN2 như sau:

∏ ℎ , ℎ ℎ ℎ(TAIKHOAN) và

∏ ℎ , (TAIKHOAN)

TAIKHOAN1 SoTaiKhoan TenChiNhanh

A-305 Hillside A-226 Hillside A-155 Hillside A-177 Valleyview A-402 Valleyview A-408 Valleyview A-639 Valleyview

TAIKHOAN2 SoTaiKhoan SoDu

A-305 500 A-226 336 A-155 62 A-177 205 A-402 10000 A-408 1123 A-639 750

Hình 1.13 Phân mảnh dọcquan hệ TAIKHOAN 1.7.3.3 Phân mảnh hỗn hợp(Hybrid Fragmentation)

Trong thực tế, hầu hết các trường hợp phân mảnh ngang hay phân mảnh dọc đơn giản củaCSDL không thoả mãn yêu cầu người sử dụng. Thường CSDL được phân mảnh hỗn hợp, tạo ra sự phân chia theo cấu trúc cây (xem Hình 1.14). Chiến lược phân mảnhnày gọi là phân mảnh hỗn hợp[4, 15].

H r2 V V V V r1 r H V

Hình 1.14 Phân mảnh hỗn hợp

Để khôi phục quan hệ toàn cục trong trường hợp phân mảnh hỗn hợp, có thể bắt đầu từ các node lá củacủa cây phân hoạch và dịch chuyển lên bằng cách thực hiện các phép kết nối và phép hợp (xem Hình 1.15). Phân mảnh hỗn hợp đầy đủ nếu các mảnh lá và các mảnh trung gian là đầy đủ.

Hình 1.15 Khôi phục phân mảnh hỗn hợp

1.7.4 Thiết kế định vị

Thiết kế định vị là quá trình thực hiện ánh xạ các đoạn vào các trạm khác nhauđể tạo các ảnh vật lý tại các trạm. Các mảnh dữ liệu được đưa vào các vị trí lưu trữ thích hợp với yêu cầu hoạt động thực tế của hệ thống. Để thiết kế định vị, các thông tin cần thiết bao gồm thông tin về CSDL, thông tin về ứng dụng, thông tin về vị trí và thông tin vềmạng[4, 15].

Giả sử có tập các mảnh F = {F1, F2, ..., Fn} và một hệ thống phân tán bao gồm các trạm S = {S1, S2, ..., Sn}trên tập các ứng dụng đang chạy Q = {q1, q2, ..., qn} đang chạy, vấn đề đặt ra cho thiết kế định vị là xác định mảnh Fitương ứng cho trạm Sjsao cho tối ưu nhất. Tính tối ưu định vị có thể được định nghĩa:

Chi phí nhỏ nhất: Hàm chi phí bao gồm chi phí lưu trữ mảnh Fi tại trạm

Sj, chi phí truy vấn Fitại trạm Sj, chi phí cập nhật Fitại tất cả các trạm lưu trữ nó và chi phí trao đổi thông tin. Mục tiêu của là xác định một lược đồ cấp phát vớihàm chi phí nhỏ nhất.

Hiệu năng: Chiến lược cấp phát phải nhằm duy trì hiệu năng. Làm giảm thời gian đáp ứng và tăng tối đa lưu lượng hệ thống tại mỗi vị trí trên mạng.

1.8 Tính trong suốt của cơ sở dữ liệu phân tán

Khi thiết kế một cơ sở dữ liệu phân tán, việc đảm bảo tính trong suốt là vô cùng quan trọng. Tính trong suốt của một cơ sở dữ liệu phân tán là việc che dấu đi các chi tiết cài đặt đối với người sử dụng[9, 11].

⊳⊲ r23 r22 r21 r12 r11 ⊳⊲ ∪

Trong suốt phân mảnh(Fragmentation Transparency): khi dữ liệu bị phân mảnh thì việc truy cập vào CSDL được thực hiện bình thường như là không bị phân tán và không ảnh hưởng tới người sử dụng. Xét hai quan hệ TAIKHOAN1 và TAIKHOAN2 đã nêu trong Ví dụ 1.5, giả sử hệ quản trị cơ sở dữ liệu quan hệ cung cấp tính trong suốt về phân mảnh. Muốn tìm một tài khoản có SoTaiKhoan là “A-305” thì chỉ cần tìm trên quan hệ tổng thể TAIKHOAN mà không cần biết quan hệ TAIKHOAN có được phân tán hay không.

Xét câu truy vấn SQL: SELECT *

FROM TAIKHOAN

WHERE SoTaiKhoan = 'A-305'

Hình 1.16 Trong suốt phân mảnh

Trong suốt về vị trí (Location Transparency): Người sử dụng không cần biết về vị trí vật lý của dữ liệu mà có quyền truy cập đến cơ sở dữ liệu tại bất cứ vị trí nào. Các thao tác để lấy hoặc cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ thống tại điểm phát ra vấn tin. Tính chất này cho phép người sử dụng bỏ qua các bản sao dữ liệu đã tồn tại ở mỗi vị trí, do đó có thể di chuyển một bản sao dữ liệu từ một vị trí này đến một vị trí khác và cho phép tạo các bản sao mới mà không ảnh hưởng đến ứng dụng. Xét quan hệ toàn cục TAIKHOAN và các phân đoạn đã được nêu trong Ví dụ 1.5, giả sử rằng DDBMS cung cấp trong suốt về vị trí nhưng không cung cấp trong suốt về phân đoạn. Xét câu truy vấn tìm một tài khoản có SoTaiKhoan là “A-305”:

SELECT *

FROM TAIKHOAN1

WHERE SoTaiKhoan = 'A-305' IF NOT #FOUND THEN

SELECT *

FROM TAIKHOAN2

WHERE SoTaiKhoan = 'A-305'

DDBMS TAIKHOAN1

TAIKHOAN2

Trạm 1

Trước hết, hệ thống sẽ thực hiện tìm kiếm ở phân đoạn TAIKHOAN1 và nếu DDBMS trả về biến điều khiển NOT #FOUND thì một câu lệnh truy vấn tương tự được thực hiện trên phân đoạn TAIKHOAN2.

Giả sử, quan hệ TAIKHOAN2 được sao làm hai bản trên hai trạmlà Trạm 2 và Trạm 3, ta chỉ cần tìm thông tin trên quan hệ TAIKHOAN2 mà không cần quan tâm nó ở vị trí nào.

Hình 1.17 Sự trong suốt về vị trí

Trong suốt ánh xạ cục bộ (Local Mapping Transparency): Là một đặc tính quan trọng trong một hệ thống DDBMS không đồng nhất. Ứng dụng tham chiếu đến các đối tượng có các tên độc lập từ các hệ thống cục bộvàđược sử dụng như một hệ thống đồng nhất.

1.9 Vấn đề xử lý truy vấn trong CSDL phân tán

Nhiệm vụ chính của bộ xử lý truy vấn quan hệ là biến đổi câu truy vấn cấp cao thành một câu truy vấn tương đương ở cấp thấp hơn được diễn đạt bằng đại số quan hệ. Câu truy vấn cấp thấp sẽ thực sự cài đặt để thực thi các chiến lược truy vấn. Việc biến đổi này 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âu truy vấn cấp thấp có cùng ngữ nghĩa với câu truy vấn gốc, nghĩa là cả hai cùng cho ra một kết quả. Một câu truy vấn có thể có nhiều cách biến đổi tương đương thành đại số quan hệ. Bởi vì mỗi chiến lược thực thi tương đương đều sử dụng tài nguyên máy tính rất khác nhau, khó khăn chính là chọn ra được một chiến lược hạ thấp tối đa việc tiêu dùng tài nguyên [10].

Ví dụ 1.8. Xét hai quan hệ trên CSDL Banking:

TAIKHOAN(SoTaiKhoan, TenChiNhanh, SoDu) NGUOIGUI(TenNguoiGui, SoTaiKhoan)

và câu truy vấn đơn giản: “Tìm tên của những người gửi có tài khoản ở chi

nhánh là Hillside”.

Câu truy vấn SQL tương ứng sẽ là: SELECT TenNguoiGui DDBMS TAIKHOAN 1 TAIKHOAN2 TAIKHOAN2 Trạm 1 Trạm 2 Trạm 3

31

FROM NGUOIGUI G, TAIKHOAN T

WHERE G.SoTaiKhoan = T. SoTaiKhoan AND T.TenChiNhanh = 'Hillside' Biếu thức đại số quan hệ tương đương như sau:

Π ℎ ℎ ℎ ′ ′Λ . ℎ . ℎ (NGUOIGUI × TAIK OAN ) (1) và Π (NGUOIGUI ⊳⊲ ℎ ( ℎ ℎ ℎ ′ ′( ))) (2)

Rõ ràng biểu thức thứ hai tránh được một phép tích Đề các giữa NGUOIGUI và TAIKHOAN, như vậy sẽ tốn ít tài nguyên hơn so với việc lựa chọn biểu thức thứ nhất, có nghĩa là phép biến đổi này sẽ được giữ lại.

Trong ngữ cảnh CDSL tập trung, chiến lược thực thi truy vấn có thể được diễn tả chính xác bằng một mở rộng của đại số quan hệ. Nhiệm vụ chính của bộ xử lý truy vấn tập trung là đối với một câu truy vấn đã cho, nó phải chọn ra được một câu đại số quan hệ tốt nhất trong số những câu tương đương. Bởi vì đây là bài toán phức tạp về mặt tính toán khi số lượng các quan hệ khá lớn, nên nói chung nó thường được rút lại ở yêu cầu là chọn được một lời giải gần tối ưu.

Trong các hệ phân tán, đại số quan hệ không đủ để diễn tả các chiến lược thực thi vì nó được cung cấp thêm các phép toán trao đổi dữ liệu giữa các trạm. Bên cạnh việc chọn thứ tự cho các phép toán đại số quan hệ, bộ xử lý truy vấn phân tán cũng phải chọn các trạm tốt nhất để xử lý dữ liệu, và có thể cả cách biến đổi dữ liệu. Kết quả là không gian lời giải các chiến lược thực thi tăng lên, làm cho việc xử lý truy vấn phân tán tăng lên rất nhiều.

Ví dụ 1.9: Chúng ta giả sử rằng các quan hệ NGUOIGUI và TAIKHOAN được

phân mảnh ngang như sau:

NGUOIGUI1 = σ i “ −25 ”(NGUOIGUI) (lưu tại trạm 1) NGUOIGUI2 = σ i > “ −25 ”(NGUOIGUI) (lưu tại trạm 2) TAIKHOAN1 = σ i “ −25 ”(TAIK OAN ) (lưutại trạm 3) TAIKHOAN2 = σ i > “ −25 ”(TAIK OAN ) (lưu tại trạm 4) Chiến lược chuyển đổi thứ nhất được biểu diễn trong hình sau:

Trạm 5

Trạm 4 Trạm 3

Kết quả = NGUOIGUI1’ ∪NGUOIGUI1’

NGUOIGUI1’ = NGUOIGUI1⊳⊲ ℎ TAIKHOAN1’ NGUOIGUI2’ = NGUOIGUI2⊳⊲ ℎ TAIKHOAN2’

NGUOIGUI1’ NGUOIGUI

Hình 1.18 Chiến lược thứ nhất

Hình 1.19 Chiến lược thứ hai

Chiến lược thứ nhất sử dụng sự kiện là các quan hệ NGUOIGUI và TAIKHOAN được phân mảnh theo cùng một cách để thực hiện song song các phép toán chọn và nối. Chiến lược thứ hai tập trung tất cả các dữ liệu tại vị trí lưu kết quả trước khi xử lý câu truy vấn.

Để đánh giá việc tiêu dùng tài nguyên của hai chiến lược này, chúng ta sử dụng một mô hình chi phí đơn giản sau. Chúng ta giả sử rằng thao tác truy xuất một bộ (tuple visit) được ký hiệu là tupvis, là một đơn vị và thao tác truyền một bộ (tuple transfer) tuptrans là 10 đơn vị. Đồng thời chúng ta cũng giả sử là các quan hệ TAIKHOAN và NGUOIGUI tương ứng có 400 và 1000 bộ, và có 20 chi nhánh có tên là trong quan hệ TAIKHOAN.

Cuối cùng chúng ta giả sử rằng các quan hệ TAIKHOAN và NGUOIGUI được nhóm cục bộ tương ứngtheo các thuộc tính TenChiNhanh và SoTaiKhoan. Vì vậy có thể truy xuất trực tiếp đến các bộ củaTAIKHOAN dựa trên giá trị của thuộc tính TenChiNhanh. Như vậy, chi phí của chiến lược các chiến lược sẽ được tính như sau:

Bảng 1.1 Chi phí của chiến lược 1

1. Thao tác tạo TAIKHOAN’ bằng cách chọn trên TAIKHOAN cần: _________________________________________(10+10)*tupvis 20

2. Truyền TAIKHOAN’đến vị trí NGUOIGUI cần: __(10+10)*tuptrans 200

3. Tạo NGUOIGUI’ bằng cách nối TAIKHOAN’ và NGUOIGUI cần:

____________________________________________(10+10)*tupvis*2 40

4. Truyền NGUOIGUI’ đến vị trí nhận kết quả cần___(10+10)*tuptrans 200

Tổng chi phíchiến lược 1 460

Bảng 1.2 Chi phí của chiến lược 2

Kết quả =

1. Truyền NGUOIGUIđến Kết quả cần____________400*tuptrans 4.000 2. Truyền TAIKHOANđến Kết quả cần:___________1000*tuptrans 10.000 3. Tạo TAIKHOAN’ bằng cách chọn trên SoTaiKhoan cần:

____________________________________________1000*tupvis 1.000

4. Nối NGUOIGUI và TAIKHOAN’ cần __________400*20*tupvis 8.000

Tổng chi phíchiến lược 2 23.000

Nhận xét đánh giá:

- Trong chiến lược thứ nhất, phép nối TAIKHOAN’ với NGUOIGUI(bước 3) tận dụng chỉ mục trên SoTaiKhoan của NGUOIGUI. Vì vậy, NGUOIGUI được truy cập chỉ mộtlần cho mỗi bộ của TAIKHOAN’. - Trong chiến lược thứ hai, phương thức truy cập tới các quan hệ

NGUOIGUI và TAIKHOAN dựa trên các thuộc tính TenChiNhanh và SoTaiKhoan bị mất tác dụng do việc truyền dữ liệu. Chiến lược thứ nhất tốt hơn so với chiến lược thứ hai 50 lần - “rất có ý nghĩa”. Khác biệt còn cao hơn nữa nếu chúng ta giả thiết là tốc độ truyền chậm hơn và/ hoặc mức độ phân mảnh cao hơn.Vì vậy chiến lược thứ nhất sẽ được lựa chọn.

CHƯƠNG 2. PHÂN TÍCH VÀ XÂY DNG CƠ SỞ DỮ LIỆU PHÂN TÁN

2.1 Phân tích bài toán

Công ty AP là đơn vị chuyên cung cấp các dịch vụ (Service Directory – SD): chăm sóc sức khỏe tại nhà; hỗ trợ người khuyết tật; dịch vụ cho thuê xe du lịch; chăm sóc xe tại nhà, ... công ty có nhiều tổ chức thành viên để thực hiện cung cấp các dịch vụ chuyên biệt (được gọi là Organisation). Mỗi tổ chức khác nhau sẽ cung cấp và quản lý nhiều dịch vụ khác nhau (được gọi là Service), một dịch vụ có thể do nhiểu tổ chức đồng thời cung cấp.

Các tổ chức thành viên này sẽ được đặt tại các vị trí khác nhau trong một mạng máy tính. Tổ chức bao gồm các phòng ban (Department) chịu trách nhiệm riêng, mỗi phòng ban là một hoặc nhiều nhóm (Team) hoạt động hỗ trỡ lẫn nhau. Tại mỗi tổ chức sẽ thực hiện nhiệm vụ cung cấp dịch vụ tới khách hàng trong địa bàn khi có yêu cầu, ghi nhận lại các dịch vụ đã cung cấp để có thống kê khi cần thiết. Mỗi dịch vụ sẽ có một nhóm nhân viên phụ trách (được gọi là Contact), sẽ có một người chịu trách nhiệm chính trong nhóm đóng vai trò là nhóm trưởng (Team leader).

Hệ thống xây dựng sẽ giúp công ty quản lý thông tin về các dịch vụ mà các tổ chức thành viên đang cung cấp. Giúp trụ sở chính AP có thể có những thống kê báo cáo theo hoạch định. Ngoài ra hệ thống còn giúp AP quản lý các thông tin liên quan đến trạm mà các tổ chức được mở, thông tin về trụ sở quản lý và tài liệu hỗ trợ tổ chức.

Căn cứ mô tả bài toán có thể liệt kê các chức năng chính mà hệ thống cung cấp bao gồm:

 Quản lý các tổ chức tại mỗi chi nhánh của công ty.

 Quản lý các dịch vụ và chương trình dịch vụ mà tổ chức cung cấp.  Quản lý thông tin phòng ban, các nhóm và nhân viên mỗi nhóm.  Ghi nhận dịch vụ đã cung cấp.

 Tổng hợp dịch vụ cung cấp theo ngày.

 Thống kê nhân viên phụ trách của các tổ chức.  Tổng hợp dịch vụ đã tất toán.

Các tác nhân (Actor) tương tác với hệ thống và sử dụng hệ thống được mô tả trong Bảng 2.1.

Bảng 2.1Danh sách các Actor của hệ thống

Actor Tên actor Mô tả

A001 SuperUser Đóng vai trò là quản trị viên phía công ty có thể thực hiện các

thống kê báo cáo về tình hình cung cấp dịch vụ từ các tổ chức.

A002 NormalUser Người dùng phía công ty, là người có vai trò quản lý thông tin

tổ chức, dịch vụ.

Bảng 2.2 Danh sách các Use case của hệ thống

UC Name Description

UC001 Logon & Logout Cho phép người dùng đăng nhập vào và đăng xuất

khỏi hệ thống

UC002 Maintain Organisations Duy trì dữ liệu bên trong các tổ chức của hệ thống

UC003 Maintain Services Duy trì dữ liệu về các dịch vụ

UC004 Statistic Contact Thống kê tình hình nhân sự từ các tổ chức

UC005 Statistic Services Thống kê các dịch vụ đã cung cấp, dịch vụ do một

tổ chức/một nhóm đã cung cấp

UC006 Statistic Organisation Thống kê dữ liệu của mỗi tổ chức về nhân sự, dịch

vụ do

2.2Lược đồ quan niệm của cơ sở dữ liệu

Căn cứ đặc tả yêu cầu bài toán, xác định được các kiểu thực thể, thuộc tính và mối liên kết giữa các kiểu thực thể này (xem Hình 2.2), từ các kiểu thực thể này sẽ xác định được lược đồ cơ sở dữ liệu toàn cục của hệ thống.

2.3Lược đồ cơ sở dữ liệu toàn cục

Chuyển đổi từ lược đồ thực thể liên kết sang lược đồ cơ sở dữ liệu quan hệ toàn cục, dưới đây là diễn giải cho các bảng:

 Bảng “BusinessType”: Hình thức kinh doanh của tổ chức có thể là hỗ trợ hay cung cấp hoặc dịch vụ từ thiện, bảng này được thiết kế bao gồm các trường sau:

Bảng 2.3 Bảng loại hình kinh doanh

STT Tên trường Kiểu dữ liệu Mô tả

1 BusinessTypeID int Là trường khóa chính, chứa mã loại

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 26)

Tải bản đầy đủ (PDF)

(71 trang)