(thêm, xóa, sửa số lượng kì hạn và lãi suất):
Sơ đồ:
Các luồng dữ liệu:
o D1: Thông tin loại tiết kiệm
o D2: Không có
o D3: Danh sách loại tiết kiệm, danh sách sổ tiết kiệm
o D4: D1
o D5: Không có
o D6: D4 Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên).
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc D3 từ bộ nhớ phụ lên. Nếu thêm quy định thì xuống bước 4, xóa quy định thì xuống bước 6 , sửa quy định thì xuống bước 9.
o Bước 4: Xét xem kỳ hạn ở D1 có trùng với kỳ hạn ở D3 không. Nếu trùng
thì xuống bước 13.
o Bước 5: Thêm D1 vào bộ nhớ phụ và xuống bước 12.
o Bước 6: Xét xem kỳ hạn ở D1 có trùng với kỳ hạn ở D3 không. Nếu
không trùng xuống bước 13.
o Bước 7: Xét xem kỳ hạn ở D1 có tồn tại sổ tiết kiệm nào đang sử dụng không. Nếu có xuống bước 13.
o Bước 8: Xóa D1 khỏi bộ nhớ phụ và xuống bước 12.
o Bước 9: Xét xem kỳ hạn ở D1 có trùng với kỳ hạn ở D3 không. Nếu
không trùng thì xuống bước 13.
o Bước 10: Xét xem lãi suất ở D1 có trùng với lãi suất ở D3 không. Nếu
trùng thì xuống bước 13.
o Bước 11: Cập nhật các giá trị ở D1 vào bộ nhớ phụ.
o Bước 12: Hiển thị D6 ra màn hình.
o Bước 13: Đóng cơ sở dữ liệu
2.3.8. Sơ đồ luồng dữ liệu cho yêu cầu thay đổi quy định về thời gian gửi tối thiểu, số tiền gửi tối thiểu
Sơ đồ:
Hình 2.8: Sơ đồ DFD thay đổi quy định (tham số)
Các luồng dữ liệu:
o D1: Tên kỳ hạn, thời gian gửi tối thiểu, tiền gửi tối thiểu
o D2: Không có
o D3: Danh sách loại tiết kiệm
o D4: D1
o D5: Không có
o D6: D4 Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên)
o Bước 3: Đọc D3 từ bộ nhớ phụ lên.
o Bước 4: Xét xem kỳ hạn ở D1 có tồn tại ở D3 không. Nếu không tồn tại thì xuống bước 8.
o Bước 5: Xét xem các thông tin còn lại ở D1 (thời gian gửi tối thiếu, tiền gửi tối thiểu) có trùng với dữ liệu của kỳ hạn đó ở D3 không. Nếu trùng thì xuống bước 8.
o Bước 6: Cập nhật D1 xuống bộ nhớ phụ
o Bước 7: Hiển thị D6 ra màn hình
o Bước 8: Đóng cơ sở dữ liệu
o Bước 9: Kết thúc
2.3.9 Sơ đồ luồng dữ liệu cho yêu cầu tạo nhóm quyền và phân quyền cho nhóm
Sơ đồ:
Hình 2.9: Sơ đồ DFD thêm nhóm quyền và phân quyền
Các luồng dữ liệu:
o D1: Tên nhóm quyền, các chức năng được cung cấp.
o D3: Danh sách nhóm quyền, danh sách chức năng
o D4: D1
o D5: Không có
o D6: D4
Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên).
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc D3 từ bộ nhớ phụ lên.
o Bước 4: Kiểm tra tên nhóm quyền ở D1 có trùng với tên nhóm quyền ở D3 không. Nếu có, đến bước 8.
o Bước 5: Quản trị viên xem xét các chức năng được phép tạo cho nhóm quyền (chức vụ) này.
o Bước 6: Cập nhật D1 xuống bộ nhớ phụ
o Bước 7: Hiển thị D6 ra màn hình
o Bước 8: Đóng cơ sở dữ liệu
o Bước 9: Kết thúc
2.3.10 Sơ đồ luồng dữ liệu cho yêu cầu tạo người dùng
Hình 2.10: Sơ đồ DFD tạo người dùng
Các luồng dữ liệu:
o D1: Tên đăng nhập, mật khẩu, họ tên, nhóm quyền.
o D2: Không có
o D3: Danh sách nhóm quyền, danh sách người dùng
o D4: D1
o D5: Không có
o D6: D4
Thuật toán:
o Bước 1: Nhận D1 từ người dùng (quản trị viên).
o Bước 2: Kết nối cơ sở dữ liệu.
o Bước 3: Đọc D3 từ bộ nhớ phụ lên.
o Bước 4: Kiểm tra tên đăng nhập ở D1 có trùng với tên nhóm đăng nhập ở D3 không. Nếu có, đến bước 7.
o Bước 6: Hiển thị D6 ra màn hình
o Bước 7: Đóng cơ sở dữ liệu
Chương 3 – THIẾT KẾ HỆ THỐNG
3.1. Kiến trúc hệ thống:
Sau giai đoạn phân tích đến giai đoạn thiết kế, xây dựng hệ thống thành một giải pháp thực thi. Mô hình sẽ được thiết kế chi tiết và xem xét đến các vấn đề kỹ thuật. Các lớp giải quyết vấn đề cơ bản như: cơ sở dữ liệu (database), giao diện người dùng (user interface),... Một số lớp mới có thể được phát hiện bổ sung.
Để xây dựng phần mềm quản lý sổ tiết kiệm, chúng em xây dựng chương trình dựa trên mô hình Client – Server, cụ thể là Fat Client với các xử lí nằm ở Client
Mô hình khai thác ưu điểm là tính tiện dụng để chia sẻ dữ liệu và đồng bộ trong hệ thống một ngân hàng cũng như dễ bảo trì, nâng cấp.
Hai lớp Client Server có thể chạy trên hai máy tính riêng biệt hoặc trên cùng thiết bị.
3.2. Mô tả các thành phần trong hệ thống:
STT Thành phần Diễn giải
1
Client
Giao diện
● Hiển thị các thành phần giao diện để tương tác với người dùng như tiếp nhận thông tin, thông báo lỗi, …
● Nó gồm các thành phần giao diện (page) và thực hiện các công việc như nhập liệu, hiển thị dữ liệu, gửi yêu cầu đến phần xử lí
Xử lí
● Bao gồm các lớp đối tượng dựa trên sơ đồ các lớp đối tượng chính của hệ thống đã đưa ra ở phần phân tích.
● Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI, xử lý chính nguồn dữ liệu từ người dùng trước khi lưu xuống CSDL.
● Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về cho phần UI
2
Server Cơ sở dữliệu ● Bao gồm các bảng, các ràng buộc, view cho lớpxử lý để thực hiện các chức năng truy xuất dữ liệu, thêm, xóa, cập nhật dữ liệu.
Chương 4 – THIẾT KẾ DỮ LIỆU
4.1. Thuật toán lập sơ đồ logic
4.1.1: Xét yêu cầu mở sổ tiết kiệm
4.1.1.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM1 ● Sơ đồ luồng dữ liệu: SĐ1
● Các thuộc tính mới: MaLoaiTietKiem, TenKhachHang, DiaChi, SoTienGuiBanDau, SoCMND, NgayMoSo, NgayDaoHanKeTiep ● Các thuộc tính trừu tượng: MaSoTietKiem
● Thiết kế dữ liệu: table SOTIETKIEM ● Sơ đồ logic SOTIETKIEM MaSoTietKiem MaLoaiTietKiem TenKhachHang DiaChi SoTienGuiBanDau SoCMND NgayMoSo NgayDaoHanKeTiep
4.1.1.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: QĐ1
● Sơ đồ dữ liệu về việc thay đổi quy định: SĐ7
● Các thuộc tính mới: TenLoaiTietKiem, LaiSuat, LaiSuatApDung ● Các tham số mới: SoTienGuiToiThieu
● Các thuộc tính trừu tượng: MaLoaiTietKiem
● Thiết kế dữ liệu: table SOTIETKIEM, table LOAITIETKIEM, table THAMSO
● Sơ đồ logic:
4.1.2. Xét yêu cầu lập phiếu gửi tiền
4.1.2.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM2 ● Sơ đồ luồng dữ liệu: SĐ2
● Các thuộc tính mới: NgayGui, SoTienGui ● Các thuộc tính trừu tượng: MaPhieuGui ● Thiết kế dữ liệu: table PHIEUGUI ● Sơ đồ logic
PHIEUGUI MaPhieuGui
MaSoTietKiem NgayGui SoTienGui
4.1.2.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: QĐ2
● Sơ đồ dữ liệu về việc thay đổi quy định: SĐ8 ● Các thuộc tính mới: SoDu
● Các tham số mới: TienGuiThemToiThieu ● Các thuộc tính trừu tượng: MaLoaiTietKiem
● Thiết kế dữ liệu: table SOTIETKIEM, table LOAITIETKIEM, table THAMSO
4.1.3 Xét yêu cầu lập phiếu rút tiền
4.1.3.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM3 ● Sơ đồ luồng dữ liệu: SĐ3
● Các thuộc tính mới: NgayRut, SoTienRut ● Các thuộc tính trừu tượng: MaPhieuRut ● Thiết kế dữ liệu: table PHIEURUT ● Sơ đồ logic PHIEURUT MaPhieuRut MaSoTietKiem NgayRut SoTienRut
4.1.3.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: QĐ3
● Sơ đồ dữ liệu về việc thay đổi quy định: SĐ7, SĐ8
● Các thuộc tính mới: NgayDongSo, ThoiGianGuiToiThieu, SoTienDuocRut
● Các tham số mới: DongSoTuDong
● Các thuộc tính trừu tượng: MaLoaiTietKiem
● Thiết kế dữ liệu: table SOTIETKIEM, table LOAITIETKIEM, table THAMSO
4.1.4: Xét yêu cầu tra cứu sổ tiết kiệm
4.1.4.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM4 ● Sơ đồ luồng dữ liệu: SĐ4 ● Các thuộc tính mới: không có ● Các thuộc tính trừu tượng: STT ● Thiết kế dữ liệu:
4.1.4.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: không có
● Sơ đồ dữ liệu về việc thay đổi quy định: không có ● Các thuộc tính mới: không có
● Các tham số mới: không có
● Các thuộc tính trừu tượng: không có ● Thiết kế dữ liệu:
● Sơ đồ logic:
4.1.5. Xét yêu cầu lập báo cáo doanh số hoạt động trong ngày: 4.1.5.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM5.1 ● Sơ đồ luồng dữ liệu: SĐ5
● Các thuộc tính mới: MaLoaiTietKiem, NgayDoanhSo, TongThu, TongChi, ChenhLech
● Các thuộc tính trừu tượng: MaBaoCaoDoanhSo. ● Thiết kế dữ liệu: table BAOCAODOANHSO ● Sơ đồ logic BAOCAODOANHSO MaBaoCaoDoanhSo NgayDoanhSo MaLoaiTietKiem TongThu TongChi ChenhLech LOAITIETKIEM MaLoaiTietKiem TenLoaiTietKiem KyHan LaiSuat ThoiGianGuiToiThieu SoTienDuocRut
4.1.5.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: Không có.
● Sơ đồ dữ liệu về việc thay đổi quy định: Không có. ● Các thuộc tính mới: không có.
● Các tham số mới: không có.
● Các thuộc tính trừu tượng: không có. ● Thiết kế dữ liệu: không có.
● Sơ đồ logic: không có.
4.1.6. Xét yêu cầu lập báo cáo mở/đóng sổ trong tháng 4.1.6.1. Thiết kế dữ liệu với tính đúng đắn
● Biểu mẫu liên quan: BM5.2 ● Sơ đồ luồng dữ liệu: SĐ6
● Các thuộc tính mới: MaLoaiTietKiem, ThangBaoCao, NamBaoCao NgayXet, SoLuongSoMo, SoLuongSoDong, ChenhLech
● Các thuộc tính trừu tượng: MaBaoCaoMoDong
● Thiết kế dữ liệu: table BAOCAOMODONG, table CTBCMODONG ● Sơ đồ logic
4.1.6.2. Thiết kế dữ liệu với tính tiến hóa
● Quy định liên quan: Không có
● Sơ đồ dữ liệu về việc thay đổi quy định: Không có ● Các thuộc tính mới: Không có
● Các tham số mới: Không có
● Các thuộc tính trừu tượng: Không có ● Thiết kế dữ liệu: Không có
● Sơ đồ logic: Không có
4.2. Sơ đồ logic hoàn chỉnh
Hình 4.1: Sơ đồ quan hệ của chương trình
4.3. Danh sách các bảng dữ liệu trong sơ đồ
STT Tên bảng dữ liệu Diễn giải
1 SOTIETKIEM Danh sách Sổ tiết kiệm
2 LOAITIETKIEM Danh sách Loại tiết kiệm
3 PHIEUGUI Danh sách Phiếu gửi tiền
4 PHIEURUT Danh sách Phiếu rút tiền
5 BAOCAODOANHSO Danh sách Báo cáo doanh số
6 BAOCAOMODONG Danh sách Báo cáo mở đóng
8 THAMSO Danh sách Tham số
9 NHOMNGUOIDUNG Danh sách nhóm người dùng (chức vụ)
10 CHUCNANG Danh sách chức năng của phần mềm
11 NGUOIDUNG Danh sách người dùng (tài khoản)
12 PHANQUYEN Danh sách các cặp nhóm quyền – tất cả chức năng tương ứng với nhóm quyền này
4.4. Mô tả bảng dữ liệu
4.4.1. Bảng SOTIETKIEM
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaSoTietKiem Varchar(20) Not null, primary key
Mã sổ tiết kiệm 2 TenKhachHang Nvarchar(50) Not null Họ và tên khách hàng
3 DiaChi Nvarchar(MAX) Not null Địa chỉ khách hàng
4 SoTienGuiBanDau Money Not null, lớn hơn 0 Số tiền gửi ban đầu 5 MaLoaiTietKiem Varchar(20) Not null, foreign
key references LOAITIETKIEM
Mã loại tiết kiệm
6 SoCMND Varchar(20) Not null Số chứng minh nhân
dân của khách hàng
7 NgayMoSo Smalldatetime Not null Ngày mở sổ tiết kiệm
tiết kiệm
9 NgayDaoHanKeTiep Smalldatetime Not null Ngày đáo hạn kế tiép
10 SoDu Money Not null, lớn hơn
hoặc bằng 0
Số dư hiện tại của số tiết kiệm
11 NgayDongSo Smalldatetime Sau ngày mở sổ Ngày đóng sổ
4.4.2. Bảng LOAITIETKIEM
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaLoaiTietKiem Varchar(20) Not null, primary key
Mã loại tiết kiệm 2 TenLoaiTietKiem Nvarchar(50) Not null Tên loại tiết kiệm
3 KyHan Int Not null Kỳ hạn gửi tiết kiệm (ngày)
4 LaiSuat Float Not null, lớn
hơn 0
Lãi suất gửi tiết kiệm (%/năm)
5 ThoiGianGuiToiThieu Int Not null, lớn hơn 0
Thời gian gửi tối thiểu để rút tiền
6 QuyDinhSoTienRut Nvarchar(50) Not null Quy định số tiền được rút (rút nhỏ hoặc bằng, rút hết)
7 DangSuDung Nvarchar(50) Not null Có 2 giá trị là có (nếu loại này đang sử dụng) và không (nếu loại này đã bị xóa)
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaPhieuGui Varchar(20) Not null, primary key
Mã phiếu gửi 2 MaSoTietKiem Varchar(20) Not null, foreign
key references SOTIETKIEM
Mã sổ tiết kiệm
3 NgayGui Smalldatetime Not null, từ ngày hiện tại trở về trước
Ngày lập phiếu gửi
4 SoTienGui Money Not null, lớn hơn 0 Số tiền gửi thêm
4.4.4. Bảng PHIEURUT
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaPhieuRut Varchar(20) Not null, primary key
Mã phiếu rút 2 MaSoTietKiem Varchar(20) Not null, foreign
key references SOTIETKIEM
Mã sổ tiết kiệm
3 NgayRut Smalldatetime Not null, từ ngày hiện tại trở về trước
Ngày lập phiếu rút 4 SoTienRut Money Not null, lớn hơn 0 Số tiền rút
4.4.5. Bảng BAOCAODOANHSO:
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
key số ngày 2 NgayDoanhSo Smalldatetime Not null, từ ngày
hiện tại trở về trước
Ngày báo cáo doanh số 3 MaLoaiTietKiem Varchar(20) Not null, foreign
key references LOAITIETKIEM
Mã loại tiết kiệm
4 TongThu Money Not null, lớn hơn
hoặc bằng 0.
Tổng tiền thu trong ngày.
5 TongChi Money Not null, lớn hơn
hoặc bằng 0.
Tổng tiền chi trong ngày.
6 ChenhLech Money Not null. Chênh lệch giữa
tổng thu và tổng chi.
4.4.6. Bảng BAOCAOMODONG:
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaBaoCaoMoDong Varchar(20) Not null, primary key Mã báo cáo mở đóng
2 MaLoaiTietKiem Varchar(20) Not null, foreign key references
LOAITIETKIEM
Mã loại tiết kiệm
3 ThangBaoCao Int Not null, từ 1 đến 12 Tháng báo cáo
4 NamBaoCao Int Not null, lớn hơn 0 và
nhỏ hơn năm hiện tại
Năm báo cáo
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaBaoCaoMoDong Varchar(20) Not null, primary key, foreign key
references
BAOCAOMODONG
Mã báo cáo mở đóng
2 NgayXet Smalldatetime Not null, primary key Ngày trong tháng lập báo cáo
3 SoLuongSoMo Int Not null, lớn hơn
hoặc bằng 0
Số lượng sổ mở trong tháng
4 SoLuongSoDong Int Not null, lớn hơn
hoặc bằng 0
Số lượng sổ đóng trong tháng
5 ChenhLech Int Not null Chênh lệch giữa số
lượng sổ mở và sổ đóng trong tháng
4.4.8. Bảng THAMSO
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaThamSo Int Not null, primary key Mã tham số
2 TenThamSo NVarchar(50) Not null Tên tham số
3 GiaTri Money Not null Giá trị của tham số
Các tham số sử dụng
STT TenThamSo GiaTri
2 TienGuiThemToiThieu Tiền gửi thêm tối thiểu
3 DongSoTuDong 1: nếu sổ sau khi rút hết tự động đóng 0: ngược lại
4.4.9. Bảng CHUCNANG
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaChucNang Int Not null,
primary key
Mã chức năng
2 TenChucNang Nvarchar(50) Not null Tên chức năng
3 TenThanhPhanSuDung Nvarchar(50) Not null Tên các thành phần có thể sử dụng những chức năng nào.
4.4.10. Bảng PHANQUYEN
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaNhom Int Not null, primary key Mã nhóm
2 MaChucNang Int Not null, foreign key
references CHUCNANG
Mã chức năng
3 LiDo Nvarchar(50)
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 TenDangNhap Varchar(50) Not null, primary key Tên đăng nhập
2 MatKhau Varchar(50) Not null Mật khẩu
3 MaNhom Int Not null, foreign key
references
NHOMNGUOIDUNG
Mã nhóm
4 HoTen Nvarchar(50) Not null Họ tên
4.4.12. Bảng NHOMNGUOIDUNG
STT Thuộc tính Kiểu dữ liệu Ràng buộc Diễn giải
1 MaNhom Int Not null, primary key Mã nhóm
Chương 5 – THIẾT KẾ GIAO DIỆN 5.1. Sơ đồ liên kết các màn hình Hình 5.1: Sơ đồ liên kết các màn hình 5.2. Danh sách các màn hình