Để nâng cao hiệu quả xử lý một hệ CSDL trên mạng đã cho, người ta tiến hành phân chia các quan hệ của CSDL đó thành tập các mảnh con và gửi chúng đến các nút mạng để xử lý mà ta gọi là “
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
NGUYỄN THỊ VÂN HÀ
CẤP PHÁT TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
HÀ NỘI, 2017
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
NGUYỄN THỊ VÂN HÀ
CẤP PHÁT TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành: Khoa Học Máy Tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: PGS TS Lê Huy Thập
HÀ NỘI, 201
Trang 3LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc nhất tới thầy giáo, PGS.TS Lê Huy Thập
- người đã hướng dẫn tận tình để tôi hoàn thành luận văn này
Tôi cũng xin bày tỏ lòng biết ơn tới Ban giám hiệu trường Đại học Sư phạm Hà Nội 2, phòng Sau đại học, quý thầy cô đã trực tiếp giảng dạy tôi trong suốt khóa học
Xin trân trọng cảm ơn sự giúp đỡ động viên của gia đình, bạn bè và đồng nghiệp đã giúp đỡ và tạo điều kiện tốt nhất để tôi hoàn thành luận văn này
Mặc dù đã có những cố gắng, tìm tòi nhất định, song chắc chắn luận văn không tránh khỏi hạn chế Vì vậy, tôi rất mong nhận được những ý kiến đóng góp của thầy, cô và các bạn để luận văn được hoàn thiện hơn
Hà Nội, ngày 28 tháng 11 năm 2017
Học viên
Nguyễn Thị Vân Hà
Trang 4LỜI CAM ĐOAN
Luận văn được hoàn thành dưới sự hướng dẫn trực tiếp của thầy giáo, PGS.TS Lê Huy Thập Tôi xin cam đoan:
- Luận văn là kết quả nghiên cứu tìm tòi của riêng tôi
- Những tư liệu được trích dẫn trong luận văn là trung thực
- Những gì được triển khai trong luận văn không trùng khít với bất kì công trình nghiên cứu của các tác giả nào đã được công bố trước đó
Hà Nội, ngày 28 tháng 11 năm 2017
Học viên
Nguyễn Thị Vân Hà
Trang 5MỤC LỤC
LỜI CẢM ƠN………i
LỜI CAM ĐOAN……… ii
MỤC LỤC……… iii
DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT……… v
DANH MỤC CÁC BẢNG……… viii
DANH MỤC CÁC HÌNH VẼ……… ix
PHẦN MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích nghiên cứu 1
3 Nhiệm vụ nghiên cứu 1
4 Đối tượng và phạm vi nghiên cứu 1
5 Phương pháp nghiên cứu 1
6 Giả thuyết khoa học 1
7 Cấu trúc luận văn……… 2
PHẦN NỘI DUNG 3
Chương 1 CƠ SỞ LÝ THUYẾT ……… 3
1.1 Logic mệnh đề ……… 3
1.1.1 Mệnh đề toán học ……… 3
1.1.2 Các biểu thức logic……… 5
1.2 Cơ sở dữ liệu phân tán ……… 9
1.2.1 Khái quát về cơ sở dữ liệu phân tán trên cơ sở dữ liệu quan hệ …… 9
1.2.2 Các phương pháp phân mảnh cơ bản ……… ………12
1.3 Bài toán quy hoạch nguyên ……… 19
1.3.1 Phát biểu bài toán ……… 19
1.3.2 Một số phương pháp giải ………….……… 21
Trang 6Kết luận chương 1……… 25
Chương 2 CẤP PHÁT TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN ……… 26
2.1 Các thông tin cho cấp phát 26
2.1.1 Thông tin về cơ sở dữ liệu quan hệ 26
2.1.2 Thông tin về ứng dụng ……… 26
2.1.3 Thông tin về vị trí……… 27
2.1.4 Thông tin về mạng……… 27
2.2 Mô hình cấp phát ……… 28
2.2.1 Phát biểu bài toán cấp phát ……… 28
2.2.2 Hàm chi phí ……… 33
2.2.3 Các ràng buộc ……… 36
2.2.4 Phương pháp giải ……… 38
Kết luận chương 2 ……… 41
Chương 3 CHƯƠNG TRÌNH DEMO ……… 42
3.1 Tóm tắt bài toán ……… ……… 42
3.2 Code……… 42
3.3 Các giao diện DEMO ……… 46
3.3.1 Giao diện chính ……… 46
3.3.2 Giao diện dữ liệu DEMO ……… 47
3.3.3 Giao diện nhập dữ liệu mới ……… 47
3.3.4 Giao diện kết quả ……… 49
Kết luận chương 3 ……… 51
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ……… 52
TÀI LIỆU THAM KHẢO 53
Trang 7DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
STT Ký hiệu,
2 QTCSDL Quản trị cơ sở dữ liệu
3 DDBS Cơ sở dữ liệu phân tán (Distributed Database
System)
4 DDBMS Hệ quản trị cơ sở dữ liệu phân tán (Distributed
Database Management System)
5 GCS Lƣợc đồ khái niệm toàn cục (Global Conception
16 URij Số truy xuất cập nhật
17 UM Ma trận cho truy xuất cập nhật
18 RM Ma trận cho truy xuất đọc
19 uij Phần tử trong ma trận truy xuất cập nhật
Trang 820 rij Phần tử trong ma trận truy xuất đọc
21 USCk Chi phí lưu dữ liệu tại vị trí Sk
22 LPCk Chi phí xử lý dữ liệu tại vị trí Sk
23 Cij Chi phí truyền một đơn vị đối với yêu cầu chỉ
đọc giữa vị trí Si và Sj
24 C’ij Chi phí truyền một đơn vị đối với yêu cầu cập nhật giữa vị trí Si và Sj
25 FAP Bài toán cấp phát tập tin (File Allocation
29 CRkh Phần tử trong ma trận chi phí truyền chỉ đọc
30 CU Ma trận chi phí truyền theo yêu cầu cập nhật
31 cUkh Phần tử trong ma trận chi phí truyền theo yêu
Trang 942 TCU Thành phần chi phí cập nhật của hàm truyền dữ
Trang 10DANH MỤC CÁC BẢNG
8 Bảng 1.2-4: DuAH1 lưu thông tin về các dự án có ngân
9 Bảng 1.2-5: DuAH2 lưu thông tin về các dự án có ngân
Trang 11DANH MỤC CÁC HÌNH VẼ
1 Hình 1.2.1-1: CSDL tập trung, không phải là DDBS 10
3 Hình 1.2.2-1: Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối 16
4 Hình 1.2.2-2: Cấu trúc cây của phân mảnh hỗn hợp 17
Trang 12PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Trong hệ thống thông tin thường có nhiều vị trí xử lý được nối với nhau thành mạng (ở đây chúng ta xét mạng máy tính) Để nâng cao hiệu quả xử lý một hệ CSDL trên mạng đã cho, người ta tiến hành phân chia các quan hệ của CSDL đó thành tập các mảnh con và gửi chúng đến các nút mạng để xử lý (mà ta gọi là “Cấp Phát”) Chúng ta sẽ tập trung xem xét một chiến lược cấp phát tối ưu các mảnh khi biết các loại thông tin: Thông tin CSDL, Thông tin các ứng dụng, Thông tin về vị trí, Thông tin về mạng,…, dựa vào bài toán quy
hoạch nguyên
2 Mục đích nghiên cứu (Các kết quả cần đạt được)
Nghiên cứu bài toán cấp phát trong CSDL phân tán
3 Nhiệm vụ nghiên cứu
Nghiên cứu bài toán cấp phát tổng quát, thu thập dữ liệu để giải bài
toán trên cơ sở bài toán quy hoạch tuyến tính nguyên
4 Đối tượng và phạm vi nghiên cứu
Toán rời rạc
CSDL phân tán
Quy hoạch tuyến tính nguyên
5 Giả thuyết khoa học
Từ việc nghiên cứu bài toán cấp phát trong CSDL phân tán để bổ sung
thêm kiến thức vào CSDL phân tán
6 Phương pháp nghiên cứu
Dùng các kiến thức: Toán rời rạc, CSDL phân tán để nghiên cứu bài
toán cấp phát
Dựa vào Quy hoạch tuyến tính nguyên để giải bài toán cấp phát
Trang 137 Cấu trúc luận văn
Ngoài phần mở đầu và kết luận, nội dung của luận văn được trình bày trong 3 chương.:
Chương 1 Cơ sở lý thuyết
Chương 2 Cấp phát trong cơ sở dữ liệu phân tán
Chương 3 Chương trình DEMO
Trang 14PHẦN NỘI DUNG Chương 1
CƠ SỞ LÝ THUYẾT 1.1 Logic mệnh đề
1.1.1 Mệnh đề toán học
a Định nghĩa
Mệnh đề logic là một phát biểu để diễn tả một ý tưởng trọn vẹn và khẳng định một cách khách quan là phát biểu đó đúng hoặc sai (không thể vừa đúng lại vừa sai, haymang tính chất mập mờ)
Giá trị trị đúng hay sai của mệnh đề được gọi là chân trị của mệnh đề Chân trị đúng của mệnh đề thường được kí hiệu là 1 hoặc T hoặc True, còn chân trị sai được kí hiệu là 0 hoặc F hoặc False
Ví dụ
i/ “2 là số chẵn” là mệnh đề đúng nên cho chân trị 1 hoặc T
ii/ “2 không là số nguyên tố” là mệnh đề sai nên cho chân trị 0 hoặc F
iii/ “x*y = z” không phải mệnh đề nên không có chân trị
iiii/“x + ay = z” không phải mệnh đề nên không có chân trị
Trang 15Các loại mệnh đề và các phép toán mệnh đề
Hai loại mệnh đề cơ bản: mệnh đề sơ cấp (elementary) và mệnh đề phức tạp (compound)
a Mệnh đề sơ cấp
Mệnh đề sơ cấp hay còn gọi là mệnh đề đơn giản, nó là các nguyên tử
(atom)-không thể chia nhỏ được Chẳng hạn “2 là số nguyên tố”
b Mệnh đề phức hợp
Mệnh đề phức hợp: là mệnh đề được tạo ra từ một hoặc nhiều mệnh đề khác bằng cách sử dụng các phép toán logic mệnh đề
Ví dụ
“15 MOD 3 = 0” AND “3 là số nguyên tố”, là mệnh đề phức hợp
Biến mệnh đề hay ký hiệu mệnh đề Để máy tính hiểu được, chúng ta dùng
các kí hiệu cho các mệnh đề đơn giản, được gọi là biến mệnh đề, các biến mệnh đề thường được dùng là các chữ thường
() If…Then… (Phép điều kiện hay kéo theo hay suy ra)
() If … AND Only If … (Cần và đủ kéo theo hai chiều hay tương
đương)
XOR (Tổng trực giao - đôi khi dùng )
( ) chỉ nhóm ưu tiên trong biểu thức logic
Trang 16c Bảng chân trị của các phép toán mệnh đề (Bảng 1.1-1)
Bảng 1.1-1 Chân trị của các phép toán mệnh đề
Chú ý: Một biểu thức logic có m biến sẽ có 2m giá trị
d Mức ưu tiên của các phép toán logic
Thứ tự ưu tiên của các phép toán logic được liệt kê theo mức yếu dần
từ trái sang phải, từ trên xuống dưới (Bảng 1.1-2)
Bảng 1.1-2 Bảng ưu tiên các phép toán mệnh đề
Ký hiệu phép toán Nghĩa của phép toán
(hoặc hoặc ) Phủ định
, Kéo theo, tương đương
1 1.2 Các biểu thức logic
Biểu thức logic là một mệnh đề phức hợp, biểu thức logic thường được
ký hiệu bởi các chữ in hoa và nó là sự kết hợp của các biến mệnh đề, các biểu thức logic, các phép toán logic và các dấu ( )
Ví dụ
E = (pq r) t s là một biểu thức logic
1 Biểu thức hằng đúng: Nếu biểu thức logic E luôn đúng với mọi giá trị của
các biến thành phần thì ta gọi E là biểu thức hằng đúng (còn gọi là khả thỏa)
2 Biểu thức hằng sai: Nếu biểu thức logic E luôn sai với mọi giá trị của các
biến thành phần thì ta gọi E là biểu thức hằng sai (hay mâu thuẫn)
Ví dụ: E = pp là hằng đúng, F = pp là hằng sai hay mâu thuẫn
Trang 173 Biểu thức vững chắc: Một biểu thức là vững chắc nếu nó đúng với mọi bộ
giá trị chân lý của các mệnh đề thành phần
4 Biểu thức hội cơ bản (hay hội sơ cấp): Cho các biến mệnh đề pi, i 1 ,n Biểu thức logic Ek = p1p2 … pk đƣợc gọi là biểu thức hội sơ cấp
5 Biểu thức tuyển cơ bản (hay tuyển sơ cấp): Cho các biến mệnh đề
pi,i 1 ,n Biểu thức logic Ek = p1p2 … pk đƣợc gọi là biểu thức tuyển
i là biểu thức logic hội cơ bản, đƣợc gọi là biểu thức chuẩn tuyển
(hay còn đƣợc gọi là tuyển chính tắc)
8 Quy tắc chuyển biểu thức logic bất kỳ về dạng chuẩn hội
q n với q i = p i hoặc q i =p i ( i 1 ,n )
Trang 18Định lý 2
Mọi biểu thức logic F (p 1 , p 2 , p n ) đều tương đương với một biểu thức hội chính tắc duy nhất Tức là F (p 1 , p 2 , p n ) F = F 1 F 2 F m (duy nhất ) với F i ( i 1 ,m ) là các biểu thức tuyển cơ bản Nghĩa là F i = q 1 q 2 q n
"PQ" và đọc là "P đúng khi và chỉ khi Q đúng", "" gọi là dấu liên
hệ tương đương Bảng 1.1-3 cho chân trị của quan hệ tương đương
Dễ thấy, mối quan hệ tương đương PQ là (PQ) (QP)
Trong trường hợp này, hai phát biểu "PQ" và "QP" gọi là đảo của nhau
Để chứng minh mối quan hệ tương đương PQ, ta phải chứng minh mối quan hệ kéo theo PQ và chiều ngược lại
Chú ý rằng (PQ) (Q P)
Trang 19Trong ngôn ngữ tự nhiên, để diễn đạt mối liên hệ tương đương
giữa P và Q, người ta có nói P đúng khi và chỉ khi Q đúng
Tính chất của các biểu thức logic tương đương
Khi nói P Q là đúng không có nghĩa là cả P và Q đều đúng, mà
là cả hai có cùng chân trị (hoặc đúng hoặc sai) đồng thời
10 Quan hệ tương đương giữa nhiều biểu thức
Xem xét ba mệnh đề P, Q và R Để chứng minh các mối quan hệ tương
đương P Q R, chúng ta cần chứng minh P Q, Q R và R P
Ta có thể tổng quát hóa đối với n mệnh đề P1, P2… Pn
Để chứng minh các mối quan hệ tương đương P1 P2 … Pn, chỉ cần chứng minh các quan hệ kéo theo:
P1 P2, P2 P3… Pn-1 Pn và Pn P1
Cách chứng minh như trên gọi là chứng minh vòng
Trang 2011 Các biểu thức logic tương đương hay dùng (Bảng 1.1-4)
Bảng 1.1-4 Biểu thức logic tương đương
7
(p q) r (p r) (q r) (p q) r (p r) (q r) Luật phân phối
8
(p q) p q
(p q) p q Luật De Morgan
9 p q p q Luật kéo theo
10 p q (pq) (qp) Luật kéo theo hai chiều
1.2 Cơ sở dữ liệu phân tán
1.2.1 Khái quát về cơ sở dữ liệu phân tán trên cơ sở dữ liệu quan hệ
Hệ CSDL 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
Trang 21Hệ quản trị CSDL phân tán (Distributed Database Management System – DDBMS) là một hệ thống phần mềm cho phép quản lý các DDBS và làm cho việc phân tán trở nên vô hình đối với người sử dụng
Như vậy DDBS là một tập các tệp dữ liệu vừa có liên đới logic, vừa phải có cùng cấu trúc và vừa phải được truy xuất qua một giao diện chung Và phân bố vật lý của các dữ liệu không phải là vấn đề quyết định
Nhận xét:
Nếu CSDL nằm tại một nút mạng thì nó không phải là DDBS, vì vấn
đề quản trị CSDL không khác với quản trị CSDL trong môi trường tập trung kiểu client/server của mạng
Ví dụ CSDL trong hình 1.2.1-1 không phải là DDBS
Nếu một cơ sở dữ liệu được phân tán trên nhiều nút mạng, khi đó CSDL sẽ là cơ sở dữ liệu phân tán (Hình 1.2.1-2)
Worstation5
Mạng Truyền DL
Hình 1.2.1-1 CSDL tập trung, không phải là DDBSWorstation4
Worstation1
Worstation3 Worstation2
Trang 22Các đặc điểm của hệ CSDL phân tán
Phần chi phí đáng kế nằm ở chỗ nó cần phải có các phần mềm và phương pháp truyền thông phức tạp hơn Ngoài ra còn cần chi phí về nhân lực Khi các thiết bị được xây dựng ở nhiều vị trí khác nhau, đòi hỏi phải có người điều hành và quán lý
* Quyền điều khiển bị phân tán
Worstation5
Mạng Truyền DL
Hình 1.2.1-2 CSDL được phân tán trên mạng, DDBS Worstation4
Worstation1
Worstation3 Worstation2
Trang 23Điểm này đã được nêu ra tưởng như là một ưu điểm của các hệ CSDL phân tán Tuy nhiên, không may là sự phân tán lại gây ra khó khăn về đồng
bộ hóa Việc điều khiển phân tán có thể trở thành một gánh nặng nếu không
có những chiến lược phù hợp để giải quyết chúng
* Tính an ninh
Trong hệ CSDL phân tán, môi trường mạng kèm theo sẽ có các yêu cầu
an ninh của riêng chúng Vì vậy, vấn đề an ninh trong các hệ CSDL phân tán
rõ ràng là phức tạp hơn so với các hệ tập trung
Phân loại
CSDL phân tán thuần nhất: là CSDL phân tán có được bằng cách chia một CSDL thành một tập các CSDL cục bộ, được quản lý bởi cùng một hệ QTCSDL
CSDL phân tán có thuần nhất hay không, phụ thuộc bởi các yếu tố phần cứng, hệ điều hành và các hệ QTCSDL cục bộ
CSDL phân tán hỗn tạp: là CSDL phân tán có được bằng cách tích hợp các CSDL cục bộ đã có, được quản lý bởi nhiều hệ QTCSDL khác nhau
1.2.2 Các phương pháp phân mảnh cơ bản [2], [5], [9]
Các quan hệ CSDL thường được biểu diễn dưới dạng bảng Việc phân mảnh một quan hệ thành nhiều quan hệ con khác nhau, theo các cách khác nhau, sẽ có các cách phân mảnh tương ứng Có các kiểu phân mảnh cơ bản, tương ứng với việc chia quan hệ theo chiều dọc, chiều ngang và hỗn hợp Giả sử ta có Quan hệ DuAn(MaDuAn, TenDuAn, NganSach) (bảng 1.2-1)
Bảng 1.2-1 Quan hệ DuAn
Trang 24a/ Phân mảnh theo chiều dọc:
Phân mảnh dọc quan hệ R sinh ra các mảnh R1, R2, ,Rr sao cho mỗi mảnh chứa một tập con các thuộc tính của quan hệ R và khóa chính của R Nghĩa là thiết lập một quan hệ mới chỉ có một số thuộc tính từ quan hệ gốc Thực chất đây là phép chiếu trên tập con các thuộc tính của quan hệ
Ví dụ: phân mảnh dọc quan hệ DuAn thành hai quan hệ con DuAnV1 và DuAnV2 DuAnV1 chỉ chứa thông tin về ngân sách các dự án, còn DuAnV2 chứa tên và vị trí dự án Khoá của quan hệ (MaDuAn) đều có mặt trong cả hai mảnh (Bảng 1.2-2 và bảng 1.2-3)
Bảng 1.2-2 Mảnh dọc DuAnV1 chỉ lưu thông tin về ngân sách các dự án
Bảng 1.2-3 Mảnh dọc DuAnV2 chỉ lưu tên và vị trí dự án
DA1 Thiết bị đo đạc Hải Phòng DA2 Phát triển CSDL Hà Nội
DA4 Bảo dưỡng TP.Hồ Chí Minh
b/ Phân mảnh theo chiều ngang:
Phân mảnh theo chiều ngang là chia quan hệ thành nhiều các nhóm bộ Kết quả của quá trình phân mảnh ngang là các quan hệ con, số lượng quan hệ con phụ thuộc vào điều kiện ràng buộc của các thuộc tính, các bộ
Trang 25Ví dụ: phân mảnh ngang quan hệ DuAn thành hai quan hệ: Quan hệ con DuAnH1 chứa các thông tin về các dự án có ngân sách dưới 200,000$, còn quan hệ con DuAnH2 lưu các dự án còn lại (Bảng 1.2-4 và bảng 1.2-5)
Bảng 1.2-4 Mảnh ngang DuAnH1 lưu các thông tin về các dự án có ngân sách
dưới $200,000
Bảng 1.2-5 DuAnH2 lưu các thông tin về các dự án có ngân sách lớn hơn
200,000 USD
Có hai loại phân mảnh ngang:
+ Phân mảnh ngang nguyên thủy: là phân mảnh ngang khi thực hiện các vị từ trên chính quan hệ đó
+ Phân mảnh ngang dẫn xuất: là phân rã một quan hệ dựa trên các vị từ của quan hệ khác
Như vậy trong phân mảnh ngang tập hợp các vị từ đóng một vai trò quan trọng
Trang 26Các thông tin cần cho phân mảnh ngang:
(1) Thông tin về CSDL
Thông tin về CSDL là thông tin về lược đồ khái niệm toàn cục của CSDL Tức là chúng ta cần biết được cách mà quan hệ con sẽ hợp () lại với nhau như thế nào Trong mô hình quan hệ, các liên kết giữa các thực thể cũng được biểu thị bằng quan hệ Với mục đích thiết kế phân tán, các mối liên kết cũng được mô hình hoá theo kiểu mô hình quan hệ Theo cách này, chúng ta
sẽ vẽ một đường nối có hướng từ quan hệ Parent đến quan hệ Child [2], [5]
Ví dụ
Hình 1.2.2-1 cho thấy một cách biểu diễn các đường nối giữa các quan
hệ Chú ý rằng hướng của các đường nối sẽ cho biết mối quan hệ một - nhiều (chẳng hạn với “trình độ chuyên môn” có nhiều nhân viên có cùng “trình độ chuyên môn” đó, vì thế đường nối hướng từ quan hệ TraLuong đến quan hệ NhanVien) Khi là liên kết nhiều - nhiều, được biểu diễn bằng hai đường nối đến các quan hệ (chẳng hạn giữa NhanVien, DuAn và PhanNhiem)
Một số thuật ngữ được sử dụng thông dụng trong mô hình mạng là quan hệ nguồn - đích Chúng ta hãy định nghĩa hai hàm: Nguon và Dich, chúng là các ánh xạ từ tập các đường nối đến tập các quan hệ Cho trước một đường nối chúng sẽ trả về quan hệ đích hoặc quan hệ chủ nguồn của đường nối (Xem hình 1.2.2-1) Trong đó:
Trang 27Chúng ta cần hai loại thông tin: định tính và định lượng về các ứng dụng Thông tin định tính phục vụ phân mảnh, còn thông tin định lượng sử dụng cho mô hình cấp phát
Những thông tin định tính gồm có các vị trí được dùng trong các câu vấn tin Nếu không thể phân tích đươc hết tất cả các ứng dụng thì ít nhất cũng phải nghiên cứu được các ứng dụng “quan trọng” nhất
Về phân mảnh dọc chúng ta có thuật toán phân mảnh dọc [2], [5]
c/ Phân mảnh hỗn hợp
Trong trường hợp phân mảnh dọc có thể được thực hiện sau một phân mảnh ngang hoặc ngược lại, sinh ra một lối phân hoạch có cấu trúc cây (Xem hình 1.2.2-2) Bởi vì, hai loại chiến lược phân hoạch 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)
Trang 28Hình 1.2.2-2: Cấu trúc cây của phân mảnh hỗn hợp
Các chiến lược thiết kế hệ thống phân tán
Thiết kế hệ thống phân tán cần phải chọn những vị trí lưu dữ liệu và các chương trình trên mạng kết nối, có thể phải kể luôn cả việc thiết kế hệ quản trị CSDL phân tán Việc phân tán ứng dụng phải đảm bảo hai vấn đề: (i) Phân tán hệ quản trị CSDL và các chương trình ứng dụng chạy trên DDBMS
(ii) Phân tán dữ liệu
Hai chiến lược chính đã được xác định trong thiết kế DDBMS: Thiết kế
từ trên xuống và thiết kế từ dưới lên
* Thiết kế từ trên xuống
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 có sử dụng CSDL Nghiên cứu các yêu cầu cũng cần xác định xem hệ thống cuối cùng sẽ như thế nào so với các mục tiêu của một DDBM
Phân tích thực thể có liên quan đến việc xác định các thực thể, các thuộc tính và các mối liên hệ giữa chúng Phân tích chức năng đề cập đến việc xác định các chức năng cơ bản có liên quan đến xí nghiệp cần được mô hình hoá Kết quả của hai quá trình phân tích này cần được đối chiếu qua lại, giúp
Trang 29chúng ta biết được chức năng nào sẽ hoạt tác trên những thực thể nào Có một
sự liên hệ giữa thiết kế khái niệm và thiết kế khung nhìn, người sử dụng cần phải đặc tả các thực thể và phải xác định các ứng dụng sẽ chạy trên cơ sở dữ liệu cũng như các thông tin thống kê về những ứng dụng này Thông tin thống
kê bao gồm cả tính toán các thông tin về tần số ứng dụng, khối lượng các thông tin mà một câu truy vấn cần dùng trong quá trình thực thi Chú ý rằng
từ bước thiết kế khái niệm sẽ cho ra định nghĩa lược đồ khái niệm toàn cục GCS (Global Conception Schema) sẽ được thảo luận trong phần sau Ở đây, chúng ta vẫn chưa xem xét các đặc thù phân tán, nên quá trình thiết kế hoàn toàn giống với thiết kế CSDL tập trung
Lược đồ khái niệm toàn cục 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 vào cho bước thiết kế phân tán Thiết kế các lược đồ khái niệm cục bộ LCS (Local Conception Schema)
là cách phân tán các thực thể cho các vị trí của hệ thống phân tán, có thể xử lý mỗi thực thể như là một đơn vị phân tán Với mô hình quan hệ được dùng làm
cơ sở thảo luận trong cuốn sách này, các thực thể sẽ tương ứng với các quan
hệ
Như đã biết, thiết kế phân tán gồm hai bước:
1/ Phân mảnh và gửi các mảnh đến các vị trí trên hệ xử lý phân tán
Thay vì phân tán các quan hệ, chúng ta thường chia chúng thành nhiều quan hệ nhỏ hơn gọi là các mảnh và chính các mảnh sẽ được phân tán đến các
vị trí khác nhau (ta hay gọi là cấp phát)
2/ Thiết kế vật lý
Là bước á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 mảnh
Trang 30Chúng ta đã biết 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ế chúng ta cũng đưa vấn đề quan sát và theo dõi như một hoạt động chính trong quá trình này Cần chú ý rằng chúng ta không chỉ theo dõi vấn đề cài đặt CSDL mà còn phải xem xét, 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
* Quá trình thiết kế từ dưới lên
Các bước thiết kế từ dưới lên ngược với quá trình thiết kế từ trên xuống Thiết kế từ trên xuống thích hợp cho việc thiết kế mới từ đầu Tuy nhiên, trong thực tế chúng ta hay gặp trường hợp, các cơ quan xí nghiệp cần chúng ta thiết kế đã có sẵn một số DB hoặc DDB và nhiệm vụ thiết kế là phải tích hợp chúng lại để có DDB theo mục đích - hoặc mục đích mới – cho cơ quan xí nghiệp, 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 thiết kế từ dưới lên là các lược đồ khái niệm cục bộ Qúa trình này
sẽ bao gồm việc tích hợp các lược đồ khái niệm cục bộ thành các lược đồ khái niệm toàn cục
1.3 Bài toán quy hoạch tuyến tính nguyên
1.3.1 Phát biểu bài toán quy hoạch tuyến tính nguyên
Bài toán quy hoạch tuyến tính (QHTT) là bài toán tối ưu hóa, trong đó hàm mục tiêu và các điều kiện ràng buộc đều là tuyến tính
Bài toán quy hoạch nguyên là bài toán tuyến tính mà giá trị của nó luôn nguyên
Trong nhiều bài toán thực tế, các cấu hình tổ hợp còn được gán một giá trị bằng số, đánh giá giá trị sử dụng của cấu hình đối với một mục đích sử dụng cụ thể nào đó Khi đó xuất hiện bài toán: Hãy lựa chọn trong số tất cả các cấu hình tổ hợp chấp nhận được, cấu hình có giá trị sử dụng tốt nhất Các
Trang 31bài toán như vậy được gọi là bài toán tối ưu tổ hợp Chúng ta có thể phát biểu bài toán tối ưu tổ hợp dưới dạng tổng quát như sau:
Tìm cực tiểu (hay cực đại) của phiếm hàm f(x) = min(max) với điều kiện x D, trong đó D là tập hữu hạn các phần tử
Hàm f(x) được gọi là hàm mục tiêu của bài toán, mỗi phần tử x D được gọi là một phương án, còn tập D gọi là tập các phương án của bài toán Thông thường tập D được mô tả như là tập các cấu hình tổ hợp, thoả mãn một
số tính chất nào đó cho trước
Phương án x* D đem lại giá trị nhỏ nhất (lớn nhất) cho hàm mục tiêu được gọi là phương án tối ưu, khi đó giá trị f* = f(x*) được gọi là giá trị tối ưu
của bài toán
Dưới đây chúng ta sẽ giới thiệu một số bài toán tối ưu tổ hợp kinh điển Các bài toán này là những mô hình có nhiều ứng dụng thực tế và giữ vai trò quan trọng trong việc nghiên cứu và phát triển lý thuyết tối ưu hoá tổ hợp
Một số ví dụ về bài toán quy hoạch tuyến tính nguyên
Bài toán Người du lịch: Một người du lịch muốn đi thăm quan n thành phố
T 1 , T 2 , …, T n Xuất phát từ một thành phố nào đó, người du lịch muốn đi qua tất cả các thành phố còn lại, mỗi thành phố đi qua đúng một lần, rồi quay trở
lại thành phố xuất phát Biết c ij là chi phí đi từ thành phố T i đến thành phố T j
(i,j = 1, 2, , n), hãy tìm hành trình với tổng chi phí là nhỏ nhất (một hành
trình là một cách đi thoả mãn điều kiện)
Rõ ràng, ta có thể thiết lập được một tương ứng 1-1 giữa hành trình
T(1) T(2) T(n) T(1) với một hoán vị = ((1), (2), , (n)) của n
số tự nhiên 1, 2, , n
Đặt: f ( ) C(1)(2) C(2)(3) … C(n-1)(n) C(n)(1)
Trang 32n
Kí hiệu là tập tất cả các hoán vị = ((1), (2), , (n)) của n số tự
nhiên 1, 2, , n Khi đó bài toán người du lịch có thể phát biểu dưới dạng bài
toán tối ưu tổ hợp sau:
min { f(): }
Có thể thấy rằng tổng số hành trình của người du lịch là n!, trong đó chỉ
có (n-1)! hành trình thực sự khác nhau (bởi vì có thể xuất phát từ một thành phố bất kỳ nên có thể cố định một thành phố nào đó làm điểm xuất phát)
Bài toán cái túi: Một nhà thám hiểm cần đem theo một cái túi có trọng
lượng không quá b Có n đồ vật có thể đem theo Đồ vật thứ j có trọng lượng
a j và giá trị sử dụng c j (j =1, 2, , n) Hỏi nhà thám hiểm cần đem theo những
đồ vật nào để cho tổng giá trị sử dụng là lớn nhất?
Một phương án của nhà thám hiểm có thể biểu diễn như một vector nhị
phân độ dài n: x = (x 1 , x 2 , , x n ), trong đó x i = 1 có nghĩa là đồ vật thứ i được đem theo, x i = 0 có nghĩa trái lại Với phương án đem theo x, giá trị sử dụng
Trong số các vector nhị phân độ dài n thoả mãn điều kiện g(x) ≤ b, hãy
tìm vector x* để hàm mục tiêu f(x) đạt giá trị nhỏ nhất Nói cách khác:
min { f(x): g(x) ≤ b }
1.3.2 Một số phương pháp giải bài toán quy hoạch tuyến tính nguyên Phương pháp duyệt toàn bộ
Khái niệm
Trên cơ sở các thuật toán liệt kê tổ hợp, ta tiến hành duyệt từng phương
án của bài toán, đối với mỗi phương án, ta đều tính giá trị hàm mục tiêu cho phương án đó, sau đó so sánh giá trị của hàm mục tiêu tại tất cả các phương