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
MỤC LỤC LỜI NÓI ĐẦU A KHẢO SÁT NGHIỆP VỤ ĐỀ TÀI I Khảo sát nghiệp vụ Hoạt động hệ thống Cách tiến hành (đối với qui trình tiền gửi toan ngân hàng) B PHÂN TÍCH HỆ THỐNG I Phân tích chức II Phân tích liệu Mơ hình luồng liệu: 16 Mơ hình quan hệ 17 C THIẾT KẾ HỆ THỐNG D.GIẢI QUYẾT BÀI TỐN I CHỨC NĂNG QUẢN LÍ TÀI KHOẢN 18 20 20 21 KHI 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 SỐ CIF GỌI LÀ MÃ KHÁCH HÀNG ĐỂ GIAO DỊCH VỚI NGÂN HÀNG 21 A NHẬP THÔNG TIN KHÁCH HÀNG MỚI VÀO BẢNG KHÁCH HÀNG 21 22 B.TẠO TÀI KHOẢN CHO KHÁCH HÀNG 23 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ŨNG TẠ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 23 23 NHƯNG Ở ĐÂY CÓ ĐIỂM KHÁC BIỆT SO VỚI BẢNG KHÁCH HÀNG LÀ NÓ CÓ KHĨA NGỒI LÀ MÃ KHÁCH HÀNG.NẾU NHẬP MÃ KHÁCH HÀNG KHƠNG CĨ TRONG BẢNG KHÁCH HÀNG CHƯƠNG TRÌNH SẼ BÁO LỖI.VÌ VẬY CHÚNG TA SẼ XỬ LÍ SAO CHO KHI KHƠ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: 23 24 C 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 25 II.CHỨC NĂNG QUẢN LÍ TIỀN GỬI 25 25 A LẬP PHIẾU GỬI 26 PHIẾU GỬI ĐƯỢC LẬP KHI TÀI KHOẢN HỢP LỆ THÔNG TIN TRONG PHIẾU GỬI ĐƯỢC LẤ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ÁCH HÀNG KHI ĐẾN GỬI TIỀN 26 ĐẦU TIÊN TA CŨNG TẠO RA BẢNG ẢO ĐỂ LẤY RA SỐ PHIẾU GỬI ĐỂ SINH MÃ SAU NÀY TƯƠNG TỰ NHƯ PHẦN Ở TRÊN 26 SAU ĐĨ TA NHẬP THƠNG TIN TRÊN PHIẾU GỬI 26 SOPHIEUGUI LÀ KHĨA CHÍNH ĐƯỢC TỰ ĐỘNG SINH RA MỖI KHI MỘT PHIẾU GỬI ĐƯỢC LẬP 26 NGAYGUI : ĐƯỢC GÁN LUÔN LÀ NGÀY CỦA HỆ THỐNG 26 TRONG BẢNG PHIEUGUI CĨ THUỘC TÍNH KHĨA NGOẠI LÀ MANV,MATK KHI NHẬP MÃ NÀY NẾU KHƠNG CĨ TRONG BẢNG TÀI KHOẢN, NHÂN VIÊN THÌ THƠNG BÁO KHƠNG THỂ NHẬP VÀO CƠ SỞ DỮ LIỆU, PHẢI NHẬP LẠI CHO ĐẾN KHI THỎA MÃN HOẶC HỦY BỎ GIAO DỊCH 26 B 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 TRIGGER ĐỂ THỰC HIỆN ĐIỀU NÀY III.CHỨC NĂNG RÚT TIỀN 26 TA SẼ SỬ DỤNG 27 28 28 28 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 C TRIGGER TỰ GIẢM TIỀN TRONG TÀI KHOẢN KHI KHÁCH HÀNG RÚT TIỀN RA IV.CHỨC NĂNG CHUYỂN TIỀN -1- 28 28 29 30 30 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 TRA THÊ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 LỆ PHÍ ĐƯỢC TÍNH TỰ ĐỘNG DỰA VÀO SỐ TIỀN CHUYỂN NHÂN VIÊN GIAO DỊCH KHÔNG CẦN PHẢI NHẬP C TRIGGER CẬP NHẬT SỐ TIỀN TRONG TÀI KHOẢN 30 30 30 32 32 32 32 SỐ TIỀN TRONG TÀI KHOẢN CHUYỂN SẼ BỊ TRỪ ĐI KHOẢN TIỀN ĐÃ CHUYỂN VÀ MỘT KHOẢN LỆ PHÍ.SỐ TIỀN TRONG TÀI KHOẢN NGƯỜI NHẬN SẼ TĂNG THÊM SỐ TIỀN ĐƯỢC CHUYỂN V.CHỨC NĂNG BÁO CÁO THỐNG KÊ 32 33 33 33 A BẢN IN SAO KÊ GIAO DỊCH HÀNG THÁNG CỦA KHÁCH HÀNG KHI KHÁCH HÀNG MUỐN XEM TRONG THÁNG ĐÃ CHI TIÊU NHƯ THẾ NÀO KHÁCH HÀNG SẼ YÊU CẦU NHÂN VIÊN IN RA CHO MỘT BẢNG THỐNG KÊ 33 BẢNG NÀY SẼ IN RA NGÀY THÁNG GIAO DỊCH TỪNG LOẠI CỤ THỂ,SỐ TIỀN,TỔNG SỐ TIỀN ĐÃ GỬI TRONG THÁNG, TỔNG TIỀN RÚT,TỔNG TIỀN CHUYỂN,SỐ DƯ CÓ TRONG TÀI KHOẢN HIỆN THỜI 33 THÔNG TIN CHI TIẾT CÁC LOẠI GIAO DỊCH SẼ ĐƯỢC IN CHUNG TRONG MỘT BẢNG: SỐ PHIẾU, NGÀY GIAO DỊCH,TÊN KHÁCH HÀNG, MÃ TÀI KHOẢN,SỐ TIỀN GỬI 33 THỦ TỤC NÀY CHO TA IN RA CHI TIẾT CỦA BẤT KÌ THÁNG NÀO CỦA BẤT KÌ TÀI KHOẢN NÀO KHI KHÁCH HÀNG CÓ YÊU CẦU 33 B BÁO CÁO GIAO DỊCH HÀNG NGÀY THỐNG KÊ CÁC GIAO DICH DIỄN RA TRONG NGÀY TÍNH TỔNG SỐ TIỀN GỬI, TIỀN CHUYỂN,TIỀN GỬI ĐƯỢC GIAO DỊCH TRONG NGÀY C.BÁO CÁO GIAO DỊCH TRONG THÁNG IN RA TỪNG NGÀY MỘT SỐ TIỀN TỪNG LOẠI GỬI,RÚT,CHUYỂN TẠO BẢNG ẢO ĐƯA RA THÔNG TIN TIỀN GỬI TRONG THÁNG TẠO BẢNG ẢO TIENRUTTHANG VA TIENCHUYENTHANG TƯƠNG TỰ NHƯ TRÊN TẠO BẢNG ẢO ĐƯA RA NGÀY CÓ GIAO DỊCH TRONG THÁNG THỦ TỤC ĐƯỢC TẠO NHƯ SAU: D.BÁO CÁO GIAO DỊCH THEO NĂM TA CŨNG TẠO BẢNG ẢO TƯƠNG TỰ NHƯ TRONG THỐNG KÊ THÁNG CHỈ KHÁC LÀ NẾU Ở TRÊN GOM NHÓM THEO NGÀY THÌ Ở ĐÂY TA GOM NHĨM THEO THÁNG THỦ TỤC ĐƯỢC TẠO NHƯ SAU: E.KẾT LUẬN 34 34 34 34 35 35 35 36 36 36 36 36 36 37 37 37 37 38 Hiện việc giao dịch ngân hàng ngày trở nên phổ biến chủ yếu ngân hàng thường có phòng riêng chuyên trách vấn đề để hỗ trợ kĩ thuật thường xuyên phát triên cho việc quản lí ngày trở nên dễ dàng thuận tiện cho khách hàng nhân viên giao dịch Do mang tính thực tập phân tích thiết kế hệ thống gần chấp nhận thị trường cịn nhiều thiếu sót : việc chuyển khoản thực ngân hàng,cơ chế tính lãi khơng làm rõ Tuy nhiên sau thực nhóm thấy đề tài lớn nhóm thực có nhiều kinh nghiệm dự án sau định đưa vào hoạt động tốt chương trình .38 22 -2- III.Chức quản lí rút tiền…………………………………………….24 IV.Chức quản lí chuyển khoản…………………………………… 26 V.Chức báo cáo thống kê……………………………………………29 E Kết luận…………………………………………………………………….34 LỜI NÓI ĐẦU -3- Với bùng nổ công nghệ thông tin ngày nay, việc ứng dụng vào mặt vào đời sống xã hội, kinh tế trị điều tất yếu Nó giúp cho hoạt động trở nên dễ dàng nhanh chóng đặc biệt cơng việc địi hỏi độ xác cao Máy tính ngày phổ biến dần trở thành thiết bị thiếu sông hàng ngày, làm việc tưởng chừng người khơng thể thực Máy tính xử lí số lượng phép tính nhiều lần giây so với người Nghiệp vụ ngân hàng đỏi hỏi độ xác cao nhanh chóng, nữa, đời sống xã hội ngày cao nhu cầu toán tăng gấp nhiều lần so với trước đây,đặc biệt dịch vụ toán qua thẻ vừa tiện lợi vừa nhanh chóng khơng cần phải mang nhiều tiền theo người Và nói tương lai khơng xa trở thành dịch vụ tốn chủ yếu Chính lí trên, ta thấy việc tin học hóa nghiệp vụ ngân hàng đặc biệt tiền gửi tốn khơng thể thiếu vô cần thiết A Khảo sát nghiệp vụ đề tài I Khảo sát nghiệp vụ -4- Hoạt động hệ thống Ngân hàng thương mại cổ phần Bảo Việt(BAOVIET BANK) thành lập theo giấy phép thành lập số 328/GP-NHNN,ngày 11/12/2008 thống đốc ngân hàng nhà nước Việt Nam.Ngân hàng có chi nhánh đặt Hà Nội ,TP Hồ Chí Minh có trụ sở đặt Hà Nội (địa :số 08 Lê Thái Tổ,quận Hồn Kiếm) Ngân hàng có hoạt động đa dạng như: • Đối với cá nhân: tiền gửi 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ơ, cho vay 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 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 khách hàng gửi tiền, rút tiền, chuyển khoản… Tiền gửi toán (TGTT) chủ yếu huy động tiền gửi cá nhân Hệ thống làm cơng việc sau: • Quản lí tài khoản tiền gửi toán: yêu cầu mở tài khoản cho khách hàng phận mở tài khoản cho khách.Mỗi khách hàng có thẻ tài khoản nhất, từ ta thay đổi thông tin khách hàng cần, dùng đế truy vấn thơng tin, khách hàng có u cầu đóng phong tỏa tài khoản cho khách hàng • Xử lí giao dịch liên quan đến tiền gửi toán: Với tài khoản toán khách hàng gửi tiền, rút tiền, chuyển khoản • In báo cáo lên quan đến tiền gửi toán: bảng kê giao dịch hàng tháng,đối chiếu giao dịch sau ngày -5- Cách tiến hành (đối với qui trình tiền gửi 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 khách hàng phải mở tài khoản TGTT mở khách hàng đăng kí hồ sơ khách hàng phận TGTT.Sau đăng kí khách hàng nộp tiền vào phận ngân quĩ.Đối với khách hàng có tài khoản họ nộp trực tiếp vào quĩ.Sau kiểm tra tính khớp số tiền nộp với số tiền phiếu nộp thơng báo yêu cầu gởi tiền giải 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 cho phận TGTT kê khai thơng tin vào giấy rút tiền để rút tiền mặt tài khoản mình.Bộ phận TGTT kiểm tra tính hợp lệ thẻ tài khoản: • Nếu thẻ tài khoản khơng hợp lệ thơng báo thẻ khơng hợp lệ cho khách hàng • Nếu hợp lệ lập phiếu gởi tiền đưa cho khách hàng.Khách hàng đưa phiếu rút tiền cho phận TGTT,bộ phận kiểm tra thấu chi số dư tài khoản.Nếu hợp lệ thông báo yêu cầu khách hàng giải quyết, khách hàng rút tiền trả thẻ tài khoản cho khách hàng Nếu khơng thơng báo yêu cầu khách hàng không thự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 nộp thẻ tài khoản cho phận TGTT ,bộ phận kiểm tra tính hợp lệ thẻ tài khoản: • Nếu thẻ khơng hợp lệ thơng báo tính khơng hợp lệ thẻ tài khoản • Nếu hợp lệ,thì lập phiếu chuyển khoản cho khách hàng giao cho khách hàng.Bộ phận TGTT kiểm tra thấu chi số dư tài khoản -6- Nếu hợp lệ kiểm tra thẻ tài khoản người nhận.Thẻ tài khoản người nhận phù hợp thơng báo u cầu chuyển tiền chuyển thành công trả thẻ tài khoản cho khách hàng.Nếu khơng thơng báo giao dịch khơng thành cơng II.Bài tốn Sau khảo sát tốn đặt cho làm cho hệ thống hoạt động nhanh hiệu Như tốn địi hỏi vấn đề sau: Nhập liệu cho bảng sở liệu Khi nhập bảng mà thuộc tính khóa ngồi khơng có bảng cha khơng cho phép nhập vào sở liệu Đưa thông tin cần thiết cần thống kê báo cáo Tự động sinh mã cho thuộc tính khóa Khi có mã bị xóa nhập thêm mã chèn vào mã xóa B Phân tích hệ thống I Phân tích chức -7- Lập phiếu rút tiền Kiểm tra số dư có Trình duyệt kí Lập phiếu gửi tiền Kiểm tra tiền Trình duyệt kí Quản lí rút tiền Kiểm tra thẻ tài khoản Quản lí gửi tiền Kiểm tra thẻ tài khoản -8- Trình duyệt kí Kiểm tra thẻ tài khoản người nhận Kiểm tra số dư có Lập phiếu chuyển khoản Kiểm tra thẻ tài khoản Báo cáo-thống kê Đối chiếu kê với giao dịch thật Báo cáo sau khố sổ định kì Báo cáo kê khai ngày Quản li chuyển khoản QUẢN LÝ TIỀN GỬI THANH TỐN NGÂN HÀNG HÀNG II Phân tích liệu Mơ hình luồng liệu: a.Mơ hình mức khung cảnh -9- Đóng tài khoản Phong toả tài khoản Truy vấn thông tin Hiệu chỉnh thông tin Mở tài khoản Quản lí tài kho Hình 1: Sơ đồ phân cấp chức hệ thống Yêu cầu đóng tài khoản Thông báo yêu cầu rút tiền Thông báo yêu cầu gửi tiền Phiếu rút Thôngtin yêu cầu rút tiền Khách hàng Thông báo yêu cầu chuyển khoản Phiếu gửi tiền dủ rút Thẻ tài khoản QUẢN LÍ TIỀN GỬI THANH TOÁN NGÂN HÀNG Yêu cầu rút tiề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ệ Yêu cầu phong toả tài khoản giải Thơng báo tài khoản đóng Thông báo số tièn gửi không khớp Thẻ tài khoản Người quản lí Tiền giải Thơng báo số tiền tài khoản khơng Hình 2: Mơ hình luồng liệu mức khung cảnh - 10 - ngày TB yêu cầu chuyển khoản giải Thông báo tài khoản phong toả khố sổ định kì Phiếu chuyển khoản Thông báo số tiền tài khoản không dủ chuyển Thông báo thẻ tài khoản người nhận không tồn Khách hàng với giao dịch thật Báo cáo kê khai Thông tin khách hàng Báo cáo sau ĐốI chiếu kê Thông tin yêu cầu lập thẻ tài khoản Khách hàng CREATE procedure dbo.KhachHang_add @TenKH as nvarchar(30), @DiaChi as nvarchar(30), @DienThoai as nvarchar(15), @Fax as nvarchar(15), @GhiChu as ntext as Begin tu dong sinh ma cua ma khach hang declare @i int 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) begin declare @x int set @x=1; While (@x in (select so from so_KH)) set @x=@x+1 set @i=@x end declare @t char(10) declare @d char(10) set @d=ltrim(rtrim(convert(char(5),@i))) set @t= REPLICATE('0',3-len(@d))+@d declare @MaKH char(10) set @MaKH='KH'+@t print @MaKH insert into dbo.KhachHang( MaKH, TenKH, DiaChi, DienThoai, Fax) values( @MaKH, @TenKH, @DiaChi, @DienThoai, @Fax) end - 22 - b.Tạo tài khoản cho khách hàng • Cũng tương tự tạo thủ nhập bảng khách hàng Bảng ta tạo bảng ảo để lấy số mã tài khoản để tự động sinh mã sau create view so_TK as select cast(substring( MaTK,3,3)as int) 'so' from taikhoan • Nhưng có điểm khác biệt so với bảng khách hàng có khóa ngồi mã khách hàng.Nếu nhập mã khách hàng khơng có bảng khách hàng chương trình báo lỗi.Vì xử lí cho khơng có bảng khách hàng nhiệm vụ nhập khơng thể tiếp diễn Ta thơng báo hình cho người dung biết để sửa: - 23 - CREATE procedure dbo.TaiKhoan_add @MaKH as char(10), @NgayMoTK as datetime, @SoDuCo as float as begin declare @i int 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) begin declare @x int set @x=1; While (@x in (select so from so_TK)) set @x=@x+1 set @i=@x end declare @t char(10) declare @d char(10) set @d=ltrim(rtrim(convert(char(5),@i))) set @t= REPLICATE('0',3-len(@d))+@d declare @MaTK char(10) set @maTK='TK'+@t Print @MaTK set @maTK='TK'+@t Print @MaTK if @MaKH all if @MaKH all ( select MaKH ( select MaKH from KhachHang) from KhachHang) begin begin print'Ma khach hang nhap khong ton tai bang print'Ma khach hang nhap khong ton tai bang khach khach hang.Moi hang.Moi nhap lai'nhap lai' return return end end else else end end insert into dbo.TaiKhoan( insert into dbo.TaiKhoan( MaTK, MaTK, MaKH, MaKH, NgayMoTK, NgayMoTK, SoDuCo) SoDuCo) values( values( @MaTK, @MaTK, @MaKH, @MaKH, @NgayMoTK, @NgayMoTK, @SoDuCo) @SoDuCo) - 24 - c 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 để thỏa mãn yêu cầu.Thủ tục có tham số giúp ta kiểm tra tài khoản ta nhập mã tài khoản 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 II.Chức quản lí tiền gửi Kiểm tra thẻ tài khoản Tài khoản hợp lệ Lập phiếu gửi Giao dịch thành công Tăng tiền Tài Khoản - 25 - CREATE procedure dbo.PhieuGui_add @MaTK as char(10), @SoTienGui as float, @MaNV as char(10) a Lập phiếu gửi as Begin •declare @ngayGui smalldatetime Phiếu gửi lập tài khoản hợp lệ Thông tin phiếu gửi set lấy từ thông getdate() hàng tài khoản giấy kê khai gửi tiền khách @NgayGui= tin khách declare @i int hàng max(so) from select @i=đến gửi tiền so_PG if @i= (select count(so) from so_PG) set @i=@i+1 • Đầu tiên ta tạo bảng ảo để lấy số phiếu gửi để sinh mã sau if @i> (select count(so) from so_PG) tương tự phần begin declare @x int set @x=1; Whilecreate in (select so from so_PG)) (@x view so_PG as select cast(substring( SoPhieuGui,3,4)as int) 'so' set @x=@x+1 from @i=@x set PhieuGui end • Sau ta nhập thơng tin phiếu gửi declare @t char(10) declare @d char(10) khóa tự động sinh phiếu SoPhieuGui set @d=ltrim(rtrim(convert(char(5),@i))) gửi lập set @t= REPLICATE('0',4-len(@d))+@d NgayGui : gán ngày hệ thống declare @SoPhieuGui char(10) set @SoPhieuGui='PG'+@t có thuộc tính khóa ngoại MaNV,MaTK Trong Bảng PhieuGui Print @sophieugui mã khơng có bảng Tài Khoản, Nhân Khi nhập if @MaNV all Viên thìMaNV báo nhập vào sở liệu, phải nhập lại ( select thông from NhanVien) thỏa mãn hủy bỏ giao dịch begin print'Ma NhanVien nhap khong ton tai bang nhanvien moi nhap lai' return end else if @MaTK all ( select MaTK from TaiKhoan) begin print'Ma tai khoan nhap khong ton tai bang taikhoan moi nhap lai' return end else insert into dbo.PhieuGui(SoPhieuGui,MaTK,SoTienGui,NgayGui,MaNV) values(@SoPhieuGui,@MaTK,@SoTienGui,@NgayGui,@MaNV) end - 26 - b Khi gửi tiền thành công,tài khoản khách hàng tăng lên tự động Ta sử dụng trigger để thực điều - 27 - Create trigger capnhat_guitien On PhieuGui For insert As CREATE procedure dbo.PhieuRut_add declare @MaTK as char(10), @sotien_gui float @SoTienRutdeclare @sotien_co float as float, @MaNV as char(10) @matk char(10) declare as select @matk=MaTK,@sotien_gui=SoTienGui Begin from inserted declare @ngayRut smalldatetime select @sotien_co=SoDuco set @NgayRut= getdate() from TaiKhoan declare @i int @matk=MaTK bo lay so lón nhat mã where @i bien cuc select @i= max(so) from so_PR update TaiKhoan if @i= (select count(so) from so_PR) set @i=@i+1 set (select count(so) from so_PR) if @i> SoDuco=SoDuCo+@sotien_gui begin from TaiKhoan inner join inserted declare on TaiKhoan.MaTK=inserted.MaTK @x int set @x=1 While (@x in (select so from so_PR)) set @x=@x+1 III.Chức rút tiền set @i=@x end declare @t char(10) Tài khoản hợp lệ Kiểm tra thẻ declare @d char(10) TK set @d=ltrim(rtrim(convert(char(5),@i))) set @t= REPLICATE('0',4-len(@d))+@d Kiểm tra số dư TK Số dư có đủ để rút declare @SoPhieuRut char(10) set @SoPhieuRut='PR'+@t Giao dịch thành công Print @sophieurut Giảm tiền TK Lập phiếu rút if @MaNV all ( select MaNV from NhanVien) begin print'Ma NhanVien nhap khong ton tai bang nhanvien moi nhap lai' a Kiểm return dư tài khoản ta dùng thủ tục kiểm tra tài khoản nói tra số end phần quản lí tài khoản else if @MaTK all ( select MaTK from TaiKhoan) b Lập phiếu rút: cách làm tương tự lập phiếu gửi Begin print'Ma tai khoan nhap khong ton tai bang taikhoan moi nhap lai' return end else if @sotienrut >( select soduco from taikhoan where MaTK=@MaTK) begin print'giao dich khong cong vi so tien rut lon hon so tien co' return end else insert into dbo.PhieuRut(SoPhieuRut,MaTK,SoTienRut,NgayRut,MaNV) values(@SoPhieuRut,@MaTK,@SoTienRut,@NgayRut,@MaNV) end - 28 - c Trigger tự giảm tiền tài khoản khách hàng rút tiền - 29 - create trigger capnhat_ruttien on PhieuRut for insert CREATE procedure dbo.PhieuChuyenKhoan_add as @MaTKChuyen as @sotien_co float declare char(10), @SoTienChuyen as@sotien_rut float declare money, @MaTKNhan as char(10), char(10) declare @matk @MaNV as char(10) select @MaTK=MaTK,@sotien_rut=SoTienRut as from inserted Begin select @sotien_co=SoDuco declare @ngayChuyen smalldatetime from TaiKhoan set @Ngaychuyen= getdate() where @matk=MaTK if @sotien_co (select count(so) from so_PC) TaiKhoan.MaTK=inserted.MaTK begin declare @x IV.Chức năngint chuyển tiền set @x=1; While (@x in (select so from so_PC)) set @x=@x+1 Tài khoản hợp lệ set @i=@x TK Kiểm tra thẻ Kiểm tra số dư TK end Số dư có đủ declare @t char(10) để rút declare @d char(10) set @d=ltrim(rtrim(convert(char(5),@i))) Giao dịch thành set @t= REPLICATE('0',4-len(@d))+@d công Cập nhật tiền TK Lập phiếu chuyển declare @soPhieuChuyen char(10) set @soPhieuChuyen='PC'+@t Print @SoPhieuChuyen a.Kiểm tra số dư tài khoản ( rút tiền) NhanVien) if @MaNV all ( select MaNV from begin b Lập phiếu chuyển : tươngnhap khong ton phiếu chuyển nhanvien moi nhap lai'tra print'Ma NhanVien tự tai bang khoản kiểm return thêm tài khoản nhận khơng có thơng báo giao dịch thất bại end else if @MaTKchuyen all ( select MaTK from TaiKhoan) begin print'Ma tai khoan nhap khong ton tai bang taikhoan moi nhap lai' return end else if @MaTKnhan all ( select MaTK from TaiKhoan) begin print'Ma tai khoan nhan khong ton tai.Giao dich khong the thuc hien' return end else - 30 - - 31 - insert into dbo.PhieuChuyenKhoan(SoPhieuChuyen,MaTKChuyen, SoTienChuyen,NgayChuyen,MaTKNhan,LePhi,MaNV) values(@SoPhieuChuyen,@MaTKChuyen, @SoTienChuyen,@NgayChuyen, @MaTKNhan,@LePhi,@MaNV) end Lệ phí tính tự động dựa vào số tiền chuyển nhân viên giao dịch không cần phải nhập c Trigger cập nhật số tiền tài khoản create trigger capnhat_chuyenkhoan on phieuchuyenkhoan for insert as declare @sotien_chuyen float declare @matk_chuyen nvarchar(50) declare @matk_nhan nvarchar (50) declare @sotien_co float declare @lephi float select @sotien_chuyen=sotienchuyen,@matk_chuyen=matkchuyen, @matk_nhan=matknhan,@lephi=lephi from inserted update taikhoan set soduco=soduco-(@sotien_chuyen+@lephi) from taikhoan inner join inserted on taikhoan.matk=inserted.matkchuyen update taikhoan set soduco=soduco+@sotien_chuyen from taikhoan inner join inserted on taikhoan.matk=inserted.matknhan Số tiền tài khoản chuyển bị trừ khoản tiền chuyển khoản lệ phí.Số tiền tài khoản người nhận tăng thêm số tiền chuyển - 32 - V.Chức báo cáo thống kê Khách hàng Yêu cầu xem GD Bản in kê giao dich KH Báo cáo GD hàng ngày Nhà quản lí BC số GD,số tiền GD tháng BC số GD,số tiền GD theo tháng năm a Bản in kê giao dịch hàng tháng khách hàng Khi khách hàng muốn xem tháng chi tiêu khách hàng yêu cầu nhân viên in cho bảng thống kê Bảng in ngày tháng giao dịch loại cụ thể,số tiền,tổng số tiền gửi tháng, tổng tiền rút,tổng tiền chuyển,số dư có tài khoản thời Thông tin chi tiết loại giao dịch in chung bảng: số phiếu, ngày giao dịch,tên khách hàng, mã tài khoản,số tiền gửi Thủ tục cho ta in chi tiết tháng tài khoản khách hàng có yêu cầu - 33 - create proc TKGiaoDichTK @thang int, @maTK char(10) as begin select sophieugui 'so phieu',c.MaKH, TenKH,b.matk,sotiengui 'so tien',ngaygui 'ngay giao dich',manv from (phieugui a inner join taikhoan b on a.MaTK=b.MaTK)inner join khachhang c on b.MaKH=c.MaKH where month(ngaygui)= @thang and a.MaTK=@MaTK union select sophieurut 'so phieu',c.MaKH, TenKH,b.matk,sotienrut 'so tien',ngayrut 'ngay giao dich',manv from (phieurut a inner join taikhoan b on a.MaTK=b.MaTK)inner join khachhang c on b.MaKH=c.MaKH where month(ngayrut)= @thang and a.MaTK=@MaTK union select sophieuchuyen 'so phieu',c.MaKH, TenKH, a.matkchuyen 'matk',sotienchuyen 'so tien',ngaychuyen 'ngay giao dich',manv from (phieuchuyenkhoan a inner join taikhoan b on a.MaTKchuyen=b.MaTK)inner join khachhang c on b.MaKH=c.MaKH where month(ngaychuyen)= @thang and a.MaTKchuyen=@MaTK select sum(SoTienGui)'tong tien gui' from PhieuGui where month(ngaygui)= @thang and MaTK=@MaTK select sum(SoTienchuyen)'tong tien chuyen khoan' from PhieuChuyenKhoan where month(ngaychuyen)= @thang and MaTKchuyen=@MaTK select sum(SoTienRut)'tong tien rut' from PhieuRut where month(ngayrut)= @thang and MaTK=@MaTK select soduco from taikhoan where MaTK=@maTK end b Báo cáo giao dịch hàng ngày Thống kê giao dich diễn ngày Tính tổng số tiền gửi, tiền chuyển,tiền gửi giao dịch ngày - 34 - create proc TKGiaoDichNgay @ngaygiaodich smalldatetime as begin select sophieugui 'so phieu',c.MaKH, TenKH,b.matk,sotiengui 'so tien',manv from (phieugui a inner join taikhoan b on a.MaTK=b.MaTK)inner join khachhang c on b.MaKH=c.MaKH where ngaygui= @ngaygiaodich union select sophieurut 'so phieu',c.MaKH, TenKH,b.matk,sotienrut 'so tien',manv from (phieurut a inner join taikhoan b on a.MaTK=b.MaTK)inner join khachhang c on b.MaKH=c.MaKH where ngayrut=@ngaygiaodich union select sophieuchuyen 'so phieu',c.MaKH, TenKH, a.matkchuyen 'matk',sotienchuyen 'so tien',manv from (phieuchuyenkhoan a inner join taikhoan b on a.MaTKchuyen=b.MaTK)inner join khachhang c on b.MaKH=c.MaKH where ngaychuyen=@ngaygiaodich select sum(SoTienGui)'tong tien gui' from PhieuGui where ngaygui=@ngaygiaodich select sum(SoTienchuyen)'tong tien chuyen khoan' from PhieuChuyenKhoan where ngaychuyen=@ngaygiaodich select sum(SoTienRut)'tong tien rut' from PhieuRut where ngayrut=@ngaygiaodich end c Báo cáo giao dịch tháng In ngày số tiền loại gửi,rút,chuyển Tạo bảng ảo đưa thông tin tiền gửi tháng - 35 - create view tienguithang as Select day(ngaygui)'ngay',sum(sotiengui)'sotiengui' from phieugui where month(ngaygui)=month(getdate()) group by day(ngaygui) Tạo bảng ảo tienrutthang va tienchuyenthang tương tự Tạo bảng ảo đưa ngày có giao dịch tháng create view ngaygiaodich as select from tienguithang union select from tienrutthang union select from tienchuyenthang Thủ tục tạo sau: create proc TKGiaoDichThang as select c.ngay,sotiengui,sotienrut,sotienchuyen from ((tienrutthang a full outer join tienguithang b on a.ngay=b.ngay)full outer join tienchuyenthang d on( a.ngay=d.ngay or b.ngay=d.ngay)) right outer join ngaygiaodich c on (a.ngay=c.ngay or b.ngay=c.ngay or c.ngay=d.ngay) select sum(SoTienGui)'tong tien gui' from PhieuGui where month(ngaygui)=month(getdate()) select sum(SoTienchuyen)'tong tien chuyen khoan' from PhieuChuyenKhoan where month(ngaychuyen)=month(getdate()) select sum(SoTienRut)'tong tien rut' from PhieuRut where month(ngayrut)=month(getdate()) - 36 - ... quản lí khách hàng tập trung khách hàng gửi tiền, rút tiền, chuyển khoản… Tiền gửi toán (TGTT) chủ yếu huy động tiền gửi cá nhân Hệ thống làm công việc sau: • Quản lí tài khoản tiền gửi toán:... phong tỏa tài khoản cho khách hàng • Xử lí giao dịch liên quan đến tiền gửi toán: Với tài khoản tốn khách hàng gửi tiền, rút tiền, chuyển khoản • In báo cáo lên quan đến tiền gửi toán: bảng kê... Thông báo thẻ tài khoản không hợp lệ Phiếu gửi tiền Khách hàng Kiểm tra thẻ tài khoản Lập phiếu gửi tiền Thông báo số tiền gửi không khớp Tỉền Thẻ tài khoản Phiếu gửi tiền Kiểm tra tiền Tài khoản