Chương 4 PHÂN TÍCH THIẾT KẾ, CÀI ĐẶT THỬ NGHIỆM VÀ TRIỂN KHAI HỆ THỐNG
4.2 Thiết kế hệ thống
4.2.1 Các thực thể trong hệ thống
Qua yêu cầu bài toán chuyển tiền điện tử trong Ngân hàng Phát triển Việt Nam trong chương III, các thực thể cần quản lý trong hệ thống chuyển tiền được chia làm hai nhóm:
- Nhóm thực thể quản lý các danh mục Hồ sơ quản lý - Nhóm thực thể quản lý các giao dịch phát sinh a. Nhóm thực thể các danh mục Hồ sơ quản lý
Nhóm thực thể này dùng để lưu danh mục các Hồ sơ bao gồm các thực thể sau:
- Thực thể SBBDSINFO: Dùng để lưu các thông tin danh mục các Chi nhánh của Ngân hàng Phát triển, vì việc thực hiện chuyển tiền được thực hiện giữa các chi nhánh và Trung tâm thanh toán (TTTT), nên cần có một thực thể để
quản lý danh mục các chi nhánh này. Trung tâm thanh toán cũng được coi là một chi nhánh, nó là một chi nhánh đặc biệt. Các thuộc tính của thực thể SBBDSINFO bao gồm:
Bdsid: thuộc tính khoá của thực thể Danh sách chi nhánh, thuộc tính này lưu Mã chi nhánh
Bdsname: Tên chi nhánh
Address: Địa chỉ chi nhánh
Fax: Số Fax của ngân hàng Chi nhánh
Tel: Số điện thoại chi nhánh
- Thực thể CFMAST: Lưu hồ sơ Khách hàng mở Tài khoản tại VDB. Một khách hàng được quản lý trong thực thể này mới có thể thực hiện được giao dịch chuyển tiền, và khách hàng này phải mở tài khoản tại một trong các chi nhánh của VDB, các thuộc tính của thực thể này gồm:
Custtid: Thuộc tính khoá của thực thể Khách hàng, thực thể này lưu mã khách hàng
Custname: Tên khách hàng
ID: Số chứng minh thư/số hộ chiếu của khách hàng
Address: Địa chỉ khách hàng
Mobile: Số điện thoại di động
Phone: Số điện thoại của khách hàng
Taxnum: Mã số thuế
Opndate: Ngày mở Tài khoản của Khách hàng
Brid: Mã chi nhánh mà khách hàng mở tài khoản
- Thực thể GLBANK: Lưu danh mục Tài khoản kế toán nội bộ, đây là Tài khoản tổng hợp để quản lý các tài khoản cá nhân của khách hàng, thực thể này gồm các thuộc tính sau:
GLBank: Là thuộc tính khoá, lưu số tài khoản tổng hợp
GLname: Tên của tài khoản tổng hợp
Baltype: Tính chất của tài khoản, tính chất này mang một trong ba giá trị:
o D - Tính chất Nợ.
o C – Tính chất Có.
o B - Lưỡng tính, tức là Tài khoản vừa có thể là Tài khoản Nợ, hoặc vừa là Tài khoản Có.
- Thực thể DDMAST: Lưu danh mục Tài khoản thanh toán của khách hành, đây chính là Tài khoản khách hàng mở tại chi nhánh của VDB, thực thể này gồm các thuộc tính sau:
Acctno: Là thuộc tính khoá, lưu số tài khoản thanh toán của khách hàng
Ccycd: Loại tiền tệ mở tài khoản
OpnDate: Ngày mở tài khoản
ClsDate: Ngày đóng tài khoản
LastDate: Ngày cập nhật cuối cùng trên tài khoản
Custtid: Mã khách hàng
Status: Trạng thái của Tài khoản. Tài khoản có thể mang một số trạng thái như sau:
o D – Trạng thái ngủ của Tài khoản.
o C - Trạng thái đóng.
o R - Trạng thái dự trữ.
o B - Trạng thái phong toả.
o N - Trạng thái bình thường.
Balace: Số dư của Tài khoản
Acname: Tên của tài khoản thanh toán của Khách hàng
- Thực thể GLMAST: Lưu danh mục Tài khoản thanh toán tổng hợp của khách hàng, đây chính là Tài khoản tổng hợp quản lý tại trung tâm thanh toán thực thể này gồm các thuộc tính sau:
Acctno: Là thuộc tính khoá, lưu số tài khoản thanh toán của khách hàng
Ccycd: Loại tiền tệ mở tài khoản
Accname: Tên của tài khoản tổng hợp
GLBank: Tài khoản cấp 5 (Tài khoản 6 số) của tài khoản tổng hợp.
Balace: Số dư của Tài khoản.
OpnDate: Ngày mở tài khoản.
ClsDate: Ngày đóng tài khoản.
LastDate: Ngày cập nhật cuối cùng trên tài khoản.
Status: Trạng thái của Tài khoản. Tài khoản có thể mang một số trạng thái như sau:
o D – Trạng thái ngủ của Tài khoản.
o C - Trạng thái đóng.
o R - Trạng thái dự trữ.
o B - Trạng thái phong toả.
o N - Trạng thái bình thường.
- Thực thể SBCURRENCY: Lưu danh mục Tiền tệ, gồm các thuộc tính sau:
Ccycd: Thuộc tính khoá, mã của tiền tệ
Ccyname: Tên của tiền tệ
Active: Trạng thái sử dụng của đồng tiền, trạng thái này mang hai giá trị, 1- đang sử dụng hoặc 0 – Không sử dụng.
- Thực thể TBL_MT_INFO: Thực thể này danh mục Thông tin của điện, là các trường của một bức điện chuyển, các thuộc tính của thực thể được mô tả chi tiết trong Phụ lục 01
b. Nhóm thực thể quản lý các giao dịch phát sinh
Nhóm này quản lý các giao dịch phát sinh trong nghiệp vụ chuyển tiền. Khi mỗi giao dịch chuyển tiền được thực hiện, các thông tin về giao dịch sẽ được quản lý bởi các thực thể này
Để quản lý được các giao dịch phát sinh trong bài toán, các thực thể chính gồm có:
- MSGDAY: thực thể quản lý các giao dịch chuyển tiền, các thuộc tính của thực thểm bao gồm:
Txnum: Là thuộc tính khoá, lưu mã số của điện, mã số này là duy nhất của điện trong toàn hệ thống để phân biệt các tin điện khác nhau.
Txno: Số giao dịch, khi một điện được lập, các bút toán hạch toán tương ứng sẽ được tạo ra, Txno sẽ là số giao dịch của một mỗi bút toán hạch toán như thế.
Txdate: Ngày của điện, đây chính là ngày điện được lập và gửi đi.
Rmtype: Loại của điện
Ma_nv: Mã nghiệp vụ, mã này quản lý nghiệp vụ của điện chuyển tiền, luận văn chỉ đề cập đến điện Nội bộ trong ngân hàng Phát triển.
Do đó, nghiệp vụ ở đây chính là Chuyển khoản.
Serial_num: Số Sê-ri của điện, thông tin này phục vụ quản lý một bức điện khi được in ra. Số Sê-ri này dùng để quản lý, lưu trữ hồ sơ của điện bằng văn bản.
Tiente_gui: Loại tiền tệ gửi, thông tin này do khách hàng cung cấp trên phiếu yêu cầu chuyền tiền. Tiền tệ Khách hàng yêu cầu gửi phải phù hợp với Tài khoản Khách hàng cung cấp trên phiếu yêu cầu chuyền tiền.
Sotk_gui: Số Tài khoản chuyển tiền của Khách hàng.
So_giayto_gui: Số giấy tờ gửi, là số của chứng minh thư hoặc số hộ chiếu của Khách hàng yêu cầu chuyển ghi trên phiếu yêu cầu chuyển tiền của khách hàng. Số giấy tờ gửi có thể trùng hoặc khác với số chứng minh thư / số hộ chiếu được lưu trong Tài khoản gửi.
Mucdich_gui: Mục đích của việc chuyển tiền
Tiente_nhan: Loại tiền tệ nhận, thông thường, đồng tiện gửi và đồng tiền nhận phải như nhau. Trường này cung cấp thông tin cho ngân hàng Chi nhánh về đồng tiền mà Khách hàng thụ hưởng được nhận.
So_giayto_nhan: Số giấy tờ nhận, là số của chứng minh thư hoặc số hộ chiếu của người thụ hưởng ghi trên phiếu yêu cầu chuyển tiền của khách hàng. Số giấy tờ nhận phải trùng với số chứng minh thư / số hộ chiếu được lưu trong Tài khoản của người nhận.
Sotk_nhan: Số Tài khoản được chuyển tiền đến của Khách hàng.
Sotien_ghino: Là số tiền mà Khách hàng chuyển yêu cầu chuyển cho người thụ hưởng. Tuỳ theo yêu cầu lựa chọn của Khách hàng gửi mà số tiền thực hưởng của Khách hàng nhận có thể bằng hoặc nhỏ hơn số tiền ghi Nợ này (có thể bị trừ đi phí chuyển tiền và thuế VAT).
Tygia: Là tỷ giá thanh toán tại thời điểm chuyển tiền của đồng Ngoại tệ so với Việt Nam đồng. Tỷ giá này được dùng khi đồng tiền chuyển là đồng ngoại tệ.
Tienphi: Số tiền phí chuyển tiền, là phí Ngân hàng tính cho mỗi lần chuyển tiền của Khách hàng. Số phí này có thể trích ra từ số tiền ghi nợ của Khách hàng, hoặc do Khách hàng thanh toán bên ngoài.
Thuevat: Là thuế giá trị gia tăng mà Khách hàng chuyển tiền phải trả theo từng hình thức chuyển tiền. Số tiền phí này có thể trích ra từ số tiền ghi nợ của Khách hàng, hoặc do Khách hàng thanh toán bên ngoài.
Sotien_ts: Số tiền tổng số, là số tiền mà Khách hàng thực lĩnh khi điện chuyển tiền thành công đến ngân hàng Chi nhánh nhận.
So_hd: Số hoá đơn, là số ghi trên hoá đơn biên nhận của ngân hàng Chi nhánh gửi với Khách hàng chuyển tiền.
Diengiai: Nội dung diễn giải về thông tin điện chuyển, thông tin này do Khách hàng cung cấp trên phiếu yêu cầu chuyển tiền.
Cn_gui: Mã của ngân hàng Chi nhánh gửi. Dựa vào mã này, hệ thống sẽ sinh ra bút toán tương ứng với Tài khoản thanh toán của ngân hàng Chi nhánh gửi với Trung tâm thanh toán.
Cn_nhan: Mã của ngân hàng Chi nhánh nhận điện. Dựa vào mã này, hệ thống sẽ sinh ra bút toán tương ứng với Tài khoản thanh toán của ngân hàng Chi nhành nhận điện với Trung tâm thanh toán.
Nguoi_tao: Mã số của người lập điện đi
Thoidiem_tao: Thông tin về thời điểm tạo điện.
Nguoi_hoantat: Mã số của người hoàn tất điện đi
Thoidiem_hoantat: Thông tin về thời điểm hoàn tất điện.
Nguoi_duyet: Mã số của kiểm soát viên duyệt điện đi
Thoidiem_duyet: Thông tin về thời điểm duyệt điện.
Status: Trạng thái của điện
Di_den: Loại điện đi hoặc điện đến
- GLTRANA: thực thể quản lý các phát sinh hạch toán trên tài khoản tổng hợp, các thuộc tính gồm:
Txdate: Ngày giao dịch
Txno: Mã số giao dịch
Txcode: Số giao dịch
Acctno: Tài khoản tổng hợp
DorC: Phát Nợ/Có của tài khoản
Amt: Số tiền
Ccycd: Loại tiền
- DDTRANA: thực thể quản lý các phát sinh hạch toán trên tài khoản thanh toán của khách hàng, thực thể này có các thuộc tính:
Txno: Mã số giao dịch
DorC: Phát Nợ/Có của tài khoản
Txdate: Ngày giao dịch
Acctno: Tài khoản phát sinh ghi Nợ/Có
Amt: Số tiền
- Một số bảng lưu các thông tin nhật ký về giao dịch, trạng thái mở/đóng sổ hàng ngày, nhật ký người dùng, …
c. Nhóm thực thể quản lý vai trò và quyền hạn người dùng trong hệ thống - TBL_OBJECTS: Thực thể này quản lý tất cả các đối tượng có trên giao
diện người dùng, các thuộc tính của thực thể này gồm có:
o Objid: Thuộc tính khoá, là mã số cấp cho mỗi đối tượng trên giao diện người dùng.
o Objname:Tên của đối tượng trên giao diện người dùng o Objdesc: Mô tả về giao diện người dùng.
o Status: Trạng thái của đối tượng, trạng thái này cho phép đối tượng được sử dụng hay không sử dụng trên giao giao diện.
- TBL_USERS: Quản lý danh sách người dùng trong hệ thống, các thuộc tính của thực thể này bao gồm:
o Userid: Mã số người dùng trong hệ thống. Mã số này chính mà mã tự sinh của Oracle khi một người dùng được tạo ra và được quản lý trong View USER$ của Oracle.
o Username: Tên viết tắt của người dùng.
o Usertitle: Tên đầy đủ của người dùng.
o Bdsid: Mã chi nhánh của người dùng.
- TBL_ROLE_OBJECTS: Thực thể này ánh xạ các vai trò và các đối tượng được tạo ra trong hệ thống. Khi một vai trò được tạo ra trong Oracle, các vai trò sẽ được quản lý trong bảng DBA_ROLES. Mỗi một vai trò là duy nhất trong toàn hệ thống, và quản lý theo theo tên của vai trò đó, mỗi vai trò đó sẽ được ánh xạ vào thực thể TBL_ROLE_OBJECTS và tương ứng với mỗi vai trò sẽ ánh xạ tương ứng vơi các đối tượng trên giao diện người dùng. Thực thể này có các thuộc tính sau:
o Role: Tên của vai trò, đây cũng chính là tên của vai trò được quản lý trong bảng DBA_ROLES của Oracle.
o Objid: Là mã số cấp cho mỗi đối tượng trên giao diện người dùng.
- TBL_USER_ROLES: Bảng phân vai trò cho người dùng. Mỗi người dùng trong hệ thống được phân một số vai trò nhất định. Các thuộc tính của bảng này, bao gồm:
o Userid: Mã số người dùng trong hệ thống. Mã số này chính mà mã tự sinh của Oracle khi một người dùng được tạo ra và được quản lý trong View USER$ của Oracle.
o Role: Tên của vai trò, đây cũng chính là tên của vai trò được quản lý trong bảng DBA_ROLES của Oracle.
4.2.2 Mối quan hệ giữa các bảng trong hệ thống
Qua các đề bài đặt ra tại Chương III và yêu cầu thực tế của nghiệp vụ, hệ thống được thiết kế và xây dựng trên hệ thống cơ sở dữ liệu đồng nhất Oracle
Trong phạm vi của luận văn, dưới đây chỉ đưa ra các bảng dữ liệu chính. Các
trúc đơn giản sẽ không trình bày ở phần báo cáo chính, sẽ được trình bày trong phần phụ lục
a. Mối quan hệ giữa các bảng dữ liệu quản danh mục
- Mỗi Ngân hàng chi nhánh của Ngân hàng Phát triển được lưu trong một dòng của bảng TBL_BR_LIST, mỗi Ngân hàng tham gia thanh toán với hệ thống Ngân hàng Phát triển được lưu thành một dòng trong bảng TBL_BANK_LIST.
- Mỗi chi nhánh Ngân hàng Phát triển có quan hệ với nhiều Ngân hàng khác để tham gia thanh toán.
- Mỗi một chi nhánh Ngân hàng Phát triển có thể giao dịch với nhiều khách hàng và khách hàng có thể tham gia chuyển tiền tại bất cứ chi nhánh Ngân hàng Phát triển nào.
- Với mối quan hệ như vậy, mỗi nhân viên chỉ thuộc quản lý của một Ngân hàng chi nhánh và mỗi nhân viên được cấp một vai trò duy nhất trong Ngân hàng chi nhánh đó.
Hình sau mô tả mối quan hệ giữa các bảng này
TBL_BR_LIST TBL_BANK_LIST
TBL_CUST_LIST TBL_STAFF_LIST
TBL_ROLE_LIST
Hình 4.7: Mối quan hệ giữa các bảng dữ liệu quản danh mục b. Mối quan hệ giữa các bảng dữ liệu quản danh thông tin điện
- Một bức điện chuyển tiền bao gồm nhiều thông tin, trong đó có các thông tin chính:
o Ngân hàng chuyển điện (Ngân hàng chuyển tiền).
o Ngân hàng nhận điện (Ngân hàng thụ hưởng).
o Khách hàng yêu cầu chuyển tiền và khách hàng nhận tiện (người thụ hưởng).
o Đồng tiền được chuyển
o Nhân viên tham gia trong quá trình tạo, chuyển và nhận điện chuyển.
Sơ đồ hình 4.3 mô tả các thông tin chính trên một bức điện
TBL_BR_LIST TBL_BANK_LIST
TBL_CUST_LIST TBL_MT_LIST
TBL_CUR_LIST TBL_STAFF_LIST
Hình 4.8: Sơ đồ mối quan hệ các thông tin trên bức điện
- Như vậy, trong thông tin trong một bức điện chuyển tiền sẽ có nhiều khách hàng, nhiều Ngân hàng tham gia thanh toán và nhiều nhân viên thao tác trên bức điện.
- Mỗi thông tin điện sẽ được thực hiện với một hoặc hai đồng tiền. Đồng tiền chuyển và đồng tiền nhận có thể khác nhau.
c. Mối quan hệ giữa thông tin điện và hạch toán giao dịch
- Mỗi một giao dịch hạch toán được sinh ra dựa trên các thông tin trong một bức điện, bao gồm:
o Thông tin về tài khoản thanh toán của người chuyển và người nhận điện.
o Ngân hàng tham gia thanh toán (Vĩ mỗi tài khoản thanh toán của Ngân hàng chi nhánh tại Trung tâm thanh toán là khác nhau).
o Đồng tiền thanh toán (vì tài khoản thanh toán gắn với đồng tiền thanh toán).
o Tài khoản thanh toán tổng hợp – đây là tài khoản thanh toán quản lý chung của tất cả khách hàng trong toàn hệ thống.
TBL_BR_LIST TBL_CUST_LIST TBL_MT_LIST
TBL_CUR_LIST
TBL_GL_LIST
Hình 4.9: Các bảng dữ liệu quản lý hạch toán thanh toán d. Mối quan hệ giữa các bảng trong chức năng quản lý nhật ký hệ thống
- Các bảng nhật ký hệ thống sẽ ghi lại toàn bộ các thông tin giao dịch và hạch toán diễn ra trong toàn bộ hệ thống, bao gồm:
o Nhật ký về người dùng trong hệ thống.
o Nhật ký về các giao dịch chuyển tiền phát sinh của Ngân hàng chi nhánh.
o Nhật ký về các bút toán hạch toán tương ứng với các giao dịch chuyển tiền.
- Mỗi bảng ghi nhật ký bao gồm các thông tin được mô tả trong hình sau:
TBL_TRANS TBL_CUR_LIST TBL_BR_LIST
TBL_GL_LIST
Hình 4.10: Sơ đồ mối quan hệ giữa các bảng quản lý nhật ký giao dịch e. 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
TBL_ROLE_OBJECTS TBL_USER_ROLES
TBL_USERS
TBL_OBJECTS
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
- Giao diện người dùng bao gồm một số các đối tượng, các đối tượng này là công cụ để giao tiếp với người dùng trong hệ thống. Người dùng sử dụng các đối tượng trên giao diện để thao tác trực tiếp với dữ liệu trong database.
- Mỗi đối tượng trên giao diện được ánh xạ tương ứng với từng từng vai trò.
Do đó, nếu một người dùng được cấp một vai trò thì sẽ được thao tác trên các đối tượng trên giao diện tương ứng với các vai trò được cấp.
- Mối qua hệ giữa bảng TBL_OBJECTS và TBL_ROLE_OBJECTS là quan hệ nhiều - nhiều, mỗi một vai trò sẽ được ánh xạ với một hoặc nhiều đối tượng trên giao diện, và ngược lại, mỗi đối tượng trên giao diện sẽ được ánh trên một hoặc nhiều vai trò của người dùng.
4.2.3 Các công cụ và chức năng của Oracle được sử dụng
- Để kết nối database giữa trung tâm thanh toán và các ngân hàng Chi nhánh cũng như các ngân hàng Chi nhánh với nhau, ta sử dụng cơ sở dữ liệu liên kết (Database Links)
- Để cập nhật dữ liệu được tức thì, nhanh chóng và hiệu quả giữa các database tại trung tâm Thanh toán và các ngân hàng Chi nhánh, ta sử dụng Snapshot với cơ chế cập nhật nhanh, nghĩa là chỉ cập nhật các dữ liệu được thay đổi hay thêm mới.
- Ngoài ra các công cụ và chức năng khác của Oracle được sử dụng để trong suốt vị trí như sử dụng thủ tục (Procedures), sử dụng bí danh (Synonyms), sử dụng khung nhìn (View)
4.2.4 Các công cụ và chức năng bảo mật, an toàn
Phân quyền và nhóm người dùng trong hệ thống a. Phân quyền - Privilege
- Phân quyền là các quyền hạn được thực hiện các thao tác hoặc thực hiện việc truy nhập đến các đối tượng dữ liệu. Trong Oracle để thực hiện được các thao tác trên các đối tượng, người sử dụng phải được cấp các quyền tương ứng trong hệ thống.
- Các quyền hạn này được gán cho người dùng để có thể thực hiện các thao tác trên các đối tượng chỉ định.
- Việc gán quyền được thực hiện bởi người quản trị cơ sở dữ liệu.
- Để thực hiện gán quyền cho một đối tượng, dùng lệnh Grant, để loại bỏ