Tải bản đầy đủ (.doc) (33 trang)

Tổ chức xây dựng cơ sở dữ liệu quản lý tài chính tiền tệ.(quản lý sổ tiết kiệm)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.01 MB, 33 trang )

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


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ại ngâ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ếu thô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út tiền
trong tài khoản thông qua hóa đơn.
Thông tin về sổ tiết kiệm bao gồm: Mã tài khoản, số tiề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 minh thư
nhân dân, địa chỉ, số điện thoại, năm sinh.
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, năm sinh, địa
chỉ, số điện thoại.
Thông tin về hóa đơn bao gồm: Mã hóa đơn, ngày lập, ghi chú, số tiền. ghi chú sẽ ghi
thông tin khách hàng nào rút tiền hoặc gửi tiền
2. Xác định các thực thể
- Khách hàng (Mã khách hàng, tên khách hàng, năm sinh, 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, năm sinh, địa chỉ, số điện thoại)
- Hóa đơn (Mã hóa đơn , mã tài khoản, mã nhân viên, ngày lập, ghi chú, số tiền)
- Tài khoản ( Mã tài khoản, mã khách hàng, số dư)


3. Lập bảng
create table KH(
makh char(10) not null,
tenkh nvarchar(30)not null,


diachi nvarchar(100)not null,
namsinh date not null,
CONSTRAINT pk_kh primary key (makh),
);
create table NV(
manv char(10) not null,
tennv nvarchar(30) not null,
namsinh date not null,
diachi nvarchar(100)not null,
CONSTRAINT pk_nv primary key (manv),
);
CREATE TABLE TK
(
matk char(10) not null,
makh char(10) not null,
sodu int,
tilelaisuat int,
CONSTRAINT pk_tk primary key (matk),
CONSTRAINT chk_TK CHECK (sodu>0),
CONSTRAINT fk_makh_tk FOREIGN KEY (makh)
REFERENCES KH(makh),
);
CREATE TABLE HD
(
mahd int not null,
matk char(10),
manv char(10),


ngaylap date not null,

ghichu nvarchar(100) not null,
sotien int not null,
CONSTRAINT pk_hd primary key (mahd),
CONSTRAINT fk_matk FOREIGN KEY (matk)
REFERENCES TK(matk),
CONSTRAINT fk_manv FOREIGN KEY (manv)
REFERENCES NV(manv),
CONSTRAINT chk_HD CHECK (sotien>0)
);

4. Thông tin trong bảng
- Bảng khách hàng:


-

Bảng tài khoản

- Bảng hóa đơn


-

Bảng nhân viên


5. liên kết bảng

II. CÁC THAO TÁC LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU
- Câu lệnh SELECT

1. Đếm tên khách hàng có tên bắt đầu bằng chữ ‘t’
selectCOUNT(makh)
from KH
where tenkh like't%'


2. Đếm số khách hàng có địa chỉ ở hà nội

selectCOUNT(makh)
from KH
WHERE diachi='ha noi'


3. Hiển thị khách hàng (makh, tenkh) có địa chỉ ở thái bình
select makh,tenkh
from KH
where diachi='thai binh'


4. Đưa thông tin khách hàng có địa chỉ ở hà nội
select makh, tenkh, namsinh, diachi, sodienthoai, sochungminh
from kh
where diachi='ha noi'


5. Đưa ra những nhân viên có họ là 'nguyen'

select manv, tennv, namsinh, diachi, sodienthoai, sochungminh
from nv
where (tennv like 'nguyen%')



6. Hiển thị các thông tin khách hàng mà có tên bắt đầu là 'cao'
select *
from KH
where (kh.tenkh like 'cao'


7. Đưa ra thông tin về nhân viên với điều kiện mã nhân viên lớn hơn 3 :
select manv,tennv,namsinh,diachi,sodienthoai,sochungminh
from nv
where manv>'nv3'


8. Viết hàm truy vấn tính tổng tiền khách hàng đã mua trong hóa đơn
select SUM (sotien)
from HD


9.Tính số dư trong tài khoản của các khách hàng có địa chỉ ở hà nội
select SUM (TK.sodu)
from KH inner join TK on KH.makh = KH.makh
where (KH.diachi='ha noi')


10. Đưa ra khách hàng có số dư > 15000000:
select kh.makh,kh.tenkh,kh.namsinh,kh.diachi,kh.sodienthoai,
kh.sochungminh,tk.sodu
from kh inner join tk on kh.makh = tk.makh
where (tk.sodu>15000000)



11. Đưa ra thông tin khách hàng với điều kiện địa chỉ bắt đầu bằng chữ 'h' và số dư lớn
hơn 1 triệu.

Select
kh.makh,kh.tenkh,kh.namsinh,kh.diachi,kh.sodienthoai,kh.sochungminh,tk.sodu
from kh inner join tk on kh.makh=tk.makh
where (kh.diachi like 'h%') and (tk.sodu>10000000)


12. Hiển thị ra các thông tin makh, tenkh, diachi,matk, sotien, sodu mà số dư trong tài
khoản nhỏ hơn 8000000

select kh.makh, kh.tenkh, kh.diachi, tk.matk, hd.sotien, tk.sodu
from tk inner join hd on tk.matk=hd.matk
inner join kh on tk.makh=kh.makh
where (TK.sodu < '8000000')


13. Đưa ra thông tin khách hàng có địa chỉ bắt đầu bằng chữ N và có sốdư tài khoản từ
3000000 đến 10000000

Select
kh.tenkh, kh.diachi, kh.namsinh, kh.makh, tk.sodu
From KH inner join TK on kh.makh= tk.makh
Where (kh.diachi like 'n%') and tk.sodu between 3000000 and 10000000


14. Đưa ra thông tin khách hàng có số tiền gửi lớn hơn 10000000


select kh.makh,kh.tenkh,kh.namsinh,kh.diachi,kh.sodienthoai,kh.sochungminh,
tk.matk,hd.sotien,hd.ghichu
from tk inner join hd on tk.matk=hd.matk
inner join kh on tk.makh=kh.makh
where (hd.sotien > 10000000 and hd.ghichu='gui tien')


15. Thêm 1 khách hàng vào bảng khách hàng
insert into kh values (' kh11', 'hoang van ba' , '6/3/1994' ,'namdinh' ,'0987643750'
,'163432745’ )


Sau đó open bảng khách hàng ta xem được tên khách hàng vừa thêm


- Truy vấn con
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 >
15000000
select KH.makh, KH.tenkh, TK.sodu
from KH inner join TK on KH.makh= TK.makh
where kh.makh in
(select makh
from TK
where sodu> 15000000)

- Khung nhìn VIEW
1. Tạo khung nhìn cho bảng khách hàng



create view kh1
as
select kh.makh, kh.tenkh,kh.diachi,tk.sodu
from kh inner join tk on kh.makh = tk.makh

Để xem khung nhìn vừa tạo ta ấn chuột phải vào view chọn refresh -> ấn chuột trái vào
view-> click chuột trái vào dbo.khachhang -> chọn open view để mở khung nhìn vừa tạo


- Tạo thủ tục
1. Tạo 1 thủ tục về địa chỉ của khách hàng và hiển thị ra thủ tục
create proc a @diachi char(30)
as
select makh,tenkh,namsinh,diachi,sodienthoai,sochungminh
from kh
Where (diachi=@diachi)


×