Ứng dụng các thuật toán gộp nhóm tại công ty TNHH thƣơng mại Vạn

Một phần của tài liệu các kỹ thuật phân mảnh, gộp nhóm trong csdl phân tán (Trang 63 - 72)

4. Những nội dung nghiên cứu chính

3.1.2.Ứng dụng các thuật toán gộp nhóm tại công ty TNHH thƣơng mại Vạn

Vạn Xuân

3.1.2.1. Thuật toán trộn tập trung CM (Centralized Merging)

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Quan hệ nhanvien_pt

Nhanvien tại Phú Thọ Quan hệ nhanvien_yb

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Để tiện cho việc điều nhân viên đi làm các địa phƣơng phù hợp với quê quán của nhân viên công ty từ Quan hệ nhanvien trên bảng đƣợc lƣu tại các vị trí Phú Thọ và Yên Bái. Xét câu truy vấn sau: "Hãy cho biết số lƣợng nhân viên theo quê quán" từ đó ta có thể lựa chọn đƣợc nhân viên phù hợp với địa phƣơng để điều nhân viên đi làm,

Thuật toán trộn tập trung CM (Centralized Merging) Tại Phú Thọ:

SELECT COUNT (*) INTO phutho1

FROM nhanvien_pt

GROUPE BYquequan

Tại Yên Bái :

SELECT COUNT (*) INTO yenbai1 FROM nhanvien_yb

GROUPE BYquequan

Bƣớc tập trung

Các phutho1, yenbai1 đều có cấu trúc nhƣ nhau với các thuộc tính quequan và Tong

CSDL_Tong = phutho1 yenbai1

SELECT SUM(Tong) FROM CSDL_Tong GROUPE BY quequan

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ta có bảng kết quả sau :

Kết quả trộn tập chung

3.1.2.2 Thuật toán trộn phân tán DM (Distributed Merging)

Để việc tuyển chọn thêm ngƣời cho các phòng ban công ty một cách phù hợp và đảm bảo đƣợc yêu cầu công việc từ Quan hệ phongban, nhanvien trên bảng đƣợc lƣu tại các vị trí Phú Thọ và Yên Bái. Xét câu truy vấn sau: "Hãy cho biết số lƣợng nhân viên theo từng phòng" từ đó ta có thể thấy đƣợc tổng số nhân viên của các phòng ban tại hai chi nhánh và đƣợc tổng hợp toàn công ty,

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Ta có bảng quan hệ phongban tại các vị trí nhƣ sau:

Quan hệ phongban_pt

Tại Phú Thọ

Quan hệ phongban_yb

Tại Yên Bái

Tại Phú Thọ : (adsbygoogle = window.adsbygoogle || []).push({});

SELECT COUNT (*) INTO phutho1

FROM phongban_pt, nhanvien_pt

WHERE phongban_pt.mapb = nhanvien_pt.mapb

GROUPE BYmapb

Tại Yên Bái :

SELECT COUNT (*) INTO yenbai1 FROM phongban_yb, nhanvien_yb

WHERE phongban_yb.mapb = nhanvien_yb.mapb

GROUPE BYmapb

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Gộp nhóm theo phƣơng pháp trộn phân tán

3.1.2.3. Thuật toán phân mảnh lại ReF (Refragmentation)

Với dữ liệu ở mục 3.1.2.2

Trước tiên chúng ta phân mảnh kiểu hàm băm tại các địa điểm và gửi vào 2 vùng tương ứng 0, 1

FOR i = 0 TO 1

SELECT * INTO Vungi

FROM nhanvien_pt, phongban_pt WHERE (hash(mapb) MOD 2 = 1)

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

AND (phongban_pt.mapb = nhanvien_pt.mapb) END FOR

FOR i = 0 TO 1

SELECT * INTO Vungi

FROM nhanvien_yb, phongban_yb WHERE (hash(mapb) MOD 2 = 1)

AND (phongban_yb.mapb = nhanvien_yb.mapb) END FOR Tiếp tục dùng lệnh gộp nhóm FOR i = 0 TO 1 SELECT * FROM Vungi GROUPE BY mapb END FOR Sẽ đƣợc kết quả nhƣ hình 3-2 :

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Mapb Tenpb SoNV Mapb Tenpb SoNV

A01 Ban lãnh đạo 3 A02 Phòng kinh doanh 3

A03 Phòng kỹ thuật 2 A04 Phòng kế toán 4

A05 Phòng bán hàng 2 A06 Phòng bảo hành –

CSKH 2

Hình 3-2: Gộp nhóm theo thuật toán ReF

Hash(mapb) mod 2 Hash(mapb) mod 2 (adsbygoogle = window.adsbygoogle || []).push({});

Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/

Một phần của tài liệu các kỹ thuật phân mảnh, gộp nhóm trong csdl phân tán (Trang 63 - 72)