Chương 1 GIỚI THIỆUTrong một thiết kế cơ sở dữ liệu phân tán liên quan đến việc giải quyết các vấn đề sau đây: - Như thế nào thì một quan hệ trong hệ thống thông tin phải được phân mảnh?
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN LỚP CAO HỌC QUA MẠNG – KHÓA 6
TIỂU LUẬN MÔN HỌC: CƠ SỞ DỮ LIỆU NÂNG CAO
SỰ PHÂN BỐ CÁC PHÂN MẢNH TRONG
CƠ SỞ DỮ LIỆU PHÂN TÁN
Giảng viên: PGS.TS Đỗ Phúc Sinh viên thực hiện: Nguyễn Hoàng Hạc MSHV: CH1101081
TP HCM, NĂM 2012
Trang 3MỤC LỤC
Chương 1 GIỚI THIỆU 3
Chương 2 MÔ HÌNH PHÂN BỐ DỮ LIỆU 6
2.1 Vấn đề phân mảnh dữ liệu 6
2.2 Thông tin yêu cầu 7
2.2.1 Thông tin cơ sở dữ liệu (Database Information) 7
2.2.2 Thông tin giao dịch (Transaction Information) 7
2.2.3 Thông tin vị trí (Site Information) 9
2.2.4 Thông tin của mạng (Network Information) 9
2.3 Các công thức tính chi phí 10
Chương 3 THUẬT GIẢI DI TRUYỀN 12
3.1 Các khái niệm cơ bản 12
3.2 Các thành phần chính của thuật giải di truyền 13
3.2.1 Nhiễm sắc thể (Chromosomes) 13
3.2.2 Chọn lọc (Selection) 13
3.2.3 Tái sinh (Recombination) 14
3.3 Giải thuật chung cho thuật giải di truyền 15
Chương 4 TỐI ƯU SỰ PHÂN MẢNH BẰNG THUẬT GIẢI DI TRUYỀN 17
4.1 Biễu diễn nhiễm sắc thể cho thuật giải di truyền 17
4.2 Khởi tạo quần thể 18
4.3 Hàm thích nghi của nhiễm sắc thể 18
4.4 Chọn lọc 18
4.5 Tái sinh 19
4.5.1 Lai ghép 19
4.5.2 Đột biến 20
4.6 Thuật giải 21
4.7 Chương trình minh họa 22
4.7.1 Màn hình nhập liệu 22
4.7.2 Kết quả chương trình 23
4.8 Kết luận 24
Trang 4Chương 1 GIỚI THIỆU
Trong một thiết kế cơ sở dữ liệu phân tán liên quan đến việc giải quyết các vấn
đề sau đây:
- Như thế nào thì một quan hệ trong hệ thống thông tin phải được phân mảnh?
- Có bao nhiêu bản sao của một mảnh cần được sao chép
- Làm thế nào phân bố các phân mảnh đến từng vị trí trong hệ thống mạng
- Những thông tin cần thiết cho sự phân mảnh và phân bố là gì?
Những vấn đề này rất phức tạp trong thiết kế cơ sở dữ liệu phân tán Thậm chí,khi xem xét từng vấn đề riêng lẻ, nó vẫn là một vấn đề nan giải Để đơn giản hóa vấn
đề, chúng ta chỉ giải quyết vấn đề phân mảnh, giả định rằng tất cả các mối quan hệtrong hệ thống thông tin đã được phân mảnh Như vậy, vấn đề nghiên cứu ở đây là xácđịnh số lượng sao chép của mỗi mảnh và sau đó tìm kiếm một giải pháp phân mảnh tối
ưu, bao gồm cả những phân mảnh đã sao chép trong mạng diện rộng (WAN) sao chotổng chi phí truyền dữ liệu trong toàn hệ thống là nhỏ nhất
Đối với yêu cầu đọc thông tin cho một giao dịch có thể chỉ đơn giản là lấy dữliệu từ các phân mảnh tại vị trí gốc hoặc có thể có một chút phức tạp để lấy các phânmảnh từ một vị trí ở xa Một yêu cầu ghi dữ liệu thì phức tạp hơn, với nhiều bản saocủa một phân mảnh được phân bố trong hệ thống mạng, để đảm bảo việc ghi dữ liệunày phải duy trì được tính thống nhất cho tất cả các bản sao Tần số của yêu cầu đưa ra
ở các vị trị cũng phải được xem xét trong mô hình phân bố Với mỗi yêu cầu giao dịchkhác nhau có thể có giải pháp phân bố tối ưu các phân mảnh khác nhau, chi phí giaodịch được tính dựa trên cơ sở nhằm giảm thiểu chi phí giao dịch theo thông tin giaodịch
Nhiều báo cáo về phân bố cơ sở dữ liệu đã được công bố Năm 1982, Chang đãphát triển một lý thuyết về sự phân bố các phân mảnh và thiết kế thuật toán Network
Trang 5Flow để giải quyết vấn đề này cho cơ sở dữ liệu Độ phức tạp cho việc giải quyết sựphân bố các phân mảnh của cơ sở dữ liệu có độ phức tạp là NP – Complete, một vàithuật giải Hueristis đã được đưa ra để giải quyết vấn đề Để giảm sự phức tạp của vấn
đề, Ceri đề xuất một phương pháp đơn giản hơn đó bỏ qua việc phân bố cơ sở dữ liệungay từ đầu và tìm một giải pháp tối ưu cho vấn đề không phân bố Sau đó việc phân
bố được xử lý bằng cách áp dụng một thuật toán tham lam để cải thiện các giải phápkhả thi ban đầu Gần đây, vấn đề phân bố phân mãnh của cơ sở dữ liệu được trình bày
rõ ràng, có hệ thống hơn và thậm chí được kết hợp với một cơ chế kiểm soát đồng thời.Đối với một mạng Ethernet, một số phương pháp tiếp cận phân tích đã được sử dụng
để tìm ra thời gian đáp ứng của giao dịch để giải quyết vấn đề phân bố cơ sở dữ liệu.Mặc dù mô hình đề xuất bởi Raghuram và những người khác là khá toàn diện, nhưng
nó cũng có một vài hạn chế chẳng hạn như yêu cầu sức mạnh tính toán của mỗi vị trí,thời gian ra lệnh tối đa để đáp ứng với một yêu cầu và vấn đề phân mảnh không đượcxét đến Lin và một số người khác đưa ra những thuật toán phân bố phân mãnh dữ liệuvới tổng chi phí truyền tin tối thiểu Bên cạnh việc phân bố dữ liệu, một phương pháptiếp cận dưới mô hình toán học và thuật toán di truyền phát triển bởi March và Rhonhằm tính toán phân mảnh tại các nút Đối với một hệ thống đòi hỏi phải sẵn sàng cao,Park và Baik đề xuất một mô hình với xác suất giao dịch được thực hiện và thuật toán
di truyền để giảm thiểu chi phí xử lý
Mặc dù một số các nhà nghiên cứu đã đưa ra mô hình và các thuật toán để thiết
kế phân bố các mảnh trong cơ sở dữ liệu phân tán nhưng hầu hết các mô hình này rấtphức tạp và khó hiểu Vì vậy, để sử dụng các mô hình và thuật toán này gặp nhiều khókhăn trong thực tế Ở đây, chúng tôi đề xuất một mô hình đơn giản và toàn diện, phảnánh hành vi giao dịch trong cơ sở dữ liệu phân tán Trong mô hình này, một thuật toánxấp xỉ - SIMPLE – được đề nghị để giải quyết việc phân bố dữ liệu đơn giản Đối với
mỗi mảnh f i , thuật toán SIMPLE bắt đầu phân bố các bản sao của phân mảnh f i đến các
nút (vị trí) j với B ij ≥ 0 B ij là tổng khối lượng dữ liệu của phân mảnh f i gửi đến nút j
Trang 6để xử lý các giao dịch được yêu cầu tại nút j trừ đi tổng khối lượng dữ liệu của tất cả các nút cập nhật cho mảnh f i Thuật toán SIMPLE tiếp tục tìm các nút khác để phân bố
bản sao của phân mảnh f i nhằm giảm tổng chi phí truyền tin Kết quả, việc phân mảnhbằng thuật toán của này là tối ưu hơn và tốt hơn so với phương pháp của Lin và nhữngngười khác Một số thí nghiệm đã được tiến hành để xác minh rằng công thức tính chiphí thực sự có thể phản ánh chi phí truyền dữ liệu trong thực tế
Trang 7Chương 2 MÔ HÌNH PHÂN BỐ DỮ LIỆU
2.1 Vấn đề phân mảnh dữ liệu
Trước khi nghiên cứu về sự phân bố các phân mảnh, chúng ta phải xác định rõvấn đề phân bố dữ liệu Ở đây, chúng ta chỉ xem xét trong môi trường mạng WAN, chiphí truyền dữ liệu và lưu trữ bản sao của một phân mảnh tại các vị trí (sites) của mạng
LAN là không đáng kể Giả sử, chúng ta có một mạng WAN gồm các vị trí S = {S 1 , S 2 ,
hợp các phân mảnh (fragments) F = {F 1 , F 2 , , F n } Trong đó, tất cả các mối quan hệ
trên toàn hệ thống đã được thiết kế nằm trong các phân mảnh của cơ sở dữ liệu phântán Tổng quát hơn, chúng ta không chỉ xác định số lượng bản sao của từng phân mảnh
mà còn tìm cách tối ưu để phân bố mỗi bản sao các phân mảnh trong F đến vị trí S Để
xác định sự tối ưu, chúng ta có hai cách xác định phổ biến sau:
Chi phí tối thiểu: chi phí bao gồm chi phí lưu trữ mỗi phân mảnh F j tại
vị trí S k , chi phí truy vấn F j tại vị trí S k , chi phí cập nhật F j ở tất cả các vị
trí mà F j được lưu trữ và chi phí truyền dữ liệu
Hiệu suất: hai chiến lược phổ biến là giảm thiểu thời gian đáp ứng và tối
đa hóa hoạt động của hệ thống tại mỗi vị trí
Biện pháp tối ưu được đề nghị trong mô hình phân bố này là chi phí tối thiểu.Đối với một mạng WAN với giới hạn băng thông 50 Kbps, thời gian truy cập thiết bịngoại vi và thời gian xử lý CPU không phải là yếu tố chính để xem xét trong việc giảmtổng chi phí Như vậy, vấn đề phân bố được đơn giản hóa để phân bố các bản sao củamột phân mảnh đến các vị trí sao cho có tổng chi phí truyền dữ liệu là tối thiểu
Trang 82.2 Thông tin yêu cầu
Trước khi xác định công thức chi phí, một số thông tin phải được phân tíchtrước, đó là số lượng dữ liệu của một cơ sở dữ liệu, hành vi giao dịch, thông tin các vịtrí và thông tin của mạng
2.2.1 Thông tin cơ sở dữ liệu (Database Information)
Kích thước của mỗi phân mảnh – size(F j) cần được xác định rõ bởi vì nó đóngvai trò quan trọng trong tính toán chi phí truyền dữ liệu
2.2.2 Thông tin giao dịch (Transaction Information)
Trong mô hình này, chúng ta có hai ma trận: RM và UM mô tả các thao tác truy cập và cập nhật của tất cả các giao dịch với các bộ r ij (hoặc u ij ) trong ma trận RM (hoặc
mảnh đều được truy cập do đó các bộ trong ma trận có thể là 0 Ví dụ:
Trang 9T 1 0 0 0 1 2
Trong ma trận truy cập và cập nhật RM và UM, giao dịch T 3 truy xuất mảnh F 3
ba lần, cập nhật mảnh F 1 hai lần, F 2 một lần và F 4 một lần cho mỗi lần chạy
Khi một giao dịch truy cập đến một phân mảnh, không phải tất cả các bộ dữ liệucủa phân mảnh được truy xuất hoặc cập nhật Số lượng các bộ dữ liệu được truy xuấthoặc cập nhật không phải là giống nhau cho tất cả các giao dịch Vì vậy, chúng ta xác
định một ma trận chọn lọc - SEL cho biết tỷ lệ phần trăm của một mảnh F j được truy
Trang 10Giao dịch T 3 thể hiện trong ma trận FREQ ở trên được thực hiện hai lần tại vị trí
S 1 và một lần tại vị trí S 3
2.2.3 Thông tin vị trí (Site Information)
Thông tin vị trí trong một hệ thống mạng đó là thông tin về khả năng lưu trữ và
xử lý tại vị trí đó; nói chung, những thông tin được xem xét hạn chế trong một mô hìnhphân bố Để đơn giản hóa mô hình, chúng ta không xem xét ở đây
2.2.4 Thông tin của mạng (Network Information)
Trong môi trường WAN, chi phí truyền dữ liệu được tính bởi hai thành phần
chính đó là những thành phần ảnh hưởng trực tiếp đến tổng chi phí C ini là chi phí cố
định để khởi tạo một gói dữ liệu với kích thước p_size Trong khi CTR i, j là chi phí
truyền một đơn vị dữ liệu từ vị trí S i đến vị trí S j Như vậy, chi phí truyền dữ liệu với
kích thước là m_size có thể được tính dưới một hàm tuyến tính như sau:
CC¿
Chúng ta giả định rằng mỗi vị trí trong mạng được kết nối đến một vị trí khác
bằng một kết nối truyền thông hợp lý Vì vậy, chi phí CTR i, j có thể được tính thông qua
một ma trận chi phí truyền dữ liệu CTR Để đơn giản hóa vấn đề, chúng ta giả định rằng CTR là một ma trận đối xứng:
Trang 11Trong mạng WAN, trước khi giao dịch truy cập một phân mảnh ở xa, nó phảitạo ra kết nối đến phân mảnh này Trong suốt thời gian giao dịch, nó sử dụng kết nốinày để gửi yêu cầu và nhận dữ liệu Khi kết thúc giao dịch, kết nối được đóng lại Đểphản ánh các thông tin liên lạc thực sự của một mạng WAN, chi phí xây dựng các kết
nối, ký hiệu là VC ini cũng được xem xét đến
2.3 Các công thức tính chi phí
Chúng ta có công thức tính chi phí truyền thông (Cost Communication) phảnánh hành vi của một giao dịch trên cơ sở dữ liệu phân tán trong một môi trường WAN.Với những thông số được nêu tại phần 2.2, chúng ta thử tìm một cách phân bố các phânmảnh tối ưu sao cho có tổng chi phí truyền dữ liệu là nhỏ nhất Công thức nhằm giảmthiểu chi phí thông tin liên lạc được thể hiện như sau:
min(CC load+CC proc)(2)
Công thức tính chi phí truyền dữ liệu bao gồm hai thành phần: chi phí tải dữ liệu
CC load và chi phí truyền tin cho xử lý giao dịch CC proc
CC load là chi phí tải tất cả bản sao các phân mảnh đến các vị trí trong mạng trướckhi giao dịch được xử lý được tính như sau:
Với FAT (Fragment Allocation Table) là ma trận được biểu diễn như sau:
FAT j ,k={1 nếu F j ∈ S k
0 nếu F j ∉ S k
SI là vị trí chính (site master) chịu trách nhiệm cho việc tải tất cả các bản sao
của phân mảnh đến các vị trí khác trong hệ thống
CC proc là chi phí bao gồm ba thành phần: giao dịch truy xuất TR i, giao dịch cập
nhật TU i , và xây dựng kết nối VC ini Được tính bằng công thức sau:
Trang 12Với FREQ i, k là tần số thực hiện giao dịch T i tại vị trí S k Ngoài ra, chi phí giao
dịch truy xuất TR i và giao dịch cập nhật TU i được tính như sau:
100 ׿F j¿) )(6)
Chi phí truy xuất TR i cho biết số lượng tất cả các vị trí mà phân mảnh dữ liệu F j
được sao chép, chỉ những vị trí có chi phí truyền dẫn tối thiểu mới được chọn cho xử lý
giao dịch Chi phí cập nhật TU i cho biết tất cả các chi phí truyền dữ liệu đến các vị trí ở
xa với các phân mảnh Fj được lưu trữ cần được thống kê Việc cập nhật dữ liệu là cần thiết để duy trì tính thống nhất giữa tất cả các phân mảnh F j
Trang 13Chương 3 THUẬT GIẢI DI TRUYỀN
3.1 Các khái niệm cơ bản
Thuật giải di truyền (GA - Genetic Algorithm) hình thành dựa trên quan niệmcho rằng quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lý nhất và tự nó đãmang tính tối ưu Quan niệm này có thể xem như một tiền đề đúng, không chứng minhđược, nhưng phù hợp với thực tế khách quan Quá trình tiến hoá thể hiện tính tối ưu ởchổ, thế hệ sau bao giờ cũng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trước Tiếnhoá tự nhiên được duy trì nhờ hai quá trình cơ bản: sinh sản và chọn lọc tự nhiên.Xuyên suốt quá trình tiến hoá tự nhiên, các cá thể mới luôn được sinh ra để bổ sungthay thế thế hệ cũ Cá thể nào phát triển hơn, thích ứng hơn với môi trường sẽ tồn tại
Cá thể nào không thích ứng được với môi trường sẽ bị đào thải Sự thay đổi môi trường
là động lực thúc đẩy quá trình tiến hoá Ngược lại, tiến hoá cũng tác động trở lại gópphần làm thay đổi môi trường
Các cá thể mới sinh ra trong quá trình tiến hoá nhờ sự lai ghép ở thế hệ cha-mẹ.Một cá thể mới có thể mang những tính trạng của cha-mẹ (di truyền), cũng có thể mangnhững tính trạng hoàn toàn mới (đột biến) Di truyền và đột biến là hai cơ chế có vaitrò quan trọng như nhau trong tiến trình tiến hoá, dù rằng đột biến với xác suất nhỏ hơnnhiều so với hiện tượng di truyền Thuật giải di truyền là thuật toán lặp đi lặp lại khảnăng thích ứng của quần thể cơ sở, sử dụng các phép toán di truyền (chọn lựa tái sinh,phép lai ghép và phép đột biến) dựa trên sự lựa chọn tự nhiên Thuật giải di truyền đãđược chứng minh là một phương pháp hữu dụng trong việc tối ưu hóa, quan sát và máyhọc,… Nó mã hoá một giải pháp tiềm tàng đến một vấn đề chi tiết trên một cấu trúc dữliệu đơn giản giống nhiễm sắc thể và các phép toán liên kết
Trang 143.2 Các thành phần chính của thuật giải di truyền
3.2.1 Nhiễm sắc thể (Chromosomes)
Trong quá trình phân chia của các tế bào của con người, nhiễm sắc thể (chứatrong nhân bao gồm DNA (deoxyribonucleic acid), protein và RNA (ribonucleic acid)).Trong nhiễm sắc thể là những gen, mang thông tin di truyền Mỗi gen đặc biệt làprotein và là yếu tố độc lập của thông tin di truyền, quyết định đặc thù cho từng cá thể
Trong thuật giải di truyền, nhiễm sắc thể là tập hợp các gen (các giá trị độc lập).Mỗi nhiễm sắc thể thể hiện cho một giải pháp của vấn đề nhất định Các gen có thể làcác biến boolean, số nguyên, dấu chấm động hoặc chuỗi Tập hợp các nhiễm sắc thểkhác nhau (cá thể) tạo thành một quần thể Bằng phương pháp tiến hóa như: lai ghép,lựa chọn và đột biến Một quần thể mới được tạo ra
3.2.2 Chọn lọc (Selection)
Trong tự nhiên, những cá thể có tính thích nghi cao nhất sẽ tồn tại đó là sự chọnlọc Các cá thể thích nghi với môi trường tốt hơn sẽ có cơ hội để tồn tại và tạo ra mộtquần thể mới mang những gien tốt của quần thể cũ Trong thuật giải di truyền, sự chọnlọc các cá thể dựa trên một hàm thích nghi (fitness function) Các cá thể có hàm thíchnghi tốt sẽ được lai ghép để tạo thành một quần thể mới
Chúng ta sử dụng một sự pha trộn của các phương pháp chọn lọc cho việc táisinh các nhiễm sắc thể
Phương pháp chọn lọc đầu tiên là một nhiễm sắc thể tốt nhất (elitism) có hàm
thích nghi cao nhất sẽ được đưa vào quần thể mới
Phương pháp chọn lọc thứ hai là phương pháp chọn lọc đấu loại k phần tử
(k-tournament) Trong phương pháp này, một nhiễm sắc thể có hàm thích nghi tốt nhất
trong số k nhiễm sắc thể được chọn ngẫu nhiên từ quần thể Hai nhiễm sắc thể C1 và C2
có được từ việc lập lại thủ tục ở trên liên tiếp tạo ra một nhiễm sắc thể mới Cc+m bằng