bài tập lớn :hệ quản trị cơ sỏ dữ liệu đề tài :quản lý tiền gửi khách MỤC LỤCLỜI NÓI ĐẦU2A. Khảo sát nghiệp vụ đề tài3I. Khảo sát nghiệp vụ31. Hoạt động của hệ thống32. Cách tiến hành (đối với qui trình tiền gửi thanh toán ngân hàng)4II. Bài toán5B. Phân tích hệ thống5I. Phân tích chức năng6II. Phân tích dữ liệu71. Mô hình luồng dữ liệu:72. Mô hình quan hệ14C. Thiết kế hệ thống15D.Giải quyết bài toán18I. Chức năng quản lí tài khoản18II.Chức năng quản lí gửi tiền22 III.Chức năng quản lí rút tiền…………………………………………….24 IV.Chức năng quản lí chuyển khoản……………………………………...26 V.Chức năng báo cáo thống kê……………………………………………29 E. Kết luận…………………………………………………………………….34
Trang 1MỤC LỤC
LỜI NÓI ĐẦU 2
A Khảo sát nghiệp vụ đề tài 3
I Khảo sát nghiệp vụ 3
1 Hoạt động của hệ thống 3
2 Cách tiến hành (đối với qui trình tiền gửi thanh toán ngân hàng) 4
II Bài toán 5
B Phân tích hệ thống 5
I Phân tích chức năng 6
II Phân tích dữ liệu 7
1 Mô hình luồng dữ liệu: 7
2 Mô hình quan hệ 14
C Thiết kế hệ thống 15
D.Giải quyết bài toán 18
I Chức năng quản lí tài khoản 18
II.Chức năng quản lí gửi tiền
22 III.Chức năng quản lí rút tiền……….24
IV.Chức năng quản lí chuyển khoản……… 26
V.Chức năng báo cáo thống kê………29
E Kết luận……….34
Trang 2LỜI NÓI ĐẦU
Với sự bùng nổ của công nghệ thông tin như ngày nay, việc ứng dụng nó vàocác mặt của nó vào đời sống xã hội, kinh tế chính trị là một điều tất yếu Nó giúpcho những hoạt động này trở nên dễ dàng và nhanh chóng hơn đặc biệt là nhữngcông việc đòi hỏi độ chính xác cao Máy tính ngày càng phổ biến và đang dầntrở thành thiết bị không thể thiếu được trong cuộc sông hàng ngày, nó có thể làmnhững việc tưởng chừng con người không thể thực hiện được Máy tính có thể
xử lí số lượng phép tính rất nhiều lần trong một giây so với con người Nghiệp
vụ ngân hàng đỏi hỏi độ chính xác cao và nhanh chóng, hơn nữa, đời sống xãhội ngày càng cao nhu cầu thanh toán tăng gấp nhiều lần so với trước đây,đặcbiệt là dịch vụ thanh toán qua thẻ vừa tiện lợi vừa nhanh chóng không cần phảimang nhiều tiền theo người Và có thể nói trong tương lai không xa nó sẽ trởthành dịch vụ thanh toán chủ yếu Chính vì những lí do trên, ta thấy rằng việc tinhọc hóa nghiệp vụ ngân hàng đặc biệt là tiền gửi thanh toán càng không thểthiếu và vô cùng cần thiết
Trang 3A Khảo sát nghiệp vụ đề tài
I Khảo sát nghiệp vụ
1 Hoạt động của hệ thống
Ngân hàng thương mại cổ phần Bảo Việt(BAOVIET BANK) được thànhlập theo giấy phép thành lập số 328/GP-NHNN,ngày 11/12/2008 của thống đốcngân hàng nhà nước Việt Nam.Ngân hàng có 5 chi nhánh đặt tại Hà Nội ,TP HồChí Minh và có trụ sở chính đặt tại Hà Nội (địa chỉ :số 08 Lê Thái Tổ,quậnHoàn Kiếm) Ngân hàng có những hoạt động đa dạng như:
Đối với cá nhân: tiền gửi thanh toán, tiết kiệm lãi suất lũy tiến, tiết kiệm đa
kì linh hoạt, tiết kiệm không kì hạn, tiết kiệm có kì hạn, cho vay mua ô tô, chovay nhà, cho vay cầm cố giấy tờ có giá trị , cho vay tín chấp cán bộ, cho vay hộkinh doanh…
Đối với đối với doanh nghiệp: tiền gửi ngân hàng, tài trợ thương mại, tài trợvốn lưu động, tài trợ dự án, bảo lãnh ngân hàng…
Ngân hàng làm việc theo qui tắc quản lí khách hàng tập trung vì vậy kháchhàng có thể gửi tiền, rút tiền, chuyển khoản… Tiền gửi thanh toán (TGTT) chủyếu huy động tiền gửi cá nhân
Hệ thống làm những công việc như sau:
Quản lí các tài khoản tiền gửi thanh toán: khi yêu cầu mở tài khoản chokhách hàng thì một bộ phận sẽ mở tài khoản cho khách.Mỗi khách hàng có mộtthẻ tài khoản duy nhất, từ đó ta có thể thay đổi thông tin khách hàng khi cần,dùng đế truy vấn thông tin, nếu khách hàng có yêu cầu thì có thể đóng hoặcphong tỏa tài khoản cho khách hàng
Xử lí các giao dịch liên quan đến tiền gửi thanh toán: Với tài khoản thanhtoán khách hàng có thể gửi tiền, rút tiền, chuyển khoản bất cứ khi nào
In các báo cáo lên quan đến tiền gửi thanh toán: bảng kê giao dịch hàngtháng,đối chiếu giao dịch sau mỗi ngày
Trang 42 Cách tiến hành (đối với qui trình tiền gửi thanh toan ngân hàng)
a Đối với qui trình gửi tiền
Đối với khách hàng lần đầu giao dịch với ngân hàng thì khách hàng phải mởtài khoản TGTT và chỉ được mở khi khách hàng đăng kí hồ sơ khách hàng tại bộphận TGTT.Sau khi đăng kí khách hàng nộp tiền vào bộ phận ngân quĩ.Đối vớikhách hàng đã có tài khoản thì họ sẽ nộp trực tiếp vào quĩ.Sau khi kiểm tra tínhkhớp đúng số tiền nộp với số tiền trên phiếu nộp thì thông báo yêu cầu gởi tiềnđược giải quyết và trả thẻ tài khoản cho khách hàng
b Đối với qui trình rút tiền
Khách hàng nộp thẻ tài khoản của mình cho bộ phận TGTT và kê khai thôngtin vào giấy rút tiền để rút tiền mặt trong tài khoản của mình.Bộ phận TGTT sẽkiểm tra tính hợp lệ của thẻ tài khoản:
Nếu thẻ tài khoản không hợp lệ thì thông báo thẻ không hợp lệ chokhách hàng
Nếu hợp lệ thì lập phiếu gởi tiền đưa cho khách hàng.Khách hàng đưaphiếu rút tiền cho bộ phận TGTT,bộ phận này sẽ kiểm tra thấu chi và số
dư tài khoản.Nếu hợp lệ thì thông báo yêu cầu của khách hàng đã đượcgiải quyết, khách hàng có thể rút tiền và trả thẻ tài khoản cho kháchhàng Nếu không thì thông báo yêu cầu của khách hàng không thực hiệnđược
c.Đối với qui trình chuyển khoản
Khi khách hàng có nhu cầu chuyển tiền,khách hàng sẽ nộp thẻ tàikhoản cho bộ phận TGTT ,bộ phận này sẽ kiểm tra tính hợp lệ của thẻtài khoản:
Nếu thẻ không hợp lệ thì thông báo tính không hợp lệ của thẻ tàikhoản
Nếu hợp lệ,thì lập phiếu chuyển khoản cho khách hàng và giao chokhách hàng.Bộ phận TGTT sẽ kiểm tra thấu chi và số dư tài khoản.Nếu hợp lệ thì sẽ kiểm tra thẻ tài khoản của người nhận.Thẻ tài khoản
Trang 5người nhận phù hợp thì sẽ thông báo yêu cầu chuyển tiền đã chuyểnthành công và trả thẻ tài khoản cho khách hàng.Nếu không thì thôngbáo giao dịch không thành công.
2 Đưa ra những thông tin cần thiết khi cần thống kê báo cáo
3 Tự động sinh mã cho thuộc tính khóa Khi có mã bị xóa khi nhập thêm
mã mới sẽ chèn vào mã đã xóa
B Phân tích hệ thống
I Phân tích chức năng
Trang 7Hình 1: Sơ đồ phân cấp chức năng của hệ thống
II Phân tích dữ liệu
1 Mô hình luồng dữ liệu:
Trang 8Hình 2: Mô hình luồng dữ liệu mức khung cảnh
QUẢN LÍ TIỀN GỬI THANH TOÁN NGÂN
HÀNGKhách hàng
Khách
hàng
Khách hàng
Người quản lí
Thông tin yêu cầu lập thẻ tài khoản Thông tin khách hàng
Yêu cầu
phong toả tài khoản
Yêu cầu đóng tài khoản Thẻ tài khoản
đã được đóng
với giao dịch thật Thông báo tài khoản đã được phong toả
Thông báo tài khoản
Trang 9b.Mô hình mức đỉnh
Quản lí tài khoản
Quản
lí gửi tiền
Quản
lí rút tiền
Quản lí chuyển khoản
Người quản lí
Thông tin yêu cầu lập thẻ tài khoản
Thông tin khách hàng
Thẻ tài khoản
Yêu cầu đóng tài khoản
Thông báo tài khoản đã được đóng
Thông báo tài khoản đã
được phong toả
Yêu cầu phong toả tài khoản
Thông tin yêu cầu gửi tiền
Thông báo thẻ tài khoản không hợp lệ
Thẻ tài khoản Phiếu gửi tiền
Tiền Thông báo số tiền gửi khôngkhớp
Thẻ tài khoản Thông báo yêu cầu gửi tiền được giải quyêt
Thông tin yêu cầu rút tiền
Thẻ tài khoản Thông báo thẻ tài khoản không hợp lệ
Phiếu rút tiền
Thông báo số tiền trong tài
khoản không đủ rút
Tiền Thẻ tài khoản Thông tin yêu cầu rút tiền được giải quyêt
Thông tin yêu cầu chuyển khoản Thẻ tài khoản
Phiếu chuyển khoản Thông báo thẻ tài khoản không hợp lệ
Thông báo số tiền trong tài khoản không đủ chuyển
Thông báo tài khoản người nhận không tồn tại
Trang 10Hình 3: Mô hình luồng dữ liệu mức đỉnh
c.Mô hình mức dưới đỉnh
Mô hình quản lí tài khoản
Hình 4: Mô hình quản lí tài khoản mức dưới đỉnh
Khách
hàng
Mở tài khoản
Phong toả tài khoản
Đóng tài khoản
Thông tin yêu cầu lập thẻ tài khoản
Thông tin khách hàng
Thẻ tài khoản
Yêu cầu phong toả tài khoản
Thông báo tài khoản
đã được phong toả Yêu cầu đóng tài khoản Thông báo tài khoản đã được đóng
Thẻ tài khoản
Tài khoản
Trang 11 Mô hình quản lí gửi tiền
Hình 5: Mô hình luồng dữ liệu quản lí tiền gửi mức dưới đỉnh
Kiểm tra thẻ tài khoản
Lập phiếu gửi tiền
Kiểm tra tiền
Trình duyệt kí
Khách
hàng
Thông tin yêu cầu gửi tiền
Thông báo thẻ tài
khoản không hợp lệ
Thẻ tài khoản
Phiếu gửi tiền
Thông báo yêu cầu gửi tiền được giải quyết
Trang 12 Mô hình quản lí rút tiền
Hình 6: Mô hình luồng dữ liệu quản lí rút tiền mức dưới đỉnh
Kiểm tra thẻ tài khoản
Lập phiếu rút tiền
Kiểm tra thấu chi và
số dư có
Trình duyệt kí
Khách
hàng
Thông tin yêu cầu rút tiên
Thông báo thẻ tài
Thông báo yêu cầu rút
tiền đã được giải quyêt
Thẻ tài khoản
Phiếu rút tiền
Tài khoản
Trang 13 Mô hình chuyển khoản
Hình 7: Mô hình luồng dữ liệu mức dưới đỉnh chuyển khoản
Khách
hàng
Kiểm tra thẻ tài khoản người nhận
Kiểm tra thẻ tai khoản
Lập phiếu chuyển khoản
Kiểm tra thấu chi và
số dư có
Trình duỵêt kí
Thông tin yêu cầu chuyển khoản
Thẻ tài khoản
Thông báo thẻ tài khoản không hợp lệ
Phiếu chuyển khoản
Thông báo số tiền trong tài
khoản không đủ chuyển
Thông báo thẻ tài khoản
người nhận không tồn tại
Thẻ tài khoản
Thông báo yêu cầu chuyển
khoản được giải quyết
Trang 14 Mô hình báo cáo thống kê
Hình 8: Mô hình luồng dữ liệu mức dưới đỉnh báo cáo thống kê
Người quản lý
Báo cáo kê khai giao dịch hằng ngày
Báo cáo sau khi khoá sổ định kì
Đối chiếu bản kê với giao dịch thật
Kê khai giao dịch hằng ngày
Báo cáo sau khi khoá sổ định kì
Đối chiếu bản kê với giao dịch thật
Phiếu gửi tiền
Trang 152 Mô hình quan hệ
a Mô hình thực thể liên kết ER
Hình 9: Mô hình thực thể liên kết ER
b Mô hình quan hệ
Sau khi phân tích và đưa về dạng chuẩn 3NF ta được mô hình quan hệ như sau:
- TaiKhoan(MaTK, MaKH, NgayMoTK, SoDuCo, TichLaiCo)
- KhachHang( MaKH, TenKH, DiaChi, DienThoai, Fax, GhiChu)
- PhieuGui( SoPhieuGui, MaTK,SoTienGui,NgayGui, MaNV)
- PhieuRut ( SoPhieuRut, MaTK,SoTienRut,NgayRut, MaNV)
- PhieuChuyenKhoan(SoPhieuChuyen, MaTKchuyen, SoTienchuyen, NgayChuyen, MaTKnhan, LePhi, MaNV)
- NhanVien( MaNV, TenNV, NgaySinh, MaCN)
- ChiNhanh( MaCN, TenCN, DienThoai, DiaChi)
Trang 16C Thiết kế hệ thống
a Bảng chú thích cho thực thể TaiKhoan
ST
T
liên kết với bảng KhachHang
NULL
Tên Tài Khoản
NULL
Tên Khách Hàng
3 DiaChi Nvarchar(30)-NULL Địa Chỉ Khách Hàng
4 DienThoai Nvarchar(15)-NULL Điện Thoại Khách Hàng
Trang 17c.Bảng chú thích cho thực thể PhieuGui
STT TÊN
TRƯỜNG
2 MaTK Char(10)-Not Null Mã tài khoản gửi tiền vào
3 SoTienGui Float –not null Số tiền gửi vào tài khoản
5 MaNV Char(10)-not null Mã nhân viên giao dịch
d.Bảng chú thích cho thực thể PhieuRut
STT TÊN
TRƯỜNG
2 MaTK Char(10)-Not Null Mã tài khoản rút tiền
3 SoTienRut Float –not null Số tiền rút
5 MaNV Char(10)-not null Mã nhân viên giao dịch
e.Bảng chú thích cho thực thể PhieuChuyenKhoan
1 SoPhieuChuyen Char(10) Số phiếu chuyển_khóa chính
2 MaTKChuyen Char(10)-Not Null Mã tài khoản chuyển tiền
3 SoTienChuyen Float –not null Số tiền chuyển
4 NgayChuyen smalldatetime Ngày chuyển tiền
5 MaTKNhan Char(10)-Not Null Mã tài khoản nhận tiền
7 MaNV Char(10)-not null Mã nhân viên giao dịch
f.Bảng chú thích cho thực thể NhanVien
Trang 181 MaNV Char(10)- NOT NULL Mã Nhân Viên-khoá chính
NULL
Tên Nhân Viên
4 MaCN Char(10)- NOT NULL Mã Chi Nhánh-khoá phụ,liên
kết với bảng ChiNhanh
g Bảng chú thích cho thực thể ChiNhanh
STT TÊN
TRƯỜNG
3 DienThoai Nvarchar(15)-NULL Điện Thoại Chi Nhánh
4 DiaChi Nvarchar(30)-NULL Địa Chỉ Chi Nhánh
D.Giải quyết bài toán
I Chức năng quản lí tài khoản
Trang 19Khi khách hàng giao dịch với ngân hàng lần đầu tiên thì khách hàng sẽ được tạo
1 số CIF gọi là mã khách hàng để giao dịch với ngân hàng
a Nhập thông tin khách hàng mới vào bảng khách hàng
Khách hàng
Tạo TKTạo KH mới
Truy vấn TT
Có số CIF
Chưa
có số
CIF
Khi cần
Ta tạo bảng ảo lấy ra số của các mã khách hàng
đang tồn tại trong cơ sở dữ liệu để tiến hành tự
động sinh mã sau này:
Tạo thủ tục nhập khách hàng với tự động sinh mã:
create view so_KH
as select cast(substring( MaKH,3,3)as int) 'so'
from khachhang
Trang 20CREATE procedure dbo.KhachHang_add
select @i= max(so) from so_KH
if @i= (select count(so) from so_KH) set @i=@i+1
if @i> (select count(so) from so_KH)
Trang 21b.Tạo tài khoản cho khách hàng
Cũng tương tự như tạo thủ nhập của bảng khách hàng Bảng này ta cũngtạo ra một bảng ảo để lấy số trong mã của tài khoản để tự động sinh mãsau này
Nhưng ở đây có điểm khác biệt so với bảng khách hàng là nó có khóangoài là mã khách hàng.Nếu nhập mã khách hàng không có trong bảngkhách hàng chương trình sẽ báo lỗi.Vì vậy chúng ta sẽ xử lí sao cho khikhông có trong bảng khách hàng nhiệm vụ nhập sẽ không thể tiếp diễn
Ta sẽ thông báo ra màn hình cho người dung biết để sửa:
create view so_TK
as select cast(substring( MaTK,3,3)as int) 'so' from taikhoan
Trang 22CREATE procedure dbo.TaiKhoan_add
select @i= max(so) from so_TK
if @i= (select count(so) from so_TK) set @i=@i+1
if @i> (select count(so) from so_TK)
@MaTK,
Trang 23c Khi cần lấy thông tin tài khoản để rút tiền hay chuyển tiền,ta lấy thông tin đó
ra để thỏa mãn yêu cầu.Thủ tục có tham số giúp ta có thể kiểm tra tài khoản bất
kì khi ta nhập mã tài khoản
II.Chức năng quản lí tiền gửi
create proc KiemTraTK
@maTK char(10) as
select a.MaTK,TenKH,Soduco from taikhoan a inner join khachhang b on a.MaKH=b.MaKH
where a.MaTK =@MaTK
Trang 24a Lập phiếu gửi
Phiếu gửi được lập khi tài khoản hợp lệ Thông tin trong phiếu gửi đượclấy từ thông tin khách hàng tài khoản và giấy kê khai gửi tiền của kháchhàng khi đến gửi tiền
Đầu tiên ta cũng tạo ra 1 bảng ảo để lấy ra số phiếu gửi để sinh mã saunày tương tự như phần ở trên
Sau đó ta nhập thông tin trên phiếu gửi
SoPhieuGui là khóa chính được tự động sinh ra mỗi khi một phiếugửi được lập
NgayGui : được gán luôn là ngày của hệ thống
Trong Bảng PhieuGui có 2 thuộc tính khóa ngoại là MaNV,MaTK.Khi nhập 2 mã này nếu không có trong 2 bảng Tài Khoản, NhânViên thì thông báo không thể nhập vào cơ sở dữ liệu, phải nhập lạicho đến khi thỏa mãn hoặc hủy bỏ giao dịch
create view so_PG
as select cast(substring( SoPhieuGui,3,4)as int) 'so' from PhieuGui
CREATE procedure dbo.PhieuGui_add
declare @ngayGui smalldatetime
set @NgayGui= getdate()
declare @i int
select @i= max(so) from so_PG
if @i= (select count(so) from so_PG) set @i=@i+1
if @i> (select count(so) from so_PG)
Trang 25b Khi gửi tiền thành công,tài khoản của khách hàng sẽ được tăng lên tự động.
Ta sẽ sử dụng trigger để thực hiện điều này
Trang 26III.Chức năng rút tiền
a Kiểm tra số dư tài khoản ta dùng thủ tục kiểm tra tài khoản như đã nói ởphần quản lí tài khoản ở trên
b Lập phiếu rút: cách làm tương tự như lập phiếu gửi
Create trigger capnhat_guitien
On PhieuGui For insert
As declare @sotien_gui float declare @sotien_co float declare @matk char(10) select @matk=MaTK,@sotien_gui=SoTienGui from inserted
select @sotien_co=SoDuco from TaiKhoan
where @matk=MaTK update TaiKhoan set SoDuco=SoDuCo+@sotien_gui from TaiKhoan inner join inserted
on TaiKhoan.MaTK=inserted.MaTK
Kiểm tra thẻ TK Kiểm tra số dư TK
Lập phiếu rút Giảm tiền trong TK
declare @ngayRut smalldatetime
set @NgayRut= getdate()
declare @i int @i là bien cuc bo lay ra so lón nhat trong các mã
select @i= max(so) from so_PR
if @i= (select count(so) from so_PR) set @i=@i+1
if @i> (select count(so) from so_PR)
else if @MaTK <>all
( select MaTK from TaiKhoan)
Trang 27c Trigger tự giảm tiền trong tài khoản khi khách hàng rút tiền ra
Trang 28IV.Chức năng chuyển tiền
a.Kiểm tra số dư tài khoản ( như rút tiền)
b Lập phiếu chuyển : tương tự như trong phiếu chuyển khoản nhưng kiểm trathêm cả tài khoản nhận nếu không có thì thông báo giao dịch thất bại
create trigger capnhat_ruttien
on PhieuRut for insert
as declare @sotien_co float declare @sotien_rut float declare @matk char(10) select @MaTK=MaTK,@sotien_rut=SoTienRut from inserted
select @sotien_co=SoDuco from TaiKhoan
where @matk=MaTK
if @sotien_co<@sotien_rut begin print 'so tien khong du rut' rollback transaction
end else update TaiKhoan set Soduco=Soduco-@sotien_rut from TaiKhoan inner join inserted on TaiKhoan.MaTK=inserted.MaTK
Kiểm tra thẻ TK Kiểm tra số dư TK
Lập phiếu chuyển Cập nhật tiền trong TK
declare @ngayChuyen smalldatetime
set @Ngaychuyen= getdate()
declare @LePhi money
set @LePhi=0.5*@SoTienChuyen/100
declare @i int
select @i= max(so) from so_PC
if @i= (select count(so) from so_PC) set @i=@i+1
if @i> (select count(so) from so_PC)