家庭财务管理系统_第1页
家庭财务管理系统_第2页
家庭财务管理系统_第3页
家庭财务管理系统_第4页
家庭财务管理系统_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1. 绪论 12. 总体设计 12.1. 数据流程分析图 12.2. 系统总体模块图 12.3. 安全性设计 23. 数据库设计 23.1. 需求分析 23.1.1. 任务概述 23.1.2. 系统功能需求 23.2. 概念结构设计 23.3. 逻辑结构设计 33.3.1. 建立关系模型 33.3.2. 确定函数依赖、属于第几范式 33.4. 物理结构设计 43.4.1. 表设计 43.4.2. 约束设计 73.4.3. 触发器设计 73.4.4. 视图设计 73.4.5. 索引设计 73.4.6. 存储过程设计 74. 数据库实施、运行 84.1. 创建表及约束 84.2. 触发器创建 104.3. 视图 114.4. 索引 114.5. 游标和存储过程 114.6. 数据录入 125. 结论 13参考文献: 13致谢 14

绪论21世纪的今天,已经成为信息化的时代,人们的生活已离不开计算机。就在计算机业不断蓬勃发展的同时,也把人们的家庭理财上升到了一个全新的概念,随着信息化生活的不断深入,家庭理财系统也随之应运而生,由原来的简单计算变成了一个全新的图形化显示应用系统。基于时代的发展,我设计了一套家庭理财系统的方案。该系统以当前家庭理财方式为实例而设计的一种实用型管理系统。本系统最大的特点是通用性、简单操作性,使固定资产管理系统真正实现多方操作,满足短期内对资产信息的采集,存储,处理,组织,管理和利用的需求,实现信息资源的集中管理和统一调度。总体设计总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案。本阶段的设计就是进行家庭理财系统整体系统的概要设计。针对本系统的总体设计从数据流程图入手,逐步完善系统中各个模块的设计,最终完善安全性设计来达到最终设计合理可行。数据流程分析图家庭理财系统顶层的功能:家庭成员通过家庭理财系统完成对现金账户和投资账户的管理,家庭理财系统记录银行理财产品的购入、卖出及现金的收支记录,同时能够进行相关银行信息的查询操作。如图2-1。图2-1顶层数据流图系统总体模块图图2-2系统总体模块图安全性设计本系统通过视图的建立隐藏部分银行信息,从而完善安全需求。同时创建触发器保证数据库信息的统一性;创建存储过程隐藏部分操作,实现数据库的操作简化。数据库设计本阶段的设计决定了家庭理财系统数据库设计的可行性,通过需求分析、概念设计、逻辑结构设计分别做出了数据库的基础性设计。最后物理结构设计给出了最终的数据库的设计方案,包括表设计、约束设计等完善了数据库的实施方案。需求分析任务概述利用数据库相关技术,我对家庭理财系统进行了开发。该系统解决了家庭理财中需要的部分功能,对于系统管理员来说,管理功能完备,操作方便。因此本系统的目的是开发一个比较安全、简便的家庭理财系统。系统功能需求家庭理财管理系统通过日常的各项收入及开支进行统计处理,使用户对自己的经济情况一目了然。本理财系统集合了权限登录、数据管理、打印等功能模块。概念结构设计图3-2家庭理财系统E-R图概念结构设计包括了实体设计及实体联系的设计,其中实体有7个,联系有2个。从登陆用户依附的家庭成员实体开始设计,逐步完善联系产生了后续的6个实体,最总通过多对多联系完善了全部概念结构设计。逻辑结构设计建立关系模型实体部分用户(用户名,家庭成员编号,用户密码)主键:用户名。外键:家庭成员。家庭成员(家庭成员编号,成员姓名,成员身份)主键:家庭成员编号。银行账户(银行账户编号,银行编号,账户所有人编号,账户类型)主键:银行账户编号。外键:银行编号、账户所有人编号银行(银行编号,银行名称,银行简称,银行位置)主键:银行编号。理财产品(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低购买金额,风险概述,违约说明,备注)主键:理财产品编号。理财账户(理财账户编号,银行账户编号,用户名,理财类型,备注)主键:理财账户编号。外键:银行账户编号,用户名。现金账户(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,现金类型,变更金额,变更日期,备注)主键:变更流水号。外键:银行账户编号、用户名。联系部分理财产品交易(理财账户编号,理财产品编号,交易类型,交易金额,交易日期,备注)主键:理财账户编号,理财产品编号。外键:理财产品编号。之中交易类型为买入或卖出,交易日期必须在理财经营表中经营时间的范围内。理财产品经营(银行编号,理财产品编号,经营开始时间,经营结束时间,备注)主键:银行编号,理财产品编号。确定函数依赖、属于第几范式实体表用户表(用户名,家庭成员编号,用户密码)用户名→用户密码,用户名→家庭成员编号,没有部分依赖,没有传递依赖,则此范式属于第三范式。家庭成员表(家庭成员编号,成员姓名,成员身份)家庭成员编号→成员姓名,家庭成员编号→成员身份,没有部分依赖,没有传递依赖,则此范式属于第三范式。银行账户表(银行账户编号,银行编号,账户所有人编号,账户类型)银行账户编号→银行编号,银行账户编号→账户所有人编号,银行账户编号→账户类型,没有部分依赖,没有传递依赖,则此范式属于第三范式。银行表(银行编号,银行名称,银行简称,银行位置)银行编号→银行名称,银行编号→银行简称,银行编号→银行位置,没有部分依赖,没有传递依赖,则此范式属于第三范式。理财产品表(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低购买金额,风险概述,违约说明,备注)理财产品编号→理财名称,理财产品编号→预期利率,理财产品编号→投资周期,理财产品编号→周期单位,理财产品编号→最低购买金额,理财产品编号→风险概述,理财产品编号→违约说明,理财产品编号→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。理财账户表(理财账户编号,银行账户编号,用户名,理财类型,备注)理财账户编号→银行账户编号,理财账户编号→用户名,理财账户编号→理财类型,理财账户编号→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。现金账户表(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,现金类型,变更金额,变更日期,备注)变更流水号→现金账户编号,变更流水号→银行账户编号,变更流水号→用户名,变更流水号→收支类型,变更流水号→现金类型,变更流水号→变更金额,变更流水号→变更日期,变更流水号→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。关系表理财产品交易表(理财账户编号,理财产品编号,交易类型,交易金额,交易日期,备注)(理财账户编号,理财产品编号)→交易类型,(理财账户编号,理财产品编号)→交易金额,(理财账户编号,理财产品编号)→交易日期,(理财账户编号,理财产品编号)→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。理财产品经营表(银行编号,理财产品编号,经营开始时间,经营结束时间,备注)(银行编号,理财产品编号)→经营开始时间,(银行编号,理财产品编号)→经营结束时间,(银行编号,理财产品编号)→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。物理结构设计表设计本系统共有9张表,包括实体表(7张):用户表、家庭成员表、银行账户表、银行表、理财产品表、理财账户表、现金账户表;关系表(2张):理财产品交易表、理财产品经营表。实体表表3-4-1字段名含义说明别名数据类型空值约束键引用用户名数据库账户UserNameChar(10)否——主键家庭成员编号家庭成员的编号FNoChar(10)否——外键密码数据库密码UserpasswordChar(20)否——表3-4-2数据项名含义说明别名数据类型空值约束键引用家庭成员编号家庭成员的特定编号FNoChar(10)否——主键姓名家庭成员的姓名FNameChar(8)否——成员身份家庭成员在家庭中的身份、地位FStatusChar(6)否——表3-4-3数据项名含义说明别名数据类型空值约束键引用银行账户编号银行账户的惟一标识BANoChar(10)否——主键银行编号银行的唯一标示BNoChar(10)否——外键账户所有人编号家庭成员的编号FNoChar(10)否——外键账户类型账户类型AcTypeChar(4)否——表3-4-4数据项名含义说明别名数据类型空值约束键引用银行编号银行编号BNoChar(10)否——主键银行名称银行的名称BNameChar(10)否——银行简称银行的简称BShortChar(8)否——地理位置银行的地址BPlaceText否——表3-4-5数据项名含义说明别名数据类型空值约束键引用理财产品编号理财产品的唯一编号FMIDChar(10)否——主键理财名称理财产品名称FMNameChar(20)否——预期利率预期收益率FMIntertstChar(2)否——投资周期投资周期FMTimeChar(10)否——周期单位周期的单位TimeTypeChar(4)否Check(天、月年)最低购买金额最低购买的金额FMSMoneyMoney否——风险概述风险评级FMRiskText否——违约说明未达投资周期的违约声明FMDefaultText否——备注产品服务备注信息MemosText——表3-4-6数据项名含义说明别名数据类型空值约束键引用理财账户编号理财账户特定编号INoChar(10)否——主键银行账户编号银行账户的惟一标识BANoChar(10)否——外键用户名数据库账户UserNameChar(10)否——外键理财账户类型理财账户类型ITypeChar(4)否——备注信息备注MemosText——表3-4-7数据项名含义说明别名数据类型空值约束键引用变更流水号变更记录流水号SeNoChar(10)否——主键现金账户编号现金账户特定编号CashNoChar(10)否——银行账户编号银行账户的惟一标识BANoChar(10)否——外键用户名数据库账户UserNameChar(10)否——外键收支类型收支的类型DTypeChar(4)否Check(收入、支出)现金类型货币类型MTypeChar(4)否——变更金额变更金额MSumMoney否——变更日期变更的时间DDateDatertime否——备注变更说明MemosText——关系表表3-4-8数据项名含义说明别名数据类型空值约束键引用投资账户编号投资账户的唯一编号INoChar(10)否主键约束主键外键理财产品编号理财产品的唯一编号FMIDChar(10)否主键约束主键外键交易类型交易的类型DTypeChar(4)否Check(买入、卖出)交易金额交易的金额MSumMoney否——交易日期交易的日期DDateDatetime否——备注交易备注MemosText——表3-4-9数据项名含义说明别名数据类型空值约束键引用银行编号银行的唯一标示BNoChar(10)否——主键外键理财产品编号理财产品的唯一编号FMIDChar(10)否——主键外键经营开始时间经营开始的日期RSDateDatetime否——经营结束时间经营结束的日期REDateDatetime否Check(REDate>RSDate)备注经营备注MemosText——约束设计使用Check约束,约束理财产品表的投资周期为“日”、“月”或“年”;约束现金表的收支类型为“收入”或“支出”;约束理财产品交易表的交易类型为“买入”或“卖出”。触发器设计创建级联删除触发器,当银行表中的元组被删除时将触发银行账户表中对应元组的删除,之后会触发删除对应的理财账户、现金账户中对应元组的删除操作。视图设计创建理财产品基本信息视图,完善安全性,包括理财产品编号、理财产品名称及银行名称组成。满足最基本的信息需求即可。索引设计创建理财产品编号的索引及银行简称的索引,方便信息查询、提高相关查询的效率。存储过程设计创建触发器实现查询特定现金账户在某一年的特定货币类型的收支情况,用以方便查询操作。数据库实施、运行数据库的实施完全按照数据库设计阶段给出的安全需求、性能要求等实施最终的数据库设计过程,包括了数据表及约束的创建,视图、触发器及存储过程的创建,最终录入数据完成数据库的运行。创建表及约束实体表家庭成员表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))关系表理财产品交易表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<REDate))触发器创建银行表级联删除createtriggerB_DlonBankfordeleteasbegindeletefromBank_AccountwhereBNoin(selectBNofromdeleted)end银行账户表级联删除createtriggerBA_DlonBank_Accountafterdeleteasbeginif((selectAcTypefromdeleted)='现金') deletefromCase_Account whereBANo in(selectBANofromdeleted)else deletefromFinance_Account whereBANo in(selectBANofromdeleted)end理财账户表级联删除createtriggerFiA_DlonFinance_AccountfordeleteasbegindeletefromFinancewhereINoin(selectINofromdeleted)end视图创建理财产品基本信息视图CREATEVIEWFin_ProASSELECTa.FMIDas理财产品编号,a.FMNAME理财产品名,c.BName服务提供银行FROMFinance_Producta,Finance_Runb,BankcWHEREa.FMID=b.FMIDANDb.BNo=c.BNo;索引创建理财产品索引CREATEINDEXFinPro_indexONFinance_Product(FMID)创建银行索引CREATEINDEXBank_INDEXONBank(BShort)游标和存储过程某现金账户某年特定货币类型的收支情况createprocedureCase_Sum(@ydatetime,@CashIDnchar(10),@CashMTypenchar(4))asbegindeclare@CashInSummoney,declare@CashOutSummoneyset@CashInSum=0set@CashOutSum=0游标声明declareS_DTypecursorforselectCashNo,DType,MType,MSum,DDatefromCase_Account打开游标openS_Dtypedeclare@CNnchar(10)declare@DTnchar(4)declare@MTnchar(4)declare@MSmoneydeclare@DDdatetime读取游标fetchnextfromS_DTypeinto@CN,@DT,@MT,@MS,@DD循环读取while@@fetch_status=0beginif(year(@y)=year(@DD)and@CashID=@CNand@CashMType=@MT)beginif@DT='支出'set@C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论