数据库课程设计报告.docx
《数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
![数据库课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-12/16/be4b7993-203a-44bf-b45f-4dffa6d5e833/be4b7993-203a-44bf-b45f-4dffa6d5e8331.gif)
数据库课程设计报告
摘要
个人理财系统是很常用的系统,它的开发主要包括后台数据库的建立和前端应用程序的开发。
建立一个个人理财系统能够很好的管理个人财务,这样就可以进行有计划的处理自己的财产。
关键词
收入,支出,结算
Abstract
ItiscommonlyusedofPersonalFinanceSystem.ThedatabaseofestablishingandThedevelopmentofapplicationareincludedinPersonalFinanceSystem.WecanmanageourpropertybycreatingaPersonalFinanceSystem.Sowecanprocessourpropertybetterbythis.
Keywords
Revenue,Disbursement,Settleaccounts
目录
1.系统功能需求分析1
2.数据库设计分析2
3.数据库整体逻辑结构设计3
4.数据库实现4
4.1建立数据库和表4
4.2建立视图4
4.3建立存储过程4
4.4建立触发器4
5.课程设计总结5
参考文献7
谢 辞8
个人理财系统数据库实验设计与实现
PersonalfinanceSystemDesignandImplementationoftheDatabase
数学与信息工程学院计算机科学与技术专业
王金英
指导教师:
黎建华
1.系统功能需求分析
在现实生活中不是每一个人都对自己的财产有合理的分配,对有些人来说钱在自己手里没几天就花没了了,自己还不清楚这些钱到底用在了那里,那些该用那些不该用。
如果能正确的认识个人理财,哪么就可以有目的的规划自己的财产。
个人理财就是通过对财产适当的管理和分配,既可以达到自己想实现的目标又可以节省资源,已达到最经济有最好的效果。
正确的理财观念非常重要,科学理财方式选择将成为决定个人贫富差距的关键因素。
真正的理财是因人而异,因“财”制宜的。
理财方式的选择也因人而异。
在国内,有
人自己亲自进行股票,债券买卖,只有少部分人请理财机构代为理财,而国外大部分是请经验十足的理财专家或顾问替他们理财,支出等。
这样很多人没有理财概念,就使很多可以完成的目标因为资金关系等没有完成。
如果每个人都能够事先对已有财产给个计划,对自己所做的事有个估计,对自己每天的收入,支出等留下记录,在回顾自己的资金花在哪里有了了解,这样可以增加目标的可实施性,成功率也相对比较高。
所以我们每个人都应该正确的认识个人理财。
每个人都应该有个良好的理财习惯。
因此根据需求分析,就应该建立一个相应的个人理财系统,对财产等进行有序的管理。
2.数据库设计分析
针对以上的功能分析,对数据库的设计做了以下分析。
数据库的设计应该包含以下信息:
(1)应用此系统的用户登陆时进行核对验证,对用户的基本信息进行基本的管理。
其中包含用户编号,用以注明有多少用户在用,每个用户相应的编号,这样也便于管理。
(2)对于个人理财的相应记录,即用户要记录那些信息。
这就是根据现实生活中的需求,用户想要记录什么信息,怎样实现此功能,让它既方便用户应用,操作起来简单,又容易实现。
哪么表中就要包含收入支出,用户信息,收入或支出的原因,即用途等信息。
(3)在数据库中要建立相应的视图,存储过程,触发器等,使功能更简洁更方便。
表间对应的局部和整体E-R图如下:
(1)个人理财数据库中各个表的关系,如图1所示。
图1E-R
3.数据库整体逻辑结构设计
数据库包括以下三张表,用户表(accountNum),收支表(shouzhi),类型表(type)。
(1)用户表设计
将各个元素的字段名,类型等都设计好,在在数据库中建立相应的表结构:
用户表(accountNum)用来管理用的信息,表基本结构如下:
收支表(shouzhi)用来管理用户的收入支出等信息,表基本结构如下:
类型表(type)用来管理财物收入和支出的类型,表基本结构如下:
(2)所有表之间的关系图,如图2所示。
图2所有表之间的关系图
4.数据库实现
4.1建立数据库和表
用户表(accountNum)在数据库中的建立:
CREATETABLE[dbo].[accountNum](
[用户编号][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[用户名][nchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[密码][nchar](15)COLLATEChinese_PRC_CI_ASNOTNULL,
[原金额][nchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT[PK_accountNum]PRIMARYKEYCLUSTERED
(
[用户编号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
收支表(shouzhi)在数据库中的建立:
CREATETABLE[dbo].[shouzhi](
[收支编号][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[收入][nchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[支出][nchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[类型编号][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[用户编号][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[用途][nchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[金额][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
[时间][nchar](10)COLLATEChinese_PRC_CI_ASNULL,
CONSTRAINT[PK_shouzhi]PRIMARYKEYCLUSTERED
(
[收支编号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
ALTERTABLE[dbo].[shouzhi]WITHCHECKADDCONSTRAINT[FK_shouzhi_accountNum]FOREIGNKEY([用户编号])
REFERENCES[dbo].[accountNum]([用户编号])
GO
ALTERTABLE[dbo].[shouzhi]CHECKCONSTRAINT[FK_shouzhi_accountNum]
GO
ALTERTABLE[dbo].[shouzhi]WITHNOCHECKADDCONSTRAINT[FK_shouzhi_type]FOREIGNKEY([类型编号])
REFERENCES[dbo].[type]([类型编号])
GO
ALTERTABLE[dbo].[shouzhi]NOCHECKCONSTRAINT[FK_shouzhi_type]
类型表(type)在数据库中的建立:
CREATETABLE[dbo].[type](
[类型编号][nchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[类型名称][nchar](30)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT[PK_type]PRIMARYKEYCLUSTERED
(
[类型编号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
4.2建立视图
createviewCR
asselect用户名,收支编号,类型名称fromaccountNum,shouzhi,type
whereaccountNum.用户编号=shouzhi.用户编号andshouzhi.类型编号=type.类型编号
4.3建立存储过程
createprocedureproc_xinxi
asselect用户名,原金额,用途,时间fromaccountNum,shouzhi
whereaccountNum.用户编号=shouzhi.用户编号
4.4建立触发器
了实现表间数据的一致性和完整性,创建了触发器,具体代码如下:
createtriggertrigger_accountNum1
onaccountNum
afterdelete
as
begin
if(exists(select*fromdeleted
joinshouzhiondeleted.用户编号=shouzhi.用户编号))
begin
rollbacktran
print'不能删除信息'
end
end
go
5.课程设计总结
通过这次的个人理财系统的设计,加深了对数据库更多功能的认识和了解。
我能够够熟练的在数据库中创建表,视图,存储过程,触发器等功能。
再设计过程中,我要去看不同的书,要去查找不同资料,要全面的考虑,要仔细的设计每一个步骤,要仔细去想它们之间的关系,要仔细琢磨每一个实现的过程。
我遇到了很多问题,在一开始不知道从哪里去思考,不知道整个系统的结构是怎样的,不知道怎么入手去做。
学习中,我们要不断地去思考,不断地去问,把不知道的想办法让自己知道,哪么就会有收获。
我开始什么都不知道,所以我就向身边的朋友问这是怎样的一个实验,怎样的一个设计,到底这个实验要我们做什么,很多很多问题。
我们不能依赖别人能给我们太多的答案,但是我们可以从他们的指导中获取思路,然后自己带着问题去研究,去思考,去实践。
这样我们就会一步一步的接近我们目标。
我这次设计这个个人理财系统,不仅让我复习加深了以前的知识,还让我了解到了很多平时不会去想的知识,我们就是在这样的环境中取得进步的。
我不仅学到了知识,还对个人理财有了很深的理解,知道我们学生更应该好好的进行个人理财,我们更应该对自己的财产有规划。
我们现在的钱是父母给的,我们不应该无目的的挥霍。
并且我们的钱都是固定的,如果没有什么规划,就是想花就花,想起什么就弄什么,最后钱没了,但不知道自己都花在了什么地方,这样就会有很多我们想做的事情,却因为钱没了,又不好意思向父母要,自己有没有经济来源,哪么就只有放弃了,以后难免不会留下遗憾,所以作为学生的我们更应该好好掌握怎样理财。
个人理财很重要,所以每个人都应该对个人理财有所了解,这样可以让自己的生活经济实惠又有规律,又可以养成良好的生活习惯。
参考文献
[1]数据库原理及应用教程(第三版)科学出版社2002.7
[2]数据库技术与应用——SQLServer2005教程詹英主编清华大学出版社2010.6
[3]VisualC+++SQLServer数据库应用系统开发与实例启明工作室人民邮电出版社2004.7
[4]LiuGuangyuan,YuJuegang,AFastLearningAlgorithmviaAHybridApproach[J].JournalofUESTofChina,Vol.27,No.3,Jun.1998.14-16.
[5](台州学院计算机基础教学网)
谢 辞
谢谢老师和同学对我的帮助,在这次实验中,我学到了很多,对学过的知识和新的知识都有了进一步的了解,对此我向老师和同学表示感谢,真诚的对你们说声谢谢,谢谢老师,谢谢同学。