Chương 15: Phân tích về mặt cơ sở dữ liệu Phân tích cơ sở dữ liệu của khách hàng và của ngân hàng * Cơ sở dữ liệu của khách hàng Một khách hàng khi mở một tài khoản tại một Ngân hàng n
Trang 1Chương 15: Phân tích về mặt cơ sở dữ liệu
Phân tích cơ sở dữ liệu của khách hàng và của ngân hàng
* Cơ sở dữ liệu của khách hàng
Một khách hàng khi mở một tài khoản tại một Ngân hàng nào
đó sẽ được gán một số Tài khoản xác định duy nhất kèm theo một
mã Password hay một số nhận dạng cá nhân PIN (Private
Identification Number) mà chỉ duy nhất có người đó biết, và ứng với số tài khoản đó là một số tiền xác định (lớn hơn hoặc bằng một
số tiền tối thiểu mà ngân hàng yêu cầu để có thể mở tài khoản ) do người đó gửi vào Ngoài ra Ngân hàng sẽ phải lưu trữ các thông tin
về khách hàng của mình như Tên, Ngày sinh, Số chứng minh
nhân dân (CMND), Địa chỉ… Từ những thông tin này, ta có thể
đưa ra các bảng cơ sở dữ liệu lưu trữ các thông tin về khách hàng gồm có ba bảng như sau:
- Bảng Account:
Bảng này gồm có 4 trường:
+ Trường Account: Lưu giữ số tài khoản của khách hàng, đây
là một trường có dạng số 10 chữ số Giá trị của trường là duy nhất trong bảng, nó đóng vai trò là khoá chính
+ Trường Password: Lưu giữ mật mã thâm nhập tài khoản của
khách hàng, một tài khoản sẽ có duy nhất một mã Password tại một thời điểm, ban đầu khi cấp số tài khoản cho khách hàng, tất cả các Password đều có một giá trị mặc định giống nhau, sau đó khách
Trang 2hàng có thể thay đổi giá trị này thành mã riêng của mình Trường này cũng có dạng số có 5 chữ số
+ Trường Balance: Trường này lưu giữ số tiền hiện có trong
tài khoản của khách hàng, trường này là phụ thuộc hàm của trường
Account hay một tài khoản tại một thời điểm chỉ có một giá trị tiền
dư xác định Đây cũng là môt trường có giá trị kiểu số
+ Trường Allowed: Trong nhiều trường hợp, nhiều điều kiện lí
do khác nhau, Ngân hàng có thể cho phép hoặc không cho phép rút tiền ra khỏi một tài khoản nào đó, ví dụ như trường hợp khách hàng phát hiện mình bị lộ mật khẩu, khách hàng sẽ báo cho Ngân hàng tạm ngưng việc cho phép rút tiền ra khỏi tài khoản của mình
và có thể thay đổi mật khẩu, hoặc trong trường hợp một tài khoản nào đó có liên quan tới một tổ chức hay cá nhân nào đó đang bị tình nghi cần bị phong toả hay khoá lại… Do vậy chương trình cần phải có khả năng cho phép một tài khoản được phép rút tiền hay không Điều này được thực hiện bằng cách bổ sung thêm một trường Allowed có dạng Boolean vào bảng Giá trị True hay 1 tương ứng với việc cho phép còn giá trị False hay 0 tương ứng với việc không cho phép
- Bảng UserInformation:
Bảng này lưu trữ thông tin về khách hàng ứng với một giá trị tài khoản xác định Nó bao gồm các trường sau đây:
+ Trường Account: Là khoá chính của bảng, nó xác định một khách hàng ứng với số tài khoản duy nhất có trong bảng Account
ở trên
Trang 3+ Trường Name: Lưu trữ tên khách hàng ứng với số tài khoản
đó Trường này có dạng là một chuỗi Text có chiều dài 30 ký tự
+ Trường Identification: Lưu giữ số CMND của khách hàng
ứng với số tài khoản đó
+ Trường Address: Lưu giữ địa chỉ của khách hàng.
+ Trường Tel: Lưu giữ số điện thoại của khách hàng.
+ Trường Fax : Lưu giữ số Fax của khách hàng.
- Bảng Transaction:
Bảng này lưu trữ thông tin về các lần chuyển khoản giữa các tài khoản với nhau nhằm để giám sát và làm rõ ràng việc chuyển tiền từ tài khoản này sang tài khoản khác để cung cấp cho khách hàng khi họ yêu cầu cũng như làm căn cứ pháp lý nếu cần thiết Bảng này bao gồm có 4 trường như sau:
+ Trường ID: Lưu giữ số thứ tự của các lần chuyển tiền giữa
các tài khoản
+ Trường Date: Lưu giữ thông tin về thời điểm thực hiện việc
chuyển khoản
+ Trường SourceAccount: Lưu giữ thông tin về số tài khoản
nguồn của việc chuyển khoản, tức là tài khoản xuất cho việc chuyển khoản này
+ Trường DestAccount: Lưu giữ thông tin về số tài khoản
đích của việc chuyển khoản, tức là tài khoản mà tiền được nhập vào
Trang 4+ Trường Amount: Lưu giữ thông tin về số tiền được chuyển
trong lần chuyển khoản này
Sau đây là mối quan hệ giữa các bảng dữ liệu luu trữ thông tin người dùng Thông tin của khách hàng là thông tin quan trọng nhất của hệ thống chính vì vậy mà nó cần được bảo vệ và đảm bảo độ chính xác an toàn cao Mọi sai sót về thông tin của khách hàng đều gây ra mất uy tín của ngân hàng nên dữ liệu của khách hàng là ưu tiên số một trong cơ chế bảo mật cho cơ sở dữ liệu của hệ thống
Hình 3.9 Mô tả mối quan hệ của các bảng dữ liệu người dùng
* Cơ sở dữ liệu của ngân hàng
Phần cơ sở dữ liệu này cung cấp các thông tin về các dịch vụ của Ngân hàng đối với khách hàng như thông tin về tỉ giá ngoại tệ, lãi suất tiền gửi, lãi suất tiền cho vay… Phần dữ liệu này gồm có các bảng như sau:
Trang 5- Bảng Exchange: Lưu giữ thông tin về tỉ giá trao đổi ngoại tệ
so với đồng Việt Nam Nó bao gồm các trường như sau:
+ Trường ForeignCurrency: Lưu giữ tên của đồng ngoại tệ + Trường VND: Lưu giữ giá quy đổi của một đồng ngoại tệ
sang đồng Việt Nam
- Bảng VNDDeposit: Lưu giữ các thông tin về lãi suất tiền gửi
cho loại tiền Việt Nam ứng với các kỳ hạn khác nhau Nó bao gồm
có các trường như sau:
+ Trường ID: Đánh số các loại kỳ hạn.
+ Trường Term: Xác định loại kỳ hạn tiền gửi.
+ Trường AdvancedPayInterest: Lưu giữ thông tin về lãi suất
tiền gửi loại trả trước ứng với các loại kỳ hạn xác định cho đồng Việt Nam
+ Trường MonthlyInterest: Lưu giữ thông tin về lãi suất tiền
gửi loại trả theo quý ứng với các loại kỳ hạn xác định cho đồng Việt Nam
+ Trường OnceInterest: Lưu giữ thông tin về lãi suất tiền gửi
loại trả một lần ứng với các loại kỳ hạn xác định cho đồng Việt Nam
- Bảng ForeignDeposit: Lưu giữ các thông tin về lãi suất tiền
gửi cho loại tiền ngoại tệ như đô la Mỹ, đồng Ero hoặc vàng mà ngân hàng hỗ trợ ứng với các kỳ hạn khác nhau Nó bao gồm có các trường như sau:
+ Trường Name : lưu trữ tên các loại tiền được gửi
Trang 6+ Trường ID: Đánh số các loại kỳ hạn
+ Trường Term: Xác định loại kỳ hạn tiền gửi.
+ Trường ForVietnamese: Xác định lãi suất tiền gửi cho
người Việt Nam ứng với từng loại tiền gửi và từng kỳ hạn
+ Trường ForForeigner: Xác định lãi suất tiền gửi cho người
nước ngoài ứng với từng loại tiền gửi và từng kỳ hạn
- Bảng Loan: Lưu giữ thông tin về lãi suất tiền cho vay ứng
với các kỳ hạn khác nhau Nó bao gồm các trường như sau:
+ Trường ID: Đánh số các loại kỳ hạn.
+ Trường Term: Lưu giữ thông tin về loại kỳ hạn tiền cho
vay
+ Trường Term: Xác định kỳ hạn cho vay tiền Giá trị của
trường này hiện có hai loại là loại ngắn hạn (dưới 12 tháng) và loại trung hạn (trên 12 tháng)
+ Trường Private: Xác định lãi suất tiền cho cá nhân hay các
doanh nghiệp cổ phần, tư nhân vay vốn
+ Trường State: Xác định lãi suất tiền cho các doanh nghiệp
nhà nước vay vốn
+ Trường Instalments: Xác định lãi suất tiền cho cá nhân hay
các doanh nghiệp theo hình thức trả góp
- Bảng Directory:
Khi chương trình hoạt động, ngoài những thông tin mà khách hàng có thể truy cập qua tính năng truy cập cơ sở dữ liệu của chương trình một cách hoàn toàn tự động, khách hàng còn có thể
Trang 7quay số máy mở rộng đến một phòng ban hay cá nhân nào đó hoặc
có thể được gặp trực tiếp các nhân viên trực để được biết thêm các thông tin yêu cầu thông qua tính năng Trợ giúp tự động của chương trình Khi khách hàng không biết số mở rộng thì có thể tra cứu danh bạ điện thoại của Ngân hàng thông qua điện thoại của mình Do vậy cần phải lưu giữ thông tin về số điện thoại của các phòng ban, các cá nhân và các nhân viên trực trong cơ sở dữ liệu
để chương trình có thể truy cập và chuyển tiếp cuộc gọi đến các số máy tương ứng khi có yêu cầu của khách hàng Ngoài ra, chương trình cũng cần phải lưu trữ các thông tin để quản lý các nhân viên
đó Từ đó ta có một bảng Directory lưu trữ dữ liệu các phòng ban
và cá nhân bao gồm các trường như sau:
+ Trường DepartmentID: Lưu giữ mã số phòng ban.
+ Trường DepartmentName: Lưu giữ tên các phòng ban
trong Ngân hàng hay tên cá nhân
+ Trường Tel: Lưu giữ số điện thoại ứng với phòng ban hay cá
nhân đó
+ Trường PromptPath: mục đích để cho việc lập trình được
ngắn gọn, và để cho chương trình có tính linh hoạt, có thể cấu hình lại tên phòng ban ứng với các số điện thoại mở rộng, việc truy xuất
cơ sở dữ liệu để tra cứu danh bạ điện thoại được thực hiện bằng
cách truy vấn tất cả các bản ghi của bảng Directory sử dụng vòng
lặp, do vậy để đọc được tên phòng ban hay cá nhân ứng với số điện thoại nào đó thì cần phải đọc một file âm thanh ghi sẵn tương ứng với tên phòng ban hay cá nhân đó, tập tin này được đọc nhờ vào
đường dẫn trỏ tới tập tin được lưu trong trường PromptPath
Trang 8- Bảng MBInformation:
Để tăng tính năng của hệ thống, khi có một cuộc gọi được chuyển tiếp đến một máy điện thoại mở rộng nào đó, nếu máy đó không trả lời thì hệ thống phải có khả năng cho phép người dùng
để lại lời nhắn, ví dụ như trong trường hợp khẩn cấp khi bị lộ mật
mã, khách hàng cần thông báo gấp để nhân viên trực có thể khoá tài khoản của khách hàng đó lại… Do vậy ứng với mỗi số điện thoại sẽ có một mã số hộp thư thoại kèm theo Password của hộp thư đó Người chủ hộp thư có thể đăng nhập từ xa vào hộp thư của
mình để kiểm tra tin nhắn Việc tách riêng bảng MBInformation
và bảng Directory là bởi lí do không phải tất cả các số máy mở
rộng đều có hộp thư thoại, mà điều này tuỳ thuộc vào người quản trị hệ thống cấp quyền sử dụng chức năng hộp thư thoại cho các số máy mở rộng theo yêu cầu của từng Ngân hàng Ta có bảng
MBInformation với các trường như sau:
+ Trường MailboxID: Lưu giữ mã số duy nhất của hộp thư
thoại ứng với một số máy mở rộng xác định
+ Trường Password: Mật khẩu để thâm nhập vào hộp thư
thoại ứng với mã số hộp thư đó
+ Trường ExtNumber: Lưu giữ số máy mở rộng tương ứng
với hộp thư
+ Trường TimeLimit: Trường này lưu giữ khoảng thời gian
tối đa cho phép ghi một tin nhắn của khách hàng Giá trị này có thể được cấu hình bởi người chủ hòm thư
Trang 9+ Trường CurrentSize: Để đảm bảo cho bộ nhớ của hệ thống
không bị quá tải do lưu giữ quá nhiều tin nhắn, người quản trị hệ thống phải hạn chế dung lượng cho phép của mỗi hòm thư thông
qua thông số SizeLimit Trường CurrentSize lưu giữ dung lượng
hiện tại của hộp thư để so sánh với thông số này, để khi dung
lượng của hộp thư này đạt tới giá trị SizeLimit thì không cho phép
người dùng để lại tin nhắn nữa, và lúc đó sẽ có thông báo yêu cầu người chủ hòm thư giải phóng tin nhắn của mình
+ Trường NumOfMsg: Lưu giữ số lượng tin nhắn hiện có
trong hộp thư, để thông báo khi người chủ hòm thư thực hiện việc kiểm tra thư
Cơ sở dữ liệu lưu trữ các dữ liệu hệ thống
* Phân tích:
- Khi mở một tài khoản tại một Ngân hàng nào đó, thông thường Ngân hàng sẽ yêu cầu khách hàng luôn có một số tiền dư
nhỏ nhất gọi là tiền duy trì tài khoản MinimumBalance xác định
trong tài khoản của mình để duy trì tài khoản đó Giá trị cụ thể của
số tiền dư này là khác nhau tuỳ thuộc vào mỗi Ngân hàng và nó cũng có thể thay đổi tuỳ theo từng thời kỳ hoạt động hay chính sách của mỗi Ngân hàng Ví dụ như trong thời gian ngân hàng cần khuyến khích khách hàng mở tài khoản thì số tiền duy trì tài khoản
có thể hạ thấp xuống thậm chí là không cần Do vậy chương trình phải có khả năng cho phép người điều hành hệ thống có thể cấu hình được thông số này
- Để đảm bảo an ninh, tránh trường hợp khi một kẻ gian nào
đó ăn cắp được mật mã của một tài khoản khách hàng sẽ chuyển
Trang 10hết tiền trong tài khoản của khách hàng đó sang tài khoản của mình, chương trình sẽ chỉ cho phép một tài khoản được rút tiền với
số lần lớn nhất xác định MaxNum trong ngày và số tiền lớn nhất MaxAmount có thể rút cho mỗi lần Tuy nhiên việc định ra một giá trị cụ thể cho các thông số này là một vấn đề khó khăn, nó tuỳ thuộc vào quy mô hoạt động của từng Ngân hàng, giá trị tiền có trong tài khoản của các khách hàng.Việc đặt giá trị của nó quá lớn
sẽ gây tổn thất nặng nề cho khách hàng khi có người biết được mật
mã của họ, còn nếu đặt giá trị này quá nhỏ sẽ gây khó khăn cho khách hàng khi họ thực sự cần chuyển một số tiền lớn sang một tài khoản của đối tác, khi đó khách hàng có thể đến Ngân hàng để thực hiện việc chuyển tiền như thường lệ Do vậy chương trình phải cho phép người điều hành có thể thay đổi được các giá trị này tuỳ thuộc vào các chính sách cụ thể của mỗi Ngân hàng Từ đó ta đưa ra bảng Parameter lưu trữ các thông số hệ thống như sau:
+ Trường MaxNum: Lưu giữ số lần rút tiền lớn nhất cho phép
trong một ngày
+ Trường MaxAmount: Lưu giữ số tiền tối đa cho phép rút
một lần
+ Trường MinimumBalance: Lưu giữ số tiền dư tối thiểu phải
có trong một tài khoản để duy trì tài khoản đó
+ Trường MsgRecordedDir: Lưu giữ đường dẫn tới thư mục
chứa các tin nhắn ghi được do khách hàng để lại
Trang 11+ Trường OGGDir: Lưu giữ đường dẫn tới thư mục chứa các
file âm thanh thông báo cho người gọi để để lại lời nhắn khi không gặp được trực tiếp người chủ điện thoại
+ Trường SizeLimit: Lưu giữ giá trị dung lượng tối đa cho
phép đối với các hộp thư
+ Trường MaxDuration: Lưu giữ thời gian tối đa cho phép
lưu giữ một tin nhắn, nếu sau khoảng thời gian này mà người chủ hòm thư không xoá thì hệ thống sẽ tự động quét và xoá tin nhắn này
+ Trường MaxNumOfMsg: Lưu giữ số tin nhắn tối đa cho
phép của một hộp thư
* Các yêu cầu với cơ sở dữ liệu của hệ thống
Cơ sở dữ liệu của hệ thống bao gồm cả cơ sở dữ liệu của khách hàng, của ngân hàng, và các dữ liệu lưu trữ Các dữ liệu này
là thông tin về tài khoản của khách hàng, thông tin về dịch vụ của ngân hàng, các thông số lưu trữ của hệ thống Vì vậy cơ sở dữ liệu của hệ thống phải đảm bảo :
+ Tính bảo mật cao: Ngân hàng luôn liên quan đến các vấn đề tài chính do vậy nếu các thông tin bị lộ thì nó có thể gây thiệt hại lớn cho khách hàng và ảnh hưởng đến vấn đề uy tín của ngân hàng, khả năng kinh doanh của ngân hàng Chính vì vậy mà vấn đề bảo mật là yếu tố hàng đầu được quan tâm đến trong cơ sở dữ liệu của
hệ thống đặc biệt là cơ sở dữ liệu của khách hàng
Trang 12+ Khả năng cập nhật dữ liệu : các thông tin về tỷ giá lãi suất, cùng một số vấn đề khác là các thông tin động do đó nó phải có khả năng cập nhật và thay đổi vào bất cứ thời điểm nào mà nhà quản trị
có nhu cầu Các thông tin về dữ liệu của ngân hàng có thể không cần tính bảo mật quá cao nhưng phải đảm bảo khả năng cập nhật và thay đổi dữ liệu này để phù hợp với các chiến lược kinh doanh trong từng thời điểm của ngân hàng