Mỗi trạm đều có chức năng của một DBMS và có thể trao đổi thông tin lẫn nhau để thực hiện truy vấn, giao tác… Không phân tán Tính đa chủng Các hệ thống khác nhau về phần cứng, giao
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐẶNG ĐÌNH NHƯỢNG
CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ ỨNG DỤNG
TRONG CHUYỂN TIỀN ĐIỆN TỬ
LUẬN VĂN THẠC SĨ
Hà Nội – 2011
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
ĐẶNG ĐÌNH NHƯỢNG
CƠ SỞ DỮ LIỆU PHÂN TÁN VÀ ỨNG DỤNG
TRONG CHUYỂN TIỀN ĐIỆN TỬ
Ngành: CÔNG NGHỆ THÔNG TIN Chuyên ngành: CÔNG NGHỆ PHẦN MỀM
Trang 3MỤC LỤC
CHƯƠNG 1 - TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 15
1.1.3 Khái niệm hệ quản trị CSDL phân tán 15
1.1.4 Phân loại các hệ CSDL phân tán 15
1.2.1 Tiêu chuẩn hóa hệ quản trị CSDL 17
1.2.2 Mô hình kiến trúc hệ DBMS phân tán 18
1.2.3 Kiến trúc hệ quản trị CSDL phân tán 19
1.5.2 Điều khiển đồng thời phân tán 28
1.6.1 Các sự cố trong hệ quản trị CSDL phân tán 33
Trang 4CHƯƠNG 2- MỘT SỐ CÔNG CỤ HỖ TRỢ PHÂN TÁN CỦA ORACLE 44
2.1.2 Hệ thống CSDL không đồng nhất 44
2.1.3 Kiến trúc CSDL Client/Server 45
2.2.1 Tạo trong suốt vị trí bằng khung nhìn (view) 48
2.2.2 Tạo trong suốt vị trí bằng bí danh (Synonyms) 48
2.2.3 Tạo trong suốt vị trí bằng sử dụng thủ tục 48
2.3 Các mô hình phân tán dữ liệu trong Oracle 49
2.3.2 Phương pháp phân tán phân đoạn 51
2.3.3 Phương pháp phân tán sao lặp 53
2.4.5 Giải quyết xung đột trong Oracle 58
2.5.1 Phương pháp sử dụng đối tượng trung gian để bảo mật CSDL 60
2.5.3 Kiểm soát dữ liệu phân tán trong Oracle 64
CHƯƠNG 3 - BÀI TOÁN NGHIỆP VỤ CHUYỂN TIỀN NỘI BỘ TRONG
3.1 Tổ chức hoạt động của Ngân hàng Phát triển Việt Nam (VDB) 68
3.1.1 Nhiệm vụ và mục tiêu hoạt động của Ngân hàng Phát triển Việt Nam 68
Trang 53.1.2 Mô hình tổ chức và quản lý của Ngân hàng Phát triển Việt Nam 69
3.3 Bài toán nghiệp vụ chuyển tiền nội bộ trong VDB 71
3.3.1 Quy trình giao dịch chuyển tiền của khách hàng 71
3.3.2 Quy trình trao đổi thông tin giao dịch giữa Trung tâm thanh toán và các
3.3.3 Quy trình thực hiện với điện Nội bộ 75
3.3.4 Quy trình hạch toán thanh toán nội bộ 82
CHƯƠNG 4 - PHÂN TÍCH THIẾT KẾ, CÀI ĐẶT THỬ NGHIỆM VÀ
4.2.2 Mối quan hệ giữa các bảng trong hệ thống 107
4.2.3 Các công cụ và chức năng của Oracle được sử dụng 111
4.2.4 Các công cụ và chức năng bảo mật, an toàn 111
4.2.5 Một số bảng chính trong cơ sở dữ liệu 116
4.2.6 Giới thiệu một số màn hình giao diện chính 117
Trang 6DBMS Hệ quản trị Cơ sở dữ liệu
GCS Lược đồ khái niệm toàn cục
LCS Lược đồ khái niệm cục bộ
OLS Oracle Label Security
RBAC Role Based Access Control - Kiểm soát truy nhập theo vai trò
Trang 7DANH MỤC BẢNG BIỂU
Bảng 2.1 Tên của cơ sở dữ liệu 44
Bảng 2.2 Bảng mô tả xác thực thông tin qua Database Link 64
Bảng 3.1 Thông tin của điện chuyển tiền 85
Bảng 3.2 Bút toán hạch toán của điện đi 87
Bảng 3.3 Bút toán hạch toán cho TTTT 87
Bảng 3.4 Bút toán hạch toán điện về ngân hàng Chi nhánh 87
Bảng 3.5 Bút toán hạch toán khi thanh toán cho khách hàng 88
Bảng 4.1 Bảng yêu cầu chức năng hệ thống 90
Bảng 4.2 Bảng danh sách các tác nhân 95
Bảng 4.3 Các sự kiện diễn ra tại Ngân hàng Chi nhánh lập điện 97
Bảng 4.4 Các sự kiện diễn ra tại Trung tâm thanh toán 97
Bảng 4.5 Các sự kiện diễn ra tại ngân hàng Chi nhánh nhận điện 98
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình CSDL phân tán 16
Hình 1.2: Kiến trúc tổng quan ANSI/SPARC 17
Hình 1.3: Kiến trúc tham chiếu máy khách-máy dịch vụ 20
Hình 1.4: Kiến trúc tham chiếu CSDL phân tán 21
Hình 1.5: Lược đồ phân tầng tổng quát để xử lý truy vấn phân tán 24
Hình 1.6: Mô hình bộ phận theo dõi hoạt động phân tán 28
Hình 1.7: Phân loại các thuật toán điều khiển đồng thời 29
Hình 1.8: Biểu đồ khóa 2 PL và 2 PL nghiêm ngặt 31
Hình 1.9: Giao diện giữa bộ khôi phục cục bộ và bộ quản lý vùng đệm 33
Hình 1.10: Giao diện nhật ký CSDL 34
Hình 1.11: Thực thi thao tác cập nhật 34
Hình 1.12: Hành động REDO 35
Hình 1.13: Hành động UNDO 35
Hình 1.14: Các hành động trong giao thức ủy thác 2 pha 36
Hình 1.15: Các hành động trong giao thức ủy thác 3 pha 37
Hình 2.1: Cơ sở dữ liệu Oracle đồng nhất phân tán 45
Hình 2.2: Một hệ thống CSDL Oracle phân tán 46
Hình 2.3: Cơ sở dữ liệu Oracle liên kết 47
Hình 2.4: Mô hình phân tán dữ liệu hoàn toàn 50
Hình 2.5: Mô hình phân tán dữ liệu của phương pháp phân tán phân đoạn 52
Hình 2.6: Mô hình phân tán dữ liệu sao lặp 53
Hình 2.7: Mô phỏng tầng CSDL mã hoá để bảo mật CSDL 61
Hình 2.8: Mô phỏng phương pháp sử dụng bảng ảo để truy xuất dữ liệu 62
Hình 2.9 Mã hoá với nhãn dữ liệu trong Oracle 65
Hình 3.1: Sơ đồ bộ máy tổ chức VDB 69
Trang 9Hình 3.2: Sơ đồ bộ máy tổ chức Hội sở chính VDB 70
Hình 3.3: Sơ đồ tổng quát quy trình giao dịch chuyển tiền của khách hàng trong hệ thống Ngân hàng Phát triển 73
Hình 3.4: Sơ đồ giao dịch giữa Ngân hàng Chi nhánh gửi điện và Ngân hàng chi nhánh nhận điện 73
Hình 3.5 Sơ đồ hoạt động của giao dịch chuyển tiền 74
Hình 3.6: Mô hình trao đổi thông tin giao dịch giữa Trung tâm thanh toán và các ngân hàng Chi nhánh 75
Hình 3.7: Quy trình thực hiện đối với điện đi Chi nhánh Online 76
Hình 3.8: Sơ đồ hoạt động của điện đi Chi nhánh Online 77
Hình 3.9: Quy trình thực hiện đối với điện về chi nhánh Online 78
Hình 3.10: Sơ đồ hoạt động nhận điện về Chi nhánh Online 79
Hình 3.11: Quy trình hủy điện với loại hình chi nhánh online 81
Hình 3.12: Sơ đồ hoạt động nhận điện về Chi nhánh Online 82
Hình 4.1: Sơ đồ trao đổi dữ liệu giữa trung tâm Thanh toán và ngân hàng Chi nhánh 93
Hình 4.2: Sơ đồ ngữ cảnh của hệ thống 94
Hình 4.3: Sơ đồ luồng dữ liệu ngữ cảnh tại ngân hàng Chi nhánh lập điện 98
Hình 4.4: Sơ đồ luồng dữ liệu ngữ cảnh tại Trung tâm thanh toán 99
Hình 4.5: Sơ đồ luồng dữ liệu ngữ cảnh tại ngân hàng Chi nhánh nhận điện 99
Hình 4.6: Sơ đồ quan hệ thực thể 100
Hình 4.7: Mối quan hệ giữa các bảng dữ liệu quản danh mục 108
Hình 4.8: Sơ đồ mối quan hệ các thông tin trên bức điện 109
Hình 4.9: Các bảng dữ liệu quản lý hạch toán thanh toán 110
Hình 4.10: Sơ đồ mối quan hệ giữa các bảng quản lý nhật ký giao dịch 110
Hình 4.11: Sơ đồ mối quan hệ giữa người dùng và các đối tượng trên giao diện người dùng 110
Hình 4.12: Bảng Tài khoản tiền gửi của Khách hàng (DDMAST) 116
Trang 10Hình 4.13: Bảng Tài khoản Kế toán (GLMAST) 116
Hình 4.14: Bảng hồ sơ Khách hàng 117
Hình 4.15: Bảng giao dịch phát sinh trên Tài khoản Kế toán 117
Hình 4.16: Bảng giao dịch phát sinh trên Tài khoản thanh toán của KH 117
Hình 4.17: Màn hình giao diện tạo điện đi 118
Hình 4.18: Màn hình nhận và duyệt điện về Chi nhánh 118
Hình 4.19: Màn hình quản lý Ngân hàng Chi nhánh tham gia chuyển tiền 119
Hình 4.20: Màn hình Quản lý Hồ sơ Khách hàng 119
Hình 4.21: Màn hình quản lý danh sách Tài khoản của khách hàng 120
Hình 4.22: Màn hình quản lý Người dùng 120
Hình 4.23: Màn hình quản lý Quyền thao tác trên các đối tượng CSDL 121
Hình 4.24: Màn hình Phân quyền người dùng 121
Trang 11LỜI MỞ ĐẦU
Sự ra đời của hê ̣ thống thanh toán điện tử là một bước chuyển đổi rất lớn trong công tác thanh toán cho khách hàng Điểm khác biệt lớn nhất giữa thanh toán điện tử và thanh toán truyền thống là thông qua các phương tiện điện tử loại
bỏ hầu hết việc giao nhận giấy tờ và việc ký truyền thống, thay vào đó là các phương pháp xác thực mới
Dùng phương pháp mới để xác nhận đúng người có quyền ra lệnh thanh toán
mà không cần tiếp xúc trực tiếp Lợi ích lớn nhất là sự tiết kiệm chi phí và tạo thuận lợi cho các bên giao dịch, các giao dịch qua kênh điện tử có chi phí vận hành rất thấp Chi phí chủ yếu là đầu tư ban đầu, trong điều kiện công nghệ phát triển nhanh như hiện nay, chi phí đầu tư ban đầu cũng đã giảm đi đáng kể Doanh nghiệp không cần phải đầu tư nhân sự, địa điểm và các chi phí lưu chuyển hồ sơ cho việc giao dịch
Giao dịch bằng phương tiện điện tử nhanh hơn so với phương pháp truyền thống, thông thường giao dịch tại quầy cho một khách hàng chuyển tiền mất khoảng 15 phút, không kể thời gian đi lại và chờ đợi nhưng giao dịch trên Internet, Mobile hoặc qua hệ thống thẻ chỉ qua một vài thao tác đơn giản trong một vài phút
Với thanh toán điện tử, các bên có thể tiến hành giao dịch khi ở cách xa nhau, không bị giới hạn bởi không gian địa lý Với người tiêu dùng, họ có thể ngồi tại nhà để đặt hàng, mua sắm nhiều loại hàng hóa, dịch vụ nhanh chóng Việc không phải mang theo nhiều tiền mặt, giảm thiểu rủi ro mất tiền, tiền giả, nhầm lẫn… sẽ giảm bớt được việc thiếu minh bạch so với giao dịch bằng tiền mặt
Là một cán bộ làm việc trong ngành tài chính, với thời gian nhiều năm gắn bố với ứng dụng công nghê ̣ thông tin vào nghiê ̣p vụ của ngành, đă ̣c biê ̣t trong công tác thanh toán, vì vậy tôi chọn đề tài:
“Cơ sở dữ liệu phân tán và ứng dụng trong chuyển tiền điện tử” làm đề
tài Luận văn tốt nghiê ̣p thạc sĩ
Mục đích của việc nghiện cứu đề tài này là nhằm đưa ra những giải pháp đối với nghiê ̣p vụ thanh toán chuyển tiền sao cho ngày càng hoà n thiê ̣n hơn , nhanh hơn, thuâ ̣n tiê ̣n hơn và đáp ứng được các yêu cầu về an ninh, an toàn ngày càng cao của nghiệp vụ thanh toán cũng như tạo sự thuận lợi tốt nhất cho khách hàng tham gia thanh toán
Trang 12Kết cấu của Luận văn, ngoài phần mở đầu và k ết luận , đề tài gồm có 4 chương:
Chương 1 - Tổng quan về cơ sở dữ liệu phân tán
Chương 2 - Một số công cụ hỗ trợ phân tán của Oracle
Chương 3 - Bài toán nghiệp vụ chuyển tiền Nội bộ trong Ngân hàng Phát triển Việt Nam
Chương 4 - Phân tích thiết kế, cài đặt thử nghiệm và triển khai hệ thống
Trang 13Chương 1 - TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1 Cơ sở dữ liệu phân tán
1.1.1 Sự ra đời của CSDL phân tán
Sự phát triển các hệ cơ sở dữ liệu (CSDL) phân tán xuất phát từ nhiều yêu cầu của thực tiễn hình thành và phát triển của các tổ chức Nhiều tổ chức khi tăng trưởng cần có cơ cấu hoạt động không tập trung Nhiều đơn vị thành viên của nó buộc phải phân tán ở những vị trí địa lý khác nhau Vì thế, cần xây dựng CSDL phân tán cho các tổ chức này đề đảm bảỏ hoạt động của tổ chức một cách hiệu quả
Trong quá trình hình thành hoặc hợp nhất, tổ chức cần phải tổ chức lại các CSDL đã tồn tại Chi phí cho việc xây dựng một hệ CSDL phân tán từ các CSDL đã tồn tại thường nhỏ hơn đáng kể so với xây dựng lại một hệ CSDL phân tán từ đầu
Trong quá trình phát triển, một tổ chức có thể tăng thêm một số thành viên mới Khi đó hệ CSDL phân tán cho phép mở rộng hệ thống mà không làm ảnh hưởng lớn tới các thành phần còn lại Việc xây dựng hệ thống phân tán còn đảm bảo hiệu quả công việc, độ tin cậy cao và khả năng sẵn dùng lớn của tổ chức
1.1.2 Khái niệm hệ CSDL phân tán
Hệ CSDL phân tán là một tập hợp các CSDL có thể quan hệ với nhau và được phân tán trên một mạng máy tính trải ra trên một không gian địa lý Các
CSDL có quan hệ logic với nhau cho phép ta phân biệt một CSDL phân tán với một tập các CSDL cục bộ Một CSDL phân tán đòi hỏi phải có một cấu trúc tổ chức lưu trữ và một phương pháp truy nhập dữ liệu có hiệu lực và hiệu quả
1.1.3 Khái niệm hệ quản trị CSDL phân tán
Hệ quản trị CSDL phân tán là một phần mềm cho phép quản trị CSDL phân tán và đảm bảo tính trong suốt của sự phân tán dữ liệu đối với người sử dụng Nhờ tính trong suốt này mà người sử dụng làm việc với CSDL phân tán như làm việc với một CSDL tập trung
1.1.4 Phân loại các hệ CSDL phân tán
Có thể chia CSDL phân tán làm hai loại:
Cơ sở dữ liệu phân tán thuần nhất: là CSDL phân tán được hình
thành do chia nhỏ CSDL thành nhiều CSDL địa phương, được lưu ở
Trang 14các trạm của mạng máy tính Tất cả các CSDL địa phương đều sử dụng cùng một hệ quản trị CSDL và cùng một mô hình dữ liệu như nhau
Cơ sở dữ liệu phân tán không thuần nhất: được tạo ra bằng cách kết
hợp các hệ CSDL địa phương thành một hệ CSDL Các CSDL địa phương có thể sử dụng hệ quản trị CSDL khác nhau và mô hình dữ liệu khác nhau
Cơ sở dữ liệu phân tán
Cơ sở dữ
liệu 1
Cơ sở dữ liệu 2 Cơ sở dữ liệu n
Trang 151.2 Kiến trúc hệ quản trị CSDL phân tán
1.2.1 Tiêu chuẩn hóa hệ quản trị CSDL
Có 3 cách tiếp cận để tiêu chuẩn hóa hệ quản trị CSDL là:
Dựa trên các thành phần: DBMS gồm một số thành phần, mỗi thành
phần có một chức năng Tương tác có trật tự và hệ thống giữa chúng
sẽ cung cấp toàn bộ chức năng của hệ thống
Dựa trên các chức năng, dựa vào nhóm người sử dụng để tạo ra các
chức năng cho nhóm người đó
Dựa trên dữ liệu: Các kiểu dữ liệu khác nhau được định nghĩa, kiến
trúc được đặc tả để xác định các đơn vị chức năng sử dụng dữ liệu này
Một kiến trúc phổ biến được xây dựng cho các hệ quản trị CSDL là kiến trúc ANSI/SPARC
Lược đồ khái niệm Lược đồ trong
Hình 1.2: Kiến trúc tổng quan ANSI/SPARC Trong đó:
Lược đồ trong: xác định tổ chức vật lý của dữ liệu, cơ chế truy xuất
Lược đồ khái niệm: định nghĩa khái niêm niệm của CSDL Lược đồ
biểu diễn các đối tượng dữ liệu và mối quan hệ giữa chúng
Trang 16 Lược đồ ngoài: Tập các khung nhìn, là phần CSDL mà người dùng
có thể truy xuất hay nhìn thấy
1.2.2 Mô hình kiến trúc hệ DBMS phân tán
Mô hình được xây dựng dựa trên 3 yếu tố: tính tự trị, sự phân tán và tính đa chủng
Tính tự trị
Tính tự vận hành là sự phân bố quyền điều khiển Nó chỉ ra mục đích hoạt động của từng DBMS Tính tự vận hành biểu hiện qua một số yếu tố như các hệ thống thành viên có trao đổi thông tin cho nhau hay không, chúng có thể thực hiện giao dịch độc lập không, người ta có thể sửa đổi chúng không Sự hoạt động cục bộ của từng DBMS không bị ảnh hưởng khi chúng tham gia vào hệ DBMS Các phương thức xử lý truy vấn và tối ưu hóa truy vấn của từng DBMS không bị ảnh hưởng của việc thực hiện các câu truy vấn với nhiều CSDL Tính nhất quán và hoạt động của hệ thống không bị thay đổi khi có DBMS tham gia hoặc tách khỏi hệ CSDL Các DBMS còn có thể tự trị trong thiết kế, trong truyền thông và thực thi Thông dụng nhất thì có 3 kiểu lựa chọn sau:
Hệ kín: từng DBMS là cô lập, không biết đền DBMS khác, và không
biết cách để giao tác với chúng
Sự phân tán
Có một số cách phân tán các hệ DBMS sau:
Phân tán kiểu khách chủ: tập trung nhiệm vụ quản lý dữ liệu cho các
hệ thống chủ, còn hệ thống khách lo cung cấp môi trường ứng dụng, giao diện người dùng Việc truyền thông diễn ra giữa hệ thống khách
và hệ thống chủ Các vị trí trên mạng cũng được phân thành nhóm các vị trí hệ thống chủ, và nhóm các vị trí khách Chức năng của các
vị trí này cũng khác nhau
Trang 17 Phân tán kiểu ngang hàng (peer to peer) không có phân biệt máy
chủ, máy khách Mỗi trạm đều có chức năng của một DBMS và có thể trao đổi thông tin lẫn nhau để thực hiện truy vấn, giao tác…
Không phân tán
Tính đa chủng
Các hệ thống khác nhau về phần cứng, giao thức kết nối, bộ quản lý dữ liệu Đặc biệt là các hệ thống khác nhau về cách mô hình hóa dữ liệu, ngôn ngữ truy vấn, giao thức quản lý các giao tác…
Tổng hợp của các phân loại trên cho ta 18 kiến trúc
1.2.3 Kiến trúc hệ quản trị CSDL phân tán
Các hệ khách chủ (máy khách/máy dịch vụ)
Hệ khách chủ xuất hiện vào những năm 90 Các chức năng của hệ phân thành hai lớp Lớp chức năng chủ, và lớp chức năng khách Nó cung cấp một kiến trúc hai tầng, dễ dàng cho việc quản lý độ phức tạp của các DBMS hiện tại
và độ phức tạp của việc phân tán dữ liệu
Phần máy dịch vụ thực hiện phần lớn công việc quản lý dữ liệu Mọi công việc xử lý, tối ưu truy vấn, quản lý giao dịch, quản lý thiết bị lưu trữ để được thực hiện tại phần máy dịch vụ
Phần máy khách gồm các ứng dụng, giao diện, một môdun DBMS máy khách quản lý dữ liệu được gửi đến và có thể quản lý các khóa chốt giao dịch Việc giao tiếp khách-chủ thể hiện ở việc truyền các câu lệnh SQL đi và nhận kết quả trả về
Trang 18Hệ điều
hành
Phần mềm giao tiếpDBMS khách
Giao diện người dùng
Chương trình ứng dụng
Hệ điều
hành
Phần mềm giao tiếpĐiều khiển dữ liệuTối ưu truy vấnQuản lý giao dịchQuản lý phục hồi
Xử lý hỗ trợ thời gian chạy
Kết quảCâu truy vấn
CSDL
Hình 1.3: Kiến trúc tham chiếu máy khách-máy dịch vụ
Có nhiều loại máy khách - máy dịch vụ
Một máy dịch vụ- nhiều máy khách: Loại này không khác nhiều lắm
với CSDL tập trung Chỉ khác ở cách thực hiện giao diện và quản lý
bộ nhớ tạm
Nhiều máy dịch vụ- nhiều máy khách: Có hai cách quản lý
o Mỗi máy khách tự quản lý kết nối của nó với máy dịch vụ
o Mỗi máy khách có một máy dịch vụ chính và nó giao tiếp với các máy dịch vụ khác qua máy dịch vụ này
Các hệ phân tán ngang hàng
Trong hệ phân tán ngang hang, việc tổ chức dữ liệu trên các máy khác nhau
có một định nghĩa riêng cho mỗi vị trí Nó được gọi là lược đồ cục bộ trong LIS (local internal schema) Còn hình ảnh về dữ liệu của cả hệ thống được gọi là
Trang 19lược đồ khái niệm toàn cục GCS (global conceptual schema) Nó mô tả cấu trúc logic của dữ liệu tại mọi vị trí Dữ liệu trong hệ phân tán thường được phân đoạn (chia các quan hệ ra thành nhiều quan hệ con) và nhân bản (chứa các đoạn này tại nhiều vị trí) Vì thế cần mô tả tổ chức logic của dữ liệu tại mỗi vị trí, gọi là lược đồ khái niệm cục bộ LCS (local conceptual schema) GCS là hợp của các LCS Các ứng dụng và việc truy xuất được hỗ trợ bởi lược đồ ngoài ES (external schema) Quan hệ của các lược đồ này được cho ở hình vẽ
Hình 1.4: Kiến trúc tham chiếu CSDL phân tán
Do tính độc lập dữ liệu, độc lập vị trí của CSDL, người dùng chỉ cần truy vấn mà không cần quan tâm đến vị trí, thành phần cung cấp dữ liệu Các câu truy vấn toàn cục sẽ được hệ quản trị CSDL dịch thành các câu truy vấn cục bộ
và được các thành phần DBMS tại các vị trí khác nhau thực hiện
Hai bộ phận trong một máy tính trạm là:
Bộ phận xử lý phía người dùng
o Xử lý giao tiếp người dùng dịch các lệnh người dùng, định dạng dữ liệu
kết quả để chuyển lại cho người dùng
o Bộ phận kiểm soát ngữ nghĩa dữ liệu: sử dụng các ràng buộc toàn vẹn và
thông tin phân quyển trong lược đồ khái niệm cục bộ để kiểm tra xem truy vấn có thể được xử lý hay không
o Bộ phận phân rã và tối ưu truy vấn toàn cục, phiên dịch các truy vấn
toàn cục thành các truy vấn cục bộ sử dụng các lược đồ khái niệm toàn cục, lược đồ khái niệm cục bộ, thư mục toàn cục Sau đó là tối ưu hóa truy vấn, tạo cách ghép nối truy vấn tốt nhất
Trang 20o Bộ phận quản lý hoạt động phân tán: điều phối việc thực hiện phân tán
các yêu cầu của người dùng Nó được gọi là bộ phận quản lý giao dịch phân tán
Bộ phận xử lý dữ liệu
o Bộ phận tối ưu câu truy vấn toàn cục: hoạt động như một bộ chọn
đường truy xuất để tìm ra một đường thích hợp nhất cho việc truy xuất
dữ liệu
o Bộ phận quản lý khôi phục cục bộ: đảm bảo các CSDL cục bộ duy trì
tính nhất quán khi có sự cố
o Bộ phận hỗ trợ trong thời gian thực thi: sẽ truy xuất CSDL theo các
lệnh trong lịch do bộ phận tối ưu sinh ra Nó chính là giao diện với hệ điều hành và chứa bộ quản lý vùng đệm CSDL, quản lý vùng đệm và quản lý việc truy xuất CSDL
1.3 Thiết kế CSDL phân tán
Đối với hệ quản trị CSDL phân tán, việc phân tán đòi hỏi 2 điều sau:
Phân tán hệ quản trị CSDL
Phân tán các chương trình ứng dụng chạy trên hệ quản trị đó
Có thể chỉ chia xẻ dữ liệu, tức là chỉ nhân bản chương trình lên, còn dữ liệu thì không Hoặc có thể chia xẻ cả chương trình và dữ liệu Chương trình nằm tại một vị trí và có thể yêu cầu một dịch vụ từ một chương trình ở vị trí khác hoặc
dữ liệu từ một vị trí khác
Thiết kế CSDL phân tán gồm 4 giai đoạn chính là:
Thiết kế khung nhìn tổng thể: định nghĩa giao diện cho người dùng
cuối Nó cũng là bước thiết kế lược đồ khái niệm toàn cục GCS
Thiết kế phân đoạn: kết quả là lược đồ khái niệm cục bộ LCS
Thiết kế cấp phát: cấp phát các phân đoạn cho các vị trí
Thiết kế vật lý ở mỗi trạm: là thiết kế mô hình vật lý từ các lược đồ
LCS
Hai vấn đề trong thiết kế phân tán cần giải quyết là phân đoạn và cấp phát
Trang 211.3.1 Phân đoạn
Thay vì phân tán các quan hệ, ta chia chúng thành nhiều quan hệ nhỏ hơn gọi là các đoạn, và phân tán các đoạn này Có các kiểu phân đoạn ngang, dọc Phân đoạn phải đảm bảo tính đầy đủ, tính tái thiết được, tính tách biệt
1.3.2 Định vị
Các đoạn trên được cấp phát cho các vị trí trên mạng Nó có thể được nhân bản hoặc là duy nhất Nhân bản cần phải đảm bảo độ tin cậy, hiệu quả cho các truy vấn chỉ đọc Đối với truy vấn cập nhật thì việc nhân bản sẽ gây nhiều khó khăn để duy trì CSDL ở trạng thái nhất quán
1.4 Tổng quan về xử lý truy vấn
Nhờ có sự che dấu các chi tiết về tổ chức vật lý của dữ liệu, các ngôn ngữ CSDL quan hệ cho phép diễn tả các câu truy vấn phức tạp một cách chính xác
và đơn giản
Bài toán xử lý truy vấn trong môi trường phân tán phức tạp hơn nhiều do
có nhiều tham số ảnh hưởng tới hiệu quả của truy vấn như sự phân đoạn hay nhân bản dữ liệu Hơn nữa, việc truy xuất sẽ lâu hơn do dữ liệu có thể lưu trữ ở nhiều vị trí
Các đặc trưng của bộ phân xử lý truy vấn
Các kiểu tối ưu hóa: Một phương án tối ưu hóa trực tiếp là tìm kiếm trong
không gian lời giải, tiên đoán tất cả các chi phí của các cách thực hiện và chọn
ra cách có chi phí thấp nhất
Thời điểm tối ưu hóa: Một câu truy vấn có thể được tối ưu tại nhiều thời
điểm: trước khi thực thi truy vấn hoặc trong khi thực thi truy vấn Tối ưu trước khi thực hiện truy vấn được thực hiện vào lúc biên dịch Ngòai ra, người ta còn
sử dụng phương pháp hỗn hợp để thu được hiệu quả cao nhất
Trang 22Truy vấn dạng đại số trên các quan hệ phân tán
Lược đồ mảnh
Số liệu trên các mảnh
Lược đồ cục bộ
Hình 1.5: Lược đồ phân tầng tổng quát để xử lý truy vấn phân tán
Cục bộ hóa dữ liệu
Sử dụng thông tin về sự phân bố dữ liệu để cục bộ hóa dữ liệu Tầng này xác định xem những đoạn nào cần cho câu truy vấn và biến đổi câu truy vấn phân tán thành câu truy vấn trên các đoạn Các truy vấn được phân đoạn và làm đơn giản hóa để tạo được câu truy vấn tốt nhất
Tối ưu hóa truy vấn toàn cục
Mục đích của tầng này là tìm ra được một cách thực thi gần tối ưu cho các truy vấn, tức là tìm một thứ tự tốt nhất cho việc thực hiện các phép toán trong câu truy vấn theo đoạn, kể cả các thao tác truyền dữ liệu để giảm chi phí xuất nhập, chi phí CPU, chi phí truyền
Trang 23 Tối ưu hóa truy vấn cục bộ
Tầng cuối cùng được thực hiện tại các vị trí có các đoạn cần cho câu truy vấn Mỗi câu truy vấn con được thực hiện tại một vị trí, gọi là truy vấn cục bộ
Nó sẽ được tối ưu hóa bằng cách sử dụng lược đồ cục bộ của vị trí
1.5 Xử lý tương tranh trong CSDL phân tán
Khi truy vấn, có thể xảy ra tình huống có hai câu truy vấn của hai người dùng khác nhau cùng cập nhật một mục dữ liệu, hoặc hệ thống bị sự cố và phải ngừng hoạt động trong khi đang thực hiện truy vấn Những tình huống này gây tổn hại lớn đối với hệ thống nếu như không có biện pháp xử lý
Một giao dịch được đặc tả trong ngôn ngữ SQL như sau
Begin_transaction dinh_danh begin
EXEC SQL cau_truy_van end
Một giao dịch có thể hoàn thành công việc của mình gọi đã ủy thác (commit) Ngược lại, nếu bị dừng mà chưa hoàn thành công việc thì ta gọi là giao dịch bị hủy bỏ (abort) Khi một giao dịch bị hủy bỏ, quá trình thực thi sẽ ngừng và tất cả mọi hành động đã thực hiện đều phải được phục hồi lại để đưa CSDL về trạng thái đúng trước khi thực hiện giao dịch Khi giao dịch đã được
ủy thác thì nó báo cho DBMS biết CSDL đã chuyển sang một trạng thái mới, và kết quả này được lưu vào trong CSDL và không thể phục hồi lại được
Tính chất của giao dịch
Các giao dịch được đặc trưng bằng các thao tác đọc và ghi Chúng có các tính chất sau:
Trang 24 Tính nhất thể: Có nghĩa là hành động của một giao dịch, hoặc là
hoàn thành tất cả, hoặc là không một hành động nào hoàn tất
Tính đúng đắn: Một giao dịch là đúng đắn, tức là ánh xạ CSDL từ
trạng thái đúng đắn này sang trạng thái đúng đắn khác Có 4 yêu cầu đảm bảo tính đúng đắn cho một giao dịch T:
o T không ghi đè lên dữ liệu của những giao dịch khác đang sử dụng
o T không cho phép bất kỳ thao tác ghi nào lên dữ liệu mà nó đang làm việc cho đến khi hoàn thành giao dịch
o T không đọc dữ liệu đang sử dụng của những giao dịch khác
o Những giao dịch khác không được sử dụng dữ liệu mà T đã đọc cho đến khi T hoàn tất
Một giao dịch T gọi là đúng đắn độ 3 nếu nó thoả mãn cả 4 yêu cầu trên Một giao dịch T gọi là đúng đắn độ 2 nếu nó thoả mãn 3 yêu cầu Một giao dịch
T gọi là đúng đắn độ 1 nếu nó thoả mãn 2 yêu cầu Một giao dịch T gọi là đúng đắn độ 0 nếu nó thoả mãn yêu cầu 1
Tính biệt lập đòi hỏi mỗi giao dịch phải hoạt động với những trạng
thái đóng của CSDL, tức là một giao dịch khi đang thực thi không thể uỷ thác các kết quả của nó cho những giao dịch khác đang cùng hoạt động, chừng nào giao dịch chưa kết thúc
Tính bền vững đảm bảo rằng một giao dịch khi đã ủy thác thì kết quả
của nó không bị thay đổi và bị xóa khỏi CSDL
Các loại giao dịch
Phân loại theo thời gian hoạt động của giao dịch
Có hai loại giao dịch:
Giao dịch trực tuyến: Có thời gian thực thi/ đáp ứng rất ngắn khoảng
vài giây và truy xuất một phần CSDL rất nhỏ (ví dụ như giao dịch ngân hang, giao dịch đặt chỗ máy bay)
Giao dịch theo lô: Dùng nhiều thời gian hơn khoảng phút, giờ, ngày,
truy xuất CSDL khá lớn
Phân loại theo cách tổ chức đọc ghi
Tổng quát: pha trộn các hành động đọc và ghi, không theo thứ tự
Trang 25 Giao dịch hai bước: buộc mọi hành động đọc phải được thực hiện
trước mọi hành động ghi
Giao dịch hạn chế: buộc phải đọc một mục dữ liệu trước khi cập
nhật
Giao dich hai bước hạn chế: nếu nó thuộc loại hai bước và loại hạn
chế
Giao dịch theo mô hình hành động: yêu cầu từng cặp <đọc, ghi>
được thực hiện theo kiểu nguyên tử
Phân loại theo cấu trúc của giao dịch
Giao dịch phẳng: có một điểm khởi đầu duy nhất begin_transaction,
và một điểm kết thúc duy nhất end_transaction
Giao dịch lồng: cho phép một giao dịch chứa các giao dịch khác
Những giao dịch được đặt trong giao dịch khác gọi là giao dịch con
Có hai kiểu là lồng đóng và lồng mở Trong giao dịch lồng đóng, các giao dịch con phải bắt đầu sau cha và kết thúc trước cha Giao dịch lồng mở cho phép bên ngoài thấy được một phần kết quả của nó Giao dịch lồng cho phép khôi phục một cách độc lập cho mỗi giao dịch con sau khi gặp sự cố
Kiến trúc
Bộ phận theo dõi hoạt động phân tán gồm hai đơn vị là bộ quản lý giao dịch (Transaction Manager-TM) và bộ xếp lịch (Scheduler-SC) TM chịu trách nhiệm điều phối việc thực hiện các thao tác CSDL của các ứng dụng Ngược lại
SC chịu trách nhiệm cài đặt một thuật toán điều khiển đồng thời cụ thể nhằm đồng bộ hóa việc truy xuất CSDL Ngòai ra, bộ quản lý khôi phục cục bộ tại mọi
vị trí để cài đặt các thủ tục khôi phục tại chỗ nhằm đưa CSDL về trạng thái đúng sau khi xảy ra sự cố (xem hình 1.6)
Trang 26Bộ quản lý giao dịch TM
Bộ xếp lịch SC
Xếp lịch các yêu cầu
Bộ phận theo dõi hoạt động phân tán
Kết quả Các lệnh
TM khác
SC khác Với các bộ
xử lý dữ liệu
Đến các bộ xử lý dữ liệu
Hình 1.6: Mô hình bộ phận theo dõi hoạt động phân tán
Bộ TM cài đặt một giao diện cho các ứng dụng, gồm 5 lệnh:
begin_transaction, read, write, commit, abort
Begin_transaction: là điểm chỉ ra cho TM là có một giao dịch mới
bắt đầu TM sẽ ghi nhận điều này
Read: nếu mục dữ liệu x được lưu cục bộ, giá trị của nó được đọc và
chuyển cho giao dịch Nếu không, TM sẽ chọn một bản sao của x và yêu cầu chuyển bản sao đó cho giao dịch
Write: TM điều phối việc cập nhật giá trị x tại mỗi vị trí có chứa nó
Commit: TM điều phối việc cập nhật vật lý của toàn thể CSDL có
chứa bản sao của mỗi mục dữ liệu mà một lệnh write trước đó đã đưa
ra
Abort: TM kiểm tra lại rằng không có tác động nào của giao dịch
được phản ánh trong CSDL
1.5.2 Điều khiển đồng thời phân tán
Mức độ đồng thời (số lượng giao dịch hoạt động cùng một lúc) là một tham
số quan trọng nhất trong hệ phân tán Do đó, cơ chế điều khiển đồng thời cố
Trang 27gắng tìm ra một phương án thích hợp vừa duy trì được tính nhất quán của CSDL vừa duy trì được mức độ đồng thời cao
Phân loại các cơ chế điều khiển đồng thời
Việc phân loại có thể dựa trên cơ chế phân tán CSDL Đó có thể là cơ chế điều khiển trên CSDL nhân bản hòan toàn, CSDL phân hoạch, CSDL nhân bản một phần Các thuật toán điều khiển cũng có thể được phân loại theo topology của mạng (xem hình 1.7)
Các thuật toán điều khiển đồng thời
Cơ bản
Đa bản Bảo toàn
gian
Hình 1.7: Phân loại các thuật toán điều khiển đồng thời Trong cách dùng khóa chốt, việc đồng bộ hóa giao dịch sử dụng các khóa chốt vật lý hoặc logic trên một phần của CSDL
Khóa tập quyền: một trong các vị trí của mạng được chỉ định làm vị
trí chính, ở đó lưu trữ các bảng khóa cho toàn bộ CSDL và chịu trách nhiệm trao khóa cho các giao dịch
Khóa bản chính thì ngược lại Một trong các bản sao của mỗi đơn vị
khóa được chỉ định làm bản chính, và nó là bản sẽ bị khóa khi giao dịch truy xuất đến đơn vị đó Nếu CSDL không được nhân bản thì cơ chế khóa bản chính sẽ phân phối trách nhiệm quản lý khóa cho một
số vị trí
Khóa phi tập trung: nhiệm vụ quản lý khóa là của tất cả các vị trí
trong mạng Mỗi bộ xếp lịch cục bộ chiụ trách nhiệm về các đơn vị khóa nằm cục bộ tại vị trí đó
Trang 28Trong lớp cơ chế theo timestamp ordering - TO, phải tổ chức thứ tự thực hiện các giao dịch nhằm duy trì được tính nhất quán tương hỗ giữa các vị trí Việc xếp thứ tự này được duy trì bằng cách gán TO cho cả giao dịch lẫn mục dữ liệu trong CSDL Có 3 loại thuật toán là loại TO cơ bản, TO đa phiên bản, TO bảo toàn
Thuật toán điều khiển đồng thời bằng khóa chốt
Ý tưởng chính là đảm bảo dữ liệu dùng chung cho các thao tác tương tranh chỉ được truy xuất mỗi lần một giao dịch Điều này được thực hiện bằng cách liên kết một khóa (lock) với mỗi đơn vị khóa Khóa này được giao dịch đặt ra trước khi nó truy xuất và được điều chỉnh lại vào lúc kết thúc sử dụng đơn vị khóa Một đơn vị khóa không thể truy xuất nếu nó đã bị khóa bởi một giao dịch khác Một yêu cầu khóa giao dịch chỉ được giao nếu đơn vị đó không bị một giao dịch khác nắm giữ
Việc đồng bộ hóa các thao tác tương tranh của các giao dịch đòi hỏi phải dùng có hai loại khóa là khóa đọc (rl) và khóa ghi (wl) Một giao dịch Ti muốn đọc một mục dữ liệu được chứa trong đơn vị khóa x sẽ nhận được một khóa đọc trên x, ký hiệu là rli(x) Tương tự với trường hợp ghi Hai khóa là tương thích với nhau nếu hai giao dịch truy xuất đến cùng một mục dữ liệu có thể nhận được khóa trên mục dữ liệu đó cùng lúc Ta thấy rằng, chỉ có hai khoá đọc mới có thể tương thích được, do các hoạt động đọc không quan tâm đến thứ tự Còn lại giữa các khóa đọc ghi, ghi đọc, ghi ghi thì đều không tương thích
Các DBMS phân tán không chỉ quản lý các khóa mà còn có trách nhiệm xử
lý khóa cho các giao dịch Người sử dụng sẽ không phải xác định khi nào cần khóa dữ liệu, DBMS sẽ lo liệu điều này mỗi khi giao dịch đưa ra yêu cầu đọc hoặc ghi Trong hệ thống dùng khóa chốt, bộ SC chính là bộ quản lý khóa Bộ quản lý giao dịch sẽ chuyển cho bộ quản lý khóa các thao tác CSDL đọc ghi, và các thông tin kèm theo Sau đó, bộ quản lý khóa sẽ kiểm tra xem đơn vị khóa có chứa mục dữ liệu đang bị khóa không Nếu có, và khóa đó không tương thích với khóa yêu cầu, thì giao dịch sẽ bị hoãn lại Ngược lại thì khóa sẽ được đặt và thao tác được thực hiện Sau đó bộ quản lý giao dịch được báo về kết quả thực hiện Việc kết thúc giao dịch sẽ giải phóng khóa khỏi đơn vị khóa
Quy tắc khóa hai pha (2PL) được phát triển cho cho trường hợp một giao dịch cần nhiều khóa Nó yêu cầu một giao dịch không được giải phóng khóa cho đến khi nó đảm bảo rằng không còn yêu cầu thêm khóa nữa 2PL gồm có hai pha, một pha tăng trưởng nhận các khóa, truy xuất các mục dữ liệu, và một pha
Trang 29thu hồi, là giai đoạn giải phóng khóa Điểm khóa là điểm giao dịch đã nhận được hết khóa, nhưng chưa giải phóng khóa nào Tuy nhiên, do việc hủy bỏ dây chuyền nên sẽ xảy ra trường hợp tại thời điểm giải phóng khóa, giao dịch chưa thực hiện xong yêu cầu với mục dữ liệu Vì vậy, một thuật toán chặt chẽ hơn là khóa chốt hai pha nghiêm ngặt đặt ra, cho phép có một khoảng thời gian để thực thi giao dich, rồi sau đó mới giải phóng đồng thới các khóa, đảm bảo thời gian vẫn là không đổi so với 2PL thường
Bắt đầu Điểm khóa Kết thúc Thời gian
Nhận khóa
Giải phóng khóa
Thời gian sử dụng dữ liệu
Hình 1.8: Biểu đồ khóa 2 PL và 2 PL nghiêm ngặt
Thuật toán điều khiển đồng thời bằng dấu thời gian
Thuật toán TO chọn trước một thứ tự tuần tự hóa và thực hiện các giao dịch theo thứ tự đó Bộ quản lý giao dịch sẽ gán cho mỗi giao dịch Ti một dấu thời gian (timestamp) duy nhất ts(Ti) tại lúc bắt đầu Dấu thời gian là một định danh đơn giản được dùng để nhận ra mỗi giao dịch một cách duy nhất và cho phép xếp thứ tự chúng Hai dấu thời gian do bộ quản lý giao dịch tạo ra phải là đơn điệu tăng Phương pháp để gắn dấu thời gian là sử dụng bộ đếm tăng đơn điệu toàn cục, hay sử dụng một bộ đếm cục bộ cho mỗi vị trí Lúc này, một vị trí sẽ gắn thêm định danh danh của nó vào giá trị dấu thời gian Dấu thời gian là một
bộ <giá trị biến đếm cục bộ, định danh vị trí> Khi hai giao dịch có cùng giá trị biến đếm, thì mới sử dụng đến định danh vị trí Quy tắc xếp thứ tự như sau: Cho hai thao tác tương tranh Oij, Okl tương ứng với giao dịch Ti và Tk Oij được thực hiện trước Okl nếu ts(Ti)<ts(Tk) Trong trường hợp này Ti được gọi là giao dịch già hơn và Tk được gọi là giao dịch trẻ hơn
Một lịch biểu sẽ đối chiếu mỗi thao tác mới với các thao tác tương tranh đã xếp lịch Nếu thao tác mới thuộc một giao dịch trẻ hơn so với giao dịch của tất
cả các thao tác tương tranh đã sắp thì thao tác này được chấp nhận ngược lại thì
nó bị loại bỏ, và toàn bộ giao dịch phải khởi động lại vào một thời điểm mới
Trang 30Tuy vậy việc so sánh dấu thời gian chỉ được thực hiện nếu bộ xếp lịch nhận được tất cả các thao tác cần xếp lịch Để dễ so sánh, mỗi mục dữ liệu x được gán một dấu đọc rts(x) là dấu thời gian lớn nhất trong số các dấu thời gian của các giao dịch đã đọc x và một dấu ghi wts(x) là dấu thời gian lớn nhất trong số các dấu thời gian của các giao dịch đã ghi x Và khi đó ta có thể so sánh dấu thời gian của một thao tác với rts(x) và wts(x)
Điều khiển đồng thời theo quan điểm lạc quan
Trong các thuật toán trên, bản chất đều thuộc quan điểm bi quan Việc thực
hiện một thao tác của một giao dịch gồm 4 pha: thẩm tra V, đọc R, tính toán C
và ghi W Ngược lại, giao dịch lạc quan thì thứ tự 4 pha là R, C, V, W Các thao
tác không bao giờ bị trì hoãn Các thao tác R, C được làm mà chưa cần kiểm tra Chỉ đến khi bắt đầu chuẩn bị W thì mới phải thẩm tra V Nếu CSDL vẫn nhất quán thì cho phép W, nếu không thì giao dịch sẽ bị hủy và phải khởi động lại
Quản lý khóa tắc nghẽn
Một khóa cài có thể xảy ra bởi các giao dịch phải chờ đợi lẫn nhau mà không giải quyết được Một tình huống khóa tắc nghẽn là một tập các yêu cầu không bao giờ được đáp ứng do cơ chế điều khiển đồng thời Khóa tắc nghẽn là một hiện tượng bền vững và không tự biến mất nếu không có sự can thiệp từ bên ngòai
Một công cụ để phân tích khóa tắc nghẽn là đồ thị đợi WFG (wait for graph), Nó là một đồ thị có hướng biểu diễn mối liên hệ chờ đợi giữa các giao dịch Một khóa tắc nghẽn xảy ra khi xuất hiện chu trình trong WFG Trong môi trường phân tán, ta phải sử dụng đồ thị đợi toàn cục GWFG là hợp câu các WFG cục bộ
Ba phương pháp để xử lý khóa tắc nghẽn là ngăn chặn khóa tắc nghẽn,
tránh khóa tắc nghẽn, phát hiện và giải tỏa khóa tắc nghẽn
Ngăn chặn khóa tắc nghẽn là để bảo đảm không xảy ra khóa tắc nghẽn
Muốn thế bộ quản lý giao dịch phải kiểm tra một giao dịch khi nó bắt đầu và không cho phép nó tiến hành nếu như nó có thể gây ra khóa tắc nghẽn
Tránh khóa tắc nghẽn: đơn giản nhất là xếp thứ tự các tài nguyên và yêu
cầu mỗi tiến trình truy xuất đến tài nguyên phải theo thứ tự đó
Phát hiện và giải tỏa khóa tắc nghẽn: Trước hết phải phân tích GWFG để
xem có chu trình không Chọn ra một hoặc nhiều giao dịch “nạn nhân” rồi tước quyền và hủy bỏ chúng nhằm phá vì chu trình
Trang 311.6 Độ tin cậy của hệ CSDL phân tán
1.6.1 Các sự cố trong hệ quản trị CSDL phân tán
Sự cố giao dịch: Giao dịch có thể bị sự cố vì một số lý do Các hệ thống
khi gặp sự cố kiểu này thường hủy bỏ giao dịch và đưa CSDL về trạng thái trước khi khởi động giao dịch
Sự cố vị trí: Nó có thể là sự cố phần cứng Các sự cố này luôn làm mất dữ
liệu trong bộ nhớ chính Vị trí bị sự cố sẽ ngưng hoạt động và các vị trí khác sẽ không thể tiếp cận được với nó
Sự cố vật lý: liên quan đến sự cố trong thiết bị lưu trữ thứ cấp để lưu
CSDL Một phần hoặc tất cả CSDL trên thiết bị có thể bị hủy hoại hoặc không thể truy xuất được Phương pháp duy trì bản sao là cần để chống lại sự cố này
Sự cố truyền thông: Là sự cố trên tầng mạng máy tính Nếu đường truyền
bị hỏng thì nó sẽ làm mất thông báo và làm cho mạng bị phân hoạch
1.6.2 Một số giao thức khả tín cục bộ
Bộ quản lý khôi phục cục bộ LRM (local recovery manager) tại mỗi vị trí
có chức năng duy trì tính nguyên tử và bền vững của các giao dịch cục bộ Giả thiết rằng CSDL được lưu ổn định trên thiết bị lưu trữ thứ cấp Bộ quản lý đệm giữa một số dữ liệu mới được truy xuất trong vùng đệm Khi LRM muốn đọc một trang CSDL cho một thao tác của giao dịch nào đó, nó sẽ đưa lệnh fetch, chỉ
ra trang muốn đọc Bộ quản lý đệm sẽ kiển tra trong vùng đệm có trang đó hay không Nếu có thì trang đó được giao cho thao tác, nếu không thì nó sẽ yêu cầu CSDL thứ cấp đọc trang đó vào vùng đệm Khi không còn chỗ trống thì một trang trong vùng đệm sẽ được đưa ra ngoài, nhường chỗ cho trang mới
Cơ sở dữ
liệu ổn định
Bộ quản lý khôi phục cục bộ LRM
Bộ quản lý vùng đệm CSDL
Vùng đệm CSDL (CSDL khả hủy)
Bộ nhớ chính
Đọc/ ghi
Fetch/
flush Đọc/ ghi
Bộ nhớ thứ cấp
Hình 1.9: Giao diện giữa bộ khôi phục cục bộ và bộ quản lý vùng đệm
Trang 32Khi xảy ra sự cố hệ thống, CSDL trong vùng đệm bị hủy, vì thế DBMS cần phải duy trì một số thông tin về trạng thái của nó lúc xảy ra sự cố, để đưa CSDL
về trạng thái đúng đắn Ta gọi đó là quá trình phục hồi thông tin
Có hai khả năng là cập nhật tại chỗ và cập nhật ngoại vùng Cập nhật tại chỗ làm thay đổi giá trị của CSDL ổn định Kết quả là giá trị trước đó đều bị mất Còn cập nhật ngoài vùng không thay đổi giá trị mục dữ liệu trong CSDL ổn định, mà duy trì giá trị mới riêng biệt Theo định kỳ, giá trị này được tích hợp vào CSDL ổn định Việc thực thi thao tác cập nhật có thể dựa vào thông tin trong nhật ký CSDL (log file) để chuyển trạng thái CSDL cũ sang trạng thái CSDL mới
Cơ sở
dữ liệu
ổn định
Bộ quản lý khôi phục cục bộ LRM
Bộ quản lý vùng đệm CSDL
Vùng đệm CSDL (CSDL khả hủy)
Bộ nhớ chính
Đọc/ ghi
Fetch/
flush Đọc/ ghi
Bộ nhớ thứ cấp
Vùng đệm nhật ký Đọc/ ghi
Nhật ký
ổn định
Đọc/ ghi
Hình 1.10: Giao diện nhật ký CSDL Trường hợp một giao dịch đã được hoàn thành nhưng dữ liệu cập nhật còn đang ở trong bộ đệm thì xảy ra một sự cố Khi đó cần phải tiến hành phục hồi để cập nhật thông tin mới này vào CSDL Ngược lại, khi một giao dịch chưa được hoàn thành hoàn toàn thì phải thực hiện thao tác loại bỏ để loại những thao tác
đã thực hiện trước đó của giao dịch
Thao tác cập nhật
Trạng thái đúng đắn cũ
Trạng thái đúng đắn mới
Nhật ký CSDL
Hình 1.11: Thực thi thao tác cập nhật
Trang 33Trạng thái
đúng đắn cũ
Trạng thái đúng đắn mới
Nhật ký CSDL
Hình 1.13: Hành động UNDO
Trang 34Thông báo gì?
Ghi abort vào nhật ký
Ghi commit vào nhật ký
Hình 1.13: Các hành động trong giao thức ủy thác 2 pha
Trang 35 Giao thức ủy thác 3 pha (three-phase commit 3PC)
Ready
Thông báo gì?
Ghi abort vào nhật ký
Ghi pre_commit vào nhật ký
Ghi commit vào nhật
Hình 1.14: Các hành động trong giao thức ủy thác 3 pha
Trang 361.7 Vấn đề An toàn dữ liệu
Vấn đề an toàn dữ liệu là để đảm bảo dữ liệu an toàn trước những truy cập trái phép từ bên ngoài vào hệ thống CSDL, khả năng chống lại những hiểm hoạ, các lỗi và sự tác động không mong đợi tới hệ thống, đồng thời đảm bảo tính sẵn sàng đối với người sử dùng hợp pháp
1.7.1 Vấn đề An toàn mạng
An toàn mạng nhằm chống lại các kiểu tấn công có thể xảy ra trên mạng
Có 3 kiểu tấn công chủ yếu là
Tấn công liên lạc: Kẻ đột nhập có thể thu trộm các thông tin nếu
đường truyền tin là truyền dẫn vô tuyến, truyền dẫn trên đường điện thoại
Tấn công modem: Việc tấn công dựa trên đặc tính của modem và cấu
hình cơ bản do người dùng modem chọn Việc truy nhập qua modem hầu như không giới hạn về dữ liệu và tài nguyên hệ thống
Tấn công hệ thống mạng: dựa vào tính kết nối của các thành phần
trong mạng Kẻ đột nhập có thể giả mạo, sử dụng lại, hoặc ngăn chặn người sử dụng có quyền
Để góp phần làm an toàn mạng, có 3 cách cơ bản:
Mã hóa dữ liệu
Sử dụng các giao thức: các giao thức để xác thực và bảo mật Được
sử dụng để liên kết các thành phần trong mạng
Sử dụng các thành phần tin cậy: các thành phần này thường cung
cấp những phương tiện tốt nhất để bảo vệ hoạt động của các cơ chế đảm bảo an toàn mạng
1.7.2 Vấn đề An toàn CSDL
Việc tấn công CSDL có thể phân ra như sau:
Tấn công làm lộ các thông tin trong CSDL
Tấn công làm thay đổi thông tin được lưu trữ trong CSDL
Tấn công làm cho các cá nhân được cấp quyền không truy nhập được các thông tin trong CSDL
Kẻ tấn công có thể tấn công trực tiếp vào ứng dụng hoặc hệ điều hành
Trang 37Các công cụ bảo vệ CSDL thường dùng là quản lý khung nhìn, quản lý an toàn dữ liệu, kiểm soát toàn vẹn ngữ nghĩa
1.7.3 Quản lý khung nhìn
Lược đồ ngoài cho phép người sử dụng có một hình ảnh cụ thể về CSDL, hay còn gọi là khung nhìn Nó không được lưu trữ thực sự trong CSDL Người dùng chỉ được phép truy xuất CSDL qua khung nhìn, không nhìn thấy hay tác động được lên CSDL
1.7.4 An toàn dữ liệu
An toàn dữ liệu bao gồm việc bảo vệ dữ liệu và kiểm soát cấp quyền
Phương pháp chính là mã hóa dữ liệu dùng cho các thông tin trên đĩa và thông tin trao đổi trên mạng Việc mã hóa là do hệ điều hành phụ trách Dữ liệu chỉ có thể được giải mã bởi người dùng được phép Có hai cách chính để mã là
sử dụng mã DES và phương pháp mã hóa công khai
Kiểm soát cấp quyền đảm bảo chỉ những người sử dụng được phép mới được thực hiện các thao tác được phép trên CSDL Việc kiểm soát này cũng do
hệ điều hành đảm nhiệm Cấp quyền sao cho những người sử dụng khác nhau có quyền khác nhau trên một đối tượng
Kiểm soát cấp quyền tập trung
Cấp quyền tập trung liên quan đến 3 nhân tố: người sử dụng, các thao tác gắn với ứng dụng, các đối tượng CSDL được các thao tác Kiểm sóat cấp quyền gồm việc kiểm tra xem một bộ ba này
Người sử dụng có thể được kiểm soát qua phương pháp đăng nhập thông thường dùng username, password
Đối tượng cần bảo vệ là các tập con CSDL như khung nhìn, quan hệ, bộ, thuộc tính… Để cấp quyền và thu hồi quyền, ta có thể sử dụng lệnh sau
GRANT <kiểu thao thác> ON <đối tượng> TO <người sử dụng>
REVOKE <kiểu thao thác> FROM <đối tượng> TO <người sử dụng> Trong đó kiểu thao tác là các kiểu INSERT, UPDATE, SELECT, DELETE…
Ngoài ra, việc kiểm soát có thể là tập trung vào một người, người này có quyền trên mọi đối tượng và là người dùng các lệnh Grant, Revoke để cấp quyền cho người khác Kiểm soát phi tập trung thì người tạo ra đối tượng là người có
Trang 38mọi quyền đối với đối tượng đó và có thể trao quyền cho người khác, và có thể dùng cây phân cấp quyền để kiểm soát
Kiểm soát cấp quyền phân tán
Trong môi trường phân tán, đối tượng và người dùng là phân tán, do đó phải quan tâm tới việc cấp quyền cho người dùng ở xa, quản lý các quy tắc cấp quyền phân tán, xử lý khung nhìn, nhóm người dung…
Cấp quyền cho người dùng ở xa: Có hai cách để nhận diện người dùng
Dùng user name, password được nhân bản ở tất cả các vị trí
Tất cả các vị trí trong hệ được nhận diện và xác nhận bằng một mật khẩu của vị trí Cách này làm cố định hệ thống
1.7.5 Kiểm soát toàn vẹn ngữ nghĩa
Hệ CSDL phải đảm bảo tính nhất quán Một trạng thái CSDL là nhất quán nếu nó thỏa mãn một tập các ràng buộc Để duy trì tính nhất quán, phải sử dụng nhiều cơ chế như điều khiển đồng thời, tăng độ tin cậy, bảo vệ kiểm soát toàn vẹn ngữ nghĩa
Có hai loại ràng buộc toàn vẹn:
Ràng buộc cấu trúc: diễn tả những đặc tính ngữ nghĩa cơ bản vốn có
trong mô hình Ví dụ như ràng buộc khóa
Ràng buộc hành vi: điều hòa hoạt động của ứng dụng diễn tả mối
quan hệ giữa các đối tượng, mô tả các đặc tính cấu trúc của đối tượng
Phương pháp khai báo dùng để giảm bớt các vấn đề về sự phụ thuộc chương trình, dữ liệu, tính dư thừa mã Các ràng buộc được diễn tả qua các phán đóan của phép toán vị từ nên có thể khai báo và điều chình dễ dàng
Kiểm soát toàn vẹn ngữ nghĩa tập trung
Một hệ thống kiểm soát toàn vẹn ngữ nghĩa có hai thành phần chính:
Một ngôn ngữ cho phép diễn tả và thao tác các phán đoán toàn vẹn
Một cơ chế để thực hiện các hoạt động cụ thể để đảm bảo toàn vẹn khi cập nhật
Đặc tả các ràng buộc toàn vẹn phải sử dụng một ngôn ngữ cấp cao (SQL)
Các ràng buộc được định nghĩa vào lúc tạo các quan hệ hoặc sau đó Trong hệ CSDL quan hệ, ràng buộc toàn vẹn được định nghĩa là các phán đoán Một phán
Trang 39đoán là một biểu thức đặc biệt được viết bằng phép tính quan hệ Có 3 loại ràng buộc toàn vẹn:
Ràng buộc tiền định: Ràng buộc các thuộc tính không null, ràng
buộc khóa duy nhất, khóa ngoại, phụ thuộc hàm…
Dùng các cấu trúc <thuộc tính>NOT NULL IN<bảng>, <thuộc tính>UNIQUE IN<bảng>, <thuộc tính>IN<bảng> REFERENCE<thuộc tính>IN<bảng>., <thuộc tính>IN<bảng> DETERMINES<thuộc tính>
Ràng buộc tiền dịch: diễn tả các tiền điều kiện phải được thảo mãn
bởi các bộ trong một quan hệ đối với các kiểu cập nhật đã cho Dùng cấu trúc CHECK ON <bảng> WHEN <kiểu cập nhật> (điều kiện cập nhật)
Ràng buộc tổng quát: hệ CSDL phải đảm bảo những chức năng này
luôn đóng Ràng buộc này có thể liên quan tới nhiều quan hệ Dùng cấu trúc CHECK ON danh sách <thuộc tính: bảng (điều kiện)>
Thực thi ràng buộc nhằm loại bỏ các chương trình cập nhật vi phạm ràng
buộc nào đó Có hai phương pháp:
Phát hiện mâu thuẫn: hay còn gọi là phương pháp kiểm tra sau: áp
dụng sau khi trạng thái CSDL đã thay đổi Thao tác cập nhật u chuyển CSDL từ trạng thái D sang trạng thái Du Thuật toán xác định các ràng buộc vẫn đóng trên Du bằng cách kiểm tra Du Nếu
Du không phải là một trạng thái nhất quán thì DBMS sẽ cố gắng hiệu chỉnh Du để đưa CSDL sang trạng thái Du’, hoặc khôi phục lại
Du Tuy nhiên, phương pháp này không hiệu quả nếu phải thực hiện
nhiều thao tác hiệu chỉnh
Ngăn chặn mâu thuẫn: Thao tác cập nhật chỉ được thực hiện nếu nó
chuyển CSDL sang một trạng thái nhất quán khác Nó kiểm tra giá trị các bộ cần cập nhật trước khi cập nhật Đây là phương pháp kiểm tra trước, hiệu quả hơn do không phải khôi phục các thao tác Phương pháp này hiệu chỉnh các truy vấn bằng cách lấy hội các vị từ phán đoán với các vị từ cập nhật của mỗi chỉ thị của giao dịch
Cách để tạo phán đoán biên dịch có thể thực hiện vào lúc định nghĩa phán đoán u là một cập nhật trên quan hệ R R+ sẽ chứa các bộ được chèn vào R, R- chứa các bộ bị xóa khỏi R Nếu u là thao tác chèn thì R- là rỗng Nếu u là xóa thì R+là rỗng u là phép biến đổi thì sau sửa đổi R= R+ hợp với hiệu của R và R-
Trang 40Một phán đoán biên dịch là một bộ ba (RTC) với R là quan hệ, T là kiểu cập nhật, C là phán đoán Nếu I là một ràng buộc, ta sẽ định nghĩa ra một tập các phán đoán biên dịch cho các quan hệ được I tác động Khi có một quan hệ có trong I được cập nhật bởi u thì các phan đoán biên dịch cần phải được kiểm tra,
và chỉ cho những phán đoán đã được định nghĩa trên I đối với kiểu u được thực hiện mà thôi
Kiểm soát toàn vẹn ngữ nghĩa phân tán
Ta giả thiết rằng, hệ thống là tự trị vị trí, mỗi vị trí đều có thể xử lý các câu truy vấn cục bộ và thực hiện kiểm soát dữ liệu
Định nghĩa các phán đoán toàn vẹn phân tán Các phán đoán toàn vẹn phân tán được diễn tả bằng các phép tính quan hệ bộ Ta có thể chia làm 3 lớp phán đoán
Phán đoán riêng: là các phán đoán đơn biến, đơn quan hệ, chỉ đề cập
đến các bộ được cập nhật, độc lập với phần còn lại của CSDL
Phán đoán hướng tập hợp: gồm các ràng buộc đa biến, đơn quan hệ
như phụ thuộc hàm, hoặc đa biến đa quan hệ như các ràng buộc khóa ngoại
Phán đoán có các hàm gộp: đòi hỏi phải được xử lý đặc biệt do chi
phí ước lượng hàm gộp cao
Việc định nghĩa phán đoán toàn vẹn được thực hiện qua hai bước Bước 1
là biến đổi các phán đoán ở cấp cao thành các phán đoán biên dịch theo các kỹ thuật của tập trung Bước 2 là lưu các phán đoán này tùy theo nó thuộc lớp phán đoán nào
Với phán đoán riêng thì định nghĩa phán đoán được gửi tới mọi vị trí lưu trữ các đoạn của quan hệ có mặt trong phán đoán Phán đoán phải tương thích với dữ liệu của quan hệ tại mỗi vị trí Tính tương thích ở đây gồm 2 mức là
Tương thích vị từ: xây dựng bằng cách so sánh vị từ phán đoán với vị
từ mảng Một phán đoán C không tương tích với vị từ mảng p nếu C đúng mà p sai Nếu tính tương thích vị trí không được đảm bảo thì định nghĩa phán đoán đó phải được loại bỏ toàn cục do bộ các đoạn này không thảo mãn tính ràng buộc
Nếu có tương thích vị từ rồi thì phán đoán sẽ được thẩm tra ứng với thể hiện của đoạn Nếu thể hiện đó không thỏa phán đoán thì phán