ĐẠ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
MỤC LỤC
CHƢƠNG 1 - TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 15
1.1 Cơ sở dữ liệu phân tán 15
1.1.1 Sự ra đời của CSDL phân tán 15
1.1.2 Khái niệm hệ CSDL 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 Kiến trúc hệ quản trị CSDL phân tán 17
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.3 Thiết kế CSDL phân tán 22
1.3.1 Phân đoạn 23
1.3.2 Định vị 23
1.4 Tổng quan về xử lý truy vấn 23
1.5 Xử lý tƣơng tranh trong CSDL phân tán 25
1.5.1 Giao dịch 25
1.5.2 Điều khiển đồng thời phân tán 28
1.6 Độ tin cậy của hệ CSDL phân tán 33
1.6.1 Các sự cố trong hệ quản trị CSDL phân tán 33
1.6.2 Một số giao thức khả tín cục bộ 33
1.6.3 Một số giao thức khả tín phân tán 36
1.7 Vấn đề An toàn dữ liệu 38
1.7.1 Vấn đề An toàn mạng 38
1.7.2 Vấn đề An toàn CSDL 38
1.7.3 Quản lý khung nhìn 39
1.7.4 An toàn dữ liệu 39
1.7.5 Kiểm soát toàn vẹn ngữ nghĩa 40
6
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
7
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.2 Tổng quan về phƣơng thức chuyển tiền 70
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
ngân hàng Chi nhánh 74
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À
TRIỂN KHAI HỆ THỐNG 88
4.1 Phân tích hệ thống 88
4.1.1 Yêu cầu hệ thống 88
4.1.2 Phân tích và lựa chọn kiến trúc phân tán 91
4.1.3 Sơ đồ ngữ cảnh 94
4.1.4 Mô hình dòng dữ liệu 94
4.1.5 Quan hệ thực thể 100
4.2 Thiết kế hệ thống 100
4.2.1 Các thực thể trong hệ thống 100
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
KẾT LUẬN 122
TÀI LIỆU THAM KHẢO 124
MT
Điện chuyển tiền
NH
Ngân hàng
NHTM
Ngân hàng Thương mại
OLS
Oracle Label Security
RBAC
Role Based Access Control - Kiểm soát truy nhập theo vai trò
S
Secret
T
Giao dịch
T
Top Secret
TK
Tài khoản
TM
Quản lý giao dịch
TT
Thanh toán
TTTT
Trung tâm thanh toán
U
Unclassified
VDB
Ngân hàng Phát triển Việt Nam
9
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
11
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
Sư
̣
ra đơ
̀
i cu
̉
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 ta
́
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.
́
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 vu
̣
thanh toa
́
n chuyển tiền sao cho nga
̀
y ca
̀
ng hoa
̀
n thiê
̣
n hơn , nhanh
hơn, thuâ
̣
n tiê
̣
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 ở
16
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ư
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 đồ ngoài Lược đồ ngoài Lược đồ ngoài
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
18
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
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ề.
20
Hệ điều
hành
Phần mềm giao tiếp
DBMS khách
Giao diện
người dùng
Chương trình
ứng dụng
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ẽ.
ES1 ES2 ESn
GCS
LCS1 LCS2 LCSn
LIS1 LIS2 LISn
…
…
…
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.
22
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
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.
Các tầng của xử lý truy vấn
Ta giả thiết rằng: xử lý vấn tin là trước khi thực thi truy vấn, và không sử
dụng các đoạn nhân bản. Các tầng của bộ xử lý truy vấn cho ở hình 1.5.
Phân rã vấn tin
Tầng này phân rã câu truy vấn dạng phép tính quan hệ thành dạng đại số
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.
25
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ý.
1.5.1 Giao dịch
Định nghĩa
Giao dịch là một đơn vị tính toán nhất quán và tin cậy. Một giao dịch nhận
một CSDL, thực hiện một hành động trên CSDL và tạo tạo một bản CSDL mới.
Nó chuyển CSDL từ trạng thái cũ sang một trạng thái mới. Nói chung một giao
dịch được xem như một dãy các thao tác đọc và ghi trên CSDL cùng với các
bước tính toán cần thiết.
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à
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ự
27
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