BỘ GIÁO DỤC VÀ ðÀO TẠO TRƯỜNG ðẠI HỌC CẦN THƠ LÊ VĂN TOÁN TỐI ƯU HÓA TRUY VẤN TRONG HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN QUẢN LÝ DÂN CƯ MỘT TỈNH Chuyên ngành: HỆ THỐNG THÔNG TIN Mã số: 60 48 05
Trang 1BỘ GIÁO DỤC VÀ ðÀO TẠO
TRƯỜNG ðẠI HỌC CẦN THƠ
LÊ VĂN TOÁN
TỐI ƯU HÓA TRUY VẤN TRONG HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Cần Thơ – 2010
Trang 2BỘ GIÁO DỤC VÀ ðÀO TẠO
TRƯỜNG ðẠI HỌC CẦN THƠ
LÊ VĂN TOÁN
TỐI ƯU HÓA TRUY VẤN TRONG HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
QUẢN LÝ DÂN CƯ MỘT TỈNH
Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học
TS PHẠM THỊ XUÂN LỘC
Trang 3LỜI CAM ðOAN
Tôi xin cam ñoan luận văn này ñược hoàn thành trên kết quả nghiên cứu của tôi Các công việc nghiên cứu và nội dung thực hiện trong luận văn chưa từng ñược nộp
ñể lấy bằng cấp từ một trường nào; ngoại trừ lý thuyết và các kết quả từ các công trình khác ñược ghi rõ trong phần tài liệu tham khảo của luận văn
Cần Thơ, ngày 06 tháng 10 năm 2010
Ký tên,
Lê Văn Toán
Trang 4LỜI CẢM ƠN
ðề ñài “Tối ưu hóa truy vấn trong hệ cơ sở dữ liệu phân tán Quản lý dân cư
một tỉnh” ñến nay ñã ñược hoàn thành sau một thời gian nghiên cứu và thực hiện
ðể ñạt ñược kết quả như hôm nay, tôi xin chân thành cảm ơn:
Ts Phạm Thị Xuân Lộc, Giảng viên Khoa Công Nghệ Thông Tin và Truyền Thông ñã tận tình hướng dẫn tôi trong suốt thời gian thực hiện luận văn này Cô ñã cung cấp cho tôi không những tài liệu, kiến thức, ñọc góp ý, chỉnh sửa báo cáo mà còn truyền kinh nghiệm quý báu, cho lời khuyên và ñộng viên tôi trong suốt quá trình thực hiện luận văn
Xin chân thành nói lời cảm ơn ñến các Thầy cô trường ðại Học Cần Thơ ñã cung cấp cho tôi nhiều kiến thức quý báu trong những năm qua Cũng như Ban Chủ Nhiệm Khoa Kỹ Thuật – Công Nghệ - Môi Trường, Trường ðại Học An Giang ñã tạo mọi ñiều kiện về kiến thức, tài liệu, thời gian và kinh phí cho tôi trong suốt hai năm học
Và cuối cùng, xin cám ơn cha, mẹ, các anh em trong gia ñình ñã hỗ trợ, lo lắng
và ñộng viên ðồng thời xin chân thành cảm ơn các anh, chị trong lớp Cao học K15
ñã ñộng viên, giúp ñỡ trong quá trình thực hiện luận văn
Học viên Lê Văn Toán, MSHV 250817
Lớp Cao học Hệ thống thông tin K15
Trang 5MỤC LỤC
LỜI CAM ðOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC HÌNH vi
DANH MỤC TỪ VIẾT TẮT viii
TÓM TẮT ix
ABSTRACT x
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Mở ñầu 1
1.1.1 ðặt vấn ñề 1
1.1.2 Hướng giải quyết 2
1.1.3 Mục ñích nghiên cứu của ñề tài 3
1.1.4 ðối tượng và phạm vi nghiên cứu 4
1.1.5 Ý nghĩa thực tiễn của ñề tài 4
1.2 Các vấn ñề liên quan 5
1.2.1 Trong nước 5
1.2.2 Ngoài nước 6
1.3 Các nội dung chính 6
CHƯƠNG 2: TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN 7
2.1 Các khái niệm cơ bản về hệ cơ sở dữ liệu phân tán 7
2.1.1 ðịnh nghĩa cơ sở dữ liệu phân tán 7
2.1.2 Phân loại cơ sở dữ liệu phân tán 8
2.1.2.1 Cơ sở dữ liệu phân tán thuần nhất 8
2.1.2.2 Cơ sở dữ liệu phân tán không thuần nhất 8
2.1.3 Các mức trong suốt trong CSDLPT .9
2.2 Các khái niệm cơ bản về hệ quản trị cơ sở dữ liệu phân tán 10
2.2.1 Khái niệm 10
2.2.2 Tập các phần mềm trong hệ quản trị CSDLPT 10
2.2.3 Các phương thức truy cập dữ liệu từ xa 11
2.3 Các hệ quản trị cơ sở dữ liệu phân tán thường gặp 14
2.3.1 Hệ quản trị cơ sở dữ liệu phân tán kiểu Client/Server 14
2.3.2 Hệ quản trị cơ sở dữ liệu phân tán ngang hàng 15
2.4 Thiết kế các hệ cơ sở dữ liệu phân tán 16
Trang 62.4.1 Các chiến lược thiết kế 16
2.4.1.1 Thiết kế phân tán dữ liệu theo mô hình từ trên xuống 16
2.4.1.2 Thiết kế phân tán dữ liệu theo mô hình từ dưới lên 17
2.4.2 Các qui tắc phân mảnh 17
2.4.3 Các yêu cầu thông tin 18
2.4.4 Các kiểu nhân bản 18
2.4.5 Các kiểu phân mảnh 19
2.4.5.1 Phân mảnh theo chiều ngang 19
2.4.5.2 Phân mảnh theo chiều dọc 22
2.4.5.3 Phân mảnh hỗn hợp 23
CHƯƠNG 3: TỐI ƯU HOÁ CÂU TRUY VẤN PHÂN TÁN 25
3.1 Quá trình tối ưu hoá truy vấn 25
3.2 Không gian tìm kiếm 26
3.3 Chiến lược tìm kiếm 27
3.4 Mô hình chi phí phân tán 29
3.4.1 Hàm chi phí 29
3.4.1.1 Công thức tính tổng chi phí 29
3.4.1.2 Công thức tính thời gian ñáp ứng 30
3.4.2 Số liệu thống kê cơ sở dữ liệu 31
3.4.3 Lực lượng của kết quả trung gian 33
3.5 Xếp thứ tự nối và nối nửa trong câu truy vấn .38
3.5.1 Xếp thứ tự dựa trên phép nối 38
3.5.2 Xếp thứ tự dựa trên nối nửa 42
3.5.3 So sánh nối và nối nửa 45
3.6 Giải thuật tối ưu hoá truy vấn phân tán SDD-1 46
3.6.1 Ý tưởng giải thuật leo ñồi 47
3.6.2 Giải thuật SDD-1 49
3.6.2.1 Lý thuyết giải thuật 49
3.6.2.2 Giải thuật SDD-1 50
3.6.2.3 Minh hoạ giải thuật qua thí dụ 3.6 51
3.7 Giải quyết những câu truy vấn phức tạp 57
3.7.1 ðặt vấn ñề 57
3.7.2 Hướng giải quyết 58
Trang 7CHƯƠNG 4: THIẾT KẾ VÀ CÀI đẶT đẶT CƠ SỞ DỮ LIỆU VÀ MÔ HÌNH TỐI ƯU HOÁ TRUY VẤN CHO HỆ PHÂN TÁN QUẢN LÝ DÂN CƯ TỈNH
AN GIANG 60
4.1 Các công việc cho giai ựoạn chuẩn bị cài ựặt thực nghiệm 60
4.1.1 Môi trường cài ựặt 60
4.1.2 Các cấu hình cần thiết cho hệ thống 61
4.1.3 Linked Servers 62
4.1.4 Trong suốt phân mảnh 64
4.1.5 Trong suốt nhân bản 66
4.2 Thiết kế và cài ựặt CSDL phân tán cho quản lý dân cư tỉnh An Giang 68
4.2.1 Giới thiệu chung 68
4.2.2 Một số nghiệp vụ quản lý dân cư 69
4.2.2.1 Các nghiệp vụ cơ bản 69
4.2.2.2 Mô tả các nghiệp vụ cơ bản 69
4.2.2.3 Quy trình, phương pháp, thời gian thu nhập thông tin và lập phiếu báo 71
4.2.3 Thiết kế và cài ựặt chi tiết cơ sở dữ liệu trên từng site 72
4.2.3.1 Tại site trung tâm (lvtoanhp) 74
4.2.3.2 Tại site xã Vĩnh Hưng (lvtoan1) 77
4.2.3.3 Tại site xã Mỹ Hội đông (lvtoan2) 79
4.3 Cài ựặt tối ưu hoá truy vấn phân tán qua chi phắ truyền thông 81
4.3.1 Các hàm hỗ trợ 81
4.3.1.1 Các hàm hệ thống 81
4.3.1.2 Các hàm tạo quan hệ từ xa 84
4.3.2 Giải thuật SDD-1 84
4.3.3 Mô hình chi phắ cho phép toán hai ngôi 89
4.3.3.1 Xét câu truy vấn 89
4.3.3.2 Xét câu truy vấn 93
4.3.3.3 Nhận xét chung cho phép nối và nối nửa 98
4.3.4 Mô hình chi phắ cho phép toán một ngôi 99
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 102
5.1 Kết quả ựạt ựược 101
5.2 Hướng phát triển 102
PHỤ LỤC 103
TÀI LIỆU THAM KHẢO 122
Trang 83 Hình 2.3: Thiết kế CSDLPT không thuần nhất 8
7 Hình 2.5: Mô hình các thành phần của HQTCSDLPT 11
8 Hình 2.6: Phương thức truy cập từ xa trực tiếp 12
9 Hình 2.7: Phương thức truy cập từ xa gián tiếp 12
10 Hình 2.8: Phương thức truy cập từ xa trực tiếp của hệ thống 13
11 Hình 2.9: HQT CSDL PT kiểu Client/Server 14
13 Hình 2.11: Quá trình thiết kế từ trên xuống 16
14 Hình 2.12: Nhân bản một bản chắnh và nhiều bản phụ 18
15 Hình 3.1 Quá trình xử lý truy vấn tối ưu 25
16 Hình 3.2: Các cây toán tử (cây nối) tương ựương 26
18 Hình 3.4: Tắnh chất ựơn ựịnh trong chiến lược quy hoạch ựộng 28
20 Hình 3.6: Vắ dụ truyền dữ liệu trong một câu truy vấn 30
21 Hình 3.7: Sự truyền các toán hạng trong phép toán hai ngôi 39
22 Hình 3.8: đồ thị kết nối của truy vấn phân tán có 2 qua hệ 39
23 Hình 3.9: đồ thị kết nối của truy vấn phân tán 40
24 Hình 3.10: Sự biến ựổi của truy vấn vòng 45
25 Hình 3.11: So sánh việc tiếp cận giữa phép nối và nối nữa 46
27 Hình 3.13: Cây ựại số quan hệ cho hướng giải quyết cách 1 58
28 Hình 3.14: Cây ựại số quan hệ cho hướng giải quyết cách 2 59
29 Hình 4.1: Mô hình truy cập dữ liệu của Linked Servers 62
30 Hình 4.2: Mã lệnh và kết quả khi thực thi lệnh sp_addlinkedserver 63
32 Hình 4.4: đặt ựiều kiện chọn phân mảnh ngang 65
33 Hình 4.5: Nơi ựặt ựiều kiện chọn phân mảnh 65
36 Hình 4.8: Mô hình dữ liệu vật lý cho site trung tâm (lvtoanhp) 76
37 Hình 4.9: Mô hình dữ liệu vật lý cho site xã Vĩnh Hưng (lvtoan1) 78
38 Hình 4.10: Mô hình dữ liệu vật lý cho site xã Mỹ Hội đông (lvtoan2) 80
39 Hình 4.11: Kết quả khi tạo khung nhìn RelationSys 83
42 Hình 4.14: Dữ liệu ựầu vào giải thuật SDD-1 87
Trang 947 Hình 4.19: Mô hình chi phí cho phép nối 90
48 Hình 4.20: Kết quả thực thi câu truy vấn 90
49 Hình 4.21: Mô hình chi phí cho phép nối nửa 91
50 Hình 4.22: Kết quả thực thi câu truy vấn 92
52 Hình 4.24: Chọn các trường có trong quan hệ NK_X1_Daihoc 94
54 Hình 4.26: Tính các thông số của quan hệ NK_X1_Daihoc 95
57 Hình 4.29: Xác ñịnh hệ số chọn của nối nửa 97
58 Hình 4.30: Mô hình chi phí cho phép nối nửa (SDD-1) 97
59 Hinh 4.31: Kết quả phải truyền qua site thực thi (site 1) 98
60 Hình 4.32: Tạo câu truy vấn với phép toán một ngôi 99
61 Hình 4.33: Mô hình tính chi phí cho phép toán một ngôi 100
Trang 10ERD Entity Relationship Diagram
DDBMS Distributed Database Management System
DDB Distributed Database
DDBS Distributed Database System
MLD Model of Logical Data
MSDTC Microsoft Distributed Transaction Coordinator
SF OP Selectivity Factor of Operation
SQL Structured Query Language
CSDLPT Cơ sở dữ liệu phân tán
CSDLQG Cơ sở dữ liệu quốc gia
HQTCSDLPT Hệ quản trị cơ sở dữ liệu phân tán
Trang 11TÓM TẮT
Trong luận văn, những lý thuyết tổng quan về hệ quản trị cơ sở dữ liệu phân tán
ñã ñược giới thiệu Hơn nữa, những mô hình chi phí, công thức thống kê cơ sở dữ liệu, công thức ước lượng kích thước kết quả trung gian và giải thuật cũng ñược làm
rõ
Kế ñến, ñể chuẩn bị cho giai ñoạn cài ñặt thực nghiệm, tác giả phải nghiên cứu thêm các vấn ñề chính sau: Cài ñặt hệ thống; Cấu hình hệ thống như: Firewall, MSDTC trên Windows và kết nối dữ liệu từ xa trên SQL Server 2005; Công cụ Linked Servers, Distributed Partitioned Views, Transactional Replication, và các hàm hệ thống (sysobjects, sysindexes, sys.tables, sys.columns ) trong SQL Server 2005; Những quy trình chung về quản lý dân cư của Bộ công an ban hành cho các ñịa phương trong nước
ðề tài áp dụng tất cả những kiến thức trên ñể tiến hành thực nghiệm và ñạt ñược những kết quả như: Thiết kế CSDL cho hệ phân tán quản lý dân tỉnh An Giang bằng công cụ nhân bản giao tác (Transactional Replication); Xây dựng ñược giải thuật SDD-1 tối ưu hoá truy vấn phân tán dựa trên phép nối nửa; Chương trình so sánh ñược chi phí truyền thông của phép nối và nối nửa Từ ñó rút ra ñược những quy luật chung về sự chọn lựa phương pháp ñể ứng dụng
Trang 12ABSTRACT
In this thesis, the general theories of distributed database management system were introduced In addition, the cost model, the formulas for database statistics, the formulas for estimating the size of the intermediate results and the algorithms were also clearly made
Next, to prepare for the experimental phase, the author must research some domains: installing system; configuring system such as Firewall, MSDTC on Windows and accessing to remote database on SQL Server 2005; Linked Severs, Distributed Partitioned Views, Transactional Replication Tools and system functions (sysobjects, sysindexes, sys.tables, sys.columns ) on SQL Server 2005; Processes for population management of Ministry of police promulgate in localities across the country
The thesis applies all of knowledge above to do the experiment and bring results such as Designing distributed database for An Giang population management by the
“Transactional Replication” tool; Building the query optimization algorithm of SDD-1 bases on the semijoin operation; The program compares the communication costs between the join operation and semijoin operation We learned from this comparison which was the general rules of the method choice to apply
Trang 13CHƯƠNG 1: GIỚI THIỆU
CSDLQG về dân cư ñược xây dựng và quản lý tại Trung tâm CSDLQG về dân
cư thuộc Bộ Công an, Công an các tỉnh, thành phố trực thuộc Trung ương và Công
an các quận, huyện, thị xã, thành phố thuộc tỉnh Thông tin của công dân ñược thu thập, cập nhật trong CSDLQG về dân cư bao gồm: họ và tên, số ñịnh danh cá nhân, ảnh cá nhân, quê quán, giới tính, dân tộc, chứng minh nhân dân, hộ chiếu, thẻ bảo hiểm y tế, mã số thuế cá nhân, trình ñộ học vấn, nghề nghiệp, nơi làm việc, nơi ở Các cơ quan tham gia xây dựng và duy trì CSDLQG về dân cư ñược quyền khai thác dữ liệu dân cư thuộc phạm vi quản lý của cơ quan mình, nhưng việc khai thác
dữ liệu dân cư ngoài phạm vi quản lý phải ñược cơ quan quản lý CSDLQG về dân
cư có thẩm quyền phê duyệt [12]
Hơn nữa, theo Tổng cục thống kê ñã chính thức công bố kết quả cuộc ñiều tra dân số Việt Nam hiện là 85.789.573 người, tăng 9,5 triệu người so với mười năm trước ñây Tỷ lệ sinh ở Việt Nam vẫn tiếp tục ở dưới mức sinh thay thế, ñạt 2,03 trên một phụ nữ, số giới tính khi sinh ñạt 111 bé trai trên 100 bé gái, ñất nước ñang trong thời kỳ “cơ cấu dân số vàng” và nhóm dân số già ñang tiếp tục tăng Kết quả ñiều tra cũng cho thấy, ñời sống của người dân Việt Nam ñã có sự cải thiện Hiện nay, trong 10.000 hộ gia ñình Việt Nam thì chỉ có năm hộ không có nhà (hoặc có nhà nhưng không có ñủ ñiều kiện tối thiểu), tỷ trọng nhà riêng của hộ chiếm 93% Với tình hình dân số phát triển như vậy Ngược lại, mỗi tỉnh trong nước ta có chung ñặc thù là mật ñộ dân số ở thành phố hoặc thị xã thì khá cao hơn ở huyện Nên việc quản lý nhân khẩu ở thành phố hay thị xã gặp nhiều khó khăn hơn Bên cạnh ñó, cách quản lý nhân khẩu theo lối hiện trạng gây nhiều phiền toái (theo hồ sơ nhân khẩu, không gian lưu trữ ngày càng lớn, truy tìm mất nhiều thời gian …), chưa khắc phục ñược khó khăn trên và không phát huy ñược tính khoa học trong quản lý Tuy nhiên, sự phát triển nhanh chóng công nghệ thông tin trên nhiều lĩnh vực: công
Trang 14nghệ phần mềm, phần cứng, internet, ñội ngũ chuyên viên IT… Chính vì vậy làm sao khai thác hết chức năng của các công nghệ này một cách có hiệu quả nhất? ðể trả lời câu hỏi trên, Ban lãnh ñạo các tỉnh ñã tiến hành Tin học hóa trên nhiều lĩnh vực y tế, giáo dục, kinh tế… Bên cạnh ñó không thể không nhắc ñến dự án “Tin học hóa Quản lý dân cư”
Với tiêu chí ñặt ra làm sao xây dựng hệ thống mang lại nhiều thuận lợi cho người quản lý và người dân theo tuyến (tỉnh, huyện, xã và ấp) Cụ thể, với nhà quản lý ở các tuyến làm sao dể theo dõi và xử lý kịp thời mọi yêu cầu cho người dân nhanh và hiệu quả nhất Còn phía nhân dân, nếu mọi vấn ñề chúng ta ñều bắt họ lên tỉnh giải quyết thì sẽ gây nhiều khó khăn Ví dụ như: ở tuyến tỉnh sẽ bị ùn tắc (không xử lý kịp hồ sơ), nhân dân mất nhiều thời gian trong việc ñi lại…
Mặt khác, hệ thống ñược quản lý theo tuyến nên có nhiều vấn ñề cần phải nan giải như ñồng bộ, tích hợp, tốc ñộ truyền dữ liệu Trong ñó, tốc ñộ xử lý truy vấn phải ñảm bảo trên dữ liệu ngày càng lớn ở các tuyến Hơn nữa, ñể tăng tốc ñộ truyền dữ liệu giữa các tuyến thì trước tiên vấn ñề tối ưu hoá truy vấn phân tán cần ñược quan tâm trước tiên
1.1.2 Hướng giải quyết
Với yêu cầu thực trạng ñã miêu tả như mục 1.1.1, hướng giải quyết hiệu quả cho
hệ thống là xây dựng “Hệ cơ sở dữ liệu phân tán – Distributed Database System” Với hệ thống này ta tiến hành thiết kế phân tán:
- Thiết kế hạ tầng mạng: Cấu trúc vật lý (phần cứng) và cấu trúc phần mềm
quản lý (hệ ñiều hành mạng)
- Thiết kế cơ cấu dịch vụ: Xây dựng các dịch vụ của hệ thống như Web, email,
FTP, CSDL…, và các ứng dụng khai thác các dịch vụ dựa trên hạ tầng mạng,
có khả năng kết nối mạng LAN,WAN
- Thiết kế cơ cấu nhân sự: Tổ chức và huấn luyện nhân viên quản lý hệ thống và
khai thác hệ thống dựa trên các chiến lược tổ chức nhân sự
Bên cạnh ñó, khi nghiên cứu hệ cơ sở dữ liệu (CSDL) phân tán, chúng ta không thể bỏ qua phần xử lý truy vấn phân tán Phần này lẽ ñương nhiên là phức tạp hơn nhiều so với xử lý truy vấn tập trung vì ngoài những vấn ñề vốn có trong các hệ tập trung, ñịnh vị ñịa ñiểm (sites) chứa dữ liệu và truyền dữ liệu giữa các ñịa ñiểm là những công việc có chi phí rất cao và dễ bị sự cố Vì vậy quá trình xử lý truy vấn
Trang 15Cụ thể hơn, hệ quản trị CSDL phân tán chịu trách nhiệm tìm một thứ tự thực hiện câu truy vấn sao cho chi phí xử lý của nó là thấp nhất hoặc gần như thế
thúc ñẩy tác giả thực hiện ñề tài “Tối ưu hóa truy vấn trong hệ cơ sở dữ liệu phân tán Quản lý dân cư một tỉnh”
1.1.3 Mục ñích nghiên cứu của ñề tài
ðề tài nghiên cứu hai mảng lớn:
(1) Về hệ quản trị CSDL phân tán
ðề tài trước tiên nghiên cứu các khái niệm tổng quan cần thiết về hệ quản trị CSDL phân tán, ñể ñi ñến thiết kế hệ CSDL phân tán cho quản lý dân cư một tỉnh nói chung và ñặc biệt là tỉnh An Giang nói riêng
Sau ñó, nghiên cứu cách cài ñặt và cấu hình hệ thống cho hệ quản trị CSDL phân tán, ñể hỗ trợ cho giai ñoạn thực nghiệm tối ưu hoá truy vấn phân tán
(2) Về tối ưu hoá truy vấn phân tán
Lần lượt nghiên cứu các khái niệm, công thức và các kỹ thuật ñể nhằm hỗ trợ cho tối ưu hoá truy vấn phân tán Kế ñến, nghiên cứu các giải thuật nhằm thực hiện tối
ưu hóa câu truy vấn với chi phí xử lý chấp nhận ñược
Nghĩa là:
Giảm chi phí CPU
Giảm chi phí xuất nhập
Trang 16Giảm chi phí truyền thông
Vì thời gian hạn chế và phạm vi của ñề tài nên việc tối ưu hoá truy vấn ñược tác giả nghiên cứu chỉ dựa vào chi phí truyền thông Nghĩa là, chi phí CPU và chi phí xuất nhập ñược xem như một hằng số
Cuối cùng, vận dụng tối ưu hóa truy vấn ñể xử lý các yêu cầu hệ thống
1.1.4 ðối tượng và phạm vi nghiên cứu
ðề tài nghiên cứu lý thuyết chung về hệ quản trị CSDL phân tán, các kỹ thuật và các công thức nhằm hỗ trợ cho việc tính chi phí truyền thông ðồng thời, phải nghiên cứu các giải thuật tối ưu hoá câu truy vấn phân tán nói chung và giải thuật SDD-1 nói riêng
Hơn nữa, ñề tài cũng nghiên cứu các thông tin liên quan ñến quản lý dân cư tỉnh
An Giang Tuy nhiên, hệ thống quản lý dân cư trên tỉnh An Giang vẫn có thể áp dụng chung cho các tỉnh hay thành phố trực thuộc trung ương, bởi vì họ cùng có chung cách quản lý theo chủ trương của Bộ công an ban hành CSDL ñược thiết kế dựa trên việc phân tích những quy trình và tập các phiếu mẫu do Bộ công an quy ñịnh và ñang ban hành cho mọi cơ quan chức năng trên cả nước
MS SQL Server 2005 là hệ quản trị CSDL giúp xây dựng ñược hệ thống quản lý dân cư trên môi trường phân tán Do vậy, ngoài tìm hiểu các chức năng của MS SQL Server 2005 hỗ trợ cho CSDL tập trung, còn nghiên cứu các chức năng hỗ trợ cho môi trường phân tán như: Linked Server, Distributed Partitioned Views, Transactional Replication
1.1.5 Ý nghĩa thực tiễn của ñề tài
Sự thành công của ñề tài có thể cung cấp cho chúng ta những kiến thức thật quý báu trên cả lý thuyết, lẫn thực hành cho môi trường phân tán Thêm vào ñó nó có thể giúp phần nào cho việc quản lý dữ liệu dân cư trên tỉnh An Giang nói riêng và các tỉnh hay thành phố trực thuộc trung ương trên cả nước nói chung
Hơn nữa, ñề tài góp phần vào việc giảm chi phí truyền thông cũng như tăng tốc
ñộ truyền dữ liệu trên mạng thông qua phần tối ưu hoá truy vấn phân tán Tác giả cũng hướng ñến nghiên cứu giải thuật nhằm xử lý chung cho tối ưu hoá truy vấn
ðể xây dựng một hệ quản trị CSDL phân tán hoàn thiện, bao trùm hết tất cả các chức năng: trong suốt, cạnh tranh giao tác, bảo mật thì rất mất nhiều thời gian, ñôi
Trang 17liệu và cạnh tranh giao tác mà các hệ thống ngân hàng, hệ thống bán vé máy bay ựang áp dụng
1.2 Các vấn ựề liên quan
1.2.1 Trong nước
- Hệ CSDL phân tán Quản lý dân cư
Như nghị ựịnh số 90/2010/Nđ-CP quy ựịnh về Cơ sở dữ liệu quốc gia (CSDLQG) về dân cư ựã nói ở mục 1.1.1 Hơn nữa, nghị ựịnh này có hiệu lực từ ngày kể từ ngày 01 tháng 01 năm 2011 [12]
Từ nghị ựịnh trên, một số quận (huyện), tỉnh thành ựã tiến hành thắ ựiểm hay tổ chức hội thảo như:
Sau thời gian thắ ựiểm thành công tại Công an quận Thanh Xuân, dự kiến trong năm nay lực lượng Công an Hà Nội sẽ triển khai quản lý dân sự bằng công nghệ thông tin (CNTT) tại 4 quận nội thành cũ [10]
Ngoài ra, ngày 30/06/2010 vừa qua tại Công viên phần mềm đà Nẵng, Sở Thông tin và Truyền thông, Công ty Cổ phần công nghệ phần mềm đà Nẵng ựã phối hợp với các cơ quan liên quan tổ chức hội thảo dự án xây dựng cơ sở dữ liệu dân cư TP
đà Nẵng
Sau khi ICT đà Nẵng ựưa nội dung này lên mạng thông tin ựiện tử, nhiều bạn ựọc cho rằng ựây là vấn ựề khá thú vị và mới mẻ ở Việt Nam chúng ta (vắ dụ mã ựịnh danh công dân), bạn ựọc cũng ựề nghị giới thiệu cập nhật lại và minh họa dễ hiểu hơn cấu trúc tắch hợp - chia sẻ - ứng dụng khai thác dữ liệu [13]
Không chỉ ứng dụng trong quản lý dân cư mà còn ứng dụng trên nhiều lĩnh vực khác như: ngân hàng, bán vé máy bay, ATM
- Tối ưu hoá truy vấn phân tán
Qua tìm hiểu, vấn ựề này trong nước chỉ dừng lại một số bài seminar của sinh viên Bên cạnh ựó, cũng có một số trao ựổi trên forum về cách giải quyết vấn ựề truy xuất rất chậm cho một câu truy vấn trên dữ liệu thực tế hàng GB mà họ ựang quản lý
Ngược lại, tối ưu hoá truy vấn trong CSDL tập trung và trong CSDL song song
ựã có các sinh viên nghiên cứu rất thành công
Trang 181.2.2 Ngoài nước
- Hệ CSDL phân tán Quản lý dân cư
Một số cán bộ cấp cao của Bộ công an ñã nhận ñịnh và thí dụ rất thiết thực những tiện ích ñem lại thực sự là hiệu quả, khi ñất nước có hệ thống quản lý dân cư tốt
Thí dụ: Ở Hoa Kỳ, hệ thống 911 ñược kết nối với hệ thống quản lý dân cư Một công dân bị tai nạn, khi cảnh sát ñến hiện trường sẽ lấy số thẻ của công dân ñó thông qua hệ thống truyền số liệu trên xe cảnh sát về trung tâm ñể lấy thông tin của
cá nhân ñó thông báo về trung tâm thông tin cấp cứu Khi trung tâm này ñiều xe cấp cứu ñến thì nhân viên cấp cứu ñã nhận ñược ñầy ñủ thông tin về nạn nhân như tiền
sử bệnh, chuẩn máu phù hợp với nhóm, ñiều kiện cứu chữa… ñảm bảo ñiều kiện tốt nhất [10]
Quản lý dân cư trong môi trường phân tán ñã ñược thực nghiệm rất lâu ở các nước phát triển
- Tối ưu hoá truy vấn phân tán
Ngược lại trong nước, vấn ñề tối ưu hoá truy vấn phân tán ñã ñược nghiên cứu rất sâu Có nhiều nhà nghiên cứu ñã ñưa ra các hàm heuristic nhằm cải tiến các giải thuật tối ưu hoá truy vấn phân tán R*, SDD-1, AHY Hơn nữa, hầu như tất cả hệ quản trị CSDL hiện nay như SQL Server, DB2 ñều có xử lý tầng tối ưu hoá truy vấn và ñã tích hợp sẵn trong hệ quản trị CSDL của họ
1.3 Các nội dung chính
Chương 1: Giới thiệu
Chương 2: Tổng quan hệ quản trị cơ sở dữ liệu phân tán
Chương 3: Tối ưu hoá câu truy vấn phân tán
Chương 4: Thiết kế và cài ñặt cơ sở dữ liệu và mô hình tối ưu hoá truy vấn cho
hệ phân tán quản lý dân cư tỉnh An Giang
Chương 5: Kết luận và hướng phát triển
Trang 19CHƯƠNG 2: TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN
2.1 Các khái niệm cơ bản về hệ cơ sở dữ liệu phân tán
2.1.1 định nghĩa cơ sở dữ liệu phân tán
Cơ sở dữ liệu (CSDL) phân tán nói riêng và các hệ phân tán nói chung là một lĩnh vực ựược nghiên cứu từ lâu nhưng gần ựây do sự phát triển nhanh chóng của công nghệ truyền tin và sự bành trướng của internet 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
Về mặt trực quan theo nghĩa ựen của cụm từ cơ sở dữ liệu phân tán (CSDLPT) chứa hai cụm từ: Cơ sở dữ liệu và phân tán
Tuy nhiên, việc phân tán ở ựây chúng ta hiểu là phân tán thông tin và các thông tin ựó ựược lưu trữ trên mạng máy tắnh Do vậy:
Cơ sở dữ liệu phân tán = Cơ sở dữ liệu + Mạng máy tắnh
Một CSDL phân tán là một tập hợp nhiều CSDL có có liên quan logic với nhau
và ựược phân bố trên mạng máy tắnh
Cơ sở
dữ liệu
Site xã Vĩnh Hưng (lvtoan1)
Cơ sở
dữ liệu
Site xã Mỹ Hội đông (lvtoan2)
Mạng
Trang 20- Tính chất phân tán: Toàn bộ dữ liệu của CSDL phân tán không ñược cư trú ở
một nơi mà cư trú ra trên nhiều site thuộc mạng máy tính, ñiều này giúp chúng ta phân biệt CSDL phân tán với CSDL tập trung ñơn lẻ
- Tương quan logic: Toàn bộ dữ liệu của CSDL phân tán có một số các thuộc tính
ràng buộc chúng với nhau, ñiều này giúp chúng ta có thể phân biệt một CSDL phân tán với một tập hợp CSDL cục bộ hoặc các tập cư trú tại các site khác nhau trong một mạng máy tính
Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều site, mỗi site có thể khai thác các giao tác truy nhập dữ liệu trên nhiều site khác [1,4]
2.1.2 Phân loại cơ sở dữ liệu phân tán
2.1.2.1 Cơ sở dữ liệu phân tán thuần nhất
Cơ sở dữ liệu phân tán thuần nhất là loại cơ sở dữ liệu ñược thiết kế bằng cách chia nhỏ cơ sở dữ liệu phân tán ñó thành nhiều cơ sở dữ liệu ñịa phương Các cơ sở
dữ liệu ñịa phương ñược ñịnh vị tại một site, ñều ñược quản trị bằng một hệ quản trị, thực hiện trên cùng một hệ ñiều hành [1]
2.1.2.2 Cơ sở dữ liệu phân tán không thuần nhất
Cơ sở dữ liệu phân tán không thuần nhất là loại cơ sở dữ liệu ñược thiết kế bằng cách hợp nhất nhiều cơ sở dữ liệu ñịa phương hiện ñã có và ñang hoạt ñộng thành một cơ sở dữ liệu phân tán duy nhất Các cơ sở dữ liệu ñịa phương có thể ñược quản trị bằng các hệ quản trị cơ sở dữ liệu khác nhau và hệ ñiều hành khác nhau [1]
Trang 21Ứng dụng vào ñề tài:
- Do hệ thống sắp ñược thiết kế trong phần 4.2 ñược thiết kế theo mô hình down tức hệ thống không thuộc vào hệ thống trước ñó, nên ñã chọn loại CSDLPT thuần nhất tạo cho hệ thống Cụ thể như sau:
Top Cả ba site (lvtoanhp, lvtoan1 và lvtoan2) trong hệ thống cùng dùng một hệ quản trị CSDL “MicroSoft SQL Server 2005 Developer”
- Hệ ñiều hành dùng cho site lvtoanhp MS Windows 7, hai site còn lại lvtoan1 và lvtoan2 ñều là MS Windows XP
2.1.3 Các mức trong suốt (trasparency) trong CSDLPT
Khi nghiên cứu hay xây dựng hệ CSDLPT, vấn ñề trong suốt phân tán là lĩnh vực rất quan trọng Bởi vì nó làm cho người dùng tiếp xúc dễ dàng, vì sử dụng như một
hệ CSDL tập trung Do vậy thường các hệ quản trị CSDL cũng ñưa ra cách giải quyết vấn ñề trong suốt trong môi trường phân tán Dưới ñây là ba mức trong suốt rất cần cho ứng dụng phân tán
Thí dụ có câu truy vấn:
SELECT Name into $Name
FROM Supplier
WHERE Snum = $Snum
Trong ñó biến $Snum là một tham số ñầu vào của thủ tục read bên dưới và nó dùng ñể so sánh với trường Snum của quan hệ Supplier(Snum, Name) Ngoài ra, thí
dụ 2.4.b và 2.4.c còn sử dụng biến #FOUND, nó có giá trị true chỉ khi kết quả trả về của câu truy vấn là không rỗng
Ba mức trong suốt ñược minh hoạ như sau [9]:
Mức 1: Trong suốt phân mảnh (Fragmentation transparency)
Trang 22Mức 2: Trong suốt vị trí (Location transparency)
Read(terminal, $SNUM);
SELECT Name into $Name
FROM Supplier1
WHERE Snum = $Snum;
If not #FOUND then
SELECT Name into $Name
SELECT Name into $Name
FROM Supplier1 AT SITE1
WHERE Snum = $Snum;
If not #FOUND then
SELECT Name into $Name
FROM Supplier2 AT SITE3
WHERE Snum = $Snum;
Write(terminal, $Name);
Nhận xét:
Trật tự trong suốt ñược sắp thứ tự như sau: mức 1 > mức 2 > mức 3 Bởi vì dễ dàng nhìn ra rằng: ñối với mức 1 người dùng hoàn toàn không biết quan hệ SUPPLIER bị phân thành hai mảnh trong CSDLPT, còn mức 2 thì người dùng biết
bị phân mảnh nhưng không rõ vị trí phân bố cụ thể từng mảnh, và ngược lại hoàn toàn thì mức 3 người dùng không những biết quan hệ SUPPLIER bị phân mảnh mà còn biết cụ thể các mảnh nằm ở site nào
Từ nhận xét trên, nảy sinh vấn ñề ñối với người xây dựng hệ CSDLPT phải tìm
ra cách cấu hình cho hệ quản trị CSDL ñang sử dụng ñáp ứng việc trong suốt cho hệ thống Vấn ñề này ñược ñược làm rõ ở hệ quản trị CSDL MS SQL Server 2005 Developer qua mục 4.1.3, 4.1.4 của chương 4
2.2 Các khái niệm cơ bản về hệ quản trị cơ sở dữ liệu phân tán
2.2.1 Khái niệm
Hệ quản trị CSDL phân tán ñược ñịnh nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL và làm cho việc phân tán trở nên trong suốt với người sử dụng
Hệ quản trị CSDLPT SUPPLIER1
Hệ quản trị CSDLPT
Trang 23người sử dụng, làm cho người sử dụng truy nhập vào CSDL phân tán như hệ CSDL tập trung Sự thay ñổi việc quản trị không ảnh hưởng tới người sử dụng
Hệ quản trị CSDL phân tán gồm 1 tập các phần mềm (chương trình) sau ñây:
- Các chương trình quản trị các dữ liệu phân tán (Distributed Database - DDB)
- Chứa các chương trình ñể quản trị việc truyền thông dữ liệu (Data Communication - DC)
- Các chương trình ñể quản trị các CSDL ñịa phương (Database Management - DB)
- Các chương trình quản trị từ ñiển dữ liệu (Data Dictionary - DD)
ðể tạo ra một hệ CSDL phân tán (Distributed Database System-DDBS) các tập tin không chỉ có liên quan logic, chúng còn phải có cấu trúc và ñược truy xuất qua một giao diện chung
Môi trường hệ CSDL phân tán là môi trường trong ñó dữ liệu ñược phân tán trên một số vị trí [1]
2.2.3 Các phương thức truy cập dữ liệu từ xa:
Cách thức truy cập cơ sở dữ liệu từ xa qua chương trình ứng dụng theo hai phương thức cơ bản: truy cập từ xa trực tiếp và gián tiếp
- Truy cập từ xa trực tiếp
Theo mô hình trực tiếp dưới (hình 2.6), chương trình ứng dụng ñưa ra yêu cầu truy cập ñến cơ sở dữ liệu từ xa, yêu cầu này ñược hệ quản trị cơ sở dữ liệu tự ñộng tìm nơi ñặt dữ liệu và thực hiện yêu cầu tại ñiểm ñó Kết quả ñược trả lại cho chương trình ứng dụng ðơn vị chuyển ñổi giữa hai hệ quản trị cơ sở dữ liệu là phương thức truy cập cơ sở dữ liệu và kết quả nhận ñược ( thông qua việc thực hiện phương thức truy cập này ) Với cách thức truy cập từ xa như vậy cấp ñộ trong suốt
Hình 2.5: Mô hình các thành phần của HQTCSDLPT
CSDL ñịa phương 1
CSDL ñịa phương 2
DB DC
DB DC
Trang 24phân tán ñược xây dựng bằng cách tạo ra tên file chung (global) ñể ñánh ñịa chỉ thích hợp cho những ñiểm lưu trữ dữ liệu ở xa.[9]
- Truy cập từ xa gián tiếp
Mô hình dưới (hình 2.7) mô tả cách thức truy cập phức tạp hơn Theo mô hình truy cập này, chương trình ứng dụng thực hiện yêu cầu qua chương trình trung gian
ở site khác Chương trình trung gian này ñược người lập trình ứng dụng viết ñể truy cập từ xa ñến cơ sở dữ liệu và trả về kết quả của chương trình ứng dụng yêu cầu.[9]
- Phương thức truy cập từ xa trực tiếp của hệ thống (ñề tài) ñược minh hoạ qua mô
Hệ quản trị CSDL
Hệ quản trị CSDL
Hình 2.6: Phương thức truy cập từ xa trực tiếp
Hệ quản trị CSDL
Hệ quản trị CSDL
Hình 2.7: Phương thức truy cập từ xa gián tiếp
Trang 25- Cách tiếp cận này ñược thể hiện qua công cụ Linked Server trong hệ quản trị CSDL MS SQL Server 2005 Cụ thể ở từng site như sau:
Trang 26EXEC master.dbo.sp_addlinkedserver @server='LinkLvtoanhp', @provider= 'SQLNCLI', @datasrc='192.168.186.1', @srvproduct='SQLNCLI.1'
Và
EXEC master.dbo.sp_addlinkedserver @server='LinkLvtoan1', @provider= 'SQLNCLI', @datasrc='192.168.186.128', @srvproduct='SQLNCLI.1'
2.3 Các hệ quản trị cơ sở dữ liệu phân tán thường gặp
2.3.1 Hệ quản trị cơ sở dữ liệu phân tán kiểu Client/Server
Các hệ quản trị cơ sở dữ liệu phân tán kiểu Client/Server cung cấp kiến trúc hai lớp chức năng Server và Client Server thực hiện công việc quản lý dữ liệu, nghĩa là tất cả việc xử lý và tối ưu hóa truy vấn, quản lý giao dịch và quản lý lưu trữ ñều ñược thực hiện trên Server Client, ngoài ứng dụng và giao diện người sử dụng, có một mô-ñun hệ quản trị cơ sở dữ liệu Client có trách nhiệm quản lý dữ liệu và khóa giao dịch ñược gửi ñến Client Client và Server trao ñổi với nhau bởi các câu lệnh SQL (Structured Query Language) Cụ thể hơn, Client chuyển truy vấn SQL ñến Server, Server sẽ thực hiện và trả lại kết quả cho Client
Có hai loại kiến trúc Client/Server là “ña Client – một Server” và “ña Client - ña Server”
Mô hình cơ sở dữ liệu logic Client/Server là duy nhất Mô hình mức vật lý của nó
có thể phân tán Vì vậy phân biệt giữa Client/Server và ngang hàng không phải ở mức ñộ trong suốt ñược cung cấp cho người sử dụng và cho ứng dụng mà ở mô
Giao diện người
sử dụng
Chương trình ứng dụng
Phần mềm truyền thông
Bộ ñiều khiển dữ liệu nghữ nghĩa
Bộ tối ưu hoá truy vấn
Trang 272.3.2 Hệ quản trị cơ sở dữ liệu phân tán ngang hàng:
Tổ chức dữ liệu vật lý trong các hệ ngang hàng là tổ chức lưu trữ dữ liệu trên các máy khác nhau ðiều này có nghĩa là cần phải có một ñịnh nghĩa nội tại riêng cho mỗi vị trí, ñược gọi là lược ñồ nội tại cục bộ LIS (Local Internal Schema) Lược ñồ khái niệm toàn cục mô tả cấu trúc logic của dữ liệu ở tất cả các vị trí
Dữ liệu trong một cơ sở dữ liệu phân tán thường ñược phân mảnh và nhân bản trên các vị trí khác nhau trên mạng máy tính Vì vậy cần phải mô tả tổ chức lưu trữ
dữ liệu vật lý trên mọi vị trí Cần bổ sung thêm tầng trong kiến trúc cơ sở dữ liệu 3 mức, ñó là lược ñồ khái niệm cục bộ LCS (Local Conceptual Schema) là hợp của các lược ñồ khái niệm cục bộ Mức trên cùng là khung nhìn dữ liệu của người sử dụng, lược ñồ ngoài ES (External Schema) Người sử dụng khác nhau có cách nhìn
dữ liệu cũng khác nhau Như vậy kiến trúc của hệ cơ sở dữ liệu phân tán gồm 3 mức: Có nhiều khung nhìn dữ liệu khác nhau trong mức lược ñồ ngoài, nhưng chỉ
có duy nhất một mô hình khái niệm toàn cục và có nhiều mô hình khái niệm cục bộ, ứng với lược ñồ trong cục bộ trên mỗi vị trí.[4]
ES (External Schema): lược ñồ ngoài
GCS (Global Conceptual Schema): lược ñồ khái niệm toàn cục
LCS (Local Conceptual Schema): lược ñồ khái niệm cục bộ
LIS (Local Internal Schema): lược ñồ nội tại cục bộ
Ứng dụng vào ñề tài:
Hệ quản trị cơ sở dữ liệu phân tán ngang hàng ñược sử dụng cho hệ thống, vì tất
cả trên ba site phải chứa CSDL riêng ñể ñáp ứng các yêu cầu cho từng site một cách nhanh và hiệu quả
Trang 282.4 Thiết kế các hệ cơ sở dữ liệu phân tán
2.4.1 Các chiến lược thiết kế
2.4.1.1 Thiết kế phân tán dữ liệu theo mô hình từ trên xuống (top-down)
Khảo sát phân tích: 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
Thiết kế khung nhìn: ñịnh nghĩa các giao diện cho người sử dụng cuối (end-user)
Thiết kế khái niệm: xem xét tổng thể xí nghiệp 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ể
Thiết kế phân tán: chia các quan hệ thành nhiều quan hệ nhỏ hơn gọi là phân
mảnh và cấp phát chúng cho các site
Thiết kế vật lý: á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 site tương ứng.[9]
Khảo sát phân tích
Mục tiêu hệ thống
Thiết kế khung nhìn Thiết kế khái niệm
Chiến lược truy cập
Lược ñồ khái niệm
toàn cục
Lược ñồ khung nhìn
Thiết kế phân tán
Lược ñồ toàn cục
Thiết kế vật lý
Lược ñồ vật lý Tích hợp các khung nhìn
Trang 292.4.1.2 Thiết kế phân tán dữ liệu theo mô hình từ dưới lên (bottom-up)
Thiết kế từ trên xuống thích hợp với những CSDL ñược thiết kế từ ñầu Tuy nhiên, chúng ta cũng hay gặp trong thực tế là ñã có sẵn một số CSDL, nhiệm vụ thiết kế là phải tích hợp chúng thành một CSDL 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ộ Quá trình này sẽ bao gồm việc tích hợp các lược ñồ cục bộ thành khái niệm lược ñồ toàn cục
Ứng dụng vào ñề tài:
Do hệ thống của ñề tài ñược bắt ñầu từ việc khảo sát lấy thông tin nhu cầu của người sử dụng hệ thống, sau ñó phân tích yêu cầu và cuối cùng ñi ñến thiết kế CSDL ở các mức: khái niệm, phân tán, vật lý cho một hệ thống mới hoàn toàn Vì vậy cách thiết kế từ trên xuống ñược chọn ñể vận dụng cho hệ thống
2.4.2 Các qui tắc phân mảnh
Các nguyên tắc ñảm bảo CSDL khi phân mảnh sẽ ñảm bảo tính không thay ñổi
về ngữ nghĩa, toàn vẹn dữ liệu và ñảm bảo tính ñộc lập dữ liệu Dưới ñây là ba quy tắc phải tuân thủ khi phân mảnh CSDL quan hệ
(1) Tính ñầy ñủ (completeness)
ñảm bảo cho các mục trong R ñược ánh xạ hoàn toàn vào các mảnh và không bị mất Chú ý rằng trong trường hợp phân mảnh ngang “mục dữ liệu” muốn nói ñến là một bộ, còn trong trường hợp phân mảnh dọc, nó muốn nói ñến một thuộc tính
(2) Tính tái thiết ñược (reconstruction)
- Phép kết nối tự nhiên, nếu thực hiện phân mảnh dọc
- Phép hợp các quan hệ khả hợp, nếu thực hiện phân mảnh ngang
Nói cách khác, khả năng phục hồi quan hệ gốc từ các mảnh quan hệ, sẽ ñảm bảo không xảy ra tổn thất thông tin và bảo toàn các phụ thuộc
(3) Tính tách biệt (disjointness)
Trang 30(k≠j ) Tiêu chuẩn này ñảm bảo các mảnh ngang sẽ tách biệt Nếu quan hệ ñược phân mảnh dọc, các thuộc tính khoá 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 là khoá chính của một quan hệ [1]
2.4.3 Các yêu cầu thông tin
Cần lưu ý trong việc thiết kế CSDL 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 site ñề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 hết sức phức tạp
Các thông tin cần cho thiết kế phân tán có thể chia thành bốn loại:
- Thông tin về CSDL bao gồm tập các quan hệ, tập các phụ thuộc
- Thông tin các ứng dụng gồm các câu truy vấn trên các quan hệ
- Thông tin về mạng máy tính, cấu trúc, băng thông
- Thông tin về hệ thống máy tính, bộ nhớ lưu trữ
2.4.4 Các kiểu nhân bản
Nhân bản dữ liệu (data replication) là một kỹ thuật tạo ra nhiều bản sao của cùng một dữ liệu và ñặt những bản này tại nhiều ñịa ñiểm khác nhau Có nhiều mức nhân bản: toàn bộ CSDL, một số quan hệ trong CSDL, một số hàng hoặc một số cột của một quan hệ Bên cạnh ñó, về chức năng của bản sao, chúng ta có thể chỉ có một bản chính (primary copy) hoặc có nhiều bản chính, các bản còn lại ñều là bản phụ (secondary copy)
- ðặc ñiểm của chức năng bản sao chỉ có một bản chính là:
Chỉ cho phép cập nhật tại bản chính, còn các bản phụ chỉ cho phép ñọc
Site ñặt bản chính ñược trao vai trò chịu trách nhiệm quản lý khoá phân tán Các site ñặt bản phụ có riêng thể quản lý khoá của nó và chịu trách nhiệm về các yêu cầu khoá cục bộ tại site ñó
X1
X2 T1: Start
.Write(X1)
Commit
Trang 31
- Cập nhật ựồng bộ
Với phương thức cập nhật ựồng bộ, hành ựộng cập nhật vẫn xảy ra tại bản chắnh nhưng ngay lập tức kết quả sẽ lan truyền ngay ựến các bản phụ Chúng ta cần xem xét quản lý khoá khi một giao dịch phân tán ựưa ra yêu cầu truy xuất mục dữ liệu logic X Giả sử rằng bản chắnh là X1 nằm tại site S1
Khi cần ựọc mục dữ liệu X, một giao dịch có thể nhận khoá ựọc của bất kỳ bản phụ nào từ thể quản lý khoá cục bộ tại ựịa ựiểm chứa bản phụ ựó
Khi cần cập nhật mục dữ liệu X, một giao dịch cần nhận ựược khoá cập nhật của
X từ site S1 chứa bản chắnh X1 Trước khi trao khoá cập nhật cho giao dịch, S1 cần gởi các thông báo trao khoá cập nhật cho tất cả các site có chứa các bản sao của X
và phải nhận ựược sự ựồng ý trao khoá cập nhật Nếu một site ựang trao khoá ựọc cho một giao dịch khác, nó không ựồng ý trao khoá cập nhật theo yêu cầu của site chắnh, vì thế khoá cập nhật này không ựược trao
- Cập nhật không ựồng bộ
Cập nhật không ựồng bộ là phương thức thường ựược chọn ựối với nhiều ứng dụng Theo cách này, một giao dịch phân tán muốn cập nhật dữ liệu nhân bản chỉ cần cập nhật tại bản chắnh và như thế công việc lan truyền các cập nhật ựến các bản phụ ựược hệ thống tự ựộng thực hiện vào một thời ựiểm thắch hợp
Ứng dụng vào ựề tài:
Do ựặc ựiểm của hệ thống nên chọn kỹ thuật nhân bản một số quan hệ trong CSDL và chỉ có một bản chắnh (site trung tâm) và cùng hai bản phụ (site xã Vĩnh Hưng, site xã Mỹ Hội đông) Cụ thể ựược minh hoạ ở mục 4.1.5 và 4.2.3.1 của chương 4
2.4.5 Các kiểu phân mảnh
2.4.5.1 Phân mảnh theo chiều ngang
- Phân mảnh ngang nguyên thuỷ
o định nghĩa
Phân mảnh ngang nguyên thuỷ ựược ựịnh nghĩa bằng một phép toán chọn trên các quan hệ chủ của lược ựồ CSDL Cho quan hệ R, khi ựó các mảnh ngang của quan hệ là kết quả của các phép chọn:
Trang 32o Thí dụ:
Xét quan hệ quản lý dự án PROJ
Như thế nếu cho trước một ñường nối L, trong ñó owner(L)=S và member(L)=R,
và các mảnh ngang suy diễn của R ñược ñịnh nghĩa là:
Trang 33Kỹ sư ñiện Phân tích hệ thống
2.700.000 2.400.000 4.000.000 3.400.000
Kỹ sư ñiện Phân tích Phân tích
Kỹ sư cơ khí
Kỹ sư cơ khí Lập trình Phân tích hệ thống
Kỹ sư ñiện
Kỹ sư cơ khí Phân tích hệ thống Chúng ta có thể nhóm các kỹ sư thành hai nhóm tùy theo lương: nhóm có lương
từ 3.000.000 ñôla trở lên và nhóm có lương dưới 3.000.000 ñô la Hai mảnh NHANVIEN1 và NHANVIEN2 ñược ñịnh nghĩa như sau:
Kỹ sư ñiện Phân tích hệ thống
4.000.000 3.400.000
ChucVu, Luong
MaNV, TenNV, ChucVu
L NHANVIEN
CT
Trang 34Kết quả phân mảnh ngang dẫn xuất của quan hệ NHANVIEN như sau:
Kỹ sư cơ khí
E1 E2 E5 E6 E8
J.Doe M.Smith B.Casey L.Chu J.Jones
Kỹ sư ñiện Phân tích Phân tích hệ thống
Kỹ sư ñiện Phân tích hệ thống
Chú ý:
- Muốn thực hiện phân mảnh ngang dẫn xuất, chúng ta cần ba nguyên liệu (input):
1 Tập các phân hoạch của quan hệ chủ nhân (Thí dụ: CT1, CT2)
(1) Phân mảnh có ñặc tính nối tốt hơn
(2) Phân mảnh ñược sử dụng trong nhiều ứng dụng hơn
2.4.5.2 Phân mảnh theo chiều dọc
o ðịnh nghĩa
hệ chứa một tập con các thuộc tính của quan hệ R và khoá của nó, tức là Ω sẽ ñược
tập con các thuộc tính của quan hệ gốc
Mục ñích của phân mảnh dọc là phân chia quan hệ R thành tập các quan hệ nhỏ hơn ñể có nhiều ứng dụng có thể chỉ cần thực hiện trên một mảnh Mảnh tối ưu là mảnh sinh ra một lược ñồ phân mảnh cho phép giảm tối thiểu thời gian thực hiện của ứng dụng trên mảnh ñó
Trang 35o Thí dụ
Xét quan hệ quản lý dự án PROJ
Hai cách ñơn giản ñể tiến hành phân mảnh hỗn hợp là:
(1) Phân mảnh ngang trước rồi mới phân mảnh dọc
(2) Phân mảnh dọc trước rồi mới phân mảnh ngang
Trang 37CHƯƠNG 3: TỐI ƯU HỐ CÂU TRUY VẤN PHÂN TÁN
3.1 Quá trình tối ưu hố truy vấn
Tối ưu hố truy vấn phân tán là một vấn đề quan trọng trong việc nâng cao hiệu suất truy vấn thơng tin trên mạng Tìm một chiến lược tối ưu hố trong truy vấn phân tán sao cho khả năng truy xuất thơng tin là cao nhất, giảm thiểu được chi phí thực thi cũng như chi phí truyền thơng là hết sức cần thiết Ngồi ra phải đảm bảo được yêu cầu quan trọng trong xử lý truy vấn phân tán, đĩ là tính tồn vẹn của dữ liệu
Tối ưu hĩa truy vấn muốn nĩi đến quá trình sinh ra một hoạch định thực thi truy vấn (query execution plan - QEP) biểu thị cho chiến lược thực thi truy vấn Thể tối
ưu hĩa truy vấn là một đơn thể phần mềm chịu trách nhiệm thực hiện tối ưu hĩa, thường được xem là cấu tạo bởi ba thành phần: một khơng gian tìm kiếm (search space), một mơ hình chi phí (cost model) và một chiến lược tìm kiếm (search strategy) Các thành phần được minh hoạ qua hình 3.1
- Khơng gian tìm kiếm: là tập các hoạch định thực thi biểu diễn cho câu truy
vấn Những hoạch định này là tương đương, vì chúng sinh ra cùng một kết quả nhưng khác nhau ở thứ tự thực hiện các thao tác và cách thức cài đặt những thao tác, vì thế khác nhau về hiệu năng
- Mơ hình chi phí: là sự tiên đốn chi phí của một hoạch định thực thi đã cho
ðể cho chính xác, mơ hình chi phí phải cĩ đủ thơng tin cần thiết về mơi trường thực thi phân tán
Hình 3.1 Quá trình xử lý truy vấn tối ưu
Mơ hình chi phí phân tán
Tạo ra khơng gian tìm kiếm
QEP tương đương Câu truy vấn
QEP tốt nhất
Qui tắc biến đổi
Chiến lược tìm kiếm
Trang 38- Chiến lược tìm kiếm: sẽ khám phá không gian tìm kiếm và chọn ra hoạch ñịnh
tốt nhất dựa theo mô hình chi phí Nó ñịnh nghĩa xem các hoạch ñịnh nào cần ñược kiểm tra và theo thứ tự nào.[1,4]
3.2 Không gian tìm kiếm
ðối với một câu truy vấn ñã cho, không gian tìm kiếm có thể ñược ñịnh nghĩa như một tập các cây toán tử tương ñương, có ñược bằng cách áp dụng các qui tắc biến ñổi ðể nêu bật các ñặc trưng của thể tối ưu hóa truy vấn, chúng ta thường tập trung các cây nối (join tree), là cây toán tử với các phép toán nối hoặc tích Descartes
AND ASG.PNO=PROJ PNO
Không gian tìm kiếm của câu truy vấn này gồm ba cây toán tử tương ñương, thu ñược bằng cách sử dụng tính chất kết hợp của các toán tử hai ngôi Nó ñược biểu diễn qua hình 3.2
`
Mỗi cây này có thể ñược gán một chi phí dựa trên chi phí của mỗi toán tử Cây nối (3.2.c) bắt ñầu với một tích Descartes có thể có chi phí cao hơn rất nhiều so với cây còn lại
Hình 3.2: Các cây toán tử (cây nối) tương ñương
Trang 39lớn có thể mất quá nhiều thời gian tối ưu hóa, ñôi khi còn tốn hơn cả thời gian thực thi thực sự Vì thế, thể tối ưu hóa thường hạn chế kích thước cần xem xét của không gian tìm kiếm
Hạn chế thứ nhất là dùng các heuristic Một heuristic thông dụng nhất là thực hiện phép chọn và chiếu khi truy xuất ñến quan hệ cơ sở Một heuristic thông dụng khác là tránh lấy các tích Descartes Thí dụ trong hình trên cây toán tử (3.2.c) không phải là phần ñược thể tối ưu hóa xem xét trong không gian tìm kiếm
Một hạn chế quan trọng khác ứng với hình dạng của cây nối Hai loại cây nối thường ñược phân biệt là cây nối tuyến tính và cây nối xum xuê ðược minh hoạ qua hình 3.3
- Một cây tuyến tính (linear tree) là cây với mỗi nút toán tử có ít nhất một toán
hạng là một quan hệ cơ sở
- Một cây xum xuê (bushy tree) thì tổng quát hơn và có thể có các toán tử không
có quan hệ cơ sở làm toán hạng (nghĩa là cả hai toán hạng ñều là các quan hệ trung gian)
Nếu chỉ xét các cây tuyến tính, kích thước của không gian tìm kiếm ñược rút gọn
việc thực hiện song song.[9]
3.3 Chiến lược tìm kiếm
Thể tối ưu hoá truy vấn thường sử dụng chiến lược tìm kiếm quy hoạch ñộng (dynamic programming) ñể tìm ra các hoạch ñịnh Bởi vì chiến lược tìm kiếm quy hoạch ñộng có sử dụng tính chất ñơn ñịnh (deterministic) Tính chất ñơn ñịnh là bắt ñầu từ các quan hệ cơ sở, nối thêm nhiều quan hệ tại mỗi bước cho ñến khi thu ñược tất cả mọi hoạch ñịnh khả hữu như trong hình 3.4
Trang 40Quy hoạch ñộng xây dựng tất cả mọi hoạch ñịnh khả hữu theo chiều rộng (breadth-first) hay chiều sâu (depth-first) trước khi nó chọn ra hoạch ñịnh “tốt nhất” ðể hạ thấp chi phí tối ưu hóa, các hoạch ñịnh từng phần rất có khả năng không dẫn ñến một hoạch ñịnh tối ưu ñều ñược xén bỏ ngay khi có thể
Bên cạnh ñó quy hoạch ñộng hầu như có bản chất vét cạn và bảo ñảm tìm ra ñược các hoạch ñịnh Nó phải trả một chi phí có thể chấp nhận ñược theo thời gian
và không gian, khi số quan hệ trong câu truy vấn khá nhỏ Tuy nhiên lối tiếp cận này có chi phí quá cao khi số quan hệ lớn hơn 5 hoặc 6
Với lý do này mà các chú ý gần ñây ñang tập trung vào các chiến lược ngẫu nhiên hóa (randomized strategy) ñể làm giảm ñộ phức tạp của tối ưu hóa nhưng không bảo ñảm tìm ñược hoạch ñịnh tốt nhất Không giống như các chiến lược ñơn ñịnh, các chiến lược ngẫu nhiên hóa cho phép thể tối ưu hóa ñánh ñổi thời gian tối
ưu hóa và thời gian thực thi
ðầu tiên một hoặc nhiều hoạch ñịnh khởi ñầu ñược xây dựng bằng một chiến lược thiển cận Sau ñó thuật toán tìm cách cải thiện hoạch ñịnh này bằng cách thăm các lân cận (neighbor) của nó Một lân cận thu ñược bằng cách áp dụng một biến ñổi ngẫu nhiên cho một hoạch ñịnh Hình 3.5 minh hoạ một biến ñổi ñiển hình gồm
có hoán ñổi hai quan hệ toán hạng ñược chọn ngẫu nhiên của hoạch ñịnh như trong
ñã chứng tỏ bằng thực nghiệm rằng, các chiến lược ngẫu nhiên hoá có hiệu năng tốt hơn các chiến lược ñơn ñịnh khi truy vấn có chứa khá nhiều quan hệ.[9]