HỌC VIỆN CƠNG NGHỆ BƢU CHÍNH VIỄN THƠNG
---------------------------------------
Dƣơng Thị Nguyệt
NGHIÊN CỨU CÁC KỸ THUẬT TÁCH-GỘP SONG SONG TRÊN
CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ ỨNG DỤNG
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
TĨM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2014
Luận văn đƣợc hồn thành tại:
HỌC VIỆN CƠNG NGHỆ BƢU CHÍNH VIỄN THƠNG
Ngƣời hƣớng dẫn khoa học: PGS. NCVC. TS. Lê Huy Thập
Phản biện 1: TS. Nguyễn Trọng Đƣờng
Phản biện 2: TS. Hà Hải Nam
Luận văn sẽ đƣợc bảo vệ trƣớc Hội đồng chấm luận văn thạc sĩ tại Học viện Cơng nghệ
Bƣu chính Viễn thơng
Vào lúc:
10h giờ 15 ngày 15 tháng 02 năm 2014.
Có thể tìm hiểu luận văn tại:
- Thƣ viện của Học viện Cơng nghệ Bƣu chính Viễn thông
1
MỞ ĐẦU
Trong những năm gần đây công nghệ thông tin ngày càng phát triển và ngày
càng đƣợc ứng dụng linh hoạt và phổ biến hơn vào thực tế.Nhƣng vấn đề quan
trọng ở đây là làm thế nào để có thể áp dụng công nghệ vào thực tế một cách khoa
học và có ý nghĩa cũng nhƣ hiệu quả cao nhất có thể.Đó là bài tốn khá khó đối với
ngành cơng nghệ thơng tin hiện tại. Có thể xét 1 khía cạnh nào đó của thực tế đó
là yêu cầu đối với các hệ thống có quy mơ lớn cần quan tâm nhất đó là vấn đề xử
lý thơng tin nhanh nhất và trả ra kết quả chính xác nhất với chi phí là tối ƣu nhất
có thể.
Nhƣ chúng ta đã biết q trình xử lý thơng tin trong các hệ thống lớn hoạt
động trên hệ thống mạng, để tăng tốc độ xử lý thì khơng những xây dựng hạ tầng
mạng có đƣờng truyền lớn, mà chúng ta cần phải nghĩ đến việc phân tán dữ liệu nhƣ
thế nào trong hệ thống bởi vì nó quyết định rất lớn đến kết quả xử lý thông tin.
Trong thời gian qua tôi đã tìm hiểu về hệ thống cơ sở dữ liệu phân tán và
thấy rằng để giải quyết vấn đề ách tắc vào ra thƣờng gặp trong các hệ CSDL song
song, ngoài việc áp dụng một kiến trúc phần cứng thích hợp, ngƣời ta tiến hành
phân mảnh dữ liệu một cách hợp lý cho các bộ xử lý và thực hiện câu vấn tin đã cho
một cách đồng thời trên các mảnh. Hiện nay các chƣơng trình viết bằng ngơn ngữ
SQL dùng để xử lý CSDL đều có thể đƣa vào các máy đa xử lý để thực hiện song
song. Phần mềm SQL viết cho các hệ thống đơn xử lý có thể đƣa vào các máy tính
song song để thực hiện song song thơng qua chƣơng trình dịch của ngơn ngữ lập
trình song song.
Do đó tơi đã chọn đề tài luận văn là: “Nghiên cứu các kỹ thuật tách – gộp
song song trên CSDL phân tán và ứng dụng”, nội dung luận văn này sẽ nghiên
cứu và đề xuất các giải pháp tách-gộpsong song và cho thấy đƣợc kết quả các thuật
toán này sẽ làm tăng rất nhiều về hiệu năng xử lý dữ liệu và truyền dữ liệu so với cơ
sở dữ liệu tập trung.
2
CHƢƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về CSDL phân tán
Hệ cơ sở dữ liệu phân tán (Distributed Database System – DDBS) là một tập
hợp dữ liệu có liên đới logic và đƣợc phân bố trên các nút của một mạng máy tính.
Cơ sở dữ liệu phân tán (CSDLPT) có các đặc điểm: Tính phân tán và tính
tƣơng quan logic.
1.2 Các kỹ thuật phân mảnh dữ liệu trong CSDL
Quy tắc phân mảnh đúng đắn
Phải tuân thủ ba quy tắc trong khi phân mảnh mà chúng bảo đảm rằng CSDL
sẽ khơng có thay đổi nào về ngữ nghĩa khi phân mảnh:Tính đầy đủ, tính tái thiết
đƣợc, tính tách biệt.
Các yêu cầu thông tin
Một điều cần lƣu ý trong việc thiết kế phân tán là quá nhiều yếu tố có ảnh
hƣởng đến một thiết kế tối ƣu. Tổ chức logic của CSDL, vị trí các ứng dụng, đặc
tính truy xuất của các ứng dụng đến CSDL, và các đặc tính của hệ thống máy tính
tại mỗi vị trí đều có ảnh hƣởng đến các quyết định phân tán. Điều này khiến cho
việc diễn đạt bài toán phân tán trở nên phức tạp.
Nhƣ chúng ta đã biết phép chiếu một quan hệ nếu cho kết quả là một quan hệ
thì các bộ trùng lặp phải đƣợc loại bỏ (chỉ giữ lại 1 trong những bộ giống nhau).
Phép chiếu mở rộng một quan hệ có thể chấp nhận các bộ giống nhau, trƣờng
hợp này kết quả thu đƣợc là một bảng. Thuật ngữ bảng là để chỉ một quan hệ và
ngƣợc lại.
3
1.2.1 Phân mảnh ngang
Phân mảnh ngang 1 quan hệ tổng thể n-bộ R là tách R thành các quan hệ con n-bộ
R1, R2, … Rk sao cho quan hệ R có thể đƣợc khơi phục lại từ các quan hệ con này
bằng phép hợp R = R1 U R2 U … U Rk.
1.2.1.1 Phân mảnh ngang (Vòng tròn Robin)
Phần giả mã đƣợc viết nhƣ sau:
Ký hiệu Y = { n0, n1, …, np-1, np}
For i = 0 to N-1
For Each element In Y
If element mod N = i
Save element vào vùng i
Y - = element
End if
Next element
End For
Cách phân mảnh này dễ cài đặt và khơng xảy ra tình trạng thiếu cân đối về
dữ liệu vì các vùng chỉ hơn kém nhau tối đa một bộ.
Kỹ thuật phân mảnh này dựa trên thứ tự các bộ nên nó khơng phụ thuộc vào
bất cứ một thuộc tính nào của quan hệ đƣợc phân mảnh.
Phân mảnh Robin khơng thích hợp với các truy vấn khoảng vì phải tiến hành
tìm kiếm trên tất cả các vùng có lƣu quan hệ đang xét.
2.2.1.2 Phân mảnh ngang theo hàm băm
Phân mảnh theo hàm băm là trƣờng hợp tổng quát của Robin. Giả sử cần
phân mảnh quan hệ R cho N vùng đƣợc đánh số 0, 1, …, N-1 với thuộc tính phân
4
mảnh là A. Bộ t thuộc R đƣợc đƣa vào vùng k nếu k = t(A) mod N, trong đó t(A) là
giá trị trên thuộc tính A của bộ t.
Giả mã đƣợc viết nhƣ sau:
Y = {t(A)}
For i = 0 to N-1
For each element In Y
If element mod N = i
Save bản ghi tƣơng ứng với element vào vùng i
Y - = element
End if
Next element; End for
Ta thấy:
- Khi truy xuất đến các mẫu tin phải dựa vào giá trị thuộc tính đã dùng để
phân mảnh.
- Dữ liệu sẽ đƣợc phân mảnh đều cho các vùng và thuận tiện cho việc tìm
kiếm kết hợp.
- Giảm sự quá tải khi phải khởi động truy vấn trên tất cả các vùng. Thông
thƣờng các dữ liệu liên quan đƣợc nhóm lại với nhau và lƣu trữ trên cùng
một trang vật lý.
- Nhƣng phân mảnh theo hàm băm thì các mẫu tin đƣợc phân mảnh ngẫu
nhiên vào các vùng chứ khơng đƣợc nhóm lại với nhau nên khơng thích
hợp với các truy vấn khoảng.
1.2.1.3 Phân mảnh ngang theo khoảng
Gộp những bộ mà giá trị thuộc tính nào đó của các bộ của chúng thuộc miền
nào đó. Thơng thƣờng dùng câu lệnh SQL để phân ra nhiều mảng, có dạng nhƣ sau:
5
Vùng 0
Select *
From <Tên quan hệ>
Where <Condition0>
Vùng 1
Select *
From <Tên quan hệ>
Where <Condition1>
…..
Vùng n
Select *
From <Tên quan hệ>
Where <Conditionn>
Chú ý rằng các Conditioni, Conditionj, với i # j là các khoảng loại trừ nhau.
1.2.1.4 Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất đƣợc định nghĩa trên một quan hệ thành viên của
một đƣờng nối dựa theo phép toán chọn trên quan hệ chủ nhân của đƣờng nối
đó.Chúng ta cần lƣu ý 2 điểm.Một là đƣờng nối giữa quan hệ chủ nhân và thành
viên đƣợc định nghĩa là một đƣờng nối bằng.Thứ hai, nối bằng có thể đƣợc cài đặt
nhờ các nối nửa. Điều này rất quan trọng với mục đích của chúng ta vì chúng ta
muốn phân hoạch quan hệ thành viên theo phân mảnh của chủ nhân nhƣng cũng
muốn mảnh thu đƣợc chỉ định nghĩa trên các thuộc tính của quan hệ thành viên.
Nhƣ thế nếu cho trƣớc một đƣờng nối L, trong đó owner(L) = S và
member(L) = R, các mảnh ngang dẫn xuất của R đƣợc định nghĩa là (hình1.8).
6
Ri = R
Si, 1<= i <=
Hình 1.2 Phân mảnh ngang dẫn xuất quan hệ R theo các mảnh của quan hệ S
Trong đó
là số lƣợng các mảnh đƣợc định nghĩa trên R, và Si =
FI(S)vớiFi
là công thức định nghĩa mảnh ngang nguyên thủy Si.
Quyết định cách phân mảnh nào cần dựa trên hai tiêu chuẩn sau:
- Phân mảnh có đặc tính nối tốt hơn
- Phân mảnh đƣợc sử dụng trong nhiều ứng dụng hơn
1.2.2 Phân mảnh dọc
Phân mảnh dọc chia mộtquan hệ R ra các mảnh R1, R2, …, Rr. Mỗi mảnh
chứa một tập con các thuộc tính cùng với khóa của quan hệ R. Mục đích của phân
mảnh dọc là phân mảnh một quan hệ thành một tập các quan hệ nhỏ hơn, để có
nhiều ứng dụng chỉ cần chạy trên một mảnh. Nhƣ vậy một cách phân mảnh tối ƣu là
phân mảnh sinh ra một lƣợc đồ phân mảnh cho phép giảm tối đa thời gian thực thi
các ứng dụng chạy trên các mảnh đó.
Phân mảnh dọc 1 quan hệ tổng thể n-bộ R là tách R thành các quan hệ con nbộ R1, R2, … Rk sao cho quan hệ R có thể đƣợc khơi phục lại từ các quan hệ con
này bằng phép nối R = R1
R2
…
Rk.
Phân mảnh là phức tạp hơn phân mảnh ngang, vì số lựa chọn có thể có của
phân mảnh dọc là rất lớn. Trong phân mảnh ngang, nếu tổng các vị từ đơn giảncủa
tập Pr là n thì số mảnh ngang có thể có tối đa là 2n (vì có 2n vị từ hội s = cấp) chƣa
nói trong số chúng có một số sẽ mâu thuẫn với các phép kéo theo do đó sẽ làm giảm
số mảnh phải xem xét. Cịn trong phân mảnh dọc nếu một quan hệ có m thuộc tính
khơng phải là khóa thì số mảnh dọc có thể có sẽ là số Bell thứ m B(m). Với m đủ
lớn thì số Bell B(m)
mm, ví dụ m=10, B(m) =115.000; m=9, B(m) = 109;
7
m=30,(m) = 1023, …. Qua những ví dụ này ta thấy để tìm các phân mảnh dọc tối ƣu
là bài toán Heuricstic.
1.2.3 Phân mảnh hỗn hợp
Trong đa số các trƣờng hợp, phân mảnh ngang hoặc phân mảnh dọc đơn giản
cho một lƣợc đồ CSDL không đủ đáp ứng các yêu cầu từ các ứng dụng.Trong
trƣờng hợp đó, phân mảnh dọc có thể đƣợc thực hiện sau 1 phân mảnh ngang hoặc
ngƣợc lại, sinh ra một lối phân mảnh có cấu trúc cây.Bởi vì, hai loại chiến lƣợc
phân mảnh này đƣợc áp dụng lần lƣợt, chọn lựa này đƣợc gọi là phân mảnh hỗn hợp
(hybrid fragmentation).
Tính đúng đắn và các điều kiện cho phân mảnh hỗn hợp là chúng tuân theo
những yêu cầu của phân mảnh ngang và phân mảnh dọc.
1.2.4 Tái cấu trúc quan hệ
1.2.4.1 Tái thiết quan hệ với Phân mảnh ngang
Tái thiết một quan hệ toàn cục từ các mảnh đƣợc thực hiện bằng toán tử hợp
trong cả phân mảnh ngang nguyên thủy lẫn dẫn xuất, vì thế một quan hệ R với phân
mảnh FR = {R1, R2, R3, … Rm} chúng ta có:
R = Ri; Ri FR
1.2.4.2 Tái thiết quan hệ với Phân dọc
Đối với quan hệ R có phân mảnh dọc FR = {R1, R2, R3, … Rr} và các thuộc
tính khóa K
R=
KRi,
Ri FR
Do vậy nếu điều kiện mỗi Ri là đầy đủ phép toán nối sẽ tái thiết lại đúng R.
Một điểm quan trọng là mỗi mảnh Ri phải chứa các thuộc tính khóa của R.
8
1.3 Các phƣơng pháp xử lí song song
1.3.1 Song song liên truy vấn
1.3.1.1 Lập lịch cạnh tranh
Lập lịch cạnh tranh là lập lịch trên cơ sở cạnh tranh.
Ƣu điểm đối với phƣơng pháp này là đơn giản và “công bằng” theo nghĩa
mỗi truy vấn đều có cùng cơ hội để cạnh tranh các tài ngun tính tốn. Tuy nhiên
khả năng sử dụng hệ thống của phƣơng pháp này chƣa cao.
Tạo ra tập các tiến
trình điều phối
Hàng đợi của các
câu truy vấn
Câu truy vấn 1
Bộ điều phối xử lý
Tiến trình điều
phối 1
……..
Tiến trình điều
phối n
Câu truy vấn n
Tạo các tốn tử
phục vụ
Hình 1.12Sơ đồ lập lịch cạnh tranh
1.3.1.2 Lập lịch theo phƣơng án
Phƣơng pháp lập lịch này có khả năng sử dụng hệ thống tốt hơn nhƣng
không “công bằng” nhƣ phƣơng pháp lập lịch trên cơ sở cạnh tranh. Bởi các truy
9
vấn liên quan đến tính phức tạp của chúng (ví dụ nhƣ xử lý tên các quan hệ rất nhỏ
hoặc rất lớn) có thể rơi vào tình trạng chờ đợi mãi mãi, vì khơng có thể thực hiện
do khơng giành đƣợc tài ngun. Ngồi ra bộ lập lịch cũng có thể đƣa đến hiện
tƣợng “Điểm nóng” khi mà nhu cầu tài nguyên của nhiều truy vấn đều tối ƣu đối
với hệ thống, thì việc chọn ra một truy vấn trong số đó để thực hiện trƣớc cũng
là một vấn đề.
Các hệ Oracle 7 và Oracle RDB là các ví dụ về các hệ CSDL song song dùng
chung vùng và có hỗ trợ cơ chế song song liên truy vấn .
Hàng đợi của các
câu truy vấn
Bộ lập lịch
Toán tử phục
vụ
Tập các tốn tử và
bộ điều phối
Tốn tử phục
vụ
Hình 1.13 Sơ đồ lập lịch theo phƣơng án
1.3.2. Song song nội truy vấn
Song song nội truy vấn là dạng song song hóa thi hành song song một truy
vấn đơn trên nhiều bộ xử lý. Điều đó nghĩa là nó thực hiện từng truy vấn một và cho
phép thực hiện đồng thời các phép tốn trên truy vấn đó.Có hai cơ chế song song
nội truy vấn.
1.3.2.1 Song song độc lập
Ký hiệu Opi là một phép tốn nào đó, Opi và Opj với i # j đƣợc gọi là song
song độc lập với nhau, nếu chúng ngƣợc thực hiện song song và USE(Op i)
10
DEF(Opj) = USE(Opi) DEF(Opj) = . Nghĩa là toán tử này khơng sử dụng kết quả
đầu ra của phép tốn kia và ngƣợc lại. Cơ chế song song này gọi là song song độc
lập (independent paralleism).
Có thể thực hiện phép nối bằng cơ chế song song độc lập nhƣ sau:
PROJ1
PNOPROJ2
PNOPROJ3
(1)
Chọn bộ xử lý p1 để thực hiện phép nối cho quan hệ trung gian PROJ‟:
PROJ‟= PROJ1
PNOPROJ2(2)
Chọn bộ xử lý p2 để thực hiện phép nối
PROJ‟‟= PROJ2
PNOPROJ3(3)
Khi các tính tốn này đã hồn tất, chúng ta có thể thực hiện
PROJ‟
PNOPROJ‟‟(4)
Muốn đạt đƣợc song song hóa cao hơn ta có thể sắp đặt sao cho khi mới hình
thành các bộ trong PROJ‟, PROJ‟‟ thì chúng sẽ đƣợc thực hiện nối ngay mà không
chờ cho đến khi kết thúc các phép nối này.
1.3.2.2. Song song đƣờng ống
Cách xử lý tuần tự kiểu đƣờng ống là một kỹ thuật quan trọng để xử lý câu
truy vấn.Nó là một dãy các thao tác đƣợc sắp đặt sao cho đầu ra của thao tác này là
đầu vào của thao tác kế tiếp.Ƣu điểm của kỹ thuật này là không cần lƣu trữ kết quả
tạm thời trong q trình xử lý mà thực hiện tính tốn ngay.Do đó sẽ hạn chế các
thao tác đọc ghi các kết quả trung gian. Trong hệ thống song song, các kỹ thuật
đƣờng ốngchủ yếu đƣợc sử dụng với cùng mục đích nhƣ hệ thống tuần tự.Tuy
nhiên, nó đƣợc dùng nhƣ một biện pháp song song hóa một phần. Nghĩa là 2 phép
tốn khác nhau có thể thực hiện đồng thời bằng cách lấy kết quả của phép toán này
làm dữ liệu vào cho phép tốn kia. Đó là cơ chế song song đƣờng ống.
11
1.3.2.3. Song song nội toán tử
Song song nội toán tử thực hiện một phép toán quan hệ bằng cách dùng
nhièu bộ xử lý.Phép toán này thực hiện bằng cách phân chia các toán hạng cho
nhiều bộ xử lý. Một phép toán quan hệ đƣợc tách thành các phép toán độc lập, mỗi
phép toán thực hiện một phần dữ liệu và sử dụng một bộ xử lý riêng.Cơ chế song
song nội tốn tử cịn đƣợc gọi là song song phân mảnh, nó dựa trên sự phân mảnh
và bản sao dữ liệu để thực hiện các toán tử.
1.4 Kết luận chƣơng
CSDLPT ngày càng đƣợc mở rộng, phát triển và ứng dụng rộng rãi trong
cơng nghệ thơng tin vì có các ƣu điểm nổi bật: cơ cấu tổ chức và vấn đề kinh tế, sự
tăng trƣởng, giảm chi phí truyền thơng, hiệu năng, độ tin cậy và sự sẵn dùng.
Tuy nhiên bên cạnh những ƣu điểm của CSDLPT cũng không tránh đƣợc
những hạn chế làm cho sự phát triển của CSDLPT chƣa thực sự lớn mạnh mà mới
chỉ nhƣ bắt đầu là: sự phát triển gần đây của các máy tính nhỏ với giá thành hạ và
cung cấp nhiều khả năng mà trƣớc đây chỉ có các máy tính lớn mới có đã cung cấp
phần cứng cần thiết cho sự phát triển của các hệ phân tán.
Kết thúc chƣơng 1 tơi đã trình bày đƣợc các vấn đề liên quan đến tổng quan
dữ liệu phân tán, các kỹ thuật phân mảnh và các phƣơng pháp xử lý song song.
Thơng qua tìm hiểu lý thuyết giúp chúng ta hiểu thêm về cơ sở dữ liệu phân tán, ƣu
và nhƣợc điểm của loại cơ sở dữ liệu này.
12
CHƢƠNG 2: CÁC THUẬT TỐN TÁCH GỘP SONG SONG
Qua tìm hiểu tại chƣơng 1 ta thấy việc phân mảnh đều cho chúng ta các
quan hệ. Vì vậy mảnh ở đây có thể đồng nhất với quan hệ. Khi tái thiết các
mảnh hay ghép, nối các mảnh chúng ta dùng các thuật ngữ đồng nghĩa nhƣ Hợp
hoặc Ghép và Nối.
Ngoài việc xây dựng các phép tốn song song, chúng ta cịn có thể sử dụng
các phép tốn quan hệ truyền thống với các dịng dữ liệu song song.Mỗi phép tốn
quan hệ có một tập các cổng vào chứa các mẫu tin và một cổng ra chứa dòng dữ
liệu kết quả. Dòng dữ liệu song song thực hiện bằng cách tách và ghép các dịng dữ
liệu thành các cổng tuần tự có hai phép toán song song cơ bản: phép ghép (merge
operator ) và phép tách (spliting operator).
Ngoài ra, phép ghép cũng có thể xem là phép kết hợp nhiều dịng dữ liệu
song song độc lập thành một dòng dữ liệu đơn (tuần tự) đƣợc tách thành nhiều dòng
dữ liệu song song độc lập.Một phép tách đƣợc dùng để phân mảnh hoặc lặp lại dịng
kết quả ra của một phép tốn quan hệ.
Cấu trúc các câu lệnh song song:
Cấu trúc Parbegin và Parend, Cobegin và Coend
Trong chƣơng trình, những tiến trình khơng sử dụng dữ liệu chung hay độc
lập với nhau thì thực hiện đƣợc đồng thời. Giả thiết các lệnh S1, S2,..., Sn đƣợc
thực hiện song song trên n tiến trình (hay n bộ xử lí) riêng biệt. Khi đó chúng ta có
thể viết thành khối song song nhƣ sau:
13
Parbegin
Hoặc
Cobegin
S1;
S1;
S2;
S2;
......
......
Sn;
Sn;
Parend
Coend
Cấu trúc forall và inPar
Nhiều khi một số tiến trình (câu lệnh) tƣơng tự nhau cần phải bắt đầu thực
hiện và cùng lặp lại một số lần. Điều này có thể thực hiện đƣợc bằng cấu trúc forall:
forall (i = 0; i < n; i++) {
Hoặc for (i = 0; i < n; i++) do In Parallel
S1;
S1;
S2;
S2;
......
......
Sn;
Sn;
}
} In Parallel
Cấu trúc lệnh Par
Nhiều ngơn ngữ song song có khả năng thực hiện những câu lệnh đồng thời,
nhƣ trong cấu trúc Par sau:
Par {
<câu lệnh 1>
......
<câu lệnh k>}
14
Từ khóa Par chỉ ra rằng những câu lệnh trong phần thân đƣợc thực hiện một
cách đồng thời. Đây là song song mức dòng lệnh.
2.1.
Giải pháp phân mảnh lại ReF
2.1.1. Tổng quan giải pháp
Thuật toán thực hiện qua 2 bƣớc:
Bƣớc 1: Các nút khơng thực hiện gộp nhóm trực tiếp các phần dữ liệu trên
địa chỉ lƣu trữ của nó, mà trƣớc tiên phân mảnh lại quan hệ trên thuộc tính nhóm
GROUP BY.
Bƣớc 2: Các vị trí thực hiện gộp nhóm thành phần dữ liệu sau khi đã phân
mảnh lại.
Xét Ví dụ 2.2: Giả sử cho bảng thống kê nhân viên năm 2011 tại các chi
nhánhnhƣ hình 2.5.Thực hiện phân mảnh lại cho cơ sở dữ liệu của cơng ty.
Ví dụ trên sau khi ứng dụng thuật toán Ref ta có:
Dữ liệu tại Hà Nội
Dữ liệu tại Đà Nẵng
Dữ liệu tại Hồ Chí
Minh
Bacluong = TS
Bacluong = KS
Bacluong = CD
Gộp nhóm
Gộp nhóm
Gộp nhóm
Hình 2.5 Gộp nhóm theo thuật tốn Ref
15
2.1.2. Đề xuất và thể hiện thuật toán phân mảnh lại
Thuật toán phân mảnh lại là ứng dụng cần thiết khi sử dụng CSDL phân
tán.Thuật toán này giúp ta chia dữ liệu thành từng mảnh với các tiêu chí khác nhau
phù hợp với yêu cầu sử dụng dữ liệu.Kết quả của việc phân mảnh lại giúp cho việc
thực hiện tra cứu dữ liệu nhanh và chính xác bên cạnh đó nó cịn phục vụ hữu ích
cho q trình nhân bản dữ liệu trong trƣờng hợp nhân bản 1 phần, khi đó việc phân
mảnh đã tạo ra đƣợc các mảnh theo tiêu chí và chỉ cần nhân bản 1 mảnh nào đó thay
vì phải nhân mảnh tồn bộ dữ liệu hoặc phải mất thời gian xử lý trƣớc khi nhân bản
dữ liệu.
2.2.
Giải pháp trộn tập trung CM
2.2.1. Tổng quan giải pháp
Thuật toán thực hiện qua haibƣớc:
- Bƣớc 1: Mỗi nút thực hiện gộp nhóm các mẫu tin trên địa chỉ của nó.
- Bƣớc 2: Các giá trị gộp nhóm của mỗi nút đƣợc trộnlại ở một bộ điều
phối trung tâm đƣợc xác định trƣớc.
Ƣu điểm: Thực hiện tốt khi số mẫu tin kết quả là nhỏ.
Nhƣợc điểm: Giai đoạn trộn kết quả thực hiện tuần tự nên dễ xảy ra hiện
tƣợng “nút cổ chai” khi mẫu tin kết quả lớn.
Ví dụ 2.2: Cho quan hệ Nhanvien nhƣ bảng 2.6. Thực hiện giải pháp trộn tập
trung ta có kết quả nhƣ hình 2.7.
Bảng 2.6Danh sáchnhân viên công ty
16
Hình 2.7 Kết quả trộn tập trung
2.2.2. Đề xuất và thể hiện thuật toán trộn tập trung
Thuật toán trộn tập trung có ƣu điểm thực hiện tốt với số mẫu tin nhỏ nên áp
dụng thuật toán với CSDL nhỏ để có thể tận dụng tối đa ƣu điểm. Tránh tình trạng
17
CSDL lớn sẽ có thể xảy ra hiện tƣợng “thắt cổ chai” làm tăng thời gian xử lý và
giảm tốc độ xử lý dữ liệu.
2.3. Giải pháp trộn phân tán DM
2.3.1. Tổng quan giải pháp
Giải pháp trộn này gồm 2 bƣớc sau:
- Bƣớc 1: Mỗi nút thực hiện gộp nhóm các mẫu tin trên vùng của nó.
- Bƣớc 2: Sau đó, các giá trị gộp nhóm riêng đƣợc phân mảnh theo hàm trên
thuộc tính nhóm GROUP BY và các nút thực hiện trộn các giá trị gộp nhóm cục bộ
này thành một cách đồng thời.
Ƣu điểm: Các nút thực hiện trộn các giá trị gộp nhóm thành phần một cách
đồng thời nên giai đoạn trộn khơng cịn là vấn đề bế tắc nữa.
Nhƣợc điểm: Do một giá trị nhóm đƣợc tích lũy trên tất cả các nút nên địi
hỏi bộ nhớ phải lớn.
Ví dụ 2.3:Giả sử cơng ty TNHH Hồng Hà có 3 trụ sở tại Hà Nội, Sài Gịn
và Đà Nẵng. Tại các chi nhánh cơng ty có danh sách nhân viên nhƣ bảng2.1.
Hãy đếm số lƣợng nhân viên trong công ty lần lƣợt theo bậc lƣơng: TS, KS,
CD.
Bảng 2.1 Danh sách nhân viên của công ty tại các chi nhánh
Ta có kết quả gộp nhóm theo phƣơng pháp trộn phân tán đƣợc trình bày
trên hình 2.6
18
Bacluong = KS
Bacluong = TS
Bacluong = CD
Hình 2.8 Gộp nhóm theo phƣơng pháp trộn phân tán
2.3.2. Đề xuất và thể hiện thuật toán trộn phân tán
Thuật toán trộn phân tán có thể áp dụng với CSDL lớn mà khơng sợ xảy ra
hiện tƣợng bế tắc và giảm thời gian xử lý vì tại mỗi vị trí ln thực hiện gộp nhóm
dữ liệu theo 1 tiêu chí nào đó. Sau đó các nhóm đƣợc trộn một cách đồng thời. Tuy
nhiên cần phải có dung lƣợng bộ nhớ lớn khi áp dụng thuật tốn này.
2.4 Kết luận chƣơng
Trong chƣơng 2 tơi đã trình bày đƣợc các thuật tốn tách gộp song song trên
cơ sở dữ liệu phân tán thông qua các giải pháp: Giải pháp phân mảnh lại, giải pháp
trộn tập trung, giải pháp trộn phân tán.Với mỗi giải pháp tôi đã trình bày về tổng
quan giải pháp và đƣa ra ví dụ minh họa cụ thể.Qua mỗi phần trình bày lý thuyết
của các thuật toán giúp chúng ta hiểu thêm hơn thuật tốn cũng nhƣ qua đó có thể
vận dụng linh hoạt hơn các thuật toán vào từng trƣờng hợp cụ thể mang lại hiệu quả
và lợi ích tốt nhất.
19
CHƢƠNG 3: ỨNG DỤNG TẠI CƠNG TY TNHH HỒNG HÀ
3.1 Giới thiệu CSDL của công ty
Hệ thống CSDL của công ty dùng để quản lý các mảng dữ liệu công ty nhƣ:
nhân viên, dự án, lƣơng, …
Cơng ty TNHH Hồng Hà có các chi nhánh tại Hà Nội, Đà Nẵng, Sài Gòn.
Do mỗi chi nhánh đặt tại 1 địa điểm khác nhau nên tại mỗi chi nhánh có lƣu
trữ dữ liệu tác nghiệp của chi nhánh đó. Ta có sơ đồ lƣu trữ đã phân tán và phân
mảnh giả định nhƣ hình 3.1.
Hà Nội
Sài Gịn
CSDL2
Mơi trường mạng
CSDL1
Đà Nẵng
Hình 3.1 Sơ đồ lƣu trữ dữ liệu phân tán
3.2 Tạo CSDL phân tán
- Sử dụng mơ hình client/server
CSDL3
20
- Thực hiện nhân bản dữ liệu đầy đủ: Toàn bộ cơ sở dữ liệu sẽ đƣợc tạo trên
tất cảmỗi trạm.
Ƣu điểm: Điều này sẽ cải thiện tính sẵn sàng cao nhất vì nếu sự cố trên trạm
này thì vẫn có dữ liệu trên trạm khác và cải thiện hiệu nănglấy dữ liệu trên mạng
cho các truy vấn tồn bộvì dữ liệu sẽ đƣợc lấy từ các trạm cục bộ. Nhƣợc điểm: Các
thao tác cập nhập dữ liệu rất chậm vì phải copy, đồng bộ dữ liệu cho mọi trạm. Kỹ
thuật điểu khiển tƣơng tranh và phục hồi sẽ phức tạp hơn.
Tại HN
Nhập dữ
liệu
Dữ liệu tại Hà Nội
Nhập dữ
liệu
Dữ liệu tại Đà Nẵng
Nhập dữ
liệu
Tại HCM
Tại ĐN
Tất cả
Dữ liệu tra
cứu
Tra cứu
Dữ liệu tại Hà Nội
(Server)
Tại HCM
Dữ liệu tại HCM
Tất cả
Xem báo cáo
Dữ liệu báo
cáo
Hình 3.2 Sơ đồ xử lý dữ liệu
3.3 Demo giải pháp trộn phân tán
Triển khai chƣơng trình quản trị CSDL phân tán tại 3 chi nhánh của công ty:
Hà Nội, Đà Nẵng, Sài Gòn. Tại 3 chi nhánh đều cài đặt các ứng dụng giống nhau và
mỗi vị trí truy cập trực tiếp vào CSDL tại chi nhánh đó và kết nối đến các chi nhánh
khác.
3.3.1 Càiđặt chương trình demo
3.3.1.1 Các bảng Cơ sở dữ liệu demo
Bảng 3.1: Danh mục nhân viên Hà Nội (DANHMUC_HAN)
MaNV
TenNV
Luong
MaCN
Tham_nien
Chuc_vu
21
HANE1
Nguyen Huong Lan
CN
HAN
3 PGD
HANE2
Le Van Minh
TS
HAN
5 GD
HANE3
Le Quang Luong
KS
HAN
2 TP
HANE4
Nguyen Van Anh
CD
HAN
4 KT
HANE5
Mai Thi Lan
CN
HAN
3 TEST
HANE6
Duong Quang Dung
KS
HAN
1 LT
HANE7
Pham Thi Hong
TS
HAN
1 QL
HANE8
Vu Quang Vinh
KS
HAN
2 LT
HANE9
Hoang Minh Son
CD
HAN
2 LT
HANE10
Vu Trong Cuong
KS
HAN
3 LT
HANE11
Bui Tien Doan
KS
HAN
4 TEST
HANE12
Vu Trong Hoang
TS
HAN
4 KT
HANE13
Vu Quang Vinh
KS
HAN
5 QL
HANE14
Mai Thi Lan
TC
HAN
2 TEST
HANE15
Le Van Tuan
TC
HAN
2 HT
Bảng 3.2: Danh mục nhân viên Đà Nẵng (DANHMUC_DAN)
MaNV
TenNV
Ma_Luong
MaCN
Tham_nien
Chuc_vu
DANE1 Nguyen Thi Huong
CN
DAN
2
KT
DANE2 Le Quang Hieu
KS
DAN
4
TP
DANE3 Pham Van Son
TS
DAN
5
GD
22
DANE4 Duong Thi Mai
TS
DAN
4
PGD
DANE5 Do Van Anh
CN
DAN
4
QL
DANE6 Vu Thi Lien
CD
DAN
3
TEST
DANE7 Pham Thi Tram
TC
DAN
2
HT
DANE8 Le Huyen Trang
KS
DAN
3
LT
DANE9 Doan Tien Hung
KS
DAN
3
LT
Bảng 3.3: Danh mục nhân viên Sài Gòn (DANHMUC_HCM)
MaNV
TenNV
Ma_Luong
MaCN
HCME1
Tham_nien
Chuc_vu
Nguyen Huong Lan
CN
HCM
5
KT
HCME2
Pham Huong Lien
KS
HCM
2
TEST
HCME3
Le Van An
CN
HCM
3
LT
HCME4
Vu Van Minh
TS
HCM
5
GD
HCME5
Hoang Minh Son
KS
HCM
4
PGD
HCME6
Nguyen Tien Manh
CN
HCM
2
LT
HCME7
Ha Thi Le
CD
HCM
2
TEST
HCME8
Do The Thanh
TC
HCM
1
HT
HCME9
Pham Van Anh
CD
HCM
3
QL
Bảng 3.4: Danh mục Lƣơng (DANHMUC_LUONG)
STT
Bac luong
Luong
Ghu chu
1
TS
10000000 Lƣơng cơ bản cho bằng thạc sỹ
2
KS
7000000 Lƣơng cơ bản cho bằng kỹ sƣ
3
CN
5000000 Lƣơng cơ bản cho bằng cử nhân
4
CD
4000000 Lƣơng cơ bản cho bằng cao đẳng
5
TC
3000000 Lƣơng cơ bản cho bằng trung cấp
3.3.1.2 Màn hình giao diện chƣơng trình demo
23
a. Đầu tiên đăng nhập hệ thống
b. Màn hình trang chủ
Chƣơng trình giúp ngƣời quản trị CSDL và NSD thao tác trực tiếp tại chi
nhánh trên hệ thống thực hiện các thao tác thơng qua màn hình giao diện nhƣ
sau:
Hình 3.4 Màn hình chính
c. Màn hình danh mục Nhân viên
Hình 3.5 Màn hình Danh mục nhân viên