您的当前位置:首页正文

家庭财务管理系统DOC

2020-11-05 来源:榕意旅游网
目 录

1. 2.

绪论 ..................................................................1 总体设计 ..............................................................1

2.1. 数据流程分析图 ...................................................... 1 2.2. 系统总体模块图 ...................................................... 1 2.3. 安全性设计 .......................................................... 2 3.

数据库设计 ............................................................2 3.1. 需求分析 ............................................................ 2 3.1.1. 任务概述 ......................................................... 2 3.1.2. 系统功能需求 ..................................................... 2 3.2. 概念结构设计 ........................................................ 2 3.3. 逻辑结构设计 ........................................................ 3 3.3.1. 建立关系模型 ..................................................... 3 3.3.2. 确定函数依赖、属于第几范式 ....................................... 3 3.4. 物理结构设计 ........................................................ 4 3.4.1. 表设计 ........................................................... 4 3.4.2. 约束设计 ......................................................... 7 3.4.3. 触发器设计 ....................................................... 7 3.4.4. 视图设计 ......................................................... 7 3.4.5. 索引设计 ......................................................... 7 3.4.6. 存储过程设计 ..................................................... 7 4.

数据库实施、运行 ......................................................8

4.1. 创建表及约束 ........................................................ 8 4.2. 触发器创建 ......................................................... 10 4.3. 视图 ............................................................... 11 4.4. 索引 ............................................................... 11 4.5. 游标和存储过程 ..................................................... 11 4.6. 数据录入 ........................................................... 12 5.

结论 .................................................................13 参考文献: ................................................................ 13 致 谢 ....................................................................14

家庭理财系统

1. 绪论

21 世纪的今天,已经成为信息化的时代,人们的生活已离不开计算机。就在计算机 业不断蓬勃发展的同时,也把人们的家庭理财上升到了一个全新的概念,随着信息化生 活的不断深入,家庭理财系统也随之应运而生,由原来的简单计算变成了一个全新的图 形化显示应用系统。基于时代的发展,我设计了一套家庭理财系统的方案。该系统以当 前家庭理财方式为实例而设计的一种实用型管理系统。本系统最大的特点是通用性、简 单操作性,使固定资产管理系统真正实现多方操作,满足短期内对资产信息的采集,存 储,处理,组织,管理和利用的需求,实现信息资源的集中管理和统一调度。

2. 总体设计

总体设计即对有关系统全局问题的设计,也就是设计系统总的处理方案。本阶段的 设计就是进行家庭理财系统整体系统的概要设计。针对本系统的总体设计从数据流程图 入手,逐步完善系统中各个模块的设计,最终完善安全性设计来达到最终设计合理可行。

2.1.数据流程分析图

家庭理财系统顶层的功能:家庭成员通过家庭理财系统完成对现金账户和投资账户 的管理,家庭理财系统记录银行理财产品的购入、卖出及现金的收支记录,同时能够进 行相关银行信息的查询操作。如图 2-1。

家庭成员 投资账户管理 家庭理财系统 图 2-1 顶层数据流图

购入理财产品 卖出理财产品 现金收支管理 银行理财服务 2.2.系统总体模块图

1

家庭理财系统

家庭理财系统

家庭成员

管理账户

银行 银行账现金账户

户 理财产品

理财账户

银 行 信 息 查 询

银 行 信 息 修 改

银 行 账 户 信 息 查 询 银 行 账 户 信 息 查 询 现 金 账 户 信 息 查 询 现 金 账 户 信 息 查 询 理 财 账 户 信 息 查 询 理 财 账 户 信 息 查 询 理 财 产 品 信 息 查 询 理 财 产 品 信 息 查 询

2.3.安全性设计

图 2-2 系统总体模块图

本系统通过视图的建立隐藏部分银行信息,从而完善安全需求。同时创建触发器保 证数据库信息的统一性;创建存储过程隐藏部分操作,实现数据库的操作简化。

3. 数据库设计

本阶段的设计决定了家庭理财系统数据库设计的可行性,通过需求分析、概念设计、 逻辑结构设计分别做出了数据库的基础性设计。最后物理结构设计给出了最终的数据库 的设计方案,包括表设计、约束设计等完善了数据库的实施方案。

3.1.需求分析

3.1.1. 任务概述

利用数据库相关技术,我对家庭理财系统进行了开发。该系统解决了家庭理财中需 要的部分功能,对于系统管理员来说,管理功能完备,操作方便。因此本系统的目的是 开发一个比较安全、简便的家庭理财系统。

3.1.2. 系统功能需求

家庭理财管理系统通过日常的各项收入及开支进行统计处理,使用户对自己的经济 情况一目了然。本理财系统集合了权限登录、数据管理、打印等功能模块。

3.2.概念结构设计

2

家庭理财系统

密码 账户

用户 1

1

归属

1

现金账户编号 变更流水号 变更日期

家庭成员编号家庭成员

1

成员姓名

现金类型 变更类型

管理

现金账户

N

N

理财账户编号

理财类型 备注

备注

拥有

变更金额

理财账户

1

1 属于

1

N 银行账户

M 服务

账户类型 银行账户编号 银行编号 银行名称 银行地址 银行简称 经营开始时间 经营结束时间 备注

交易金额 交易时间 交易类型 备注

交易 M

1

L

理财产品

N

备注 违约说明

银行

M

经营

理财产品编号 理财产品名称

风险概述

最低购买金额

预期利率 投资周期

图 3-2 家庭理财系统 E-R 图

概念结构设计包括了实体设计及实体联系的设计,其中实体有 7 个,联系有 2 个。 从登陆用户依附的家庭成员实体开始设计,逐步完善联系产生了后续的 6 个实体,最总 通过多对多联系完善了全部概念结构设计。

3.3.逻辑结构设计

3.3.1. 建立关系模型

1. 实体部分

1) 用户(用户名,家庭成员编号,用户密码)

主键:用户名。 外键:家庭成员。

2) 家庭成员(家庭成员编号,成员姓名,成员身份)

主键:家庭成员编号。

3) 银行账户(银行账户编号,银行编号,账户所有人编号,账户类型)

主键:银行账户编号。

外键:银行编号、账户所有人编号

4) 银行(银行编号,银行名称,银行简称,银行位置)

主键:银行编号。

5) 理财产品(理财产品编号,理财名称,预期利率,投资周期,周期单位,最低

购买金额,风险概述,违约说明,备注) 主键:理财产品编号。

6) 理财账户(理财账户编号,银行账户编号,用户名,理财类型,备注)

主键:理财账户编号。

3

家庭理财系统

外键:银行账户编号,用户名。

7) 现金账户(变更流水号,现金账户编号,银行账户编号,用户名,收支类型,

现金类型,变更金额,变更日期,备注) 主键:变更流水号。

外键:银行账户编号、用户名。

2. 联系部分

1) 理财产品交易(理财账户编号,理财产品编号,交易类型,交易金额,交易日

期,备注)

主键:理财账户编号,理财产品编号。 外键:理财产品编号。

之中交易类型为买入或卖出,交易日期必须在理财经营表中经营时间的范围内。 2) 理财产品经营(银行编号,理财产品编号,经营开始时间,经营结束时间,备

注)

主键:银行编号,理财产品编号。

3.3.2. 确定函数依赖、属于第几范式

1. 实体表

1) 用户表(用户名,家庭成员编号,用户密码)

用户名→用户密码,用户名→家庭成员编号,没有部分依赖,没有传递依赖, 则此范式属于第三范式。

2) 家庭成员表(家庭成员编号,成员姓名,成员身份)

家庭成员编号→成员姓名,家庭成员编号→成员身份,没有部分依赖,没有 传递依赖,则此范式属于第三范式。

3) 银行账户表(银行账户编号,银行编号,账户所有人编号,账户类型)

银行账户编号→银行编号,银行账户编号→账户所有人编号,银行账户编号 →账户类型,没有部分依赖,没有传递依赖,则此范式属于第三范式。 4) 银行表(银行编号,银行名称,银行简称,银行位置)

银行编号→银行名称,银行编号→银行简称,银行编号→银行位置,没有部 分依赖,没有传递依赖,则此范式属于第三范式。

5) 理财产品表(理财产品编号,理财名称,预期利率,投资周期,周期单位,

最低购买金额,风险概述,违约说明,备注)

理财产品编号→理财名称,理财产品编号→预期利率,理财产品编号→投资 周期,理财产品编号→周期单位,理财产品编号→最低购买金额,理财产品 编号→风险概述,理财产品编号→违约说明,理财产品编号→备注,没有部 分依赖,没有传递依赖,则此范式属于第三范式。

6) 理财账户表(理财账户编号,银行账户编号,用户名,理财类型,备注)

理财账户编号→银行账户编号,理财账户编号→用户名,理财账户编号→理 财类型,理财账户编号→备注,没有部分依赖,没有传递依赖,则此范式属 于第三范式。

7) 现金账户表(变更流水号,现金账户编号,银行账户编号,用户名,收支类

型,现金类型,变更金额,变更日期,备注)

变更流水号→现金账户编号,变更流水号→银行账户编号,变更流水号→用 户名,变更流水号→收支类型,变更流水号→现金类型,变更流水号→变更 金额,变更流水号→变更日期,变更流水号→备注,没有部分依赖,没有传 递依赖,则此范式属于第三范式。

4

家庭理财系统

2. 关系表

1) 理财产品交易表(理财账户编号,理财产品编号,交易类型,交易金额,交

易日期,备注)

(理财账户编号,理财产品编号)→交易类型,(理财账户编号,理财产品编号) →交易金额,(理财账户编号,理财产品编号)→交易日期,(理财账户编号,理 财产品编号)→备注,没有部分依赖,没有传递依赖,则此范式属于第三范式。 2) 理财产品经营表(银行编号,理财产品编号,经营开始时间,经营结束时间,

备注)

(银行编号,理财产品编号)→经营开始时间,(银行编号,理财产品编号)→ 经营结束时间,(银行编号,理财产品编号)→备注,没有部分依赖,没有传递 依赖,则此范式属于第三范式。

3.4.物理结构设计

3.4.1. 表设计

本系统共有 9 张表,包括实体表(7 张):用户表、家庭成员表、银行账户表、银行表、 理财产品表、理财账户表、现金账户表;关系表(2 张):理财产品交易表、理财产品经营 表。

1. 实体表

表 3-4-1 用户表 别名数据类型 空值 否 UserName Char(10) 否 FNoChar(10) 否 Userpassword Char(20)

表 3-4-2 家庭成员表 别名数据类型 空值 否 FNoChar(10) 否 FName Char(8) 否 FStatusChar(6)

表 3-4-3 银行账户表 别名数据类型 空值 否 BANoChar(10)

5

字段名 用户名 家庭成员 编号 密码 含义说明 数据库账户 家庭成员的编 号 数据库密码 约束 —— —— —— 键引用 主键 外键 数据项名 家庭成员 编号 姓名 成员身份 含义说明 家庭成员的 特定编号 家庭成员的 姓名 家庭成员在 家庭中的身 份、地位 约束 —— —— —— 键引用 主键 数据项名 银行账户 编号 含义说明 银行账户的 惟一标识 约束 —— 键引用 主键

银行的唯一 标示 家庭成员的 编号 账户类型 家庭理财系统

银行编号 账户所有 人编号 账户类型 BNo FNo AcType Char(10) Char(10) Char(4) 否 否 否 —— —— —— 外键 外键 数据项名 银行编号 银行名称 银行简称 地理位置 含义说明 银行编号 银行的名称 银行的简称 银行的地址

表 3-4-4 银行表 别名 数据类型 空值 BNo BName BShort BPlace Char(10) Char(10) Char(8) Text 否 否 否 否 约束 —— —— —— —— 键引用 主键

表 3-4-5 理财产品表

数据项名 理财产品 编号 理财名称 预期利率 投资周期 周期单位 最低购买 金额 风险概述 违约说明 含义说明 理财产品的 唯一编号 理财产品名 称 预期收益率 投资周期 周期的单位 最低购买的 金额 风险评级 未达投资周 期的违约声 明 备注 产品服务备 注信息 Memos Text —— FMDefault 别名 FMID FMName FMIntertst FMTime TimeType FMSMoney FMRisk 数据类型 Char(10) Char(20) Char(2) Char(10) Char(4) Money Text Text 空值 否 否 否 否 否 否 否 否 约束 —— —— —— —— 键引用 主键 Check(天、 月年) —— —— ——

表 3-4-6 理财账户表

数据项名 理财账户 编号 银行账户 编号 含义说明 理财账户特 定编号 银行账户的 惟一标识 别名 INo BANo 数据类型 Char(10) Char(10) 6

空值 否 否 约束 —— —— 键引用 主键 外键

用户名 理财账户 类型 备注 数据库账户 理财账户类 型 信息备注 UserName IType Memos 家庭理财系统

Char(10) Char(4) Text 否 否 —— —— —— 外键 数据项名 变更流水 号 现金账户 编号 银行账户 编号 用户名 收支类型 现金类型 变更金额 变更日期 备注 含义说明 变更记录流 水号 现金账户特 定编号 银行账户的 惟一标识 数据库账户 收支的类型 货币类型 变更金额 变更的时间 变更说明

表 3-4-7 现金账户表 别名 数据类型 空值 SeNo CashNo BANo UserName DType MType MSum DDate Memos

Char(10) Char(10) Char(10) Char(10) Char(4) Char(4) Money Datertime Text 否 否 否 否 否 否 否 否 约束 —— —— —— —— Check(收入、 支出) —— —— —— —— 键引用 主键 外键 外键 2. 关系表

数据项名 投资账户 编号 理财产品 编号 交易类型 交易金额 交易日期 备注 含义说明 投资账户的 唯一编号 理财产品的 唯一编号 交易的类型 交易的金额 交易的日期 交易备注 表 3-4-8 理财产品交易表 别名 INo FMID DType MSum DDate Memos 数据类型 Char(10) Char(10) Char(4) Money Datetime Text 空值 否 否 否 否 否 约束 主键约束 主键约束 Check(买入、 卖出) —— —— —— 键引用 主键 外键 主键 外键

表 3-4-9 理财产品经营表

7

数据项名 银行编号 理财产品 编号 经营开始 时间 经营结束 时间 备注 含义说明 银行的唯一 标示 理财产品的 唯一编号 经营开始的 日期 经营结束的 日期 经营备注 家庭理财系统

3.4.2. 约束设计

使用 Check 约束,约束理财产品表的投资周期为“日”、“月”或“年”;约束现金表 的收支类型为“收入”或“支出”;约束理财产品交易表的交易类型为“买入”或“卖出” 。

3.4.3. 触发器设计

创建级联删除触发器,当银行表中的元组被删除时将触发银行账户表中对应元组的 删除,之后会触发删除对应的理财账户、现金账户中对应元组的删除操作。

3.4.4. 视图设计

创建理财产品基本信息视图,完善安全性,包括理财产品编号、理财产品名称及银 行名称组成。满足最基本的信息需求即可。

3.4.5. 索引设计

创建理财产品编号的索引及银行简称的索引,方便信息查询、提高相关查询的效率。 3.4.6. 存储过程设计

创建触发器实现查询特定现金账户在某一年的特定货币类型的收支情况,用以方便 查询操作。

别名 数据类型 空值 否 BNo Char(10) 否 FMID Char(10) 否 RSDate Datetime 否 REDate Datetime Memos Text

约束 —— —— —— 键引用 主键 外键 主键 外键 Check(RED ate>RSDate) —— 4. 数据库实施、运行

数据库的实施完全按照数据库设计阶段给出的安全需求、性能要求等实施最终的数 据库设计过程,包括了数据表及约束的创建,视图、触发器及存储过程的创建,最终录 入数据完成数据库的运行。

4.1.创建表及约束

1. 实体表

---家庭成员表

create table Family(

FNo nchar(10) primary key, FName nchar(10) not null, FStatus nchar(10) not null )

8

家庭理财系统

---用户表

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 null, 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='投资' 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 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,

9

家庭理财系统

MType nchar(4) not null, MSum money not null, DDate datetime not null, Memos text,

foreign key(BANo) references Bank_Account(BANo),

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(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 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(FMID), CONSTRAINT CK_Finance_Run CHECK (RSDate4.2.触发器创建

10

家庭理财系统

---银行表级联删除

create trigger B_Dl on Bank for delete as begin

delete from Bank_Account where BNo in

(select BNo from deleted) end

---银行账户表级联删除 create trigger BA_Dl on Bank_Account after delete as begin

if((select AcType from deleted)='现金') delete from Case_Account where BANo

in (select BANo from deleted) else

delete from Finance_Account where BANo

in (select BANo from deleted) end

---理财账户表级联删除 create trigger FiA_Dl on Finance_Account for delete as begin

delete from Finance where INo in

(select INo from deleted) end

4.3.视图

---创建理财产品基本信息视图

CREATE VIEW Fin_Pro AS

SELECT a.FMID as 理财产品编号,a.FMNAME 理财产品名,c.BName 服务提供银行 FROM Finance_Product a,Finance_Run b,Bank c WHERE a.FMID=b.FMID AND b.BNo=c.BNo;

4.4.索引

---创建理财产品索引

11

家庭理财系统

CREATE INDEX FinPro_index ON Finance_Product(FMID) ---创建银行索引

CREATE INDEX Bank_INDEX ON Bank(BShort)

4.5.游标和存储过程

---某现金账户某年特定货币类型的收支情况 create procedure Case_Sum(

@y datetime, @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) declare @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

---关闭游标、删除游标 close S_DType

deallocate S_DType

select @CashInSum 收入,@CashOutSum 支出 end

12

家庭理财系统

4.6.数据录入

表 3-5-6-1 家庭成员表

表 3-5-6-3 银行表

表 3-5-6-2 用户表

表3-5-6-4银行账户表

表 3-5-6-5 理财账户表

表 3-5-6-6 理财产品表

表 3-5-6-7 现金账户表

表 3-5-6-8 理财产品交易表

13

家庭理财系统

表 3-5-6-9 理财产品经营表

5. 结论

此家庭理财系统功能不是很全面,有许多的地方要进行修改,但是基本实现了家庭 理财的项目保存、更改、删除、查询的基本功能。

本系统基本包括了家庭理财的各种主要信息管理工作与综合更新管理工作,但在某 些管理功能上需要继续细化。由于系统开发工作量较大,开发工作中将功能实现放在了 首位,因此在一些模块的界面设计的易用性方面仍需改进。

参考文献:

[1] 2005.

[2] 王珊, 萨师煊.数据库系统概论[M] .北京:高等教育出版社,2006. [3] 壮志剑.数据库原理与 SQL Server[M].北京:高等教育出版社,2006. [4] 黄维通.SQL Server 数据库的技术与应用[M].北京:清华大学出版社,2011. [5] 岳付强.SQL Server 2005 从入门到实践[M].北京:清华大学出版社,2009. [6] 周爱武,汪海威,肖云.数据库课程设计[M] . 北京:机械工业出版社,2012. [7] 吴治中,方金友. 家庭投资理财 1000 问[M]合肥:安徽科学技术出版社,2002. [8] 王树进,包明宝. 投资理财新思维[M]. 北京:经济管理出版社,2001

[9] 李真文. SQL Server 2000 Developer’s Guide 开发人员指南[M] . 北京:希望 电子出版社,2001.

赵杰.毕业设计指导及案例剖析.数据库应用方向.北京:清华大学出版社,

致 谢

在本次毕业设计中,我从指导老师冯春辉身上学到了很多东西。老师认真负责的工 作态度,严谨的治学精神和深厚的理论实践水平都使我们深感敬佩。无论是在理论上还 是在实践中,都给予我很大的帮助,使我们得到不少的提高,尤其是她对我的关心所明 了她的责任心和为人师表所具备的爱心,在这次课程设计表现无疑。这对于我以后的学 习和工作都是一种帮助,感谢她细心又耐心的辅导。

14

因篇幅问题不能全部显示,请点此查看更多更全内容