家庭理财系统数据库课程设计报告.docx

上传人:b****3 文档编号:24732680 上传时间:2023-06-01 格式:DOCX 页数:20 大小:795.06KB
下载 相关 举报
家庭理财系统数据库课程设计报告.docx_第1页
第1页 / 共20页
家庭理财系统数据库课程设计报告.docx_第2页
第2页 / 共20页
家庭理财系统数据库课程设计报告.docx_第3页
第3页 / 共20页
家庭理财系统数据库课程设计报告.docx_第4页
第4页 / 共20页
家庭理财系统数据库课程设计报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

家庭理财系统数据库课程设计报告.docx

《家庭理财系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《家庭理财系统数据库课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。

家庭理财系统数据库课程设计报告.docx

家庭理财系统数据库课程设计报告

数据库原理及应用

课程设计报告

题目:

家庭理财专家

班级:

1020562

学号:

20

姓名:

武普泉

指导老师:

刘宇君

提交时间:

2012-12-30

一、需求分析

1.系统需求与功能分析

a).课题背景:

近几年来,随着我国城乡居民收入的增加和生活水平的提高,家庭理财已成为人们居家过日子的重要内容。

社会学家细心的观察到,时下家庭的财务管理比之计划经济年代,开始发生微妙的变化。

现在的城乡家庭生活发生了明显的变化,人们的收入逐渐拉开档次,消费水平也高了。

大多数家庭关注的是提高生活质量,一方面精打细算,量入为出,把钱用在刀刃上;另一方面保证适当的娱乐活动、社会交际、智力开发等方面的开支。

为此,不少家庭就有中长期财务预算,有基本建设规划。

总的来说,家庭收入必须以量入为出为原则,以财产保值增值为目标,处理好积累与消费的关系。

因此,开发一个家庭财务管理系统具有很强的实用性,能够达到对家庭财务合理有效的管理。

b).用户功能:

用户登录,进入本系统,弹出密码对话框,提示用户输入密码,登录本系统。

类别维护,用户可以增加日常收入、日常支出的类别,并且可以删除相应的类别。

日常收入,用户可以按照日常收入日期、金额、类别、备注进行数据的增加。

日常支出,用户可以按照日常支出日期、金额、类别、备注进行数据的增加。

收入支出统计,按照一定的数据查询条件,用户可以对数据进行统计。

计算器,可以对活期存款、定期存款进行相应的计算,求其增长值。

收入查询,用户可以输入相应的查询条件进行数据查询,并且可以删除相应的数据。

支出查询,支出查询类似于收入查询,同样可以进行查询、删除操作。

个人信息,用户可以增加自己的个人信息,同时可以修改登录密码。

2.数据库需求和分析

a).数据结构(数据库中表的设计)

收入类别信息(收入类别,收入类别说明)

收入信息(收入编号,收入类别,日期,金额,备注)

支出类别信息(支出类别,支出类别信息)

支出信息(支出编号,支出类别,日期,金额,备注)

家庭成员信息(称呼,姓名,密码,用户名,生日)

b).数据项具体设置(建议放到数据库实施中)

编号

标识符

类型

长度

所属表名

1

用户名

vchar

15

家庭成员

2

密码

vchar

20

家庭成员

3

称呼

vchar

10

家庭成员

4

姓名

vchar

10

家庭成员

5

生日

char

10

家庭成员

6

收入类别

vchar

10

收入类别信息,收入信息

7

收入类别说明

vchar

50

收入类别信息

8

收入编号

int

*

收入信息

9

收入日期

char

10

收入信息

10

收入金额

int

*

收入信息

11

收入说明

vchar

50

收入信息

12

支出类别

vchar

10

支出类别信息,支出类别

13

支出类别说明

vchar

50

支出类别信息

14

支出编号

int

*

支出信息

15

支出日期

char

10

支出信息

16

支出金额

int

*

支出信息

17

支出说明

vchar

50

支出信息

二、概念结构设计

1.流程图(系统功能模块图)

2.数据库概念结构设计(E-R模型:

注意标出是哪种联系)

a).收入类别信息:

b).收入信息:

c).支出类别信息:

d).支出信息:

e).家庭成员信息:

f).综合以上E-R图模型,得出整个系统的E-R关系图:

 

三、逻辑结构设计

1.由E-R图转化的关系模式为:

收入类别信息(收入类别,收入类别说明)

收入信息(收入编号,收入类别,日期,金额,备注)

支出类别信息(支出类别,支出类别信息)

支出信息(支出编号,支出类别,日期,金额,备注)

家庭成员信息(称呼,姓名,密码,用户名,生日)

2.对关系模式进行规范化

在收入类别信息表中,收入类别为码,收入类别说明完全依赖于码,不存在部分依赖和传递依赖,达到第三范式;

收入信息表中,收入编号为码,其他信息完全依赖于码,不存在部分依赖和传递依赖,达到第三范式;

在支出类别信息表中,支出类别为码,支出类别说明完全依赖于码,不存在部分依赖和传递依赖,达到第三范式;

支出信息表中,支出编号为码,其他信息完全依赖于码,不存在部分依赖和传递依赖,达到第三范式;

家庭成员信息表中,用户名为码,其他信息完全依赖于码,不存在部分依赖和传递依赖,达到第三范式;

3.数据库的完整性和安全性作何考虑?

安全性:

有两种角色:

老妈和普通家庭成员。

其中,老妈可以查看和修改任何表,拥有所有权限;普通家庭成员可以修改自己的信息,其他表只有查询功能。

完整性:

按照表间的关系做了完整性约束、触发器和存储过程。

四、物理结构设计

1.数据库设计:

首先需要对整个系统的数据库进行设计,本系统总共包括5张表,分别为收入类别信息表、支出类别信息表、收入信息表、支出信息表以及家庭成员信息表。

a).收入类别信息表:

用于记录日常收入类别的相关信息,主要字段有日常收入类别名称、日常收入类别的说明信息,具体设计如图:

b).收入信息表:

用于记录日常收入数据的相关信息,主要字段有:

日常收入日期、金额、类别、备注,具体设计如图:

c).支出类别信息表:

用于记录日常支出类别的相关信息,主要字段有:

日常支出类别名称、日常支出类别的说明信息,具体设计如图:

d).支出信息表:

用于记录日常支出数据的相关信息,主要字段有:

日常支出日期、金额、类别、备注,具体设计如图:

e).家庭成员信息表:

用于记录用户个人信息数据的相关信息,主要字段有:

用户名、称呼、姓名、密码、生日,具体设计如图:

五、数据实施和维护

1.数据库的代码

--建表

--收入类别信息表

createtableIncomeCate

(Icategoryvarchar(10)primarykey,

sayvarchar(50)

--收入信息表

createtableIncome

(idintprimarykey,

idatechar(10),

icategoryvarchar(10),

imoneyint,

isayvarchar(50),

foreignkey(icategory)referencesIncomeCate(Icategory)

--增删改查

deletefromIncomewhereisaylike'大一下学期%'

insertintoIncomevalues(6,'2011-05-17','补助',2400,'大一下学期助学金')

updateIncomesetimoney=1200whereimoney=2400

select*fromExpenseorderbyimoneydesc

--视图

--为收入类别中的补助类建立视图

createviewBuZhu_Income

as

selecticategory,imoney,idate,isay

fromIncome

whereicategory='补助'

select*fromBuZhu_Income

--视图

--为收入类别中的补助类建立视图

createviewBuZhu_Income

as

selecticategory,imoney,idate,isay

fromIncome

whereicategory='补助'

select*fromBuZhu_Income

--为支出类别中的学习类建立视图(在左侧视图文件夹下完成)

select*fromStudy_Expense

--约束

useLiCai

createtablePersonalInfo

(Idint,

Isexchar

(2)

constraintC1check(Isexin('男','女')),

Ibirthdayvarchar(10)

constraintC2check(Ibirthdaylike'%-%-%'),

Iageint

constraintC3check(Iage>0andIage<100),

Ibloodvarchar(5)

constraintC4check(Ibloodin('A型','B型','O型','AB型')),

Iprovincevarchar(20),

Icityvarchar(20),

Iemailvarchar(30)

constraintC5check(Iemaillike'%@%'),

Ioldpwdvarchar(10)

constraintC6notnull,

constraintPInfoKeyprimarykey(Id)

altertablePersonalInfo

dropconstraintC3

altertablePersonalInfo

addconstraintC3check(Iage>0)

altertablePersonalInfo

addconstraintsex_defaultdefault'男'forIsex

--触发器

createtriggercate_deleteonIncomeCate

fordeleteas

declare@BIcategoryvarchar(10)

print'使用delete触发器级联删除Income表中相关的行'

select@BIcategory=Icategoryfromdeleted

print'删除的类别:

'+@BIcategory

deleteIncomewhereIncome.icategory=@BIcategory

go

--测试

deletefromIncomeCatewhereIcategory='小费'

createtriggerex_cate_deleteonExpenseCate

fordeleteas

declare@BIcategoryvarchar(10)

select@BIcategory=Icategoryfromdeleted

print'删除的类别:

'+@BIcategory

deleteExpensewhereExpense.icategory=@BIcategory

--存储过程

createprocedureP_BuZhuas

selecticategory,imoney,idate,isay

fromIncomewhereicategory='补助'

execP_BuZhu

--在Expense数据库中,建立一个存储过程,统计消费大于等于的记录个数

createprocedureP_Expense@n

intoutput

as

select@n=COUNT(*)fromExpense

whereimoney>=100

declare@nint

execP_Expense@noutput

printconvert(varchar(5),@n)

2.系统模块

a).收入和支出类别维护:

b).添加收入和支出信息:

c).定期和活期存款计算:

d).收入记录查询:

e).支出记录查询:

六、总结和建议

本课程设计是利用Android开发的,系统功能已经基本实现。

但同时也存在很多不足的地方,比如整个系统还可以添加更多功能,外观上可以做进一步调整和修饰,以及用户资料的保密性和安全性还没有考虑周全。

这次课程设计,由于自己在知识、经验方面都存在着很多不足;另外,在整个过程中忙于复习,没有充足的时间来跟老师和同学沟通。

因此,系统必然会存在一些缺陷和不足。

因为对家庭财务管理的整个流程不太熟悉,在需求分析时未能做到完全满足用户的需求,以致缺少了一些必要功能。

经过这次课程设计,我深刻体会到要做好一件完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要有耐心,善于运用已有的资源来充实自己。

同时我也深刻地认识到,对待一个新事物时,一定要从整体考虑,完成一部之后再做下一步,这样对于系统而言才更加有效。

通过这次设计,我不仅对Android和SQLServer2008有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我将来走上工作岗位受益匪浅。

实践出真知,这次课程设计使我得以将数据库、软件工程课程中所学的理论知识得以充分运用。

理论和实践相结合,动手能力得以很大的提高。

开发一个良好的系统需要丰富的知识,由于水平有限,系统不够完善,期待进一步改进。

七、参考文献

1.数据库系统概论

2.Android应用案例开发大全

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

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

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