数据库技术课程设计题目:财务管理系统姓名:**学号: 33班级:网络1002 时间: 2011 年 6 月 31 日目录1. 需求分析 (1)1.1财务功能管理系统的功能分析 (1)1.2财务功能管理系统的功能图 (1)2. 概念结构设计 (1)3. 逻辑结构设计 (3)4. 数据库设计 (3)4.1数据库和各表的创建 (3)4.1.1数据表结构设计 (3)4.1.2创建数据表SQL脚本 (3)4.1.3数据表快照 (4)4.2系统功能实现 (5)5. 设计总结 (5)参考文献 (6)财务管理系统摘要:财务管理系统是利用互联网的管理系统。
家庭和个人的用户使用此软件,可以方便的进行个人理财,投资管理。
财务管理系统从生活实际出发,充分考虑到个人,家庭需要,秉承高效、实用、人性化的设计理念,财务系统通过对用户财务的管理,让用户可以轻松进行对财务的记录、查询、修改、删除和有效的分析财务的收支状况,用户可以将自己的每一笔收入和支出输入到数据库中。
达到了对财务的透明、管理的重要要求。
让本系统实现了对财务的有效管理。
关键词:财务、分析、管理、查询、美工。
1.需求分析本文主要介绍了财务管理系统的设计与实现。
财务管理系统是一个基于网络的信息管理系统,它具有操作简单、成本低廉、效率高等优点,而且没有区域限制。
1.1财务管理系统的功能分析通过对财务内容的分析和查阅会计资料基本知识理解,一个标准的财务系统应该具备以下功能:1)可以进行对用户的基本资料管理。
2)可以在管理员的权限下进行对用户的管理。
3)可以进行用户凭证管理。
(用户权限)4)可以进行账簿管理。
5)可以进行财务的收支管理。
6)可以进行工资的管理。
7)可以进行财务的分析管理。
8)可以进行系统管理。
(升级与维护)1.2财务管理系统的功能图根据以上需求分析,财务管理系统功能如图1-1所示。
2.概念结构设计1)用户实体及属性E-R图:如图2-12-1 2)账簿实体及属性E-R图:如图2-2所示2-23)支出实体及属性E-R图:如图2-3所示4)借出实体及属性E-R图:如图2-4所示5)投资实体及属性E-R图:如图2-5所示2-42-56)借入实体及属性E-R图:如图2-6所示2-67)个人财务管理系统E-R图(各实体属性略去),如图2-7:3.逻辑结构设计:对个人财务管理系统E-R图分析,结合各实体属性E-R图,考虑…,本系统的逻辑关系结构…。
(说明:“#”表示主键,下划线表示外键)(1).用户表的逻辑关系模式:Users(uid#,uname,pwd,admin)(2) 账簿表中的逻辑关系模式:Zb (zdid#,uid,zbname,ztype,,zbintro)(3)支出表的逻辑关系:Zc(zdid#,zbid, sj, sztype, zj, zjtype, djp, ditime, djre, lost)(4)投资表中的逻辑关系:Tzb(Zdid#,Zbid,Yhz,Zctime,Yname,Czm,Lllv,Djp,tzr)(5)借出表中的逻辑关系:Jc(jdid#,zbid,jj,jname,guihuantime,djtime,dengjiren,remark)(6)借入表中的逻辑关系:Jr(jdid#,zbid,jj,jname,jiejintime,djtime,denjiren,remark)4.数据库设计数据库管理系统选用SQL Server 2005,根据财务管理系统的功能及逻辑关系模式分析,建立相关联的表和视图,每张表通过外键连接,建立联系,还有增、删、改、更新表的存储过程,以便能方便的调用数据库中的数据,满足客户的需求。
4.1 数据库和各表的创建4.1.1 数据表结构设计2)jr(借入)表结构设计6)zc(支出)表结构设计4.1.2创建数据表SQL脚本CREATE TABLE users(uid int IDENTITY(1,1)primary key,uname varchar(10) NOT NULL,pwd varchar(20) NOT NULL,admi bit NULL)goCREATE TABLE zb(zid int IDENTITY(1,1)primary key,uid int NULL,zbname varchar(20)NULL,ztype varchar(20)NULL,zbintro varchar(20)NULL)goCREATE TABLE tzb(zdid int IDENTITY(1,1)primary key,zbid int NULL,yhz int NULL,zctime datetime NULL,yname varchar(20)NULL,czm int NULL,lllv int NULL,djp varchar(20)NULL,tzr varchar(20)NULL)goCREATE TABLE zc(zdid int IDENTITY(1,1) primary key,zbid int NOT NULL,sj int NULL,sztype varchar(20)NULL,zj int NULL,zjtype varchar(20)NULL,djp varchar(20)NULL,djre varchar(50)NULL,lost int NULL)GoCREATE TABLE jc(jdid int IDENTITY(1,1)primary key,zbid int NULL,jj int NULL,jname varchar(20)NULL,guihuantime datetime NULL,dengjiren varchar(10)NULL,remark varchar(50)NULL)GoCREATE TABLE jr(Jdid int IDENTITY(1,1)primary key,zbid int NULL,jj int NULL,jname varchar(20)NULL,jiejintime datetime NULL,dengjiren varchar(10)NULL,remark varchar(50)NULL)Go4.1.3数据表快照上述脚本形成的表在SQL Server 2005,如下图所示:4-1-3-01借出表快照4-1-3-02用户表快照4-1-3-03投资表快照4-1-3-04帐薄表快照4-1-3-05借出表快照4-1-3-06借入表快照各表间的关系如图:4.2系统功能的实现:如果想要实现财务系统里面的功能就必须建一些存储过程,这些存储过程的代码是实现如下:1.首先在users(用户表)表中的存储过程:(1).增加用户的存储过程:Create proc usersadd(@uname varchar,@pwd varchar,@admin varchar)AsInsert into users values(@uname,@pwd,@admin)(2)查询用户的存储过程:Create proc userssAsSelect * from users(3)验证用户密码的存储过程:Create proc selectj(@name varchar,@pwd varchar)asselect * from users where uname=@uname and pwd=@pwd(4)删除用户表中的存储过程;Create proc usersd(@uid int)Delete users where uid=@uid(4)更新用户表中的存储过程:Create proc usersup(@uid uid ,@uname varchar,@pwd varchar,@admin varhcar)Update usersup set uname=@uname ,pwd=@pwd,admin=@admin where uid =@uid 2.在zb(账薄表)表中的存储过程:(1)查询账薄表中的存储过程:Create proc adsAsSelect * from zb(2)根据条件选择查询的账薄表中的sql语句:select * from zb where ‘’tj like ‘%zhi%’(3)在账薄表中插入新的数据:Create proc inzb(@uid int,@zbname varchar,@ztype varchar,@zbintro varchar)AsInsert into zh values(@uid, @zbname, @ztype, @zbintro)(4)在账薄表中删除旧的数据:Create poc zbde@uid int)Delete zb where uid=@uid(5)更新账薄表中的数据:Create proc zbup(@zbid int,@uid int ,@zbname varchar,@ztype varchar,@zbintro varchar)Update zb set uid=@uid,zbname=@zbname,ztype=@ztype,zbintro=@zbintro where zbid=@zbid3.在zc(日常消费表)表中的存储过程:(1)在日常消费表中插入数据:Create proc zcin(@zbid int,@sj int,@sztype varchar,@zj int,@zjtype varchar,@djp varhcar,@ditime varcahr,@djre varchar@lost int)Insert into zc values(@zbid, @sj, @sztype, @zj, @zjtype, @djp, @ditime, @djre, @lost)(2)日常消费表的的查询:Create proc zcslAsSelect * from zc(3)日常消费表的条件查询:Select * from where ‘tj’ like ‘%zhi%’(4)日常消费表的删除:Create proc zcde(@zdid intAsDelete zc where zdid=@zdid(5)日常消费表的更新数据:Create proc zcupdate(@Zdid int,@zbid int ,@sj int,@sztype varchar,@zj int,@zjtype varchar,@djp varhcar,@ditime varchar,@djre varchar,@lost int)Update zc set zbi@zbid ,sj=@sj, sztype=@sztype, zj=@zj, zjtype=@zjtype, djp=@djp, ditime=@ditime, djre=@djre, lost=@lost where zdid=@zdid4.在tzb(银行储存表)表中的存储过程:(1)银行存储表中的查询:Create proc tzbselAsSelect * from tzb;(2)银行存储表中的条件查询:Select * from tzb where ‘tj’ like ‘%zhi%’(3)银行存储表中的插入数据:Create proc tzbin(@Zbid,@Yhz,@Zctime,@Yname,@Czm,@Lllv,@Djp,@tzr)Insert into tzb values(@Zbid,@Yhz,@Zctime,@Yname,@Czm,@Lllv,@Djp,@tzr)(4)银行存储表中删除数据:Create proc tzbd@zdid int)Delete tzb where zdid=@zdid(5).银行存储表中的更新数据:Create proc tzbupdate(@Zdid,@Zbid,@Yhz,@Zctime,@Yname,@Czm,@Lllv,@Djp,@tzr)Update tzb set Zbid=@Zdid, Yhz=@Yhz, Zctime=@Zctime, Yname =@Yname,Czm=@Czm, Lllv=@Lllv, Djp=@Djp, tzr=@tzr6.在jc(借出表)表中的存储过程:(1)增加支出的存储过程:create proc addjc( @jdid int,@zbid int ,@jj int ,@jname varchar(20),@guihuantime datetime,@djtime dateetime,@denjiren varchar(10),@remark varchar(50))AsInsert into jc vakues(@jdid,@zbid,@jj,@jname,@guihuantime,@djtime,@dengjiren,@remark)(2)删除借出记录的存储过程create proc deletejc@jdid intAsDelete from jc where jdid=@jdid(3)查询借出记录create proc selectjc@jdid int,Select * from jc where jdid=@jdid(4)更新借出记录create proc updatetjc( @jdid int,@zbid int ,@jj int ,@jname varchar(20),@guihuantime datetime,@djtime dateetime,@denjiren varchar(10),@remark varchar(50))AsUpdate jc setzbid=@zbid,jj=@jj,jname=@jname,guihuantime=@guihuantime,djtime=@djtime,denjiren=@denjiren,remark=@remarkwhere jdid=@jdid,5.在jr(借入表)表中的存储过程:(1).增加借入记录的存储过程Create proc addjr(@jdid int,@zbid int,@jj int,@jname varchar(20),@jiejintime datetime,@djtime datetime,@denjiren varchar(10),@remark varchar(50))Insert into jr values(@jdid,@zbid,@jj,@jname,@jiejintime,@djtime,@denjiren,@remark)(2).删除借入记录的存储过程Create proc deletejr@jdid intAsDelete from jr where jdid=@jdid(3).更新借入记录的存储过程Create proc updatejr(@jdid int,@zbid int,@jj int,@jname varchar(20),@jiejintime datetime,@djtime datetime,@denjiren varchar(10),@remark varchar(50))Update jr setZbid=@zbid,Jj=@jj,Jname=@jname,Jiejintime=@jiejintime,Djtime=@djtime,Denjiren=@denjiren,Remark=@remarkWhere jdid=@jdid(4).查询借入记录的存储过程Create proc selectjr@jdid intAsSelect * from jr where jdid=@jdid5.设计总结这次的数据库课程设计可以说是为我们这一学期的数据库学习的一次练兵。