家庭理财系统数据库课程设计报告Word下载.docx
《家庭理财系统数据库课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《家庭理财系统数据库课程设计报告Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
![家庭理财系统数据库课程设计报告Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/12/6b68f32b-f8fd-4ca2-89b0-a67e2f480800/6b68f32b-f8fd-4ca2-89b0-a67e2f4808001.gif)
计算器,可以对活期存款、定期存款进行相应的计算,求其增长值。
收入查询,用户可以输入相应的查询条件进行数据查询,并且可以删除相应的数据。
支出查询,支出查询类似于收入查询,同样可以进行查询、删除操作。
个人信息,用户可以增加自己的个人信息,同时可以修改登录密码。
2.数据库需求和分析
a).数据结构(数据库中表的设计)
收入类别信息(收入类别,收入类别说明)
收入信息(收入编号,收入类别,日期,金额,备注)
支出类别信息(支出类别,支出类别信息)
支出信息(支出编号,支出类别,日期,金额,备注)家庭成员信息(称呼,,密码,用户名,生日)
b).数据项具体设置(建议放到数据库实施中)
编号
标识符
类型
长度
所属表名
1
用户名
vchar
15
家庭成员
2
密码
20
3
称呼
10
4
5
生日
char
6
收入类别
收入类别信息,收入信息
7
收入类别说明
50
收入类别信息
8
收入编号
int
*
收入信息
9
收入日期
收入金额
11
收入说明
12
支出类别
支出类别信息,支出类别
13
支出类别说明
支出类别信息
14
支出编号
支出信息
支出日期
16
支出金额
17
支出说明
概念结构设计
1.流程图(系统功能模块图)
a).收入类别信息
b).收入信息:
c).支出类别信息
d).支出信息:
e).家庭成员信息
f).综合以上E-R图模型,得出整个系统的E-R关系图:
三、逻辑结构设计
1.由E-R图转化的关系模式为:
收入类别信息(收入类别,收入类别说明)收入信息(收入编号,收入类别,日期,金额,备注)支出类别信息(支出类别,支出类别信息)支出信息(支出编号,支出类别,日期,金额,备注)家庭成员信息(称呼,,密码,用户名,生日)
2.对关系模式进行规化
在收入类别信息表中,收入类别为码,收入类别说明完全依赖于码,不存在部分依赖和传递依赖,达到第三式;
收入信息表中,收入编号为码,其他信息完全依赖于码,不存在部分依赖和传递依赖,达到第三式;
在支出类别信息表中,支出类别为码,支出类别说明完全依赖于码,不存在部分依赖和传递依赖,达到第三式;
支出信息表中,支出编号为码,其他信息完全依赖于码,不存在部分依赖和传递依赖,达到第三式;
家庭成员信息表中,用户名为码,其他信息完全依赖于码,不存在部分依赖和传递依赖,达到第三式;
3.数据库的完整性和安全性作何考虑?
安全性:
有两种角色:
老妈和普通家庭成员。
其中,老妈可以查看和修改任何表,拥有所有权限;
普通家庭成员可以修改自己的信息,其他表只有查询功能。
完整性:
按照表间的关系做了完整性约束、触发器和存储过程。
四、物理结构设计
1.数据库设计
首先需要对整个系统的数据库进行设计,本系统总共包括5表,分别为收入
类别信息表、支出类别信息表、收入信息表、支出信息表以及家庭成员信息表。
a).收入类别信息表
用于记录日常收入类别的相关信息,主要字段有日常收入类别名称、日常收入类别的说明信息,具体设计如图:
.ZUrUPinjirAS.Li,-.o_IncomeCatef^licai.sql.er(sa
J
列宕1数嶠娄塑1允许NJI值1
Icategoryvarchar(lO)厂
p
sayvart±
iar(5O)|<
~°
厂「
b).收入信息表
用于记录日常收入数据的相关信息,主要字段有:
日常收入日期、金额、类
别、备注,具体设计如图:
^lUPUQVAH.Li...-dbv.Incomelicai.s
R-*・.(5a
列名
數据类型
允许Null值
idatc
diarflQ}
■category
varchar(io)
imoney
V3rdiar(50)
—
c).支出类别信息表
用于记录日常支出类别的相关信息,主要字段有:
日常支出类别名称、日常
支出类别的说明信息,具体设计如图:
d).支出信息表
用于记录日常支出数据的相关信息,主要字段有:
日常支出日期、金额、类别、备注,具体设计如图:
e).家庭成员信息表
用于记录用户个人信息数据的相关信息,主要字段有:
用户名、称呼、、密
码、生日,具体设计如图:
/WUPUQUAH.Li...licai.sql-..er〔討(
列名1
数据类型
允许Ndl值
上
|cherighLi
varehar(lfi)
r
name
vari±
Br{10)
birthday
char(lC)
r磺
Lis^mamc
vaircharfl5)
厂
password
vardnar[20)
五、数据实施和维护
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=2400select*fromExpenseorderbyimoneydesc
--视图
--为收入类别中的补助类建立视图
createviewBuZhu_Income
as
selecticategory,imoney,idate,isay
fromIncome
whereicategory='
select*fromBuZhu_Income
--为收入类别中的补助类建立视图createviewBuZhu_Incomeas
--为支出类别中的学习类建立视图(在左侧视图文件夹下完成)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
addconstraintC3check(Iage>
0)
addconstraintsex_defaultdefault'
forIsex
--触发器
createtriggercate_deleteonIncomeCate
fordeleteas
declare@BIcategoryvarchar(10)
print'
使用delete触发器级联删除Income表中相关的行'
select@BIcategory=Icategoryfromdeleted
删除的类别:
'
+@BIcategory
deleteIncomewhereIncome.icategory=@BIcategorygo
--测试
deletefromIncomeCatewhereIcategory='
小费'
createtriggerex_cate_deleteonExpenseCate
declare@Blcategoryvarchar(10)
select@BIcategory=lcategoryfromdeleted
删除的类别:
’+@BIcategory
deleteExpensewhereExpense.icategory=@BIcategory
--存储过程
createprocedureP_BuZhuas
selecticategory,imoney,idate,isay
fromIncomewhereicategory=补助'
execP_BuZhu
--在Expense数据库中,建立一个存储过程,统计消费大于等于的记录个数
createprocedureP_Expense@n
intoutput
select@=COUN(T)fromExpense
whereimoney>
=100
declare@nint
execP_Expense@noutput
printconvert(varchar(5),@i)
2.系统模块
a).收入和支出类别维护
b).添加收入和支出信息
c).定期和活期存款计算
d).收入记录查询
e).支出记录查询
家庭理财专冢
收入査洵收入数据
2012-11-26
补肋
1500
2012-08-20
打工
1300
2012-06-21
分红
300
2010-11-25
补助
1200
2011-05-17
2012-08-01
100
2000-0101
返回
六、总结和建议
本课程设计是利用Android开发的,系统功能已经基本实现。
但同时也存在很多不足的地方,比如整个系统还可以添加更多功能,外观上可以做进一步调整和修饰,以及用户资料的性和安全性还没有考虑周全。
这次课程设计,由于自己在知识、经验方面都存在着很多不足;
另外,在整个过程中忙于复习,没有充足的时间来跟老师和同学沟通。
因此,系统必然会存在一些缺陷和不足。
因为对家庭财务管理的整个流程不太熟悉,在需求分析时未能做到完全满足用户的需求,以致缺少了一些必要功能。
经过这次课程设计,我深刻体会到要做好一件完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要有耐心,善于运用已有的资源来充实自己。
同时我也深刻地认识到,对待一个新事物时,一定要从整体考虑,完成一部之后再做下一步,这样对于系统而言才更加有效。
通过这次设计,我不仅对Android和SQLServer2008有了深刻的认识,积累了使用软件工程的思想来开发软件的经验,最重要的是摸索出了一套考虑问题和解决问题的方法,这对于我将来走上工作岗位受益匪浅。
实践出真知,这次课程设计使我得以将数据库、软件工程课程中所学的理论知识得以充分运用。
理论和实践相结合,动手能力得以很大的提高。
开发一个良好的系统需要丰富的知识,由于水平有限,系统不够完善,期待进一步改进。
七、参考文献
1.数据库系统概论
2.Android应用案例开发大全