《家庭财务管理系统(共16页).doc》由会员分享,可在线阅读,更多相关《家庭财务管理系统(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上目 录1. 绪论21世纪的今天,已经成为信息化的时代,人们的生活已离不开计算机。就在计算机业不断蓬勃发展的同时,也把人们的家庭理财上升到了一个全新的概念,随着信息化生活的不断深入,家庭理财系统也随之应运而生,由原来的简单计算变成了一个全新的图形化显示应用系统。基于时代的发展,我设计了一套家庭理财系统的方案。该系统以当前家庭理财方式为实例而设计的一种实用型管理系统。本系统最大的特点是通用性、简单操作性,使固定资产管理系统真正实现多方操作,满足短期内对资产信息的采集,存储,处理,组织,管理和利用的需求,实现信息资源的集中管理和统一调度。2. 总体设计总体设计即对有关系统全
2、局问题的设计,也就是设计系统总的处理方案。本阶段的设计就是进行家庭理财系统整体系统的概要设计。针对本系统的总体设计从数据流程图入手,逐步完善系统中各个模块的设计,最终完善安全性设计来达到最终设计合理可行。2.1. 数据流程分析图家庭理财系统顶层的功能:家庭成员通过家庭理财系统完成对现金账户和投资账户的管理,家庭理财系统记录银行理财产品的购入、卖出及现金的收支记录,同时能够进行相关银行信息的查询操作。如图2-1。图2-1 顶层数据流图2.2. 系统总体模块图图2-2 系统总体模块图2.3. 安全性设计本系统通过视图的建立隐藏部分银行信息,从而完善安全需求。同时创建触发器保证数据库信息的统一性;创
3、建存储过程隐藏部分操作,实现数据库的操作简化。3. 数据库设计本阶段的设计决定了家庭理财系统数据库设计的可行性,通过需求分析、概念设计、逻辑结构设计分别做出了数据库的基础性设计。最后物理结构设计给出了最终的数据库的设计方案,包括表设计、约束设计等完善了数据库的实施方案。3.1. 需求分析3.1.1. 任务概述利用数据库相关技术,我对家庭理财系统进行了开发。该系统解决了家庭理财中需要的部分功能,对于系统管理员来说,管理功能完备,操作方便。因此本系统的目的是开发一个比较安全、简便的家庭理财系统。3.1.2. 系统功能需求家庭理财管理系统通过日常的各项收入及开支进行统计处理,使用户对自己的经济情况一
4、目了然。本理财系统集合了权限登录、数据管理、打印等功能模块。3.2. 概念结构设计图3-2 家庭理财系统E-R图概念结构设计包括了实体设计及实体联系的设计,其中实体有7个,联系有2个。从登陆用户依附的家庭成员实体开始设计,逐步完善联系产生了后续的6个实体,最总通过多对多联系完善了全部概念结构设计。3.3. 逻辑结构设计3.3.1. 建立关系模型1. 实体部分1) 用户(用户名,家庭成员编号,用户密码)主键:用户名。外键:家庭成员。2) 家庭成员(家庭成员编号,成员姓名,成员身份)主键:家庭成员编号。3) 银行账户(银行账户编号,银行编号,账户所有人编号,账户类型)主键:银行账户编号。外键:银行
5、编号、账户所有人编号4) 银行(银行编号,银行名称,银行简称,银行位置)主键:银行编号。5) 理财产品(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低购买金额,风险概述,违约说明,备注)主键:理财产品编号。6) 理财账户(理财账户编号,银行账户编号,用户名,理财类型,备注)主键:理财账户编号。外键:银行账户编号,用户名。7) 现金账户(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,现金类型,变更金额,变更日期,备注)主键:变更流水号。外键:银行账户编号、用户名。2. 联系部分1) 理财产品交易(理财账户编号,理财产品编号,交易类型,交易金额,交易日期,备注) 主键:理财
6、账户编号,理财产品编号。 外键:理财产品编号。之中交易类型为买入或卖出,交易日期必须在理财经营表中经营时间的范围内。2) 理财产品经营(银行编号,理财产品编号,经营开始时间,经营结束时间,备注)主键:银行编号,理财产品编号。3.3.2. 确定函数依赖、属于第几范式1. 实体表1) 用户表(用户名,家庭成员编号,用户密码)用户名用户密码,用户名家庭成员编号,没有部分依赖,没有传递依赖,则此范式属于第三范式。2) 家庭成员表(家庭成员编号,成员姓名,成员身份)家庭成员编号成员姓名,家庭成员编号成员身份,没有部分依赖,没有传递依赖,则此范式属于第三范式。3) 银行账户表(银行账户编号,银行编号,账户
7、所有人编号,账户类型)银行账户编号银行编号,银行账户编号账户所有人编号,银行账户编号账户类型,没有部分依赖,没有传递依赖,则此范式属于第三范式。4) 银行表(银行编号,银行名称,银行简称,银行位置)银行编号银行名称,银行编号银行简称,银行编号银行位置,没有部分依赖,没有传递依赖,则此范式属于第三范式。5) 理财产品表(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低购买金额,风险概述,违约说明,备注)理财产品编号理财名称,理财产品编号预期利率,理财产品编号投资周期,理财产品编号周期单位,理财产品编号最低购买金额,理财产品编号风险概述,理财产品编号违约说明,理财产品编号备注,没有部分依
8、赖,没有传递依赖,则此范式属于第三范式。6) 理财账户表(理财账户编号,银行账户编号,用户名,理财类型,备注)理财账户编号银行账户编号,理财账户编号用户名,理财账户编号理财类型,理财账户编号备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。7) 现金账户表(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,现金类型,变更金额,变更日期,备注)变更流水号现金账户编号,变更流水号银行账户编号,变更流水号用户名,变更流水号收支类型,变更流水号现金类型,变更流水号变更金额,变更流水号变更日期,变更流水号备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。2. 关系表1) 理财产品交易
9、表(理财账户编号,理财产品编号,交易类型,交易金额,交易日期,备注)(理财账户编号,理财产品编号)交易类型,(理财账户编号,理财产品编号)交易金额,(理财账户编号,理财产品编号)交易日期,(理财账户编号,理财产品编号)备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。2) 理财产品经营表(银行编号,理财产品编号,经营开始时间,经营结束时间,备注)(银行编号,理财产品编号)经营开始时间,(银行编号,理财产品编号)经营结束时间,(银行编号,理财产品编号)备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。3.4. 物理结构设计3.4.1. 表设计本系统共有9张表,包括实体表(7张):用户
10、表、家庭成员表、银行账户表、银行表、理财产品表、理财账户表、现金账户表;关系表(2张):理财产品交易表、理财产品经营表。1. 实体表表3-4-1 用户表字段名含义说明别名数据类型空值约束键引用用户名数据库账户UserNameChar(10)否主键家庭成员编号家庭成员的编号FNoChar(10)否外键密码数据库密码UserpasswordChar(20)否表3-4-2 家庭成员表数据项名含义说明别名数据类型空值约束键引用家庭成员编号家庭成员的特定编号FNoChar(10)否主键姓名家庭成员的姓名FNameChar(8)否成员身份家庭成员在家庭中的身份、地位FStatusChar(6)否表3-4-
11、3 银行账户表数据项名含义说明别名数据类型空值约束键引用银行账户编号银行账户的惟一标识BANoChar(10)否主键银行编号银行的唯一标示BNoChar(10)否外键账户所有人编号家庭成员的编号FNoChar(10)否外键账户类型账户类型AcTypeChar(4)否表3-4-4 银行表数据项名含义说明别名数据类型空值约束键引用银行编号银行编号BNoChar(10)否主键银行名称银行的名称BNameChar(10)否银行简称银行的简称BShortChar(8)否地理位置银行的地址BPlaceText否表3-4-5 理财产品表数据项名含义说明别名数据类型空值约束键引用理财产品编号理财产品的唯一编号
12、FMIDChar(10)否主键理财名称理财产品名称FMNameChar(20)否预期利率预期收益率FMIntertstChar(2)否投资周期投资周期FMTimeChar(10)否周期单位周期的单位TimeTypeChar(4)否Check(天、月年)最低购买金额最低购买的金额FMSMoneyMoney否风险概述风险评级FMRiskText否违约说明未达投资周期的违约声明FMDefaultText否备注产品服务备注信息MemosText表3-4-6 理财账户表数据项名含义说明别名数据类型空值约束键引用理财账户编号理财账户特定编号INoChar(10)否主键银行账户编号银行账户的惟一标识BANo
13、Char(10)否外键用户名数据库账户UserNameChar(10)否外键理财账户类型理财账户类型ITypeChar(4)否备注信息备注MemosText表3-4-7现金账户表数据项名含义说明别名数据类型空值约束键引用变更流水号变更记录流水号SeNoChar(10)否主键现金账户编号现金账户特定编号CashNoChar(10)否银行账户编号银行账户的惟一标识BANoChar(10)否外键用户名数据库账户UserNameChar(10)否外键收支类型收支的类型DTypeChar(4)否Check(收入、支出)现金类型货币类型MTypeChar(4)否变更金额变更金额MSumMoney否变更日期
14、变更的时间DDateDatertime否备注变更说明MemosText2. 关系表表3-4-8 理财产品交易表数据项名含义说明别名数据类型空值约束键引用投资账户编号投资账户的唯一编号INoChar(10)否主键约束主键外键理财产品编号理财产品的唯一编号FMIDChar(10)否主键约束主键外键交易类型交易的类型DTypeChar(4)否Check(买入、卖出)交易金额交易的金额MSumMoney否交易日期交易的日期DDateDatetime否备注交易备注MemosText表3-4-9理财产品经营表数据项名含义说明别名数据类型空值约束键引用银行编号银行的唯一标示BNoChar(10)否主键外键理
15、财产品编号理财产品的唯一编号FMIDChar(10)否主键外键经营开始时间经营开始的日期RSDateDatetime否经营结束时间经营结束的日期REDateDatetime否Check(REDateRSDate)备注经营备注MemosText3.4.2. 约束设计使用Check约束,约束理财产品表的投资周期为“日”、“月”或“年”;约束现金表的收支类型为“收入”或“支出”;约束理财产品交易表的交易类型为“买入”或“卖出”。3.4.3. 触发器设计创建级联删除触发器,当银行表中的元组被删除时将触发银行账户表中对应元组的删除,之后会触发删除对应的理财账户、现金账户中对应元组的删除操作。3.4.4.
16、 视图设计创建理财产品基本信息视图,完善安全性,包括理财产品编号、理财产品名称及银行名称组成。满足最基本的信息需求即可。3.4.5. 索引设计创建理财产品编号的索引及银行简称的索引,方便信息查询、提高相关查询的效率。3.4.6. 存储过程设计创建触发器实现查询特定现金账户在某一年的特定货币类型的收支情况,用以方便查询操作。4. 数据库实施、运行数据库的实施完全按照数据库设计阶段给出的安全需求、性能要求等实施最终的数据库设计过程,包括了数据表及约束的创建,视图、触发器及存储过程的创建,最终录入数据完成数据库的运行。4.1. 创建表及约束1. 实体表-家庭成员表create table Famil
17、y(FNo nchar(10) primary key,FName nchar(10) not null,FStatus nchar(10) not null)-用户表create table Account(UserName nchar(10) primary key,FNo nchar(10) not null,UserPassWord nchar(20) not null,foreign key(FNo) references Family(FNo)-银行表create table Bank(BNo nchar(10) primary key,BName nchar(10) not nu
18、ll,BShort nchar(8) not null,Bplace text not null)-银行账户表create table Bank_Account(BANo nchar(10) primary key,BNo nchar(10) not null,FNo nchar(10) not null,AcType nchar(4) not null,foreign key(FNo) references Family(FNo),foreign key(BNo) references Bank(BNo),CONSTRAINT CK_Bank_Account CHECK (AcType=投资
19、 OR AcType=现金)-理财产品表create table Finance_Product(FMID nchar(10) primary key,FMNAME nchar(10) not null,FMIntertst nchar(10),FMTime int not null,TimeType nchar(4) not null,FMSMoney money not null,FMRisk text not null,FMDefault text not null,Memos text,CONSTRAINT CK_Finance_Product CHECK (TimeType=天 OR
20、 TimeType=月 OR TimeType=年)-现金账户表create table Case_Account(SeNo nchar(10) primary key,CashNo nchar(10),BANo nchar(10) not null,UserName nchar(10) not null,DType nchar(4) not null,MType nchar(4) not null,MSum money not null,DDate datetime not null,Memos text,foreign key(BANo) references Bank_Account(B
21、ANo),foreign key(UserName) references Account(UserName),CONSTRAINT CK_Case_Account CHECK (DType=收入 OR DType=支出)-理财账户表create table Finance_Account(INo nchar(10) primary key,BANo nchar(10) not null,UserName nchar(10) not null,Itype nchar(4) not null,Memos text,foreign key(BANo) references Bank_Account
22、(BANo),foreign key(UserName) references Account(UserName)2. 关系表-理财产品交易表create table Finance(INo nchar(10),FMID nchar(10),DType nchar(4) not null,MSum money not null,DDate datetime not null,Memos text,primary key(INo,FMID),foreign key(INo) references Finance_Account(INo),foreign key(FMID) references
23、Finance_Product(FMID),CONSTRAINT CK_Finance CHECK (DType=买入 OR DType=卖出)-理财产品经营表create table Finance_Run(BNo nchar(10),FMID nchar(10),RSDate datetime not null,REDate datetime not null,Memos text,primary key(BNo,FMID),foreign key(BNo) references Bank(BNo),foreign key(FMID) references Finance_Product(
24、FMID),CONSTRAINT CK_Finance_Run CHECK (RSDateREDate)4.2. 触发器创建-银行表级联删除create trigger B_Dlon Bankfor deleteasbegindelete from Bank_Account where BNo in (select BNo from deleted)end-银行账户表级联删除create trigger BA_Dl on Bank_Accountafter deleteasbeginif(select AcType from deleted)=现金)delete from Case_Accou
25、nt where BANo in (select BANo from deleted)else delete from Finance_Account where BANo in (select BANo from deleted)end-理财账户表级联删除create trigger FiA_Dlon Finance_Accountfor deleteasbegindelete from Finance where INo in (select INo from deleted)end4.3. 视图-创建理财产品基本信息视图CREATE VIEW Fin_Pro ASSELECT a.FMI
26、D as 理财产品编号,a.FMNAME 理财产品名,c.BName 服务提供银行FROM Finance_Product a,Finance_Run b,Bank cWHERE a.FMID=b.FMID AND b.BNo=c.BNo;4.4. 索引-创建理财产品索引CREATE INDEX FinPro_index ON Finance_Product(FMID)-创建银行索引CREATE INDEX Bank_INDEX ON Bank(BShort)4.5. 游标和存储过程-某现金账户某年特定货币类型的收支情况create procedure Case_Sum( y datetime
27、, CashID nchar(10), CashMType nchar(4)as begin declare CashInSum money, declare CashOutSum money set CashInSum=0 set CashOutSum=0 -游标声明 declare S_DType cursor for select CashNo,DType,MType,MSum,DDate from Case_Account -打开游标 open S_Dtype declare CN nchar(10) declare DT nchar(4) declare MT nchar(4) de
28、clare MS money declare DD datetime -读取游标 fetch next from S_DType into CN,DT,MT,MS,DD -循环读取 while fetch_status=0 begin if (year(y)=year(DD) and CashID=CN and CashMType=MT) begin if DT=支出 set CashOutSum=CashOutSum+MS else set CashInSum=CashInSum+MS end fetch next from S_DType into CN,DT,MT,MS,DD end -
29、关闭游标、删除游标 close S_DType deallocate S_DTypeselect CashInSum 收入,CashOutSum 支出end4.6. 数据录入表3-5-6-1 家庭成员表 表3-5-6-2 用户表 表3-5-6-3 银行表 表3-5-6-4 银行账户表 表3-5-6-5 理财账户表表3-5-6-6理财产品表表3-5-6-7 现金账户表表3-5-6-8理财产品交易表表3-5-6-9 理财产品经营表5. 结论此家庭理财系统功能不是很全面,有许多的地方要进行修改,但是基本实现了家庭理财的项目保存、更改、删除、查询的基本功能。本系统基本包括了家庭理财的各种主要信息管理工
30、作与综合更新管理工作,但在某些管理功能上需要继续细化。由于系统开发工作量较大,开发工作中将功能实现放在了首位,因此在一些模块的界面设计的易用性方面仍需改进。参考文献:1 赵杰.毕业设计指导及案例剖析.数据库应用方向.北京:清华大学出版社,2005 2 王珊, 萨师煊.数据库系统概论M .北京:高等教育出版社,20063 壮志剑.数据库原理与SQL ServerM.北京:高等教育出版社,20064 黄维通.SQL Server 数据库的技术与应用M.北京:清华大学出版社,20115 岳付强.SQL Server 2005 从入门到实践M.北京:清华大学出版社,20096 周爱武,汪海威,肖云.数
31、据库课程设计M . 北京:机械工业出版社,2012.7 吴治中,方金友. 家庭投资理财 1000 问M合肥:安徽科学技术出版社,2002.8 王树进,包明宝. 投资理财新思维M. 北京:经济管理出版社,20019 李真文. SQL Server 2000 Developers Guide 开发人员指南M . 北京:希望电子出版社,2001. 致 谢在本次毕业设计中,我从指导老师冯春辉身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论实践水平都使我们深感敬佩。无论是在理论上还是在实践中,都给予我很大的帮助,使我们得到不少的提高,尤其是她对我的关心所明了她的责任心和为人师表所具备的爱心,在这次课程设计表现无疑。这对于我以后的学习和工作都是一种帮助,感谢她细心又耐心的辅导。专心-专注-专业