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ãngphí 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ử
Trang 1Mô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
Trang 2Mụ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ủamạ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ươngmạ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ácnhà 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ấpphá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ậtgiả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 đòihỏ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ụngchạ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ântá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 gianvuông góc:
1 Mức độ chia sẻ (level of sharing)
2 Kiểu mẫu truy xuất (behavior of access pattern)
Trang 33 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
Trang 4Hì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 chongười dung cuối (end-user) Thiết kế Khái niệm (conceptual design) là quá trình xem xéttổ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ể Haithiế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ụngnhằ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 đượctrong thiết kế khung nhìn sẽ là nguyên liệu cho bước thiết kế phân tán (distributiondesign) 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ằngcá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)
Trang 5Bướ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 truyxuấ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ỏiphả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 trongnhữ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ủangườ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 Tuynhiê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 chotì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àncụ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 đachủ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ộtquan 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ủacá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ể
Trang 6thự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ãngphí 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ácquan 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ộttậ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ìmnhữ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ácnhau: 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ânmả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ó ảnhhưở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ựckhô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ânmả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 ứngdụ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 R1, R2,…, Rn thì mỗimục dữ liệu có thể gặp trong một hoặc nhiều mảnh Ri Đặc tính này, giống như tính chất
Trang 7phâ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 Trongphâ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 R1, R2,…, Rn thì cần phải địnhnghĩa một toán tử quan hệ ∇ sao cho:
R = ∇Ri, ∀Ri ∈ FR
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ằngcá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 R1, R2, …, Rn và mục dữ liệu
di nằm trong mảnh Rj, thì nó sẽ không nằm trong một mảnh Rk khác (k ≠ j) Tiêu chuẩnnà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ộctí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ảnhdọ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ộtquan 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átcá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ảnhoặ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ệuquả 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 truyvấ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ácbả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ắcrố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 truyvấn chỉ đọc và các câu truy vấn cập nhật
Trang 8Hì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ứctạ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ốngmáy tính
Trang 9V 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ácmố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ìnhkhác như mô hình thực thể-kết hợp (entity-relationship model), các mối liên hệ được biểudiễ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óatrong 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ừ đượcdùng trong các câu truy vấn Ta cần xác định được các vị từ đơn giản (mintermpredicate) Cho quan hệ R(A1, A2,…, An), trong đó Ai là một thuộc tính được định nghãitrên một miền biến thiên Di, một vị từ đơn gian pj được định nghĩa trên R có dạng:
pj : Ai θ Value
Trong đó θ ∈ { =, <, ≠, ≤, >, ≥} và Value được chọn từ miền biến thiên của Ai(Value ∈ Di) Ký hiệu Pri được dùng để biểu thị tất cả các vị từ đơn gian được định nghĩatrên quan hệ Ri Các phần tử Pri được ký hiệu là pij
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ú ý đượcgọ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 normalform) 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 đitính tổng quát
Cho R và Pr = {p1, p2, …, pm} Tập các vị từ hội sơ cấp Mi = {mi1, mi2,…, miz}được định nghĩa là:
Trang 10Mi = {mij | mij =
∧∈
i ik
p Pr
p*
ik} với 1≤ k ≤ m, 1 ≤ j ≤ zTrong đó, p*
ik = pik hoặc p*
ik = ¬pik.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(mi): 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 mi
- Tần số truy xuất (access frequency) acc(mi): là tần số ứng dụng truy xuất dữ liệu.Nếu Q= {q1, q2,…, qq} là tập các câu vấn tin, thì acc(mi) 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
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 truycập đến các bộ (tuple) của các mảnh hội tối thiểu (minterm fragments) được định nghĩatheo 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 mintermfragment 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 fi và fj)thì cần phải có một ứng dụng truy cập fi và fj 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ânmả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)
Trang 11Thuậ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ỉ địnhtrên owner của nó Mỗi link là một equijoin Equijoin có thể được cài đặt nhờ cácsemijoin
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:
Ri = R⋉ FSi, 1 ≤ i ≤ w
Với w là số lớn nhất các mảnh được xác định trên R và
Si = σFi (S) , Si là các phân mảnh ngang của owner
Với Fi là công thức theo đó xác định phân mảnh ngang nguyên thủy Si
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 đượcphân mảnh thành FS = {S1, S2, , Sn} 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 FR = {R1, R2, , Rw}, ta luôn cóR=⋃Ri, ∀Ri ∈ FR
- 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 đảmbả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ỗ (mutuallyexclusive) 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ạphơ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 R1, R2, …, Rr, mỗi mảnh chưa
Trang 12Phân mảnh dọc đã được nghiên cứu trong ngữ cảnh các hệ Cơ sở dữ liệu tập trunglẫ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 ralờ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ỗibướ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ựatrê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ớinhau, ta cần có một giá trị đo đạc được để định nghĩa chính xác hơn khái niệm “chungvớ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ácthuộ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 (accessfrequency) của chúng Gọi Q = {q1, q2, …, qq} là tập các truy vấn của người dùng sẽ chạytrên quan hệ R(A1, A2, …., An) Với mỗi truy vấn qi và mỗi thuộc tính Aj, ta đưa ra mộtgiá trị sử dụng thuộc tính (attribute usage value) được định nghĩa như sau:
use(q i,Aj)=
01
1: nếu thuộc tính Aj đượ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ânmả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(Ai, Aj) biểu thị cho cầunố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 truyxuất