Tải bản đầy đủ (.docx) (25 trang)

Giải thuật di truyền trong cấp phát mảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (510.76 KB, 25 trang )

Môn học: Cơ sở dữ liệu nâng cao
Hướng dẫn: PGS. TS. Đỗ Phúc
Lớp: Cao học K6-2011
Học viên: Nguyễn Hữu Việt Long
Mã số: CH1101101
Trường Đại học Công Nghệ Thông Tin – TP. Hồ Chí Minh
Giải thuật di truyền
trong cấp phát mảnh
TP. Hồ Chí Minh
18-08-2012
Mục lục
I. Tổng quan
Cơ sở dữ liệu phân tán là một lĩnh vực nghiên cứu không mới nhưng gần đây, do
sự phát triển nhanh chóng của công nghệ truyền thông và sự bành trướng mạnh mẽ của
mạng Internet, cùng với xu thế toàn cầu hóa trong mọi lĩnh vực, đặc biệt là về thương
mại, Cơ sở dữ liệu phân tán đã trở thành một lĩnh vực thu hút nhiều sự quan tâm của các
nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần mềm.
Thiết kế một Cơ sở dữ liệu phân tán hiệu quả và tối ưu cần tốn rất nhiều thời gian
và công sức. Trong đó, một trong những vấn đề khó khăn nhất của Thiết kế Cơ sở dữ liệu
là cấp phát, phân bố các mảnh dữ liệu đến các địa điểm, sites sao cho hiệu quả truy xuất
dữ liệu là cao nhất.
Báo cáo này trình bày về thiết kế Cơ sở dữ liệu phân tán; các kỹ thuật thiết kế và
xây dựng Cơ sở dữ liệu phân tán; các kỹ thuật phân mảnh dữ liệu; giới thiệu bài toán cấp
phát mảnh trong Cơ sở dữ liệu phân tán. Qua đó, trình bày việc ứng dụng kỹ thuật thuật
giải di truyền vào giải quyết bài toán tối ưng trong cấp phát mảnh.
II. Bài toán thiết kế
Thiết kế một hệ thống máy tính phân tán cần phải chọn những vị trí đặt dữ liệu và
các chương trình trên một mạng máy tính, rất có thể phải kể luôn cả việc thiết kế hệ
thống mạng. Đối với hệ quản trị Cơ sở dữ liệu phân tán, việc phân tán các ứng dụng đòi
hỏi hai điều: phân tán hệ quản trị Cơ sở dữ liệu và phân tán các chương trình ứng dụng
chạy trên hệ quản trị đó. Điều thứ hai không phải là vấn đề quan trọng vì giả sử rằng mỗi


vị trí có lưu dữ liệu đều có một bản sao của phần mềm hệ quản trị. Ta chỉ tập trung phân
tán dữ liệu. Việc tổ chức các hệ phân tán có thể nghiên cứu dựa theo 3 trục không gian
vuông góc:
1. Mức độ chia sẻ (level of sharing)
2. Kiểu mẫu truy xuất (behavior of access pattern)
2
3. Mức độ hiểu biết về kiểu mẫu truy xuất (level of knowledge)
Hình II.1: Bộ khung phân tán
III. Các chiến lược thiết kế Cơ sở dữ liệu phân tán
Hai chiến lược chính đã được xác định trong thiết kế các Cơ sở dữ liệu phân tán là
tiếp cận từ trên xuống (top-down approach) và tiếp cận từ dưới lên (bottom-up approach).
Trong thực tế, cả hai tiếp cận thường được áp dụng để bổ sung cho nhau.
1. Quá trình thiết kế từ trên xuống
Quá trình bắt đầu bằng việc phân tích yêu cầu nhằm định nghĩa môi trường hệ
thống và thu thập các nhu cầu về dữ liệu và nhu cầu xử lý của tất cả mọi người sử dụng
Cơ sở dữ liệu.
3
Hình III.1: Quá trình thiết kế từ trên xuống
Thiết kế khung nhìn (View Design) có nhiệm vụ định nghãi các giao diện cho
người dung cuối (end-user). Thiết kế Khái niệm (conceptual design) là quá trình xem xét
tổng thể đối tượng nhằm xác định các loại thực thể và mối liên hệ giữa các thực thể. Hai
thiết kế là hai hoạt động song song có mối liên hệ với nhau. Thiết kế khai niệm có thể
diễn giải như sự tích hợp khung nhìn của người dung. Tích hợp khung nhìn được sử dụng
nhằm bảo đảm các yêu cầu về thực thể và các mối lien hệ giữa các khung nhìn đều phải
được bao quát trong lược đồ khái niệm.
Lược đồ khái niệm toàn cục GCS và thông tin về kiểu mẫu truy xuất thu được
trong thiết kế khung nhìn sẽ là nguyên liệu cho bước thiết kế phân tán (distribution
design). Mục tiêu của giai đoạn này là thiết kế các lược đồ khái niệm cục bộ LCS bằng
cách phân tán các thực thể như một đơn vị phân tán (unit of distribution).
Thay vì phân tán các quan hệ, ta thường chia chúng thành các quan hệ nhỏ hơn gọi

là các mảnh (fragment) và chính các mảnh này sẽ được phân tán. Do đó, hoạt động thiết
kế phân tán sẽ gồm hai bước: phân mảnh (fragmentation) và cấp phát (allocation).
4
Bước cuối cùng trong thiết kế từ trên xuống là thiết kế vật lý. Bước này ánh xã
lược đồ khái niệm cục bộ sang các thiết bị lưu trữ vật lý có sẵn tại các vị trí tương ứng.
Nguyên liệu cho quá trình này là lược đồ khái niệm cục bộ và thông tin về kiểu mẫu truy
xuất các mảnh.
Bên cạnh đó, hoạt động phát triển và thiết kế luôn là một quá trình liên tục, đòi hỏi
phải theo dõi, hiệu chỉnh thường xuyên. Vì thế, vấn đề quan sát, theo dõi là một trong
những hoạt động cần thiết trong quá trình thiết kế từ trên xuống. Không chỉ việc cài đặt
Cơ sở dữ liệu được xem xét mà còn phải theo dõi tính thích hợp của các khung nhìn của
người sử dụng. Kết quả này có tác dụng phản hồi, tạo tiền đề cho việc tái thiết kế về sau.
2. Quá trình thiết kế từ dưới lên
Thiết kế từ trên xuống thích hợp với những Cơ sở dữ liệu thiết kế từ đầu. Tuy
nhiên, ta rất hay gặp trong thực tế là đã có sẵn một số Cơ sở dữ liệu và nhiệm vụ thiết kế
là phải tích hợp chúng thành một Cơ sở dữ liệu. Tiếp cận từ dưới lên sẽ thích hợp cho
tình huống này. Khởi điểm của thei6t1 kế từ dưới lên là các lược đồ khái niệm cục bộ.
Quá trình này sẽ bao gồm việc tích hợp các lược đồ cục bộ thành lược đồ khái niệm toàn
cục.
Loại môi trường này tồn tại chủ yếu trong ngữ cảnh của các Cơ sở dữ liệu đa
chủng nhưng đây không phải là vấn đề chính trong báo cáo này.
IV. Các vấn đề trong thiết kế phân tán
1. Các lý do phân mảnh
Trong phân mảnh, điều quan trọng là có được một đơn vị phân tán thích hợp. Một
quan hệ không phỉa là một đơn vị đáp ứng được yêu cầu đó. Trước tiên, khung nhìn của
các ứng dụng thường chỉ là một tập con của quan hệ. Vì thế đơn vị truy xuất không phải
là toàn bộ quan hệ nhưng chỉ là các tập con của quan hệ. Kết quả là xem tập con của quan
hệ là đơn vị phân tán sẽ là điều thích hợp duy nhất.
Thứ hai, nếu các ứng dụng có các khung nhìn được định nghĩa trên một quan hệ
cho trước lại nằm tại những vị trí khác thì có hai cách chọn lực với đơn vị phân tán là

toàn bộ quan hệ hoặc quan hệ không được nhân bản mà được lưu ở một ví trí hoặc quan
hệ được nhân bản cho tất cả hoặc một số vị trí có chạy ứng dụng. Chọn lựa đầu có thể
gây ra một số lượng lớn các truy xuất không cần thiết đến dữ liệu ở xa. Còn chọn lựa sau
5
thực hiện nhân bản không cần thiết, gây ra nhiều vấn đề khi cập nhật và có thể làm lãng
phí nhiều không gian lưu trữ.
Cuối cùng, việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như
một đơn vị sẽ cho phép thực hiện nhiều giao dịch đồng thời.Ngoài ra việc phân mảnh các
quan hệ sẽ cho phép thực hiện song song một câu truy vấn bằng cách chia nó thành một
tập các truy vấn con hoạt tác trên các mảnh. Vì thế việc phân mảnh sẽ làm tang mức độ
hoạt động đồng thời và như thế làm tang lưu lượng hoạt động của hệ thống.
2. Các kiểu phân mảnh
Thể hiện của các quan hệ chính là các bảng. Vì thế, vấn đề trong phân mảnh là tìm
những cách khác nhau để chia bảng thành nhiều bảng nhỏ hơn. Có hai phương pháp khác
nhau: chia bảng theo chiều dọc và chia bảng theo chiều ngang.
Ngoài ra, việc phân mảnh có thể lồng ghép với nhau. Nếu kết hợp các loại phân
mảnh khác nhau, ta có thể thu được một phân mảnh hỗn hợp (hybrid fragmentation). Mặc
dù phân mảnh hỗ hợp không được xem như một loại phân mảnh sơ cấp nhưng trong thực
tế, rất nhiều phân mảnh thuộc loại hỗn hợp.
3. Mức độ phân mảnh
Phân mảnh Cơ sở dữ liệu đến mức độ nào là một quyết định quan trọng, có ảnh
hưởng lớn tới hiệu năng thực hiện truy vấn. Mức độ phân mảnh có thể là từ thái cực
không phân thành mảnh nào đến thái cực phân mảnh thành từng bộ (trường hợp phân
mảnh ngang) hoặc thành từng thuộc tính (phân mảnh dọc).
Làm thế nào để xác định mức độ phân mảnh là quá lớn hay quá nhỏ? Một mức độ
như thế chỉ được định nghĩa ứng với các ứng dụng sẽ chạy trên Cơ sở dữ liệu. Các ứng
dụng sẽ được đặc trưng qua các tham số. Theo giá trị của các tham số này mà chúng ta có
thể xác định được từng mảnh.
4. Quy tắc phân mảnh
Trong quá trình phân mảnh, cần đảm bảo rằng Cơ sở dữ liệu sẽ không thay đổi nào

về ngũ nghĩa sau khi phân mảnh:
a. Tính đầy đủ (completeness):
Nếu một thể hiện quan hệ R được phân rã thành các mảnh R
1
, R
2
,…, R
n
thì mỗi
mục dữ liệu có thể gặp trong một hoặc nhiều mảnh R
i
. Đặc tính này, giống như tính chất
6
phân rã nối không mất trong chuẩn hóa, cũng quan trọng trong phân mảnh bởi vì nó bảo
đảm rằng dữ liệu trong quan hệ R được ánh xạ vào các mảnh và không bị mất. Trong
phân mảnh ngang, “mục dữ liệu” muốn nói đến một bộ; trong phân mảnh dọc, “mục dữ
liệu” muốn nói đến một thuộc tính.
b. Tính tái thiết (reconstruction):
Nếu một quan hệ R được phân rả thành các mảnh R
1
, R
2
,…, R
n
thì cần phải định
nghĩa một toán tử quan hệ ∇ sao cho:
R = ∇R
i
, ∀R
i

∈ F
R
Toán tử ∇ sẽ thay đổi tùy theo từng loại phân mảnh. Tuy nhiên, điều quan trọng là
phải xác định được nó. Khả năng tái thiết một quan hệ từ các mảnh của nó bảo đảm rằng
các rang buộc được định nghĩa trên dữ liệu dưới dạng các phụ thuộc sẽ được đảm bảo.
c. Tính tách biệt (disjointness):
Nếu quan hệ R được phân rã ngang thành các mảnh R
1
, R
2
, …, R
n
và mục dữ liệu
di nằm trong mảnh R
j
, thì nó sẽ không nằm trong một mảnh R
k
khác (k ≠ j). Tiêu chuẩn
này bảo đảm rằng các mảnh ngang sẽ tách biệt. Nếu quan hệ được phân rã dọc, các thuộc
tính khóa chính phải được lập lại trong mỗi mảnh. Vì thế, trong trường hợp phân mảnh
dọc, tính tách biệt chỉ được định nghĩa trên các trường không phải khóa chính của một
quan hệ.
5. Các kiểu cấp phát
Khi Cơ sở dữ liệu đã được phân mảnh thích hợp thì cần phải quyết định cấp phát
các mảnh cho các vị trí trên mạng. Khi dữ liệu được cấp phát, nó có thể được nhân bản
hoặc duy trì một bản duy nhất. Nhân bản nhằm mục tiêu bảo đảm được độ tin cậy và hiệu
quả cho các câu truy vấn chỉ đọc. Nếu có nhiều bản sao của một mục dữ liệu thì ta vẫn có
cơ hội truy xuất được dữ liệu đó ngay cả khi hệ thống xảy ra sự cố. Hơn nữa, các câu truy
vấn chỉ đọc truy xuất đến cùng một mục dữ liệu có thể cho thực hiện song song bởi vì các
bản sao có mặt ở nhiều vị trí. Ngược lại, các câu truy vấn cập nhật có thể gây ra nhiều rắc

rối bởi vì hệ thống phải bảo đảm rằng tất cả các bản sao phải được cập nhật chính xác. Vì
vậy, quyết định nhân bản cần phải được cân nhắc và phụ thuộc vào tỷ lệ giữa các câu truy
vấn chỉ đọc và các câu truy vấn cập nhật.
7
Hình IV.1: So sánh các chọn lựa nhân bản
6. Yêu cầu thông tin
Trong thiết kế phân tán, có quá nhiều yếu tố ảnh hưởng đến một thiết kế tối ưu. Tổ
chức logic của Cơ sở dữ liệu, vị trí các ứng dụng, đặc tính truy xuất của các ứng dụng
đến Cơ sở dữ liệu, 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 việc diễn đạt bài toán phân tán trở nên phức
tạp.
Các thông tin cần thiết trong thiết kế phân tán có thể chia thành bốn loại chính:
thông tin Cơ sở dữ liệu, thông tin ứng dụng, thông tin về mạng, và thông tin về hệ thống
máy tính.
8
V. Phân mảnh dữ liệu
1. Phân mảnh ngang
Phân mảnh ngang chia một quan hệ theo các bộ. Có hai loại phân mảnh ngang:
phân mảnh ngang nguyên thủy (primary horizontal fragmentation) và phân mảnh ngang
được suy (derived horizontal fragmentation)
a. Yêu cầu thông tin của phân mảnh ngang:
Thông tin về Cơ sở dữ liệu (lược đồ khái niệm toàn cục): ta cần biết các quan hệ
sẽ kế lại với nhau như thế nào, đặc biệt là bằng phép nối. Trong mô hình quan hệ, các
mối liên hệ này cũng được biểu thị bằng các quan hệ. Tuy nhiên, trong những mô hình
khác như mô hình thực thể-kết hợp (entity-relationship model), các mối liên hệ được biểu
diễn tường minh. Với mục đích thiết kế phân tán, các mối liên hệ cũng được mô hình hóa
trong bộ khung quan hệ. Theo cách này, ta sẽ vẽ được các đường nối có hướng (các cung)
giữa các quan hệ có liên hệ với nhau qua một nối bằng (equijoin).
Thông tin về ứng dụng: Những thông tin định tính cơ bản gồm các vị từ được
dùng trong các câu truy vấn. Ta cần xác định được các vị từ đơn giản (minterm

predicate). Cho quan hệ R(A
1
, A
2
,…, A
n
), trong đó A
i
là một thuộc tính được định nghãi
trên một miền biến thiên D
i
, một vị từ đơn gian p
j
được định nghĩa trên R có dạng:
p
j
: A
i
θ Value
Trong đó θ ∈ { =, <, ≠, ≤, >, ≥} và Value được chọn từ miền biến thiên của A
i
(Value ∈ D
i
). Ký hiệu Pri được dùng để biểu thị tất cả các vị từ đơn gian được định nghĩa
trên quan hệ R
i
. Các phần tử Pr
i
được ký hiệu là p
ij

.
Mặc dù các vị từ đơn gian rất dễ xử lý, nhưng các câu truy vấn thường chứa nhiều
vị từ phức tạp hơn, là tổ hợp của các vị từ đơn giản. Một tổ hợp cần đặc biệt chú ý được
gọi là vị từ hộ sơ cấp (minterm predicate), đó là hội (conjunction) của các vị từ đơn giản.
Vì ta luôn có thể biến đổi một biểu thức bool thành dạng chuẩn hội (conjunctive normal
form) nên việc sử dụng vị từ hội sơ cấp trong một thuật toán thiết kế không làm mất đi
tính tổng quát.
Cho R và Pr = {p
1
, p
2
, …, p
m
}. Tập các vị từ hội sơ cấp M
i
= {m
i1
, m
i2
,…, m
iz
}
được định nghĩa là:
9
M
i
= {m
ij
| m
ij

=


iik
p Pr
p
*
ik
} với 1≤ k ≤ m, 1 ≤ j ≤ z
Trong đó, p
*
ik
= p
ik
hoặc p
*
ik
= ¬p
ik
.
Theo những thông tin định tính về ứng dụng, ta cần biết hai tập dữ liệu:
- Độ tuyển hội sơ cấp (minterm selectivity) sel(m
i
): Số các bộ (tuple) của quan hệ
được câu truy vấn truy cập. Câu truy vấn được chỉ định bằng minterm predicate m
i
.
- Tần số truy xuất (access frequency) acc(m
i
): là tần số ứng dụng truy xuất dữ liệu.

Nếu Q= {q
1
, q
2
,…, q
q
} là tập các câu vấn tin, thì acc(m
i
) biểu thị cho tần số truy xuất của
qi trong một khoảng thời gian đã cho.
b. Phân mảnh ngang nguyên thủy
Định nghĩa: R
j
= σ
Fj
(R), 1 ≤ j ≤ w
Với F
j
là công thức chọn, thích hợp là minterm predicate. Do vậy, phân mảnh
ngang Ri của quan hệ R gồm tất cả các bộ của R thỏa minterm predicate mi.
Cho tập minterm predicate M, có nhiều phân mảnh ngang của quan hệ R ứng với
nhiều minterm predicates. Tập các phân mảnh ngang cũng được gọi là minterm
fragments.
Rõ ràng là việc định nghĩa các mảnh ngang phụ thuộc vào các simple predicates.
Tập các simple predicates Pr được gọi là đầy đủ (completeness) nếu và chỉ nếu các truy
cập đến các bộ (tuple) của các mảnh hội tối thiểu (minterm fragments) được định nghĩa
theo Pr phải thỏa yêu cầu với một ứng dụng bất kỳ, hai bộ của cùng một minterm
fragment phải có cùng xác suất truy cập.
Để một vị tự phát sinh phân mảnh, (ví dụ biến mảnh f thành các mảnh con f
i

và f
j
)
thì cần phải có một ứng dụng truy cập f
i
và f
j
với các xác suất trên các bộ của mảnh đó là
khác nhau. Nói cách khác, simple predicate phải liên ứng (relevant) với việc tạo ra phân
mảnh.
Nếu tất cả các predicates của tập Pr đều có liên ứng thì Pr is tối tiểu (minimal).
10
Thuật toán COM_MIN là một trong những thuật toán tiêu biểu giúp tìm tập đầy đủ
và tối tiểu các vị từ đơn Pr’ cho Pr.
c. Phân mảnh ngang được suy
Được xác định theo quan hệ member của link dựa trên phép chọn được chỉ định
trên owner của nó. Mỗi link là một equijoin. Equijoin có thể được cài đặt nhờ các
semijoin.
Cho link L với owner(L) = S và member(L) = R, các mảnh ngang được suy của R
được định nghĩa như sau:
R
i
= R⋉
F
S
i
, 1 ≤ i ≤ w
Với w là số lớn nhất các mảnh được xác định trên R và
S
i

= σ
Fi
(S) , S
i
là các phân mảnh ngang của owner.
Với F
i
là công thức theo đó xác định phân mảnh ngang nguyên thủy S
i
.
d. Kiểm định tính đúng đắn
- Tính đầy đủ: Cho R là quan hệ member của link có owner là quan hệ S được
phân mảnh thành F
S
= {S
1
, S
2
, , S
n
}. Ngoài ra gọi A là thuộc tính kết nối giữa R và S.
Thì với từng bộ t của R, tồn tại bộ t' của S sao cho
t[A] = t'[A]
- Tính tái tạo: Với một quan hệ R với phân mảnh F
R
= {R
1
, R
2
, , R

w
}, ta luôn có
R=⋃R
i
, ∀R
i
∈ F
R
- Tính tách rời: ta dễ dàng có được tính tách rời trong phân mảnh nguyên thủy hơn
là trong phân mảnh được suy. Trong phân mảnh nguyên thủy, tính tách rời sẽ được đảm
bảo khi các vị từ hội sơ cấp xác định phân mảnh có tính loại trừ tương hỗ (mutually
exclusive). Tuy nhiên, phân mảnh được suy hàm chứa các nối nửa khiến vấn đề phức tạp
hơn. Tính tách rời chỉ được đảm bảo khi đồ thị nối thuộc loại đơn giản.
2. Phân mảnh dọc
Phân mảnh dọc cho một quan hệ R sinh ra các mảnh R
1
, R
2
, …, R
r
, mỗi mảnh chưa
một tập con thuộc tính của R và cả khóa của R.
11
Phân mảnh dọc đã được nghiên cứu trong ngữ cảnh các hệ Cơ sở dữ liệu tập trung
lẫn phân tán. Phân mảnh dọc phức tạp hơn nhiền so với phân mảnh ngang. Nguyên nhân
là do tổng số chọn lựa có thể có của phân hoạch dọc rất lớn. Vì thế, những nỗ lực tìm ra
lời giải tối ưu cho bài toán phân mảnh dọc rất không hiệu quả. Các kỹ thuật heuristic
được đưa vào nghiên cứu với hy vọng sẽ giúp bài toán phân mảnh dọc trở nên hiệu quả
hơn. Hai loại heuristic thường dùng phân mảnh dọc các quan hệ toàn cục là:
- Nhóm thuộc tính: bắt đầu bằng cách gán mỗi thuộc tính cho một mảnh và tại mỗi

bước, nối một số mảnh lại cho đến khi thỏa một tiêu chuẩn nào đó.
- Tách mảnh: bắt đầu bằng một quan hệ và quyết định cách phân hoạch có lợi dựa
trên hành vi truy xuất của các ứng dụng trên thuộc tính.
a. Yêu cầu thông tin của phân mảnh dọc:
Những thông tin chính cần cho phân mảnh dọc có liên quan đến các ứng dụng.
Các phân hoạch dọc đặt vào một mảnh các thuộc tính thường được truy xuất chung với
nhau, ta cần có một giá trị đo đạc được để định nghĩa chính xác hơn khái niệm “chung
với nhau”. Các ái lực của thuộc tính (attribute affinities) chỉ ra mức độ liên đới giữa các
thuộc tính.
Yêu cầu dữ liệu chính có liên quan đến các ứng dụng là tần số truy xuất (access
frequency) của chúng. Gọi Q = {q
1
, q
2
, …, q
q
} là tập các truy vấn của người dùng sẽ chạy
trên quan hệ R(A
1
, A
2
, …., A
n
). Với mỗi truy vấn qi và mỗi thuộc tính Aj, ta đưa ra một
giá trị sử dụng thuộc tính (attribute usage value) được định nghĩa như sau:
use(q
i
,A
j
)=




0
1
1: nếu thuộc tính A
j
được truy vấn qi tham chiếu
0: trường hợp ngược lại.
Giá trị sử dụng thuộc tính không đủ tổng quát để làm cơ sở cho việc tách và phân
mảnh. Điều này là do chúng không biểu thị cho độ lớn của tần số ứng dụng. Số đo tần số
có thể được chưa trong định nghĩa về số đo ái lực thuộc tính aff(A
i
, A
j
) biểu thị cho cầu
nối (bond) giữa hai thuộc tính của một quan hệ theo cách chúng được các ứng dụng truy
xuất.
12
Số đo ái lực thuộc tính giữa hai thuộc tính A
i
và A
j
của quan hệ R(A
1
, A
2
, …, A
n
)

ứng với tập ứng dụng Q = {q
1
, q
2
,…,q
n
} là:
Lấy ma trận ái lực AA và tổ chức lại các thứ tự của thuộc tính để tạo các cụm có
các thuộc tính ứng với cụm có độ ái lực cao hơn cụm khác. Thuật toán năng lượng liên
kết - Bond Energy Algorithm (BEA) được dùng để gom cụm các thực thể. BEA tìm thứ
tự các thực thể ( trong trường hợp này là các thuộc tính) sao cho độ đo ái lực toàn cục sau
là cực đại.
b. Thuật toán phân hoạch
Mục đích của hành đồng tách thuộc tính và gom thành cụm là để tìm ra các tập
thuộc tính được truy xuất cùng nhau hoặc hầu như là bằng các ứng dụng riêng biệt. Xét
ma trận thuộc tính tụ tìm được ở giải thuật BEA. Nếu một điểm nằm trên đường chéo
được cố định, hai tập thuộc tính sẽ được xác định. Một tập {A1, A2,…, Ai} nằm tại góc
trên trái và tập thứ hai {Ai+1,…,An} ở về bên phải và bên dưới của điểm này. Gọi tập
thứ nhất là đỉnh (top) ký hiệu là TA và tập thứ hai là đáy (bottom) BA.
Xét tập các ứng dụng Q = {q
1
, q
2
,…,q
q
}. Ta có:
TQ = tập các ứng dụng chỉ truy cập TA
13
BQ = tập các ứng dụng chỉ truy cập BA
OQ = tập các ứng dụng chỉ truy cập vừa TA và BA

CTQ = tổng số các truy cập đến các thuộc tính bởi các ứng dụng chỉ truy cập TA
CBQ = tổng số các truy cập đến thuộc tính bởi ứng dụng chỉ truy cập BA
COQ = tổng số các truy cập đến thuộc tính bởi ứng dụng truy cập cả TA và BA
Mỗi phương trình trên đếm tổng số truy xuất đến các thuộc tính bởi các ứng dụng
trong các lớp tương ứng của chúng. Dựa trên các phương trình này, bài toán tối ưu hóa
trở thành bài toán tìm điểm x (1 ≤ x ≤ n) sao cho biểu thức
z = CTQ * CBQ - COQ
2
lớn nhất.
Thủ tục phân hoạch phân mảnh được dữ liệu nhưng nó tồn tại hai vấn đề:
- Tạo Cluster ở điểm giữa ma trận CA: Dịch lên một dòng và dịch trái một cột, áp
dụng thuật toán tìm điểm phân hoạch tốt nhất. Làm điều này cho tất cả các dịch chuyển
khả dĩ. Thủ tục này có độ phức tạp lên tới O(m
2
).
- Có thể có nhiều hơn 2 clusters: Phân hoạch theo m-cách. Thử với 1, 2, …, m–1
điểm tách dọc theo đường chéo và tìm điểm tốt nhất cho từng điểm. Thủ tục này tốn rất
nhiều thời gian và có độ phức tạp ở mức O(2
m
)
c. Kiểm định tính đúng đắn
Đối với quan hệ R định nghĩa trên tập thuộc tính A, các thuộc tính khóa K, có
phân mảnh dọc F
R
= {R
1
, R
2
,…, R
r

}
- Tính đầy đủ: được đảm bảo 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
A = ⋃A
Ri
- Tính tái thiết được: ta hoàn toàn có thể xây dựng lại quan hệ ban đầu bằng phép
nối:
R=⋈
K
R
i
, ∀R
i
∈ F
R
- Tính tách biệt: không quan trọng trong phân mảnh dọc.
14
VI. Cấp phát mảnh trong thiết kế Cơ sở dữ liệu phân tán
Cấp phát tài nguyên cho các nút của một mạng máy tính là một bài toán cũ đã
được nghiên cứu rộng rãi. Tuy nhiên, phần lớn cá nghiên cứu này đều không tập trung
vào bài toán thiết kế Cơ sở dữ liệu phân tán, nhưng vào cách thức đặt các tập tin trên một
mạng máy tính.
1. Bài toán cấp phát
Giả sử rằng có một tập các mảnh F = {F
1
, F
2
, …, F
n
} và một mạng bao gồm các

sites S = {S
1
, S
2
,…, S
m
} trên đó có một tập các ứng dụng Q = {q
1
, q
2
, …, q
q
} đang chạy.
Bài toán cấp phát (allocation problem) là tìm một phân phối tối ưu của F cho S.
Một trong các điểm quan trọng cần được thảo luận là đĩnh nghĩa tối ưu. Tính tối
ưu (optimality) có thể được định nghãi ứng với hai số đo:
- Chi phí nhỏ nhất: Hàm chi phí gồm có chi phí lưu mỗi mảnh F
i
tại ví trí S
j
, chi
phí truy vấn F
i
tại ví trí S
j
, chi phí cập nhật F
i
tại tất cả mọi vị trí có chứa nó và chi phí
truyền dữ liệu. Bài toán cấp phát cố gắng tìm ra một lược đồ cấp phát với hàm chi phổ tổ
hợp thấp nhất.

- Hiệu năng: Chiến lược cấp phát được thiết kế nhằm duy trì một hiệu năng cao.
Các chiến lượ đã biết là hạ thấp thời gian đáp ứng và tăng tối đa lưu lượng hệ thống tại
mỗi vị trí.
2. Yêu cầu về thông tin
Ở giai đoạn cấp phát, ta cần các thông tin định lượng về Cơ sở dữ liệu, về các ứng
dụng chạy trên đó, về cấu trúc mạng, khả năng xử lý và giới hạn lưu trữ cho mỗi vị trí
trên mạng.
a. Thông tin về Cơ sở dữ liệu
Độ tuyển của một mảnh F
j
ứng với câu truy vấn q
i
là số lượng các bộ của F
j
cần
được truy xuất để xử lý q
i
. Giá trị này được ký hiệu là sel
i
(F
j
).
Kích thước của mảnh F
j
dược cho bởi
size(F
j
) = card(F
j
) * length(F

j
)
trong đó length(F
j
) là chiều dài (tính theo byte) của một bộ trong mảnh F
j
.
15
b. Thông tin về ứng dụng
Phần lớn các thông tin có liên quan đến ứng dụng đều đã được biên dịch trong khi
thực hiện phân mảnh nhưng cũng cần một số ít nữa do mô hình cấp phát. Hai số liệu quan
trọng là số truy xuất đọc do câu truy vấn qi thực hiện trên mảnh F
j
trong mỗi lần chạy của
nó (ký hiệu RR
ij
) và tương ứng là các truy xuất cập nhật (UR
ij
).
Ta cũng cần định nghĩa hai ma trận UM và RM với các phân tử tương ứng u
ij
và r
ij
.
u
ij
= 1 nếu truy vấn q
i
có cập nhật mảnh F
j

; u
ij
= 0 trong trường hợp ngược lại
r
ij
= 1 nếu truy vấn q
i
cần đọc mảnh F
j
; r
ij
= 0 trong trường hợp ngược lại
Ví dụ minh họa:
RM:
T
1
T
2
T
3
T
4
UM:
T
1
T
2
T
3
T

4
Trong các ma trận truy xuất UM và RM, ứng dụng T
3
đọc mảnh F
3
ba lần and cập
nhật mảnh F
1
hai lần, F
2
một lần, và F
4
một lần trong mỗi lần chạy.
Khi một ứng dụng đọc mảnh, không phải tất cả các bộ của mảnh được đọc hay cập
nhật. Số lượng bộ được đcọ hay cập nhật không tương tự với tất cả các ứng dụng. Vì vậy,
ta định nghĩa ma chận chọn (selectivity matrix) SEL, nó chỉ ra tỉ lệ phần trăm một mảnh
F
j
được truy xuất trong ứng dụng T
i
:
SEL: (%)
16
F
1
T
1
0.1
T
2

0.1
T
3
2
T
4
0.5
Trong ma trận chọn SEL, ứng dụng T
3
đọc chỉ 0.1% mảnh F
3
và cập nhật 2%
mảnh F
1
, 5% F
2
, 0.5% F
4
.
Thêm vào đó, ta cũng cần định nghĩa ma trận tần số FREQ, nó chỉ ra tần số thực
thi của tất cả các ứng dụng ở một site:
FREQ:
T
1
T
2
T
3
T
4

Ứng dụng T
3
biểu diễn trong ma trận FREQ chỉ ra rằng nó chạy hai lần ở site S
1

một lần ở site S
3
.
c. Thông tin về vị trí (site)
Với mỗi site, ta cần biết về khả năng lưu trữ và xử lý của nó. Hiển nhiên là những
giá trị này có thế tính được bằng các hàm thích hợp hoặc bằng các phương pháp đánh giá
đơn giản. Chi phí đơn vị để lưu trữ dữ liệu tại site S
k
sẽ được ký hiệu là USC
k
. Bên cạnh
đó, cần đặc tả số đo chi phí LPC
k
, là chi phí xử lý một đơn vị công việc tại site S
k
. Đơn vị
công việc cần phải giống với đơn vị của RR và UR.
d. Thông tin về mạng
Trong môi trường mạng WAN, chi phí truyền thông mô tả bởi hai thành phần là
tác nhân chủ yếu trong tổng chi phí. Cini là hằng số chi phí khi khởi tạo một gói tin với
kích thước p_size khi CTR
i,j
là chi phí vận chuyển một đơn vị dữ liệu từ site S
i
tới site S

j
.
Vì vậy, chi phí truyền thông của truyền m_size dữ liệu có thể xem như hàm tuyến tính
sau:
17
Giả sử rằng mỗi site trong mạng được kết nối với nhau với một lien kết truyền
thông logic (logical communication link). Vì vậy, chi phí CTR
i,j
có thể được xác định
bằng ma trận chi phí truyền thông CTR. Để đơn giản hóa vấn đề, ta giả sử CTR là một
ma trận đối xứng:
CTR:
S
1
T
1
0
T
2
0.32
T
3
0.48
T
4
0.16
Ví dụ trên là ma trận chi phí truyền thông dựa trên mạng WAN với giới hạn băng
thông là 50Kbps (0.16 ms/sec). Mỗi phần tử của ma trận này là bội số của 0.16.
Trong mạng WAN, trước khi một ứng dụng truy xuất một mảnh từ xa, nó phải tạo
một mạch ảo (virtual circuit) để kết nối với điểm cuối. Trong suốt quá trình hoạt động

của ứng dụng, nó sử dụng mạch ảo này để gửi yêu cầu và nhận hồi đáp. Khi ứng dụng kết
thúc, mạch ảo sẽ được đóng lại. Để phản ánh truyền thông thực sự của WAN, chi phí xây
dựng mạch ảo, ký hiệu là VC
ini
cũng được xem xét trong mô hình
3. Các hàm chi phí:
Dựa trên các thông tin đề cập ở trên, ta thử tìm một cấp phát mảnh gần tối ưu như
cực tiểu chi phí truyền thông. Hàm cực tiểu chi phí truyền thông có thể biểu diễn như sau:
min(CC
load
+ CC
proc
)
Công thức chi phí truyền thông gồm hai thành phần: chi phí truyền thông để nạp
dữ liệu CC
load
và chi phí truyền thông để chạy ứng dụng CC
proc
.
CC
load
là chi phí nạp tất cả những mảnh sao chép vào sites trước khi ứng dụng
được thực thi:
18
với FAT là ma trận bảng cấp phát mảnh (fragment allocation table). FAT
j,k
bằng 1
khi F
j
được cấp phát tới site S

k
và bằng 0 trong trường hợp ngược lại. SI là site chủ
(master site) có nhiệm vụ nạp tất cả những sao chép của các mảnh tới các sites trong
mạng.
Chi phí CC
proc
gồm ba thành phần: ứng dụng đọc (transaction retrieval) TR
i
, ứng
dụng cập nhật (transaction update) TU
i
, và xây dựng mạch ảo VC
ini
:
với FREQ
i,k
là tần số thực thi của ứng dụng T
i
ở site S
k
. Chi phí TR
i
và TU
i
được
biểu diễn như sau:
Chi phí đọc TR
i
chỉ ra rằng giữa các sites với những mảnh sao chép F
j

, chỉ những
site đảm bảo chi phí truyền cực tiểu mới được chọn cho ứng dụng xử lý. Tuy nhiên, chi
phí cập nhật TU
i
lại chỉ ra rằng tất cả chi phi truyền cho những site ở xa nơi các mảnh sao
chép F
j
được lưu nên được tổng hợp. Sự lan truyền cập nhật được yêu cầu để duy trì sự
nhất quán giữa tất cả các mảnh được sao chép F
j
.
VII. Thuật giải di truyền trong tối ưu bài toán cấp phát mảnh
Tìm kiếm một cấp phát mảnh tối ưu trong mô hình này là bài toán ở mức NP-
complete. Với n mảnh và m sites, sẽ có (2
m
- 1)
n
tổ hợp khác nhau. Vì vậy, ta chỉ có thể
tìm kiếm những giải thuật heuristic để giải quyết bài toán này. Một trong những phương
pháp được sử dụng trong giải quyết những bài toán tối ưu là thuật giải di truyền.
1. Giới thiệu về thuật giải di truyền
Thuật giải di truyền (genetic algorithm) được xây dựng dựa trên lý thuyết tiến hóa
sinh vật của Darwin. Thuật giải di truyền do giáo sư John Holland phát triển vào những
năm 1970s. Thuật giải di truyền là một kỹ thuật tìm kiếm dựa trên nguyên lý tiến hóa của
Darwin. Trong tiến trình lặp, các cá thể của quần thể hiện hành sẽ được thẩm định mức
19
độ tốt bằng một hàm đánh giá mức độ phù hợp và dựa trên kết quả này để tạo các cá thể
cho quần thể kế tiếp.
Mã hóa nhiễm sắc thể, chọn lọc (selection), lai ghép (crossover) và đột biến
(mutation) là các phép toán cơ bản trong triển khai thuật giải di truyền.

2. Mã hóa nhiễm sắc thể
Nhiễm sắc thể (chromosome) chứa thông tin về lời giải của bài toán. Thông
thường, lời giải sẽ được mã hóa trong nhiễm sắc thể thành một chuỗi bit nhị phân. Trong
bài toán cấp phát mảnh, ma trận FAT đóng vai trò là một nhiễm sắc thể.
FAT:
F
1
F
2
F
3
F
4
F
5
Còn có nhiều cách mã hóa khác nhau như dùng số nguyên hay số thực, đôi khi có
thể dùng hoán vị. Trong thuật giải di truyền, các nhiễm sắc thể được xem là các cá thể
trong một quần thể (population).
3. Chọn lọc (selection)
Hàm phù hợp (Fitness function): trong thuật giải di truyền, hàm phù hợp đóng vai
trò quan trọng trong việc chọn ra các cá thể tốt đem lai ghép, đột biến tạo ra các thế hệ
con tốt hơn. Hàm phù hợp trong bài toán cấp phát chính là hàm giúp nhận rõ ma trận
FAT nào có giá trị (CC
load
+ CC
proc
) nhỏ nhất.
Việc chọn lọc cá thể được thực hiện theo nhiều cách khác nhau. Một cách thường
được sử dụng đó là kỹ thuật Roulette wheel selection. Kỹ thuật này áp dụng phương pháp
xác suất vào việc chọn lọc, nếu cá thể có hàm phụ hợp cao thì xác suất trên bánh xe

roulette sẽ lớn đồng nghĩa với khả năng được chọn sẽ lớn. Bên cạnh đó, để cho đơn giản
ta có thể sắp xếp các cá thể dựa theo giá trị hàm phù hợp và xác định một mức cụ thể để
chọn ra các cá thể tốt. Cho các cá thế tốt này lai ghép một cách ngẫu nhiên với nhau để
sinh ra cá thể mới.
20
Để giúp đơn giản hơn trong quá trình lập trình, khóa luận này sử dụng kỹ thuật thứ
hai trong quá trình chọn lọc cá thể.
4. Lai ghép (Crossover)
Lai ghép là chọn các genes từ các nhiễm sắc thể của bố mẹ để tạo ra con mới.
Cách đơn giản nhất là chọn một điểm lai ghép ngẫu nhiên (single-point crossover).
Ví dụ lai ghép hai ma trận FAT dùng chiến lược chọn một điểm lai ghép ngẫu
nhiên:
Parent 1
S
1
F
1
0
F
2
1
F
3
1
F
4
0
F
5
1

Crossover Point = 2
Child 1
S
1
F
1
0
F
2
1
F
3
1
F
4
0
F
5
1
Có nhiều cách khác để thực hiện lai ghep, ví dụ có thể chọn nhiều điểm lai ghép.
Lai ghép có thể phức tạp hơp và phụ thuộc vào việc mã hóa nhiễm sắc thể.
Xác suất xảy ra lai ghép là rất cao. Có thể từ 80-100%
21
5. Đột biến (mutation)
Đột biến được thực hiện sau khi lai ghép. Đột biến thay đổi ngẫu nhiên các con
cháu mới. Với mã hóa nhị phân như ma trận FAT, ta có thể chuyển đổi qua lại giữa các
giá trị 0 và 1 để thực hiện quá trình đột biến.
FAT:
F
1

F
2
F
3
F
4
F
5
FAT đột biến ở vị trí (2, 3):
F
1
F
2
F
3
F
4
F
5
Xác suất xảy ra đột biến thường rất thấp. Thường là dưới 5%.
6. Các tham số trong thuật giải di truyền
P: kích thước quần thể
G: số lượng các thế hệ
Fitness: Hàm phù hợp của các các thể trong quần thể. Tính toán dựa trên CC
load

CC
proc
p
Selection

: xác suất chọn lọc cá thể. Xác suất chọn lọc bằng 0 thì không có cá thể nào
được chọn. Xác suất chọn lọc bằng 1 nghĩa là tất cả các cá thể đều được chọn.
p
Crossover
: xác suất lai ghép. Xác suất lai ghép bằng 0 thì toàn bộ thế hệ mới là bản
sao chính xác các nhiễm sắc thể của quần thể cũ. Nếu xác suất lai ghép là 1 thì tất cả con
cái đều được tạo bởi lai ghép.
22
p
Mutation
: xác suất đột biến. Nếu là 0 thì không có thay đồi gì cả. Nếu là 1 thì tất cả
nhiễm sắc thể sẽ bị thay đổi
7. Thuật giải di truyền
Mô hình thuật giải di truyền để giải quyết bài toán cấp phát mảnh có dạng như
sau:
Input:
Size of Fragments
RM (retrieval matrix)
UM (update matrix)
SEL (selectivity matrix)
FREQ (frequency matrix)
CTR (communication cost matrix)
Output: FAT (fragment allocation matrix)
1. [Initialization] Khởi tạo ngẫu nhiên quần thể các ma trận
cấp phát FAT
2. [Fitness] Tính hàm Fitness: CC
load
+CC
proc
càng nhỏ thì mức

độ phù hợp của ma trận FAT càng cao
Fitness = [SUM – (CC
load
+ CC
proc
)]/SUM
với SUM là tổng CC
load
và CC
proc
của tất cả ma trận FAT trong
quần thể đang xét.
3. [Selection] Chọn một số ma trận có Fitness tốt nhất trong
quần thể.
4. [Crossover] Chọn ra hai ma trận trong danh sách các ma
trận có Fitness tốt nhất cho lai ghép với nhau.
5. [Mutation] Chọn ra một vị trí trong ma trận và đổi giá
trị của vị trí đó.
23
8. Thực nghiệm
Chương trình thực nghiệm mô phỏng quá trình tính toán ma trận FAT dựa trên
thuật giải di truyền nhằm giải quyết bài toán cấp phát mảnh trong thiết kế cơ sở dữ liệu
phân tán được phát triển trên môi trường Microsoft Visual Studio 2010 C#.NET
Framework 4.0.
Hình VII.1: Giao diện chương trình mô phỏng.
24
VIII. Tài liệu tham khảo
1. M. Tamer Özsu, Patrick Valduriez. Biên dịch: Trần Đức Quang – Nguyên lý các
hệ Cơ sở dữ liệu phân tán – Nhà xuất bản thống kê, 1999.
2. Yin-Fu Huang and Jyh-Her Chen – Fragment Allocation in Distributed Database

Design – Journal of Information Science and Engineering 17, 491-506 (2001)
3. PGS. TS. Đỗ Phúc – Giáo trình Khai thác dữ liệu – Nhà xuất bản Đại học Quốc
Gia Thành phố Hồ Chí Minh, 2008.
4. John R. Koza – Genetic Programming: On the Programming of Computers by
Means of Natural Selection – A Bradford Book The MIT Press Cambridge,
Massachusetts London, England, 1992.
5. Abdullah Konak, David W. Coit, Alice E. Smith – Multi-objective optimization
using genetic algorithms: A tutorial – Reliability Engineering and System Safety
91 (2006) 992–1007.
6. Andrey Popov – Genetic Algorithms for Optimization – Hamburg, 2005.
25

×