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