资源描述
家庭财务管理说明书详细个人创作资料
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
摘 要
对我们每个人来说,随着生活水平的提高,物价水平也在日益提高,为了更好的控制收支平衡和调节家庭储蓄,我们在保证取得高收入的前提下还得保证低支出,这就需要我们建立一个家庭财务管理系统。财管系统是一个家庭收支或者家庭不可缺少的部分,家庭收支很早就实施了理财的集中管理,而家庭使用的小型理财系统却只是凤毛麟角,理财是很小的一个部分,但从到家庭收支,到家庭投资都有十分重要的意义。
本文运行的操作环境主要是db2 9.2, 可以了解到“家庭财务管理系统"的规划、设计过程,掌握系统的功能。
关键词:IBM DB2;数据库设计;家庭财务管理系统
目录
第一章 绪论 1
1.1课题简介 1
1.2设计目的 1
1.3设计内容 1
第二章 需求分析 2
2.1 需求分析的任务 2
2。2 需求分析的过程 2
2.3数据字典与流程图 2
第三章 概念结构设计 5
3.1 概念结构设计的方法与步骤 5
3.2 数据抽象与局部视图设计 5
3。3视图的集成 7
第四章 逻辑结构设计 8
4。1 E—R图向关系模型的转换 8
4。2 数据库的结构 8
4.3触发器的设计 10
4。4视图的设计 11
4.5约束的设计 13
第五章 数据库的实施 15
5.1表空间的建立 15
5.2 索引的建立 17
5。3表的建立与数据的载入 18
5.4 数据库的运行 23
29
第一章 绪论
1。1课题简介
经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会,在指导教师的帮助下,历经两周时间,我自行设计一套家庭财务管理系统,在下面的各章中,我将以这套家庭财务管理系统为例,谈谈其开发过程和所涉及到的问题。
1.2设计目的
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识、DB2的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1。3设计内容
选择课题并且对课题的相关信息有一定的了解,对于我选的课题来说,我必须了解家庭财务管理系统的构造以及收入支出的信息还有银行的相关信息。将这些信息输入到数据库中,使之能够进行查询、修改、删除并且与家庭财务管理系统执行相同的操作.在需求分析阶段,需要完成家庭财务管理系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计以及视图的集成。逻辑结构设计阶段要把E—R图转化为关系模式.最后是数据库的实施和运行。
第二章 需求分析
2。1 需求分析的任务
调查家庭财务管理系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。最重要的是调查、收集信息、分析家人作为管理员登陆供其他家人进行查阅流程。处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机(即查阅人)的界面要简单明了,易于操作,服务器程序利于维护。
2.2 需求分析的过程
为方便其他家人查阅家庭财务信息,需开发一个财务管理系统。包括登录时间、存取信息、存取的金额、收支差、管理员编号,输入家庭财务管理系统的客户端程序,系统经过处理后,为其他家人提供更新后的数据.相对于银行,本系统与银行管理系统和资产账户系统保持一致.如果本系统出现问题,家人可以凭借银行提供的账户单更改。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2。3数据字典与流程图
1.业务流程分析
经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出家庭成员,管理员信息、家庭财务信息和银行账户参考信息的具体需求.
⑴ 调查家庭成员需求
① 管理家庭成员需求
l 查询功能:
每个家庭成员对应一组个人基本信息
² 成员编号
² 个人姓名
² 个人性别
² 密码
② 设置家庭财务管理员需求
l 登陆功能:
² 分配给每个家庭成员各自的管理员编号
² 输入账号登陆财务管理系统
² 输入密码登陆财务管理系统
③ 更新查阅家庭财务信息需求
l 记录功能:
² 记录更新财务信息的登陆时间
l 更新功能
² 录入存取信类型
² 录入存取金额
² 根据假设的每个人月收入5000元更改当月收支差
l 查询功能
² 根据登陆时间查询相关财务信息
² 查询每组财务信息对应的管理员编号,进一步了解管理员编号对应的家庭成员财务信息的情况
④ 银行管理需求
l 查询功能:
² 查询银行编号
² 查询银行名称
² 查询银行的缩写简称
² 查询银行在国际上的编号
⑤ 资产账户参照需求
l 查询功能
² 查询该笔资产的编号
² 查询有关银行账号
² 查询该笔资金的类型
² 查询开户人的编号
² 查询与资产编号和银行账号相对应的银行编号
l 更新功能
² 根据假设的每个家庭成员原资产总额为10000元修改变化后的资产总额,并供修改财务信息时参考
2.系统模块分析
在调查完了家庭成员需求之后,就要开始分析家庭成员需求。在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,
3.数据字典
将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数据字典了。经分析之后,本系统要用到五个基本表:家庭成员表,管理员,财务信息表,银行表,资产账户表。数据结构定义如表所示。
数据结构定义
数据结构名
含义说明
组成
家庭成员
定义了家庭成员的有关信息
姓名,性别,出生日期,手机,工作单位,管理员编号
管理员
定义了管理员的有关信息
管理员编号,登陆账户,登陆密码
财务信息
定义了财务信息的有关信息
存取,时间,金额,收支差,管理员编号
银行
定义了银行的有关信息
银行编号,名称,简称,国际编号
资产账户
定义了资产账户的有关信息
编号,银行账号,资金类型,开户人编号,开户日期,存款类型,资金总额,备注,银行编号
第三章 概念结构设计
3。1 概念结构设计的方法与步骤
概念设计阶段我也采用自顶向下的方法,即自顶向下的进行需求分析,然后再次自顶向下的进行概念结构设计.对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
3.2 数据抽象与局部视图设计
按照家庭财务管理系统总框架图,设计实体属性图以及局部E—R图。
……….
3。3视图的集成
经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到家庭财务管理总体概念结构E—R图。
第四章 逻辑结构设计
4。1 E—R图向关系模型的转换
将图3.4总体概念结构E—R图转化成关系模型.将转化的关系模式进行优化,最终达到第三范式。(至少包括5张表,每个表都有主键,设必要的外键。)
家庭成员表(姓名,性别,出生日期,手机,工作单位,管理员编号)
管理员表(管理员编号,登陆账户,登陆密码)
财务信息表(时间,存取,金额,收支是否平横,管理员编号)
银行表(银行编号,名称,简称,国际编号)
资产账户表(编号,银行账号,资金类型,开户人编号,开户日期,存款类型,资金总额,备注,银行编号)
4.2 数据库的结构
根据总体结构图设计各表的结构,其相应表的定义如下:
家庭成员表的结构(member)
字段名
数据类型
长度
是否为空
主/外键
描述
name
varchar
50
否
主
姓名
sex
varchar
50
否
性别
birthdate
date
否
出生日期
phonenumber
decimal
否
手机
workplace
varchar
50
否
工作单位
administratornumber
decimal
否
外
管理员编号
管理员表的结构(administrator)
字段名
数据类型
长度
是否为空
主/外键
描述
administratornumber
decimal
否
主
管理员编号
logname
varchar
50
否
登录账户
password
decimal
否
登陆密码
财务信息表的结构(finance)
字段名
数据类型
长度
是否为空
主/外键
描述
logtime
timestamp
否
主
时间
depositandwithdrawal
varchar
50
否
存取
money
decimal
否
金额
gap
decimal
否
收支差
administratornumber
decimal
否
外
管理员编号
银行表的结构(bank)
字段名
数据类型
长度
是否为空
主/外键
描述
banknumber
decimal
否
主
银行编号
bankname
varchar
50
否
名称
nickname
varchar
50
否
简称
inso
decimal
否
国际编号
资产账户表的结构(asset)
字段名
数据类型
长度
是否为空
主/外键
描述
number
decimal
否
主
编号
bankaccount
decimal
否
银行账号
capitaltype
varchar
50
否
资金类型
openernumber
decimal
否
开户人账号
opendate
date
否
开户日期
savingtype
varchar
50
否
存款类型
totalcapital
decimal
否
资金总额
remark
varchar
50
否
备注
banknumber
decimal
否
外
银行编号
4.3触发器的设计
根据应用要求,设计一个触发器,写出SQL语句。
建立触发器GAP_TRIGGER
CREATE TRIGGER ADMIN。GAP_TRIGGER NO CASCADE BEFORE INSERT ON ADMIN.FINANCE REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL
WHEN(n.gap〈0)
BEGIN ATOMIC
Declare overage decimal(30,0);
set overage=(n.gap*(-1));
If n.depositandwithdrawal=’withdrawal' then
set n.gap=overage;
else SIGNAL SQLSTATE ’7500' ('Exception’);
End IF;
End触发触发器GAP_TRIGGER条件的操作:
触发后的结果:
4.4视图的设计
根据应用要求,至少设计一个视图,写出SQL语句。
⑴ 创建视图inventory
create view inventory(name,logtime,deposit or withdrawal,money,balance)
as select name,logtime, depositandwithdrawal,money,gap
from admin。member,admin。finance
where admin。member. administratornumber =admin。finance. administratornumber;
创建视图后查询的结果:
⑵ 创建视图inventory
create view inventory2
(number,bankname,bankaccount,capitaltype,openernumber,opendate,savingtype,
totalcapital)as select
number,bankname,bankaccount,capitaltype,openernumber,opendate,savingtype,
totalcapital
from admin.bank,admin.asset
where admin。bank。banknumber=admin。asset.banknumber;
创建视图后查询的结果:
4。5约束的设计
根据应用要求,至少设计一个check约束,写出SQL语句。
⑴ 创建password_check约束条件
constraint password_check check(PASSWORD>=1 and PASSWORD<=9999);
添加结果:
⑵ 创建sex_check check约束条件
constraint sex_check check(SEX in(‘male’,’female’));
添加结果:
⑶ 创建dandw_check check约束条件
constraint dandw_check
check(DEPOSITANDWITHDRAWAL in(‘deposit’,’withdrawal’));
添加结果:
第五章 数据库的实施
5.1表空间的建立
建立表空间(至少两个以上,存放在目录容器(SMS表空间)和文件容器(DMS表空间)中),写出相关的SQL语句。
⑴ 建立DMS表空间dms01
create rugular tablespace dms01 pagesize 4 k managed by database using(FILE ’D:\DMS\dms01’ 5120) extentsize 16 overhead 12.67 prefetchsize 16 transferrate
0。18 bufferpool ibmdefaultbp dropped table recovery on;
(2) 建立DMS 表空间 dms02
create rugular tablespace dms02 pagesize 4 k managed by database using(FILE 'D:\DMS\dms02' 5120) extentsize 16 overhead 12.67 prefetchsize 16 transferrate
0.18 bufferpool ibmdefaultbp dropped table recovery on;
(3) 建立DMS 表空间 dms03
create rugular tablespace dms03 pagesize 4 k managed by database using(FILE ’D:\DMS\dms03' 5120) extentsize 16 overhead 12。67 prefetchsize 16 transferrate
0.18 bufferpool ibmdefaultbp dropped table recovery on;
(4) 建立DMS 表空间 dms04
create rugular tablespace dms04 pagesize 4 k managed by database using(FILE ’D:\DMS\dms04’ 5120) extentsize 16 overhead 12.67 prefetchsize 16 transferrate
0.18 bufferpool ibmdefaultbp dropped table recovery on;
(5) 建立DMS 表空间 dms05
create rugular tablespace dms05 pagesize 4 k managed by database using(FILE ’D:\DMS\dms05' 5120) extentsize 16 overhead 12.67 prefetchsize 16 transferrate
0。18 bufferpool ibmdefaultbp dropped table recovery on;
(6) 建立SMS 表空间 sms
CREATE REGULAR TABLESPACE SMS PAGESIZE 4 K MANAGED BY SYSTEM USING ('D:\SMS' ) EXTENTSIZE 16 OVERHEAD 12。67 PREFETCHSIZE 16 TRANSFERRATE 0.18 BUFFERPOOL IBMDEFAULTBP DROPPED TABLE RECOVERY ON;
创建结果:
5。2 索引的建立
建立索引(至少一个唯一索引、一个聚簇索引),要求表和索引存储在不同的表空间里,写出相关的SQL语句。
⑴ 建立索引administratornumber_index
create unique index administratornumber_index on member(administratornumber);
创建结果:
(2)建立索引banknumber_index
create cluster index banknumber_index on asset(banknumber);
创建结果:
5。3表的建立与数据的载入
建立设计好的表,触发器、视图和约束.
每个基本表一个抓图。
⑴ 家庭成员表(member)
创建的SQL语句:
create table member
(name varchar(50) NOT NULL,
sex varchar(50) NOT NULL,
birthdate date NOT NULL,
phonenumber decimal(30,0) NOT NULL,
workplace varchar(50) NOT NULL,
administratornumber decimal(30,0) NOT NULL,
primary key(name),
foreign key(administratornumber)
references administrator(administratornumber));
家庭成员表(member)表
收录了10位家庭成员的个人信息,包括姓名,性别,出生日期,手机号,工作单位.
⑵ 管理员表(administrator)
创建的SQL语句:
create table administrator
(administratornumber decimal(30,0) NOT NULL,
logname varchar(50) NOT NULL,
password decimal(30,0) NOT NULL,
primary key(administratornumber),
constraint password_check check(password>=1 and password<=9999));
管理员表(administrator)
收录了10位家庭成员的管理员信息,包括管理员编号,登录账户,登陆密码。
⑶ 财务信息表(finance)
创建的SQL语句:
create table finance
(logtime timestamp NOT NULL,
depositandwithdrawal varchar(50) NOT NULL,
money decimal(30,0) NOT NULL,
gap decimal(30,0) NOT NULL,
administratornumber decimal(30,0) NOT NULL,
primary key(logtime),
foreign key(administratornumber)
references administrator(administratornumber));
财务信息表(finance)
收录了10位家庭成员最近的财务信息,包括登陆时间,存取类型,金额,收支差,管理员编号.
⑷ 银行表(bank)
创建的SQL语句
create table bank
(banknumber decimal(30,0) NOT NULL,
bankname varchar(50) NOT NULL,
nickname varchar(50) NOT NULL,
inso decimal(30,0) NOT NULL,
primary key(banknumber));
银行表(bank)
收录了最近交易过的10间银行的信息(可重复),包括银行编号,名称,简称,国际编号。
⑸ 资产账户表(asset)
创建的SQL语句
create table asset
(number decimal(30,0) NOT NULL,
bankaccount decimal(30,0) NOT NULL,
capitaltype varchar(50) NOT NULL,
openernumber decimal(30,0) NOT NULL,
opendate date NOT NULL,
savingtype varchar(50) NOT NULL,
totalcapital decimal(30,0) NOT NULL,
remark varchar(50) NOT NULL,
banknumber decimal(30,0) NOT NULL,
primary key(number,bankaccount),
foreign key(banknumber) references bank(banknumber));
资产账户表(asset)
收录了最近十笔在不同银行交易过的资产账户信息,包括资产交易编号,银行账号,资金类型,开户人账号,开户日期,存款类型,资金总额,备注,银行编号
5.4 数据库的运行
抓一些查询结果的界面,至少五个,对每个查询的图,写出相应得查询语句。
⑴ 插入操作
①
对bank表进行插入操作
插入结果
②
对asset表进行插入操作
插入结果
⑵ 查询操作
①
对name,sex,birthdate,phonenumber,workplace进行查询操作
查询结果
②
对name,depositandwithdrawal,money进行查询操作
查询结果
⑶ 更新操作
①
对administrator进行更新操作
更新结果
②
对administrator进行更新操作
更新结果
⑷ 删除操作
①
对financ进行删除操作
删除结果
②
对member进行删除操作
删除结果
展开阅读全文