家庭财务管理系统DOC.docx
- 文档编号:3527649
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:20
- 大小:245.91KB
家庭财务管理系统DOC.docx
《家庭财务管理系统DOC.docx》由会员分享,可在线阅读,更多相关《家庭财务管理系统DOC.docx(20页珍藏版)》请在冰豆网上搜索。
家庭财务管理系统DOC
1.
绪论
21世纪的今天,已经成为信息化的时代,人们的生活已离不开计算机。
就在计算机业不断蓬勃发展的同时,也把人们的家庭理财上升到了一个全新的概念,随着信息化生活的不断深入,家庭理财系统也随之应运而生,由原来的简单计算变成了一个全新的图形化显示应用系统。
基于时代的发展,我设计了一套家庭理财系统的方案。
该系统以当前家庭理财方式为实例而设计的一种实用型管理系统。
本系统最大的特点是通用性、简单操作性,使固定资产管理系统真正实现多方操作,满足短期内对资产信息的采集,存储,处理,组织,管理和利用的需求,实现信息资源的集中管理和统一调度。
2.总体设计
总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案。
本阶段的设计就是进行家庭理财系统整体系统的概要设计。
针对本系统的总体设计从数据流程图入手,逐步完善系统中各个模块的设计,最终完善安全性设计来达到最终设计合理可行。
2.1.数据流程分析图
家庭理财系统顶层的功能:
家庭成员通过家庭理财系统完成对现金账户和投资账户的管理,家庭理财系统记录银行理财产品的购入、卖出及现金的收支记录,同时能够进行相关银行信息的查询操作。
如图2-1。
图2-1顶层数据流图
2.2.系统总体模块图
图2-2系统总体模块图
2.3.安全性设计
本系统通过视图的建立隐藏部分银行信息,从而完善安全需求。
同时创建触发器保证数据库信息的统一性;创建存储过程隐藏部分操作,实现数据库的操作简化。
3.数据库设计
本阶段的设计决定了家庭理财系统数据库设计的可行性,通过需求分析、概念设计、逻辑结构设计分别做出了数据库的基础性设计。
最后物理结构设计给出了最终的数据库的设计方案,包括表设计、约束设计等完善了数据库的实施方案。
3.1.需求分析
3.1.1.任务概述
利用数据库相关技术,我对家庭理财系统进行了开发。
该系统解决了家庭理财中需要的部分功能,对于系统管理员来说,管理功能完备,操作方便。
因此本系统的目的是开发一个比较安全、简便的家庭理财系统。
3.1.2.系统功能需求
家庭理财管理系统通过日常的各项收入及开支进行统计处理,使用户对自己的经济情况一目了然。
本理财系统集合了权限登录、数据管理、打印等功能模块。
3.2.概念结构设计
图3-2家庭理财系统E-R图
概念结构设计包括了实体设计及实体联系的设计,其中实体有7个,联系有2个。
从登陆用户依附的家庭成员实体开始设计,逐步完善联系产生了后续的6个实体,最总通过多对多联系完善了全部概念结构设计。
3.3.逻辑结构设计
3.3.1.建立关系模型
1.实体部分
1)用户(用户名,家庭成员编号,用户密码)
主键:
用户名。
外键:
家庭成员。
2)家庭成员(家庭成员编号,成员姓名,成员身份)
主键:
家庭成员编号。
3)银行账户(银行账户编号,银行编号,账户所有人编号,账户类型)
主键:
银行账户编号。
外键:
银行编号、账户所有人编号
4)银行(银行编号,银行名称,银行简称,银行位置)
主键:
银行编号。
5)理财产品(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低购买金额,风险概述,违约说明,备注)
主键:
理财产品编号。
6)理财账户(理财账户编号,银行账户编号,用户名,理财类型,备注)
主键:
理财账户编号。
外键:
银行账户编号,用户名。
7)现金账户(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,现金类型,变更金额,变更日期,备注)
主键:
变更流水号。
外键:
银行账户编号、用户名。
2.联系部分
1)理财产品交易(理财账户编号,理财产品编号,交易类型,交易金额,交易日期,备注)
主键:
理财账户编号,理财产品编号。
外键:
理财产品编号。
之中交易类型为买入或卖出,交易日期必须在理财经营表中经营时间的范围内。
2)理财产品经营(银行编号,理财产品编号,经营开始时间,经营结束时间,备注)
主键:
银行编号,理财产品编号。
3.3.2.确定函数依赖、属于第几范式
1.实体表
1)用户表(用户名,家庭成员编号,用户密码)
用户名→用户密码,用户名→家庭成员编号,没有部分依赖,没有传递依赖,则此范式属于第三范式。
2)家庭成员表(家庭成员编号,成员姓名,成员身份)
家庭成员编号→成员姓名,家庭成员编号→成员身份,没有部分依赖,没有传递依赖,则此范式属于第三范式。
3)银行账户表(银行账户编号,银行编号,账户所有人编号,账户类型)
银行账户编号→银行编号,银行账户编号→账户所有人编号,银行账户编号→账户类型,没有部分依赖,没有传递依赖,则此范式属于第三范式。
4)银行表(银行编号,银行名称,银行简称,银行位置)
银行编号→银行名称,银行编号→银行简称,银行编号→银行位置,没有部分依赖,没有传递依赖,则此范式属于第三范式。
5)理财产品表(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低购买金额,风险概述,违约说明,备注)
理财产品编号→理财名称,理财产品编号→预期利率,理财产品编号→投资周期,理财产品编号→周期单位,理财产品编号→最低购买金额,理财产品编号→风险概述,理财产品编号→违约说明,理财产品编号→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。
6)理财账户表(理财账户编号,银行账户编号,用户名,理财类型,备注)
理财账户编号→银行账户编号,理财账户编号→用户名,理财账户编号→理财类型,理财账户编号→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。
7)现金账户表(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,现金类型,变更金额,变更日期,备注)
变更流水号→现金账户编号,变更流水号→银行账户编号,变更流水号→用户名,变更流水号→收支类型,变更流水号→现金类型,变更流水号→变更金额,变更流水号→变更日期,变更流水号→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。
2.关系表
1)理财产品交易表(理财账户编号,理财产品编号,交易类型,交易金额,交易日期,备注)
(理财账户编号,理财产品编号)→交易类型,(理财账户编号,理财产品编号)→交易金额,(理财账户编号,理财产品编号)→交易日期,(理财账户编号,理财产品编号)→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。
2)理财产品经营表(银行编号,理财产品编号,经营开始时间,经营结束时间,备注)
(银行编号,理财产品编号)→经营开始时间,(银行编号,理财产品编号)→经营结束时间,(银行编号,理财产品编号)→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。
3.4.物理结构设计
3.4.1.表设计
本系统共有9张表,包括实体表(7张):
用户表、家庭成员表、银行账户表、银行表、理财产品表、理财账户表、现金账户表;关系表(2张):
理财产品交易表、理财产品经营表。
1.实体表
表3-4-1用户表
字段名
含义说明
别名
数据类型
空值
约束
键引用
用户名
数据库账户
UserName
Char(10)
否
——
主键
家庭成员编号
家庭成员的编号
FNo
Char(10)
否
——
外键
密码
数据库密码
Userpassword
Char(20)
否
——
表3-4-2家庭成员表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
家庭成员编号
家庭成员的特定编号
FNo
Char(10)
否
——
主键
姓名
家庭成员的姓名
FName
Char(8)
否
——
成员身份
家庭成员在家庭中的身份、地位
FStatus
Char(6)
否
——
表3-4-3银行账户表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
银行账户编号
银行账户的惟一标识
BANo
Char(10)
否
——
主键
银行编号
银行的唯一标示
BNo
Char(10)
否
——
外键
账户所有人编号
家庭成员的编号
FNo
Char(10)
否
——
外键
账户类型
账户类型
AcType
Char(4)
否
——
表3-4-4银行表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
银行编号
银行编号
BNo
Char(10)
否
——
主键
银行名称
银行的名称
BName
Char(10)
否
——
银行简称
银行的简称
BShort
Char(8)
否
——
地理位置
银行的地址
BPlace
Text
否
——
表3-4-5理财产品表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
理财产品编号
理财产品的唯一编号
FMID
Char(10)
否
——
主键
理财名称
理财产品名称
FMName
Char(20)
否
——
预期利率
预期收益率
FMIntertst
Char
(2)
否
——
投资周期
投资周期
FMTime
Char(10)
否
——
周期单位
周期的单位
TimeType
Char(4)
否
Check(天、月年)
最低购买金额
最低购买的金额
FMSMoney
Money
否
——
风险概述
风险评级
FMRisk
Text
否
——
违约说明
未达投资周期的违约声明
FMDefault
Text
否
——
备注
产品服务备注信息
Memos
Text
——
表3-4-6理财账户表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
理财账户编号
理财账户特定编号
INo
Char(10)
否
——
主键
银行账户编号
银行账户的惟一标识
BANo
Char(10)
否
——
外键
用户名
数据库账户
UserName
Char(10)
否
——
外键
理财账户类型
理财账户类型
IType
Char(4)
否
——
备注
信息备注
Memos
Text
——
表3-4-7现金账户表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
变更流水号
变更记录流水号
SeNo
Char(10)
否
——
主键
现金账户编号
现金账户特定编号
CashNo
Char(10)
否
——
银行账户编号
银行账户的惟一标识
BANo
Char(10)
否
——
外键
用户名
数据库账户
UserName
Char(10)
否
——
外键
收支类型
收支的类型
DType
Char(4)
否
Check(收入、支出)
现金类型
货币类型
MType
Char(4)
否
——
变更金额
变更金额
MSum
Money
否
——
变更日期
变更的时间
DDate
Datertime
否
——
备注
变更说明
Memos
Text
——
2.关系表
表3-4-8理财产品交易表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
投资账户编号
投资账户的唯一编号
INo
Char(10)
否
主键约束
主键
外键
理财产品编号
理财产品的唯一编号
FMID
Char(10)
否
主键约束
主键
外键
交易类型
交易的类型
DType
Char(4)
否
Check(买入、卖出)
交易金额
交易的金额
MSum
Money
否
——
交易日期
交易的日期
DDate
Datetime
否
——
备注
交易备注
Memos
Text
——
表3-4-9理财产品经营表
数据项名
含义说明
别名
数据类型
空值
约束
键引用
银行编号
银行的唯一标示
BNo
Char(10)
否
——
主键
外键
理财产品编号
理财产品的唯一编号
FMID
Char(10)
否
——
主键
外键
经营开始时间
经营开始的日期
RSDate
Datetime
否
——
经营结束时间
经营结束的日期
REDate
Datetime
否
Check(REDate>RSDate)
备注
经营备注
Memos
Text
——
3.4.2.约束设计
使用Check约束,约束理财产品表的投资周期为“日”、“月”或“年”;约束现金表的收支类型为“收入”或“支出”;约束理财产品交易表的交易类型为“买入”或“卖出”。
3.4.3.触发器设计
创建级联删除触发器,当银行表中的元组被删除时将触发银行账户表中对应元组的删除,之后会触发删除对应的理财账户、现金账户中对应元组的删除操作。
3.4.4.视图设计
创建理财产品基本信息视图,完善安全性,包括理财产品编号、理财产品名称及银行名称组成。
满足最基本的信息需求即可。
3.4.5.索引设计
创建理财产品编号的索引及银行简称的索引,方便信息查询、提高相关查询的效率。
3.4.6.存储过程设计
创建触发器实现查询特定现金账户在某一年的特定货币类型的收支情况,用以方便查询操作。
4.数据库实施、运行
数据库的实施完全按照数据库设计阶段给出的安全需求、性能要求等实施最终的数据库设计过程,包括了数据表及约束的创建,视图、触发器及存储过程的创建,最终录入数据完成数据库的运行。
4.1.创建表及约束
1.实体表
---家庭成员表
createtableFamily(
FNonchar(10)primarykey,
FNamenchar(10)notnull,
FStatusnchar(10)notnull
)
---用户表
createtableAccount(
UserNamenchar(10)primarykey,
FNonchar(10)notnull,
UserPassWordnchar(20)notnull,
foreignkey(FNo)referencesFamily(FNo)
)
---银行表
createtableBank(
BNonchar(10)primarykey,
BNamenchar(10)notnull,
BShortnchar(8)notnull,
Bplacetextnotnull
)
---银行账户表
createtableBank_Account(
BANonchar(10)primarykey,
BNonchar(10)notnull,
FNonchar(10)notnull,
AcTypenchar(4)notnull,
foreignkey(FNo)referencesFamily(FNo),
foreignkey(BNo)referencesBank(BNo),
CONSTRAINTCK_Bank_AccountCHECK(AcType='投资'ORAcType='现金')
)
---理财产品表
createtableFinance_Product(
FMIDnchar(10)primarykey,
FMNAMEnchar(10)notnull,
FMIntertstnchar(10),
FMTimeintnotnull,
TimeTypenchar(4)notnull,
FMSMoneymoneynotnull,
FMRisktextnotnull,
FMDefaulttextnotnull,
Memostext,
CONSTRAINTCK_Finance_ProductCHECK(TimeType='天'ORTimeType='月'ORTimeType='年')
)
---现金账户表
createtableCase_Account(
SeNonchar(10)primarykey,
CashNonchar(10),
BANonchar(10)notnull,
UserNamenchar(10)notnull,
DTypenchar(4)notnull,
MTypenchar(4)notnull,
MSummoneynotnull,
DDatedatetimenotnull,
Memostext,
foreignkey(BANo)referencesBank_Account(BANo),
foreignkey(UserName)referencesAccount(UserName),
CONSTRAINTCK_Case_AccountCHECK(DType='收入'ORDType='支出')
)
---理财账户表
createtableFinance_Account(
INonchar(10)primarykey,
BANonchar(10)notnull,
UserNamenchar(10)notnull,
Itypenchar(4)notnull,
Memostext,
foreignkey(BANo)referencesBank_Account(BANo),
foreignkey(UserName)referencesAccount(UserName)
)
2.关系表
---理财产品交易表
createtableFinance(
INonchar(10),
FMIDnchar(10),
DTypenchar(4)notnull,
MSummoneynotnull,
DDatedatetimenotnull,
Memostext,
primarykey(INo,FMID),
foreignkey(INo)referencesFinance_Account(INo),
foreignkey(FMID)referencesFinance_Product(FMID),
CONSTRAINTCK_FinanceCHECK(DType='买入'ORDType='卖出')
)
---理财产品经营表
createtableFinance_Run(
BNonchar(10),
FMIDnchar(10),
RSDatedatetimenotnull,
REDatedatetimenotnull,
Memostext,
primarykey(BNo,FMID),
foreignkey(BNo)referencesBank(BNo),
foreignkey(FMID)referencesFinance_Product(FMID),
CONSTRAINTCK_Finance_RunCHECK(RSDate ) 4.2.触发器创建 ---银行表级联删除 createtriggerB_Dl onBank fordelete as begin deletefromBank_Account whereBNoin (selectBNofromdeleted) end ---银行账户表级联删除 createtriggerBA_Dl onBank_Account afterdelete as begin if((selectAcTypefromdeleted)='现金') deletefromCase_Account whereBANo in(selectBANofromdeleted) else deletefromFinance_Account whereBANo in(selectBANofromdeleted) end ---理财账户表级联删除 createtriggerFiA_Dl onFinance_Account fordelete as begin deletefromFinance whereINoin (selectINofromdeleted) end 4.3.视图 ---创建理财产品基本信息视图 CREATEVIEWFin_ProAS SELECTa.FMIDas理财产品编号,a.FMNAME理财产品名,c.BName服务提供银行 FROMFinance_Producta,Finance_Runb,Bankc WHEREa.FMID=b.FMIDANDb.BNo=c.BNo; 4.4.索引 ---创建理财产品索引 CREATEINDEXFinPro_indexONFinance_Product(FMID) ---创建银行索引 CREATEINDEXBank_INDEXONBank(BShort) 4.5.游标和存储过程 ---某现金账户某年特定货币类型的收支情况 createprocedureCase_Sum( @ydatetime, @CashIDnchar(10), @CashMTypenchar(4) ) as begin declare@CashInSummoney, declare@CashOutSummoney set@CashInSum=0 set@CashOutSum=0 ---游标声明 declareS_DTypecursor forselectCashNo,DType,MType,MSum,DDatefromCase_Account ---打开游标 openS_Dtype declare@CNnchar(10) declare@DTnchar(4) declare@MTnchar(4) declare@MSmoney declare@DDdatetime ---读取游标 fetchnextfromS_DTypeinto@CN,@DT,@MT,@MS,@DD ---循环读取 while@@fetch_status=0 begin if(year(@y)=year(@DD)and
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家庭 财务管理 系统 DOC