家庭理财系统.docx
《家庭理财系统.docx》由会员分享,可在线阅读,更多相关《家庭理财系统.docx(14页珍藏版)》请在冰豆网上搜索。
![家庭理财系统.docx](https://file1.bdocx.com/fileroot1/2022-10/29/cb994412-e40a-43be-b855-e50bebb3aa5b/cb994412-e40a-43be-b855-e50bebb3aa5b1.gif)
家庭理财系统
课程设计报告
课程设计名称:
数据库系统概论
系部:
学生姓名:
班级:
学号:
成绩:
指导教师:
陈林
开课时间:
2011-2012学年2学期
目录
一.设计题目:
1
二.实验目的1
三.实验要求1
四.实验内容1
1.需求分析1
2.概念结构设计4
3.逻辑结构设计6
4.物理结构设计8
5.数据库的实施与维护9
五.心得体会13
六.参考文献13
一.设计题目:
家庭理财系统
二.实验目的
《数据库系统概论》课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程设计实验主要围绕两方面内容:
数据库设计和基本数据库编程实践。
通过本实验,使学生了解数据库系统的理论,掌握数据库的设计方法及数据库的运用和基本开发技术。
1.掌握数据库设计的基本方法,熟悉数据库设计的步骤;
2.通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力;
3.学习基本数据库编程方法。
三.实验要求
掌握数据库的设计的每个步骤,以及提交各步骤所需图表和文档。
通过使用MSSQLSERVER2005,建立所设计的数据库,并在此基础上实现数据库查询、连接等基本操作操作。
四.实验内容
1.需求分析
需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统工作情况,明确用户的各种需求,然后在此基础上确定新的系统功能,新系统必须考虑以后要扩充和改变的要求来设计数据库。
a.对于家庭管理系统而言,整个系统就是一个管理“家庭财务”从用户的需求描述可知,用户是数据的起点。
另外,财务总监需要录入用户信息,管理信息,则用户管理和输出信息是数据流;同样,用户查询和反馈结果也是数据流,因此得到第一层数据流图,如图1-1所示.。
b.根据第一层数据数据流图细化财务管理,用户要对家庭成员的信息进行输入,同时要录入理财信息,管理信息和用户“合法性检查”和“反馈结果”,这四个加工代替第一层中的家庭财务,并且增加数据流对应的数据存储,即是“用户管理”、“用户查询”、“存入”和“累计”,得到第二层数据流图,如图1-2所示。
C.数据字典
(一)数据项
1)数据项名:
身份编号;数据类型:
char;数据长度:
10
2)数据项名:
收入编号;数据类型:
char;数据长度:
10
3)数据项名:
支出编号;数据类型:
char;数据长度:
10
4)数据项名:
收入名称;数据类型:
varchar;数据长度:
50
5)数据项名:
收入时间;数据类型:
datetime
6)数据项名:
支出名称;数据类型:
varchar;数据长度:
50
7)数据项名:
支出时间;数据类型:
datetime
8)数据项名:
收入金额;数据类型:
int
9)数据项名:
支出金额;数据类型:
int
10)数据项名:
剩余金额;数据类型:
int;与其它数据项的关系:
剩余金额=收入金额--支出金额
11)数据项名:
姓名;数据类型:
char;数据长度:
10
12)数据项名:
管理密码;数据类型:
varchar;数据长度:
50
13)数据项名:
备注;数据类型:
varchar;数据长度:
50
14)数据项名:
收入次数;数据类型:
int
15)数据项名:
支出次数;数据类型:
int
(二)数据结构
1)数据结构名:
家庭成员;
组成:
身份编号+管理密码+成员姓名+剩余金额+备注
2)数据结构名:
收入来源;
组成:
收入编号+身份编号+收入时间+收入金额+收入名称
3)数据结构名:
支出来源;
组成:
支出编号+身份编号+支出时间+支出金额+支出名称
(三)数据流
1)数据流名:
录入;
数据流来源:
用户;
数据流去向:
最近收入和最近支出
2)数据流名:
查询;
数据流来源:
用户;
数据流去向:
总收入和总支出
3)数据流名:
反馈;
数据流来源:
总收入和总支出;
数据流去向:
用户
4)数据流名:
存入;
数据流来源:
原来余额和最近收入;
数据流去向:
总收入
5)数据流名:
管理;
数据流来源:
用户;
数据流去向:
总收入和总支出和总余额
6)数据流名:
累计;
数据流来源:
原来余额和最近余额;
数据流去向:
总余额
2.概念结构设计
概念结构特点:
a.真实反映客观世界b.易于理解c.易于更改d.易于转换
概念结构步骤:
a.局部设计b.总体设计
注:
生成E-R图时,注意属性冲突、命名冲突和结构冲突
数据库概念结构设计就是在数据项和数据结构的前提下,设计出用户需求的实体,以及它们之间的关系,为后面的逻辑结构的设计打下基础。
概念模型最常用的就是E-R图(实体-联系)的描述法。
实体与属性如图1-3所示。
实体及其联系如图1-4所示。
E-R图主要有三个要素:
1)实体:
实体是矩形框表示,是客观存在并且可以相互区别的事物。
2)属性:
属性是椭圆表示,是实体拥有的某种特性。
3)联系:
联系是菱形表示,是实体与实体之间发生的动作,从属或者其他依赖关系,
。
3.逻辑结构设计
逻辑结构设计的任务就是把概念设计阶段设计好的E-R图转换为与选用DBMS产品所支持的数据模型想符合的逻辑结构。
步骤如下:
a.将概念结构转换为一般的关系、网状、层次模型
b.对数据模型进行优化
c.建立必要的视图
将E-R图转换成关系模型:
家庭成员(身份编号,管理密码,姓名,剩余金额,备注)如表1-1所示。
收入来源(收入编号,收入名称,收入时间,收入金额)如表1-2所示。
支出用途(支出编号,支出名称,支出时间,支出金额)如表1-3所示。
支出(支出次数,支出编号,身份编号)
注:
此表为了将实体支出用途与家庭成员联系起来,支出属性包括支出用途主码属性、家庭成员的主码属性和本来属性。
如表1-4所示
收入(收入次数,收入编号,身份编号)
注:
此表为了将实体收入来源与家庭成员联系起来,收入属性包括收入来源主码属性、家庭成员的主码属性和本来属性。
如表1-5所示
逻辑表格如下:
表1-1家庭成员
字段名
字段说明
数据类型
字段长度
主码
FamilyID
身份编号
Char
10
是
FamilyName
姓名
Char
10
否
FamilyCode
管理密码
Varchar
50
否
FamilyBZ
备注
Varchar
50
否
FamilySYJE
剩余金额
Int
否
表1-2收入来源
字段名
字段说明
数据类型
字段长度
主码
SRID
收入编号
Char
10
是
SRTime
收入时间
Datetime
否
SRname
收入名称
Varchar
50
否
SRJE
收入金额
Int
否
表1-3支出用途
字段名
字段说明
数据类型
字段长度
主码
ZCID
支出编号
Char
10
是
ZCTime
支出时间
Datetime
否
ZCname
支出名称
Varchar
50
否
ZCJE
支出金额
Int
否
表1-4支出
字段名
字段说明
数据类型
字段长度
主码
ZCID
支出编号
Char
10
是
ZCCS
支出次数
Int
否
FamilyID
身份编号
Char
10
是
表1-5收入
字段名
字段说明
数据类型
字段长度
主码
SRID
收入编号
Char
10
是
SRCS
收入次数
Int
否
FamilyID
身份编号
Char
10
是
4.物理结构设计
物理结构的的设计就是数据库在物理设备上的存储结构与存取方法,它依赖于数据库的管理系统。
主要步骤:
a.确定存取方法和存储结构。
b.对物理结构进行评价,重点是时间和空间效率。
1)建立索引
a.由于需要对时间进行查询,需要对收入时间和支出时间建立索引
b.由于对余额进行求最大与最小,需要对余额建立索引
c.由于收入编号,支出编号,身份编号经常作为连接条件,需要对收入编号,支出编号,身份编号建立索引
2)经过分析:
家庭成员关系模式属于第三范式,支出用途关系模式属于第三范式
收入来源关系模式属于第三范式,收入和支出关系模式属于第二范式
3)确定数据的存放位置
为了提高计算机系统性能,应该根据应用情况将数据的易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
5.数据库的实施与维护
功能调用如图1-5所示。
数据库实施阶段就是完成数据库的物理设计之后,设计人员就要用RDBMS提供的数据定义语言和其他实用程序将数据逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,在经过调试产生目标模式。
主要任务:
首先创建数据库和家庭信息表,收入人员表,支出人员表,然后用户通过设置权限对其修改,进行添加,删除,插入等。
1)创建数据库,命名为CWGL
createdatabaseCWGL
2)在数据库中创建家庭信息表,收入人员表,支出人员表
如:
createtablefamily
(familyIDchar(10)primarykey,
FamilyNamechar(10),
FamilyCodevarchar(50),
FamilyBZvarchar(50),
FamilySYJEint)
3)为家庭信息表,收入人员表,支出人员表(包括插入、删除、修改和查询)创建存储过程并且调用
如:
useCWGL
go
createprocedurep1
(@familyIDchar(10),@FamilyNamechar(10),@FamilyCodevarchar(50),
@FamilyBZvarchar(50),@FamilySYJEint)
as
insert
intofamily
values(@familyID,@FamilyName,@FamilyCode,
@FamilyBZ@FamilySYJE)
execp1‘002’,‘songze’,‘123’,‘vxcv’,20
4)建用户,依次将家庭成员设置为用户
如:
a.通过调用存储过程创建DBMS系统用户财务总监并设置密码
execsp-addlogin‘CWZJ’,‘12345’
b.通过调用存储过程将财务总监设置为数据库管理系统的用户
execsp-grantdbaccess‘CWZJ’
5)运用grant语句给用户设置权限
如:
grantallprivileges
Onfamily
ToCWZJ;
6)建立索引
如:
useCWGL
createindexfamilyIDYE
onfamily(familyID,familyYE)
7)建立视图
如Createviewtongji
(familyID,SRtime,ZCtime,SRJE,ZCJE,YE)
as
select
SR.familyID,SRtime,ZCtime