Mô tả bài toán Khi khách hàng có nhu cầu gửi tiết kiệm tại ngân hàng, nếu chưa có sổ tiết kiệm tạingân hàng thì nhân viên tại quầy hướng dẫn lập sổ tiết kiệm mới cho khách hàng.. Sau khi
Trang 1Trường Đại Học Thương Mại
Khoa Hệ Thống Thông Tin Kinh Tế
-o0o -BÀI THẢO LUẬN
Đề tài: Tổ chức xây dựng cơ sở dữ liệu quản lý tài chính tiền tệ.
Cụ thể: Quản lý sổ tiết kiệm
Nhóm Thực Hiện: Nhóm 11.
Giảng Viên Hướng Dẫn: Nguyễn Thị Thu Thủy.
Hà Nội 2015
Trang 2Đề tài: Tổ chức xây dựng cơ sở dữ liệu quản lý tài chính tiền tệ Cụ thể: quản
lý sổ tiết kiệm.
I Xây dựng cơ sở dữ liệu
1 Mô tả bài toán
Khi khách hàng có nhu cầu gửi tiết kiệm tại ngân hàng, nếu chưa có sổ tiết kiệm tạingân hàng thì nhân viên tại quầy hướng dẫn lập sổ tiết kiệm mới cho khách hàng Nếuthông tin đầy đủ và hợp lệ thì nhân viên sẽ mở sổ tiết kiệm cho khách hàng
Sau khi lập sổ tiết kiệm, khách hàng có thể gửi thêm tiền vào tài khoản hoặc rúttiền trong tài khoản Khách hàng phải điền đầy đủ thông tin vào trong phiếu gửi tiền donhân viên cung cấp.Tương tự, nếu muốn rút tiền, khách hàng phải có phiếu rút tiền
Ngân hàng quản lý và theo dõi số tài khoản của khách hàng sau mỗi lần mở sổ và
in báo cáo số tài khoản theo định kì
Thông tin về sổ tiết kiệm bao gồm: Số tài khoản, số tiền, lãi suất, kỳ hạn
Thông tin về khách hàng bao gồm: Mã khách hàng, tên khách hàng, số chứng minhthư nhân dân, địa chỉ, số điện thoại
Thông tin về nhân viên bao gồm: Mã nhân viên, tên nhân viên, giới tính, địa chỉ, sốđiện thoại
Thông tin về phiếu gửi tiền bao gồm: Mã phiếu gửi, số tài khoản, ngày gửi, số tiềngửi
Thông tin về phiếu rút tiền bao gồm: Mã phiếu rút, số tài khoản, ngày rút, số tiềnrút
- Xác định các mối quan hệ:
Mỗi sổ tiết kiệm chỉ được lập bởi một nhân viên, một nhân viên có thể lập nhiều sổtiết kiệm
Trang 3Mỗi khách hàng có thể có nhiều sổ tiết kiệm, nhưng một sổ tiết kiệm chỉ được sởhữu bởi một khách hàng.
Mỗi phiếu gửi tiền được lập bởi một nhân viên, một nhân viên có thể lập nhiềuphiếu gửi
Mỗi phiếu rút tiền được lập bởi 1 một nhân viên, 1 nhân viên có thể lập nhiềuphiếu rút
2 Xác định các thực thể
- Khách hàng (Mã khách hàng, tên khách hàng, số chứng minh thư nhân dân, địa chỉ, sốđiện thoại)
- Nhân viên (Mã nhân viên, tên nhân viên, giới tính, địa chỉ, số điện thoại)
- Sổ tiết kiệm (Số tài khoản, số tiền, lãi suất, kỳ hạn)
- Phiếu gửi tiền (Mã phiếu gửi, số tài khoản, ngày gửi, số tiền gửi)
- Phiếu rút tiền (Mã phiếu rút, số tài khoản, ngày rút, số tiền rút)
3 Tạo bảng với các ràng buộc
create table khachhang
(
makh int primary key,
tenkh nvarchar (30) notnull,
socmnd int notnull,
manv int primary key,
tennv nvarchar (30) notnull,
Trang 4sotk float primary key,
sotien int notnull,
constraint dk_sotien check (sotien>=100000),
Trang 54 Xác định liên kết
5 Cơ sở dữ liệu
- Bảng khách hàng
Trang 6Makh (Mã
khách hàng)
Tenkh (Tên kháchhàng)
Socmnd (Số chứngminh nhân dân)
Diachi (Địachỉ)
Sdt (Số điệnthoại)
- Bảng sổ tiết kiệm
Sotk (Số tài
khoản)
Sotien (Sốtiền)
Laisuat(Lãi suất)
Kyhan(Kỳ hạn)
Makh (Mãkhách hàng)
Manv (Mãnhân viên)
Trang 7- Bảng Phiếu gửi tiền
Maphieugui
(Mã phiếu
gửi)
Makh (Mãkháchhàng)
Manv (Mãnhân viên)
Sotk (Số tàikhoản)
Ngaygui(Ngày gửi)
Sotiengui(Số tiền gửi)
Manv (Mãnhân viên)
Sotk (Số tàikhoản)
Ngayrut(Ngày rút)
Sotienrut(Số tiền rút)
a Hiển thị danh sách khách hàng có địa chỉ ở Hải Phòng
select makh, tenkh, diachi
from khachhang
where diachi = N'Hải Phòng'
Trang 8b Lọc ra danh sách các khách hàng có họ là “Nguyễn”select *
from khachhang
where tenkh like (N'Nguyễn%')
Trang 9c Hiển thị danh sách những khách hàng rút số tiền > 5000000
select kh.makh, tenkh, sotienrut
from khachhang kh innerjoin phieuruttien prt on kh.makh = prt.makh
where sotienrut > 5000000
d Hiển thị danh sách khách hàng đc sắp xếp giảm dần theo số tiền trong sổ tiết kiệmselect kh.makh, tenkh, sotk, sotien
from khachhang kh innerjoin sotietkiem stk on kh.makh=stk.makh
order by sotien DESC
Trang 10e Dùng nối ngoài trái hiển thị những tất cả thông tin khách hàng ở Hải Phòng có sổ tiếtkiệm
select *
from khachhang kh leftouterjoin sotietkiem stk on kh.makh=stk.makh
where diachi = N'Hải Phòng'
Trang 112 Truy vấn con
a Sử dụng truy vấn con hiển thị danh sách khách hàng có số dư trong sổ tiết kiệm >
75000000
select kh.makh, kh.tenkh, stk.sotien
from khachhang kh innerjoin sotietkiem stk on kh.makh=stk.makh
where kh.makh in
(select makh
from sotietkiem
where sotien> 75000000)
Trang 12b Sử dụng truy vấn con hiển thị danh sách khách hàng của những người có makh lớn hơntất cả các khách hàng không có địa chỉ.
select kh.makh, kh.tenkh, stk.sotk, stk.sotien
from khachhang kh leftjoin sotietkiem stk on kh.makh=stk.makh
where kh.makh >ALL(select makh from khachhang where diachi ISNULL)
Trang 133 Tạo khung nhìn
- Tạo khung nhìn danh sách nhân viên đã lập phiếu gửi tiền
create view dsnv
as
select distinct nv.manv, nv.tennv
from nhanvien nv innerjoin phieuguitien pgt on nv.manv=pgt.manv
Trang 14- Gọi thủ tục:
execute lietkedskh @diachi = N'Hải Phòng'
b Tạo thủ tục hiển thị danh sách nhân viên có họ là “Nguyễn”
Trang 16c Tạo thủ tục liệt kê danh sách khách hàng từ 1 địa chỉ nhập từ bàn phím mà có số tiềntrong sổ tiết kiệm > 100000000
- Tạo thủ tục
create proc dskh (@diachi nvarchar(50))
as
select kh.makh, kh.tenkh, stk.sotien
from khachhang kh innerjoin sotietkiem stk on kh.makh=stk.makh
where diachi=@diachi and stk.sotien > 100000000
Trang 17- Gọi thủ tục
execute dskh @diachi= N'Hải Phòng'
5 Tạo hàm
Trang 18Viết hàm tạo bảng danh sách khách hàng có makh> makh nhập từ bàn phím.
Trang 196 Tạo trigger: Tạo trigger cho bảng khách hàng, kiểm tra khi cập nhật danh sách khách
hàng phải có độ dài của tên khách hàng > 1 kí tự, nếu độ dài tên <= 1 kí tự thì in ra: “Tênkhông hợp lệ”
- Tạo trigger
if exists(select name from sysobjects
where name='t_tenkh'and type ='TR')
drop trigger t_tenkh
declare @lengthOfName nvarchar
select @lengthOfName=LEN(inserted.tenkh)
Trang 20insert into khachhang values ('14','A','123456789','Hà Nội','345677897')
Tên khách hàng nhập vào là: A chỉ là 1 kí tự nên trên màn hình sẽ báo là: Tên không hợplệ
Trang 21III Tạo form kết nối dữ liệu
- Form MENU
Trang 22- Form Thông tin khách hàng
Chọn mục: Thông tin khách hàng trong form MENU để xem các thông tin của khách hàng và thêm, sửa, xóa thông tin khách hàng
- Form Thông tin nhân viên
Chọn mục: Thông tin nhân viên trong form MENU để xem thông tin nhân viên, thêm, sửa, xóa nhân viên
Trang 23- Form Lập sổ tiết kiệm
Chọn mục: Lập sổ tiết kiệm trong form MENU để lập sổ tiết kiệm, thêm, sửa, xóa
sổ tiết kiệm
Trang 24- Form Lập Phiếu Gửi Tiền
Chọn mục: Lập Phiếu Gửi Tiền trong form MENU để lập phiếu gửi tiền, thêm, sửa, xóa phiếu gửi tiền
Trang 25- Form Lập Phiếu Rút Tiền
Chọn mục: Lập Phiếu Rút Tiền trong form MENU để lập phiếu rút và thêm, sửa, xóa phiếu rút tiền