Thuật toán phân mảnh hỗn hợp theo giá tri lặp

Một phần của tài liệu Gộp nhóm các giá trị lặp của các thuộc tính trong các mảnh của cơ sở dữ liệu phân tán (Trang 59 - 61)

Do các mệnh đề phân mảnh ngang được lưu lại trong Y tương ứng với các mảnh trong F (xem thuật toán PhanMN mục 2.2.2.) mà phân mảnh hỗn hợp là phân mảnh ngang sau đó phân mảnh dọc hoặc ngược lại. Ở đây thuộc vào trường hợp dầu tiên.

Với mỗi mảnh ngang Mkp thuộc F ta tiến hành quá trình phân mảnh dọc. Với tập thuộc tính A của quan hệ, ta tiến hành:

 Xét tập các ràng buộc điều kiện của quá trình phân mảnh (ví dụ: thuộc tính có chiều dài lớn nhất, thuộc tính có dữ liệu kiểu văn bản, …)

 Xác định thuộc tính chứa giá trị lặp Aj

 Phân mảnh dọc tập thuộc tính A của quan hệ (không tính thuộc tính chứa giá trị lặp).

 Xác định mảnh có kích thước lớn nhất trong tập các mảnh thu được.  Gán nhãn cho mảnh thu được.

Thuật toán phân mảnh hỗn hợp PhanHH được thực hiện như sau:

Thuật toán PhanHH

Dạng tổng quát

Trường hợp khi phân mảnh kết hợp cả phân mảnh ngang và phân mảnh dọc thì quá trình phân mảnh được gọi là phân mảnh hỗn hợp. Phân mảnh hỗn hợp thường được thực hiện theo trình tự phân mảnh ngang trước sau đó phân mảnh dọc hoặc ngược lại [1]. Có thể coi việc phân mảnh hỗn hợp tương ứng với các câu lệnh SQL như sau:

SELECT * FROM R

WHERE <Mệnh đề hội sơ cấp>

Mảnh thu được là tập các bộ được tách ra qua việc thực hiện câu SQL ở trên chính là mảnh ngang. Ký hiệu mảnh ngang thu được là H. Bây giờ thực hiện phân mảnh dọc từ các mảnh ngang đã có, dùng câu lệnh SQL như sau:

SELECT <Tìm thuộc tính không khóa của H> FROM H

WHERE True

Ký hiệu mảnh dọc thu được do câu lệnh trên là VH, và tập khoá của H là KeyH. Mảnh hỗn hợp thu được có dạng KeyH  VH và được ký hiệu là HV

Thủ tục phân mảnh hỗn hợp

Input: R

Output: F /*Các mảnh HH có card > 1 Vì các mảnh ngang đã có card >1*/; PhanmanhHH

Begin

/* Sau thủ tục này chúng ta nhận được các mảnh M“pi, k1 pi, k2  ... pi, kq” mà các Index đầu của mỗi mệnh đề là số thứ tự của trường*/

FHH =  /* F tập các mảnh hh */ Khai báo biến s: string

/* Lấy các mệnh đề từ kết quả của thuật toán phân mảnh ngang PhanMN */ For Each s In Y

Sb = các chỉ số đầu tiên của s Select Sb Into TAM

From Ms

FHH = FHH  TAM

Một phần của tài liệu Gộp nhóm các giá trị lặp của các thuộc tính trong các mảnh của cơ sở dữ liệu phân tán (Trang 59 - 61)

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

(81 trang)