1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cơ sở dữ liệu phân tán và ứng dụng trong chuyển tiền điện tử

125 1,3K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 125
Dung lượng 2,45 MB

Nội dung

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 3

MỤ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 4

CHƯƠ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 5

3.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 6

DBMS 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 7

DANH 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 8

DANH 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 9

Hì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 10

Hì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 11

LỜ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 12

Kế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 13

Chươ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 14

cá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 15

1.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 18

Hệ đ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 19

lượ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 20

o 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 21

1.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 22

Truy 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 26

Bộ 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 27

gắ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 28

Trong 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 29

thu 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 30

Tuy 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 31

1.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 32

Khi 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 33

Trạ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 34

Thô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 36

1.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 37

Cá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 38

mọ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 40

Mộ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

Ngày đăng: 25/03/2015, 09:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Văn Vỵ (2002), Phân tích thiết kế các hệ thống thông tin hiện đại, Nhà xuất bản thống kê –Hà Nội Sách, tạp chí
Tiêu đề: Phân tích thiết kế các hệ thống thông tin hiện đại
Tác giả: Nguyễn Văn Vỵ
Nhà XB: Nhà xuất bản thống kê –Hà Nội
Năm: 2002
2. Nguyễn Trung Trực (2006), Hệ cơ sở dữ liệu phân tán, Trường đại học Quốc gia Hồ Chí Minh Sách, tạp chí
Tiêu đề: Hệ cơ sở dữ liệu phân tán
Tác giả: Nguyễn Trung Trực
Năm: 2006
3. Nguyễn Văn Vỵ, Nguyễn Việt Hà, Giáo trình kỹ nghệ phần mềm, Nhà xuất bản giáo dục Việt Nam Sách, tạp chí
Tiêu đề: Giáo trình kỹ nghệ phần mềm
Nhà XB: Nhà xuất bản giáo dục Việt Nam
5. Rick Greenwald, Robert Stackowiak, Jonathan Stern (2001), Oracle Essentials, O'Reilly Media, pp. 177-209, 287-296 Sách, tạp chí
Tiêu đề: Oracle Essentials
Tác giả: Rick Greenwald, Robert Stackowiak, Jonathan Stern
Năm: 2001
6. George Coulouris, Jean Dollimore, Tim Kindberg (2003) Distributed Systems: Concepts and Design, Addison-Wesley, pp. 251-289, 265-509 Sách, tạp chí
Tiêu đề: Distributed Systems: Concepts and Design
7. M. Tamer Ozsu, Patrick Valduriez (1999), Principles of Distributed Database Systems (2nd Edition) , Prentice Hall Sách, tạp chí
Tiêu đề: Principles of Distributed Database Systems (2nd Edition)
Tác giả: M. Tamer Ozsu, Patrick Valduriez
Năm: 1999
8. M. Tamer Ozsu (2010), Principles of Distributed Database Systems (3nd Edition) , Prentice Hall Sách, tạp chí
Tiêu đề: Principles of Distributed Database Systems (3nd Edition)
Tác giả: M. Tamer Ozsu
Năm: 2010
9. Andrew S. Tanenbaum , Maarten van Steen(2002) , Distributed Systems: Principles and Paradigms, Prentice Hall Sách, tạp chí
Tiêu đề: Distributed Systems: "Principles and Paradigms
10. Philip A. Bernstenin, Nathan Goodman (1981), “Concurrency Control in Distributed Database Systems”, Computer Corporation of America,Cambridge, Massachusetts Sách, tạp chí
Tiêu đề: Concurrency Control in Distributed Database Systems”, "Computer Corporation of America
Tác giả: Philip A. Bernstenin, Nathan Goodman
Năm: 1981
11. Oracle Database - Advanced Security Administrator’s Guide (2005) (10g Release 2), Oracle Corporation Sách, tạp chí
Tiêu đề: Oracle Database - Advanced Security Administrator’s Guide (2005)
12. Oracle Label Security - Administrator’s Guide (2006) (10g Release 2), Oracle Corporation Sách, tạp chí
Tiêu đề: Oracle Label Security - Administrator’s Guide (2006)
13. Oracle Database Encryption in Oracle 9i (2001),Oracle Corporation Sách, tạp chí
Tiêu đề: Oracle Database Encryption in Oracle 9i (2001)
Tác giả: Oracle Database Encryption in Oracle 9i
Năm: 2001

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w