家庭财务系统数据库设计格式模板.doc
《家庭财务系统数据库设计格式模板.doc》由会员分享,可在线阅读,更多相关《家庭财务系统数据库设计格式模板.doc(7页珍藏版)》请在冰豆网上搜索。
数据库设计报告
题目:
家庭财务管理
班级:
09信管1班
组长:
邵崇洁
组员:
丁特战~沈颖杰
指导老师:
胡秋芬
完成日期:
2010年6月21日
一、引言
家庭财务管理系统是每一个家庭管理家庭财务收入和支出的不可缺少的一个管理信息系统,它的内容对于家庭的管理者来说是至关重要的,所以家庭财务管理系统应该能够为每一个家庭的管理者提供充足的信息和快捷的查询手段,大大方便了家庭的管理者的合理理财。
二、需求分析
家庭财务管理系统是对家庭成员、往来人员信息的规划,对家庭成员财政实际收入、财政支出这些方面的计划,对于往来人员详细得记录使用资产、资金互补情况。
1.功能分析
经过分析财务管理的过程,系统的功能可用图1表示。
家庭财务管理系统
家庭成员
管理员
家庭成员管理
收入管理
支出录入
收入项目录入
收入录入
支出项目管理
收入项目管理
支出管理
支出项目录入
图1功能结构图
其中:
家庭成员管理包括家庭成员信息的查询、添加、删除和修改功能
收入管理包括收入信息的查询、添加、删除和修改功能
支出管理包括支出信息的查询、添加、删除和修改功能
收入项目管理包括收入项目信息的查询、添加、删除和修改功能
支出项目管理包括支出项目信息的查询、添加、删除和修改功能
2.数据流图
我们采用自顶向下的数据流图设计方法。
顶层的数据流程图如图2所示。
家庭财务管理系统
管理员
家庭成信息
收入信息
支出信息
收入项目信息
支出项目信息
家庭成员
收入
收入项目
支出
支出项目
家庭成员信息
收入信息
支出信息
收入项目
支出项目
收入项目信息
支出项目信息
支出信息
收入信息
家庭成员信息
图2顶层的数据流图
接着对顶层数据流程图进一步细化,得出第1层数据流程图如图3所示。
管理员
1
家庭成员管理
2
收入管理
3
支出管理
4
收入项目管理
5
支出项目管理
家庭成员信息
收入信息
支出信息
收入项目信息
支出项目信息
家庭成员信息
收入信息
支出信息
收入项目信息
支出项目信息
图3第1层的数据流图
三、概念结构设计
概念结构设计阶段的主要任务就是将需求分析阶段得到的用户需求抽象为概念模型,它独立于具体的DBMS,通常用E-R图的形式表示。
绘制E-R图主要在于进行实体与属性的区分及找出实体与实体之间的联系。
实体是一个存在着显著的、易辨认的属性的客观对象。
现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。
属性是对象类型的组成成分,组成成分和对象类型之间是“ispartof”的关系。
属性具有以下两个特点:
1.属性必须是不可分的数据项,不能包含其他属性。
2.属性不能和其他实体具有联系,与其他实体有联系的属性一般应按照实体处理。
实体与实体之间的联系还包括一对一联系(1:
1)、一对多(1:
n)、多对一联系(n:
1)和多对多联系(n:
n)
根据家庭财政管理分析,得出家庭成员、收入、支出、收入项目和支出项目5实体,收入项目与收入之间存在属于关系、支出项目与支出之间存在属于关系、家庭成员与支出、收入之间存在管理关系,对应的E-R图如图5所示,
家庭成员
编号
姓名
性别
收入
时间
金额
支出
金额
时间
收入项目
名称
编号
管理1
属于
编号
名称
1
n
1
n
权限
管理2
属于
支出项目
1
n
n
1
图5E-R图
四、逻辑结构设计
逻辑结构设计阶段的任务是将概念结构转化为关系、网状或层次模型,将转化来的关系、网状或层次模型向特定DBMS支持下的数据模型转化,最后对数据模型进行优化。
关系模型是当前最流行的数据模型。
E-R图向关系模型的转换的主要规则为:
1.一个实体型转换为一个关系模式
2.一个1:
1联系可以转换一个独立的关系模式,也可以与任意一端对应的关系模式合并。
3.一个1:
n联系可以转换一个独立的关系模式,也可以与n端对应的关系模式合并。
4.一个m:
n联系转换一个关系模式。
根据如前绘制的E-R图及转换规则,得出以下几个关系模式:
1.家庭成员表(编号、姓名、性别、权限)
2.收入表(编号、时间、金额)
3.支出表(编号、时间、金额)
4.收入项目表(编号、名称)
5.支出项目表(编号、名称)
五、数据库表结构及SQL定义语句
在确定系统逻辑结构之后,我们首先要为系统确定一个合适应用的物理环境,根据课程所学,我们选择了Oracle10g。
表结构的设计主要在于确定各个字段的数据类型、字段宽度及是否包括约束等。
这里主要包括5个表:
家庭成员表、收入表、支出表、收入项目表、支出项目表,表达结构如下所示。
1.family(家庭成员表)
字段名
字段意义
数据类型
字段宽度
字段约束
snamen
姓名
Varchar2
8
Notnull
sex
性别
Varchar2
2
Notnull
spower
权限
Varchar2
15
Notnull
sno
编号
Varchar2
10
Primarykey
2.income(收入表)
字段名
字段意义
数据类型
字段宽度
字段约束
itime
时间
Varchar2
20
Notnull
imony
金额
Varchar2
9
Notnull
isno
编号
Varchar2
10
Primarykey
3.expenses(支出)
字段名
字段意义
数据类型
字段宽度
字段约束
etime
时间
Varchar2
20
Notnull
emony
金额
Varchar2
9
Notnull
esno
编号
Varchar2
10
Primarykey
4.outgo(支出项目)
字段名
字段意义
数据类型
字段宽度
字段约束
osno
编号
Varchar2
10
Primarykey
oname
名称
Varchar2
18
Notnull
5.receive(收入项目)
字段名
字段意义
数据类型
字段宽度
字段约束
rsno
编号
Varchar2
10
Primarykey
rname
名称
Varchar2
18
Notnull
对应与以上表结构,创建表的SQL语句如下:
1.创建family(家庭成员表)
createtablefamily(snovarchar2(10)constraintpk_familyprimarykey,smanevarchar2(8)notnull,sexvarchar2
(2)notnull,spowervarchar2(15)notnull);
2.创建income(收入)
createtableincome(isnovarchar2(10)constraintpk_incomeprimarykey,timevarchar2(20)notnull,imonyvarchar2(9)notnull);
3.创建expenses(支出)
createtableincome(esnovarchar2(10)constraintpk_expensesprimarykey,etimevarchar2(20)notnull,emonyvarchar2(9)notnull);
4.创建outgo(支出项目)
createtableincome(osnovarchar2(20)notnull,onamevarchar2(9)notnull);
5.创建receive(收入项目)
createtableincome(rsnovarchar2(20)notnull,rnamevarchar2(9)notnull);
六、小结
通过本次数据库设计,我了解了怎么样来设计一个数据库,通过本次设计我发现自己在课本上所学的东西并不是全部,在掌握课本知识的同时还要实践不然你还是不懂,这次数据库设计有老师在一般指点我们才能完成,要不然以我们的基础完成它有难度。