Phân mảnh dữ liệu

Một phần của tài liệu luận văn thạc sĩ xây dựng cơ sở dữ liệu phân tán phục vụ thông tin nhanh về nhân sự tại quảng bình (Trang 53 - 59)

6. Tổng quan tài liệu nghiên cứu

2.2.2.Phân mảnh dữ liệu

Theo cách thức quản lý và bố trí CSDL trong quản lý nhân sự tỉnh, việc phân tích và thiết kế sự phân tán xác định các quan hệ tổng quát được phân mảnh dọc. Do đó, xây dựng các ứng dụng và phân tán các ứng dụng tập trung ở quá trính phân tích trên.

Đối với cấp phát mảnh, quá trình này thực hiện chủ yếu là đưa dữ liệu mới cập nhật lên cụm trên với một phần thông tin được kết xuất, trong bài toán quản lý nhân sự, các mảnh ánh xạ một phần đến ảnh vật lý của nó để lấy thông tin cần thiết nhất theo sự hội tụ của các mảnh cấp phát, vấn đề hội tụ sẽ được trình bày trong phân tiếp theo của chương.

Hai vấn đề này đặc trưng đầy đủ cho thiết kế phân tán dữ liệu. Sự thiết kế phân mảnh là một tiêu chuẩn lý luận trong khi mục đích của thiết kế cấp phát là sắp đặt dữ liệu vật lý tại các sites.

Mặc dầu việc thiết kế các chương trình ứng dụng được xây dựng sau khi thiết kế lược đồ, nhưng sự hiểu biết về các yêu cầu của các chương trình ứng dụng cũng quyết định đến sự thiết kế lược đồ vì các lược đồ phải hỗ trợ các ứng dụng một cách hiệu quả.

Các yêu cầu của ứng dụng phân tán:

- Site mà ứng dụng được đưa ra (site gốc của ứng dụng)

- Tần số hoạt động của ứng dụng; trong trường hợp tổng quát, các ứng dụng có thể được đưa ra từ nhiều sites, chúng ta cần biết tần số hoạt động của mỗi ứng dụng tại mỗi site.

- Số lượng, kiểu và sự thống kê phân tán của các truy xuất được tạo bởi các ứng dụng đến mỗi đối tượng dữ liệu được yêu cầu.

Các mục tiêu của việc thiết kế phân tán dữ liệu:

Sự truy xuất cục bộ: các ứng dụng truy xuất dữ liệu cục bộ càng nhiều càng tốt, giảm bớt các truy xuất dữ liệu từ xa.

Việc thiết kế sự phân tán dữ liệu để tối đa hoá truy xuất cục bộ có thể được thực hiện bằng cách thêm số lượng các tham khảo cục bộ và các tham khảo từ xa tương ứng cho mỗi phân mảnh dự tuyển và mỗi cấp phát phân mảnh, từ đó chọn ra giải pháp tốt nhất.

Tính sẵn sàng và khả tín của các dữ liệu phân tán: Mức độ sẵn sàng cao đối với các ứng dụng chỉ đọc được thực hiện bằng cách lưu trữ nhiều bản sao của cùng một thông tin; hệ thống phải có khả năng chuyển đến bản sao được chọn thích hợp khi một bản sao không được truy xuất bình thường.

Sự phân bố tải: để tận dụng sức mạnh của việc sử dụng mạng máy tính, và cực đại hoá mức độ xử lý song song các lệnh thực thi của các ứng dụng.

Sự phân bố tải có thể ảnh hưởng xấu đến sự truy xuất cục bộ nên cần xem xét để cân bằng hai mục tiêu này.

Chi phí lưu trữ: sự phân tán cơ sở dữ liệu phản ánh chi phí của sự lưu trữ tại các sites khác nhau. Tuy nhiên chi phí lưu trữ dữ liệu không đáng kể so với chi phí xuất nhập, chi phí truyền thông của các ứng dụng. Nhưng giới hạn của bộ lưu trữ phải được xem xét kỹ.

Như đã trình bày ở Chương I, kỹ thuật tách mảnh thích hợp với phương pháp thiết kế từ trên xuống. Với phương pháp thiết kế đã lựa chọn, áp dụng Phương pháp tách mảnh và thuật toán Năng lượng nối BEA để thiết kế phân mảnh dọc cơ sở dữ liệu.

Xét quan hệ cbvc, giả sử các ứng dụng sử dụng câu truy vấn SQL truy xuất đến nó:

q1: Tìm hệ số lương theo mã số của nhân sự. SELECT hsl

FROM cbvc

WHERE macbvc = <giá trị> q2: Tìm tên và hệ số lương của tất cả các nhân sự.

SELECT holot,ten, hsl

FROM cbvc

q3: Tìm tên của nhân sự theo cơ quan. SELECT holot,ten

FROM cbvc

FROM cbvc

WHERE left(macbvc,9) = <giá trị> Để thuận tiện ta kí hiệu:

A1 = macbvc, A2 = holot,ten; A3 = hsl; A4 = left(macbvc,9). Ma trận sử dụng thuộc tính là: Bảng 2.15. Ma trận sử dụng thuộc tính A1 A2 A3 A4 q1 1 0 1 0 q2 0 1 1 0 q3 0 1 0 1 q4 0 0 1 1

Số đo tần số truy xuất ứng dụng giả thiết như sau:

acc1(q1) = 15 acc2(q1) = 20 acc3(q1) = 10 acc1(q2) = 5 acc2(q2) = 0 acc3(q2) = 0 acc1(q3) = 25 acc2(q3) = 25 acc3(q3) = 25

acc1(q4) = 3 acc2(q4) = 0 acc3(q4) = 0

Để đơn giản, giả sử ref(qk) = 1 cho tất cả qkSl. (adsbygoogle = window.adsbygoogle || []).push({});

Tính số đo hấp dẫn giữa các thuộc tính A1A3 ; bởi vì ứng dụng duy nhất truy xuất đến cả hai thuộc tính này là q1 nên ta có:

Ma trận hấp dẫn thuộc tính đầy đủ như sau:

Bảng 2.16. Ma trận thuộc tính hấp dẫn AA A1 A2 A3 A4

A1 45 0 45 0

Nhận xét rằng:

- Độ đo cầu nối giữa hai thuộc tính được tính là tổng của tích 2 phần tử cùng hàng của hai cột. Vì ma trận AA đối xứng, có thể thực hiện tương tự theo hàng.

- Thuật toán BEA được cải thiện hiệu quả khi cột thứ 2 được cố định và đặt cạnh cột thứ nhất trong bước khởi gán. Điều này có thể chấp nhận được, vì theo thuật toán A2 có thể được đặt ở bên trái hoặc bên phải của A1. Tuy nhiên cầu nối giữa hai thuộc tính này độc lập với vị trí tương đối của chúng.

- Nếu thuộc tính Ai đang được xét tìm chỗ đặt ở bên trái thuộc tính tận trái, một trong các phương trình cầu nối được tính giữa phần tử không có ở bên trái và Ak (nghĩa là bond(A0,Ak)), vì vậy cần sử dụng điều kiện đặt ra cho định nghĩa số đo hấp dẫn chung AM, CA(0,k) = 0. Nếu Aj là thuộc tính tận phải đã được đặt trong ma trận CA và đang kiểm tra đóng góp khi đặt thuộc tính Ak vào bên phải của Aj, Khi đó bond(k,k+1) cần được tính. Tuy nhiên vì chưa có thuộc tính nào được đặt ở cột k+1 của ma trận CA, số đo hấp dẫn này chưa được định nghĩa. Theo điều kiện đầu tận, giá trị bond này cũng là 0.

Xét quá trình gom tụ các thuộc tính của quan hệ cbvc và dùng ma trận hấp dẫn thuộc tính AA.

Bước khởi đầu chúng ta chép các cột 1 và 2 của ma trận AA vào ma trận

CA và bắt đầu thực hiện từ cột thứ ba.

Xét cột 3 (thuộc tính A3). Có 3 vị trí có thể đặt cột 3: bên trái của cột 1 tạo ra thứ tự (3-1-2), giữa cột 1 và 2 tạo ra thứ tự (1-3-2) và bên phải cột 2 tạo ra thứ tự (1-2-3). Để ý rằng, tính đóng góp của sắp xếp (1-2-3) là phải tính cont(A2,A3,A4) chứ không phải cont(1-2-3). Hơn nữa A4 chỉ cột thứ tư trong ma trận CA, đó là vị trí rỗng, không phải là cột thuộc tính của ma trận

- Thứ tự (0-3-1):

cont(A0, A3, A1) = 2bond(A0, A3) + 2bond(A3, A1) – 2bond(A0, A1)

Có: bond(A0, A3) = bond(A0, A1) = 0

Nên: cont (A0, A3, A1) = 2bond(A3, A1)

= 2*(45*48+5*0+53*45+3*0) =8820 - Thứ tự (1-3-2):

cont(A1, A3, A2) = 2bond(A1, A3) + 2bond(A3, A2) – 2bond(A1, A2)

Có: bond(A1, A3) = bond(A3, A1) = 4410 bond(A3, A2 ) = 890 ; bond(A1, A2) = 225

Nên: cont(A1, A3, A2) = 2*4410 + 2*890 – 2*225 = 10150

- Thứ tự (2-3-4):

cont(A2, A3, A4) = 2bond(A, A3) + 2bond(A3, A4) – 2bond(A2, A4)

Có: bond(A2, A3) = 890 ; bond(A3, A4) = 0 ; bond(A2, A4) = 0

Nên: cont(A2, A3, A4) = 2*890 = 1780

Do đóng góp của thứ tự (1-3-2) là lớn nhất, nên A3 đặt vào giữa A1A2. Tương tự, tính toán với A4 đặt nó vào bên phải A2. Cuối cùng các hàng được được sắp xếp theo thứ tự như thứ tự của các cột.

Bảng 2.17 Ma trận hấp dẫn tụ CA A1 A2 A1 A3 A2 A1 45 0 A1 45 45 0 A2 0 80 A2 0 5 80 A3 45 5 A3 45 53 5 A4 0 75 A4 0 3 75

a. Bước khởi gán b. Đặt A3 bên phải A1

A1 A3 A2 A4 A1 A3 A2 A4

A1 45 45 0 0 A1 45 45 0 0

A2 0 5 80 75 A3 45 53 5 3 (adsbygoogle = window.adsbygoogle || []).push({});

Kết quả: tụ thuộc tính xảy ra góc trên trái ma trận chứa các giá trị hấp dẫn nhỏ và tụ ở góc dưới phải chứa các giá trị hấp dẫn cao. Quá trình đã chỉ ra phương thức phân mảnh dọc quan hệ cbvc. Kết quả là định nghĩa các mảnh

Fcbvc={F1, F2}. Trong đó: F1 = {A1, A3}F2 = {A1, A2, A4}. Tức là F1 = {macbvc, hsl}F2 = {mannv, holot,ten, left(macbvc,9)}. macbvc là thuộc tính khoá của cbvc.

Kiểm tra tính đúng đắn:

- Tính đầy đủ: được bảo đảm bằng thuật toán BEA vì mỗi thuộc tính của quan hệ toàn cục được đưa vào một trong các mảnh.

- Tính tái thiết được: đối với quan hệ R có phân mảnh dọc FR={R1, R2,..., Rr} và các thuộc tính khoá K:

R =  KRi , RiFR

Do vậy, với điều kiện mỗi Ri là đầy đủ, mỗi mảnh Ri đều chứa các thuộc tính khoá của R, phép toán nối sẽ tái cấu trúc lại đúng R.

Một phần của tài liệu luận văn thạc sĩ xây dựng cơ sở dữ liệu phân tán phục vụ thông tin nhanh về nhân sự tại quảng bình (Trang 53 - 59)