(Bài Thảo luận) Xây dựng và quản lý cơ sở dữ liệu quản lý hồ sơ vay vốn ngân hàng (Bài Thảo luận) Xây dựng và quản lý cơ sở dữ liệu quản lý hồ sơ vay vốn ngân hàng (Bài Thảo luận) Xây dựng và quản lý cơ sở dữ liệu quản lý hồ sơ vay vốn ngân hàng (Bài Thảo luận) Xây dựng và quản lý cơ sở dữ liệu quản lý hồ sơ vay vốn ngân hàng (Bài Thảo luận) Xây dựng và quản lý cơ sở dữ liệu quản lý hồ sơ vay vốn ngân hàng (Bài Thảo luận) Xây dựng và quản lý cơ sở dữ liệu quản lý hồ sơ vay vốn ngân hàng
MÔ TẢ BÀI TOÁN
Khách hàng có nhu cầu vay vốn tại ngân hàng để phục vụ các hoạt động đầu tư hoặc các nhu cầu cá nhân có thể đến ngân hàng để đăng ký và hoàn tất thủ tục làm hồ sơ vay vốn một cách thuận tiện.
Thông tin khách hàng được lưu trữ an toàn trong hệ thống cơ sở dữ liệu của ngân hàng, bao gồm các dữ liệu quan trọng như mã khách hàng, họ tên, giới tính, địa chỉ, số điện thoại, ngày sinh, số CCCD/CMT, nghề nghiệp hiện tại và thu nhập hàng năm Việc bảo mật thông tin khách hàng là ưu tiên hàng đầu nhằm đảm bảo quyền riêng tư và uy tín của ngân hàng Các thông tin này giúp ngân hàng quản lý有效 khách hàng, cung cấp dịch vụ phù hợp và nâng cao trải nghiệm khách hàng.
Hồ sơ vay vốn được lưu trữ trong hệ thống cơ sở dữ liệu (CSDL), bao gồm các thông tin quan trọng như mã hồ sơ, tên hồ sơ, ngày lập hồ sơ, số tiền vay và loại giấy chứng minh thu nhập Những dữ liệu này giúp quản lý hồ sơ vay một cách chính xác và hiệu quả Việc lưu trữ đầy đủ các thông tin này đảm bảo tính minh bạch và thuận tiện cho quá trình xử lý hồ sơ vay vốn Kết quả này hỗ trợ tối ưu hoá quy trình xét duyệt và quản lý khoản vay, đáp ứng yêu cầu của khách hàng và ngân hàng.
Sau mỗi giao dịch, khách hàng cần khai báo thông tin để nhân viên lập hồ sơ vay vốn Một khách hàng có thể thực hiện nhiều giao dịch, nhưng mỗi giao dịch chỉ dành riêng cho một khách hàng và được lưu trữ trong hồ sơ vay vốn riêng Thông tin giao dịch, bao gồm mã giao dịch, tên giao dịch và thời gian thực hiện, được lưu trữ trong cơ sở dữ liệu để đảm bảo quản lý chính xác Hệ thống cho phép một hồ sơ vay vốn xử lý nhiều giao dịch khác nhau, tối ưu hóa quy trình vay vốn và nâng cao trải nghiệm khách hàng.
Mỗi nhân viên có thể thực hiện nhiều giao dịch để tạo lập hồ sơ vay vốn cho khách hàng, đảm bảo quy trình thuận tiện và hiệu quả Thông tin về nhân viên, bao gồm mã nhân viên, họ tên, chức vụ, giới tính, địa chỉ, ngày sinh và số CCCD/CMT, được lưu trữ an toàn trong hệ thống cơ sở dữ liệu (CSDL) Việc quản lý dữ liệu nhân viên một cách chính xác giúp nâng cao chất lượng dịch vụ và đảm bảo tính bảo mật thông tin khách hàng.
Mỗi hồ sơ vay vốn chính thức đều có kỳ hạn trả nợ rõ ràng, bao gồm các thông tin quan trọng như mã kỳ hạn, loại kỳ hạn, lãi suất, lãi vay và tổng số tiền phải trả Các yếu tố này giúp khách hàng hiểu rõ thời gian và chi phí liên quan đến khoản vay Việc nắm bắt chính xác các thông tin về kỳ hạn vay góp phần đảm bảo quản lý tài chính hiệu quả và tuân thủ đúng cam kết trả nợ.
XÂY DỰNG VÀ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Xây dựng mô hình ER
1.1 Xác định thực thể và các thuộc tính tương ứng
1.1.1 Thực thể của bài toán
Thực thể khách hàng (KHACHHANG): Lưu trữ thông tin của khách hàng có làm hồ sơ vay vốn tại ngân hàng
Thực thể nhân viên (NHANVIEN): Lưu trữ thông tin cần thiết của một nhân viên làm trong ngân hàng
Thực thể hồ sơ vay vốn (HSVV): Lưu trữ và cập nhật thông tin hồ sơ vay vốn của khách hàng có nhu cầu vay vốn tại ngân hàng.
Thực thể kỳ hạn (KYHAN) là yếu tố quan trọng trong quản lý vay vốn, lưu trữ thông tin về kỳ hạn trả khoản vay để đảm bảo quá trình vay vốn được duy trì liên tục Nó giúp xác định rõ thời gian gia hạn hoặc thanh toán khoản vay, đồng thời cung cấp dữ liệu về lãi suất khách hàng phải trả Việc quản lý tốt kỳ hạn vay giúp tăng tính minh bạch và hiệu quả trong hoạt động tài chính của khách hàng.
Thực thể giao dịch (GD): Lưu trữ thông tin về những giao dịch của khách hàng thực hiện ở ngân hàng.
1.1.2 Xác định thuộc tính của bài toán
KHACHHANG (MAKH, HOTEN, GIOITINH, DIACHI, SDT, NGAYSINH, CCCD,CONGVIEC, THUNHAP)
NHANVIEN (MANV, HOTEN, DIACHI, NGAYSINH, GIOITINH, CCCD/CMT, CHUCVU)
KYHAN ( MAKYHAN, LOAIKH, LAIVAY, TONGTIEN)
- Thực thể KHACHHANG có khóa chính là MAKH
- Thực thể NHANVIEN có khóa chính là MANV
- Thực thể HSVV có khóa chính là MAHS
- Thực thể KYHAN có khóa chính là MAKYHAN
- Thực thể GD có khóa chính là MAGD
1.2 Mối quan hệ giữa các thực thể
Mối liên kết giữa thực thể khách hàng và thực thể giao dịch
Mối liên kết giữa thực thể nhân viên và thực thể giao dịch
Mối liên kết giữa thực thể giao dịch và hồ sơ vay vốn
Mối liên kết giữa thực thể kỳ hạn và thực thể hồ sơ vay vốn
1.3 Mô hình thực thể liên kết
Chuyển đổi từ mô hình ER sang mô hình quan hệ
- Quan hệ hồ sơ vay vốn
2.2 Mô hình quan hệ dạng sơ đồ
2.3 Các thuộc tính của thực thể sau khi chuyển đổi
Gạch chân là khóa chính, in nghiêng là khóa ngoại
KHACHHANG (MAKH, HOTEN, DIACHI, NGAYSINH, GIOITINH, SDT, CCCD/CMT, CONGVIEC, THUNHAP)
GD (MAGD, TENGD, THOIGIANGD, MAKH, MANV, MAHS)
NHANVIEN (MANV , HOTEN, DIACHI, NGAYSINH, GIOITINH, CCCD/CMT, CHUCVU)
HSVV (MAHS, TENHS, NGAYLAP, SOTIENVAY, LOAIGIAYCMTN, MAKYHAN) KYHAN (MAKYHAN, LOAIKYHAN, LAISUAT, LAIVAY, TONGTIEN)
2.4 Miền giá trị cho các thuộc tính của bảng
Tên bảng Tên trường Kiểu Độ rộng Ý nghĩa
MAKH Char 5 Mã khách hàng
HOTEN Nvarchar 40 Họ tên khách hàng GIOITINH Nvarchar 3 Giới tính
KHACHHANG DIACHI Nvarchar 20 Địa chỉ
SDT Char 10 Số điện thoại
CCCD Char 12 Căn cước công dân
MANV Char 5 Mã nhân viên HOTEN Nvarchar 40 Họ tên nhân viên GIOITINH Nvarchar 3 Giới tính
NHANVIEN NGAYSINH Date Ngày sinh
CCCD Char 12 Căn cước công dân
MAKYHAN Char 5 Mã kỳ hạn
LOAIKYHAN Nvarchar 20 Loại kỳ hạn
KYHAN LAISUAT Float Lãi suất
MAHS Char 5 Mã hồ sơ
TENHS Nvarchar 40 Tên hồ sơ
HSVV SOTIENVAY Float Số tiền vay
LOAIGIAY CMTN Nvarchar 40 Loại giấy chứng minh thu nhập makyhan Char 5 Mã kỳ hạn
MAGD Char 5 Mã giao dịch
TENGD Nvarchar 20 Tên giao dịch
GD THOIGIANGD Date Thời gian giao dịch
MAKH Char 5 Mã khách hàng
MANV Char 5 Mã nhân viên
MAHS Char 5 Mã hồ sơ
Cài đặt cơ sở dữ liệu trên Hệ quản trị cơ sở dữ liệu SQL Server
3.1 Tạo hệ quản trị cơ sở dữ liệu
MAKH CHAR(5) NOT NULL PRIMARY KEY, HOTEN Nvarchar(40) NOT NULL,
MANV CHAR(5) NOT NULL PRIMARY KEY,
MAKYHAN CHAR(5) NOT NULL PRIMARY KEY,
MAHS CHAR(5) NOT NULL PRIMARY KEY,
LOAIGIAYCMTN Nvarchar(40) NOT NULL, makyhan CHAR(5) NOT NULL,
CONSTRAINT fk_kyhan_HSVV FOREIGN KEY(makyhan) REFERENCES kyhan(makyhan)
MAGD CHAR(5) NOT NULL PRIMARY KEY,
CONSTRAINT fk_KHACHHANG_GD FOREIGN KEY(MAKH) REFERENCES KHACHHANG(MAKH),
CONSTRAINT fk_NHANVIEN_GD FOREIGN KEY(MANV) REFERENCES NHANVIEN(MANV),
CONSTRAINT fk_HSVV_GD FOREIGN KEY(MAHS) REFERENCES HSVV(MAHS) )
3.3 Chèn dữ liệu cho bảng
3.3.1 Chèn dữ liệu cho bảng Khách hàng
G(MAKH,HOTEN,GIOITINH,NGAYSINH,DIACHI,SDT,CCCD,CONGVIEC,THUNH AP)
('KHND8',N'Hoàng Kiều Anh',N'Nữ','1994/07/16',N'Nam Định','0945881905','036194678532',N'Y tá','65000000'),
('KHHN3',N'Hoàng Nguyệt Ánh',N'Nữ','1985/11/01',N'Hà
('KHBN6',N'Nguyễn Văn Huy',N'Nam','1990/08/19',N'Bắc
('KHVP4',N'Vũ Hồng Khánh',N'Nam','1969/03/26',N'Vĩnh
('KHPT3',N'Nguyễn Thị Diễm Kiều',N'Nữ','1993/08/18',N'Phú
Thọ','0919723524','025193764297',N'Nhân viên tiếp thị','47000000'),
('KHHT8',N'Trần Thị Lý',N'Nữ','1986/04/06',N'Hà
('KHTB4',N'Nguyễn Hiệp Dương',N'Nam','1980/09/29',N'Thái
3.3.2 Chèn dữ liệu cho bảng Nhân viên
NHANVIEN(MANV,HOTEN,GIOITINH,NGAYSINH,CCCD,DIACHI,CHUCVU) VALUES
('NV012',N'Đặng Quốc Việt',N'Nam','1995/07/23','010958762402',N'Hà Nội',N'Nhân viên tín dụng ngân hàng'),
('NV023',N'Lưu Thanh Tuấn',N'Nam','1996/03/02','001096724105',N'Hà Nội',N'Nhân viên tín dụng ngân hàng'),
('NV014',N'Hoàng Thị Thanh Mai',N'Nữ','1993/07/04','024193982175',N'Bắc
Giang',N'Nhân viên tín dụng ngân hàng'),
('NV002',N'Cao Thị Xuân Dung',N'Nữ','1999/05/12','001199421803',N'Hà Nội',N'Nhân viên tín dụng ngân hàng'),
('NV009',N'Phạm Thị Thu Hương',N'Nữ','1999/06/23','031199742301',N'Hải
Phòng',N'Nhân viên tín dụng ngân hàng'),
('NV004',N'Trần Trọng Dũng',N'Nam','1990/01/24','001090468216',N'Hà Nội',N'Nhân viên tín dụng ngân hàng'),
('NV001',N'Nguyễn Hải Mừng',N'Nữ','1994/09/05','001194372018',N'Hà Nội',N'Nhân viên tín dụng ngân hàng'),
3.3.3 Chèn dữ liệu cho bảng Kỳ hạn
INSERT INTO KYHAN(MAKYHAN,LOAIKYHAN,LAISUAT,LAIVAY,TONGTIEN) VALUES
3.3.4 Chèn dữ liệu cho bảng Hồ sơ vay vốn
HSVV(MAHS,TENHS,NGAYLAP,SOTIENVAY,LOAIGIAYCMTN,MAKYHAN) VALUES
('HT004',N'Vay mua nhà đất','2020/02/13','70000000',N'Sao kê lương','MKH02'), ('HR001',N'Vay xây dựng sửa chữa lại nhà cửa','2018/05/17','100000000',N'Bảng xác nhận lương','MKH04'),
Các khoản vay phổ biến hiện nay bao gồm vay mua ô tô, vay kinh doanh, vay để chăn nuôi, thường yêu cầu các giấy tờ như hợp đồng lao động, giấy đăng ký xe, sao kê lương hoặc hợp đồng vay tín chấp Ví dụ, vay mua ô tô có số tiền 150 triệu đồng gửi ngày 18/09/2011, trong khi vay kinh doanh có mức cao nhất lên đến 200 triệu đồng, được thực hiện vào tháng 3 năm 2021 Vay để chăn nuôi thường có khoản vay khoảng 90 triệu đồng, phù hợp với các giấy tờ như sao kê lương Các khoản vay này đóng vai trò quan trọng trong các hoạt động cá nhân và doanh nghiệp tại Việt Nam.
('HF004',N'Vay để mua nhà','2018/09/03','150000000',N'Sao kê lương','MVS09'),
3.3.5 Chèn dữ liệu cho bảng Giao dịch
INSERT INTO GD(MAGD,TENGD,THOIGIANGD,MAKH,MANV,MAHS) VALUES
('GD001',N'Vay tín chấp','2022/09/02','KHND8','NV012','HT004'),
('GD003',N'Vay tín chấp','2022/02/03','KHHN3','NV023','HR001'),
('GF001',N'Vay thế chấp','2022/05/04','KHBN6','NV014','HY008'),
('GH003',N'Vay tín chấp','2019/05/06','KHVP4','NV002','HA003'),
('GS005',N'Vay thế chấp','2021/03/07','KHPT3','NV009','HI009'),
('GH005',N'Vay tiêu dùng','2018/09/04','KHHT8','NV004','HK003'),
('GF007',N'Vay tiêu dùng','2020/08/06','KHTB4','NV001','HD003'),
('GL002',N'Vay tín chấp','2020/05/04','KHTH9','NV003','HF004'),
Khai thác cơ sở dữ liệu
- Cho biết mã khách hàng, họ tên, địa chỉ, công việc, thu nhập của những khách hàng có thu nhập từ 50000000 đến 100000000
SELECT MAKH, HOTEN, DIACHI, CONGVIEC, THUNHAP
- Hiển thị thông tin hồ sơ vay vốn thuộc tên hồ sơ Vay kinh doanh hoặc vay để tiêu dụng
WHERE TENHS=N'Vay kinh doanh' OR TENHS=N'Vay để tiêu dùng'
- Đưa ra thông tin khách hàng (mã khách hàng, họ tên, địa chỉ, số điện thoại, thời gian) thực hiện giao dịch từ tháng 7/2022 đến tháng 9/2022
SELECT KHACHHANG.MAKH, HOTEN, DIACHI, SDT, THOIGIANGD
YEAR(GIAODICH.THOIGIANGD) 22 AND (MONTH(THOIGIANGD) IN (7,8,9))
- Tạo view in ra mỗi nhân viên (MaNV, HoTen) đã giao dịch cho vay bao nhiêu tiền trong tháng hiện tại
SELECT NHANVIEN.MANV, NHANVIEN.HOTEN, SUM(HSVV.SOTIENVAY) AS TONGTIENVAY
ON NHANVIEN.MANV = GD.MANV
ON GD.MaHS = HSVV.MAHS
WHERE MONTH(HSVV.NGAYLAP) = MONTH(GETDATE())
GROUP BY NHANVIEN.MANV, NHANVIEN.HOTEN;
- Tạo view in ra tổng số tiền vay trong mỗi ngày
SELECT NGAYLAP, SUM(HSVV.SOTIENVAY) AS TONGTIENVAY FROM HSVV
- Tạo view in ra danh sách loại kỳ hạn và lãi xuất tương ứng
- Tạo procedure truy vấn dữ liệu khách hàng theo ID
CREATE PROCEDURE get_id_kh
SELECT * FROM KHACHHANG WHERE MAKH = @customer_id END
EXEC get_id_kh 'KHND8'
EXEC get_id_kh 'KHHP2'
- Tạo procedure để tính tổng số tiền vay và số lần vay của mỗi khách hàng
SELECT khachhang.MAKH, khachhang.HOTEN,
The query calculates the total number of loan instances and the aggregate loan amount for each customer by joining the tables HSVV, GD, and KHACHHANG based on their relationships It groups the results by customer ID and name to provide a comprehensive overview of each customer's borrowing activity This analysis helps identify lending patterns and customer borrowing behavior, which is essential for financial data insights and decision-making.
- Tạo procedure quản lý dữ liệu thêm, sửa, xóa cho bảng NHANVIEN
INSERT INTO NHANVIEN (MANV, HOTEN, GIOITINH, NGAYSINH, CCCD, DIACHI, CHUCVU)
VALUES (@manv, @hoten, @gioitinh, @ngaysinh, @cccd,
UPDATE NHANVIEN SET HOTEN = @hoten, GIOITINH = @gioitinh, NGAYSINH @ngaysinh, CCCD = @cccd, DIACHI = @diachi, CHUCVU = @chucvu
DELETE FROM NHANVIEN WHERE MANV = @manv END
Thêm một nhân viên mới vào bảng:
EXEC QuanLyNhanVien 'insert', 'NV020', N'Nguyễn Văn A', 'Nam', '1990/01/01', '123456789012', N'Quận 1, TP HCM', N'Nhân viên bán hàng'
Sửa thông tin của một nhân viên trong bảng:
EXEC QuanLyNhanVien 'update','NV020', N'Nguyễn Văn B', 'Nữ', '1990/02/02', '987654321012', N'Quận 2, TP HCM', N'Nhân viên kế toán'
Xóa một nhân viên khỏi bảng:
EXEC QuanLyNhanVien 'delete', 'NV020', N'Nguyễn Văn B', 'Nữ', '1990/02/02', '987654321012', N'Quận 2, TP HCM', N'Nhân viên kế toán'
- Tạo function in ra mỗi nhân viên đã thực hiện được bao nhiêu giao dịch
RETURNS @KQ Table( MaNV char(5), Hoten Nvarchar(40), Sogiaodich int)
Select NhanVien.MaNV, Hoten, Count(*) as Sogiaodich
ON NhanVien.MaNV= GD.MaNV
Group by NhanVien.MaNV, NhanVien.Hoten
- Tạo function hiển thị ra hồ sơ có loại giấy CMTN là hợp đồng lương create function f_DS1(@loai Nvarchar(40)) returns @tablename table
) as begin return( select * from HSVV where LOAIGIAYCMTN=N'Hợp đồng lương'
- Hiển thị thông tin của MAHS, TENHS, NGAYLAP, SOTIENVAY theo mã kì hạn create function f_DS3(@makyhan char(5)) returns @tablename3 table
) as begin insert into @tablename3 select * from HSVV where makyhan=@makyhan return end select* from f_DS3('MKH02')
- Chèn thêm 2 hàng trong bảng KHACHHANG
RAISERROR ('%d hang da duoc them vao bang KHACHHANG', 0, 1,@@rowcount) END
G(MAKH,HOTEN,GIOITINH,NGAYSINH,DIACHI,SDT,CCCD,CONGVIEC,THUNH AP)
('KHND9', N'Lê Thuỳ Anh', N'Nữ', '1995/10/22', N'Nam Định', '0945551950', '036491678235', N'Giáo Viên', '600000000'),
('KHTB5', N'Nguyễn Văn Dũng', N'Nam', '1997/09/20', N'Thái Bình', '0989672253','025167464298', N'Luật sư', '90000000')
- Sửa MAKH trong bảng KHACHHANG từ “KHHN3” thành “KHHN2”
RAISERROR('%d hàng được sửa trong bảng KHACHHANG',0, 1,@@rowcount) END
UPDATE GD SET GD.MAKH = INSERTED.MAKH
WHERE GD.MAKH = DELETED.MAKH
UPDATE KHACHHANG SET MAKH = 'KHHN2' WHERE MAKH = 'KHHN3'
RAISERROR('%d hàng được xoá trong bảng KHACHHANG',0, 1,@@rowcount) END
WHERE GD.MAKH = DELETED.MAKH
DELETE KHACHHANG FROM KHACHHANG WHERE MAKH ='KHTN5'
* Tạo Trigger tự động nhập lãi vay và tổng tiền
Bạn có thể tạo trigger để tự động nhập tính lãi vay và tổng tiền vào bảng KYHAN khi thêm hồ sơ mới vào HSVV Cách tính lãi vay là lấy số tiền vay nhân với lãi suất 15% rồi chia cho 12 tháng, giúp tiết kiệm thời gian và giảm thiểu sai sót thủ công Tổng tiền sẽ được tự động cập nhật dựa trên số lãi vay và các khoản phí liên quan, đảm bảo dữ liệu luôn chính xác và nhất quán Việc tự động hóa quá trình này giúp nâng cao hiệu quả quản lý tài chính, tối ưu hóa quy trình làm việc và đảm bảo theo dõi chính xác các khoản vay hàng tháng.
This code dynamically generates a unique loan code by concatenating "KH" with a random number between 1 and 100 It calculates the monthly interest payment based on a 15% annual interest rate applied to the loan amount The script retrieves the loan amount and customer ID from the inserted data, then updates the database with the new loan code for the specific customer This process automates loan code creation and interest calculation in financial database management.
To automate updates upon changes to the KYHAN record, a trigger named demo2 is created on the dbo.KYHAN table that activates after each update This trigger retrieves relevant data such as the transaction code (makyhan), interest amount (LAIVAY), and total amount (TONGTIEN) It then calculates the new loan amount in the HSVV table by subtracting the interest and total payment from the current loan balance Finally, the trigger updates the HSVV table with the recalculated loan balance, ensuring real-time accuracy of loan information after each KYHAN update This implementation enhances data consistency and streamlines loan management processes in the database.
so tien vay = so tien vay - lai vay - tong tien end go
CREATE USER Thanhviennhom10 FOR LOGIN Admin
* Trao quyền trên tất cả bảng nhân viên cho người dùng tên là Thanhviennhom10:
GRANT ALL ON dbo.NHANVIEN TO Thanhviennhom10
* Trao quyền bất kỳ SELECT, INSERT, UPDATE và DELETE trên bảng khách hàng cho người dùng Thanhviennhom10:
GRANT SELECT, INSERT, UPDATE, DELETE ON dbo.KHACHHANG TO Thanhviennhom10
* Thu hồi quyền DELETE trên bảng nhân viên của người dùng tên là Thanhviennhom10: REVOKE DELETE ON dbo.NHANVIEN FROM Thanhviennhom10
Cho phép đọc, ghi dữ liệu của bảng
Trao quyền/thu hồi quyền cho user Thanhviennhom10:
Thử truy cập và CSDL QLNS_56SD thì không được: