家庭财务管理系统DOC.docx

上传人:b****3 文档编号:3527649 上传时间:2022-11-23 格式:DOCX 页数:20 大小:245.91KB
下载 相关 举报
家庭财务管理系统DOC.docx_第1页
第1页 / 共20页
家庭财务管理系统DOC.docx_第2页
第2页 / 共20页
家庭财务管理系统DOC.docx_第3页
第3页 / 共20页
家庭财务管理系统DOC.docx_第4页
第4页 / 共20页
家庭财务管理系统DOC.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

家庭财务管理系统DOC.docx

《家庭财务管理系统DOC.docx》由会员分享,可在线阅读,更多相关《家庭财务管理系统DOC.docx(20页珍藏版)》请在冰豆网上搜索。

家庭财务管理系统DOC.docx

家庭财务管理系统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模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1