课程设计(论文)银行储蓄管理系统.doc

上传人:文库蛋蛋多 文档编号:3791832 上传时间:2023-03-22 格式:DOC 页数:19 大小:244.50KB
返回 下载 相关 举报
课程设计(论文)银行储蓄管理系统.doc_第1页
第1页 / 共19页
课程设计(论文)银行储蓄管理系统.doc_第2页
第2页 / 共19页
课程设计(论文)银行储蓄管理系统.doc_第3页
第3页 / 共19页
课程设计(论文)银行储蓄管理系统.doc_第4页
第4页 / 共19页
课程设计(论文)银行储蓄管理系统.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《课程设计(论文)银行储蓄管理系统.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)银行储蓄管理系统.doc(19页珍藏版)》请在三一办公上搜索。

1、仲恺农业工程学院课 程 设 计设计题目:银行储蓄管理系统姓 名 院(系) 计算机科学与工程学院专业年级 计算机科学与技术091班学 号 指导教师 职 称 讲师起止时间 2011年6月20日-2011年6月24日仲恺农业工程学院教务处制 目 录1 概述32 需求与功能分析33 概要设计34 数据库设计55 关键技术实现86 数据库安全性控制187总结与展望18参 考 文 献191 概述现今的社会,资金流动十分频繁。不单单是企业、产商,个人也不例外。银行作为一个金融机构,在现代人们的生活中扮演着极其重要的角色。为生活节奏飞快的现代人提供快速、便捷、高效的理财服务。伴随着电脑技术的发展,各大银行的储

2、蓄管理系统也随之出现在这一舞台之上。这次的数据库课程设计我以这一应用环境为背景,应用数据库原理课程所学的数据库设计与关系数据理论,结合实际的操作和设计进行设计。目标是制定一套合理、有效,规范和实用的银行管理系统,对银行信息进行集中统一的管理。提高银行工作效率,做到信息的规范管理,科学统计和快速查询。这次课程设计我所应用的开发环境是windows7,开发工具是SQL2008,所制作数据库在window2000以上操作系统都可以正常运行。2 需求与功能分析银行储存管理系统要求每一个银行管理者都有一个系统帐号,并且每一个帐号都有密码,系统对用户的添加、管理、存款添加都有管理者执行,而不是由存储用户自

3、己执行。该系统主要有两部分业务内容:存款与取款。取款则可以由储户自己在取款窗口取款,也可以由管理员管理取款操作。系统扩充的功能有管理员的添加、修改,用户修改密码。3 概要设计下面为银行存储管理系统的的概要设计:(1)、系统总体框图:银行是一个与我们的生活息息相关的部门。在我们的生活中银行主要办理以下业务:1,储户开户登记;2,定期存款;3,定期取款;4,活期存款;5,活期取款;6,利息结算7,输出明细账单,8、销户9、管理员的添加与修改。这些功能都是由管理员来操作的,管理员可以操作管理员信息表、用户个人信息表和用户存储信息表这三个表。而对于用户,可以单独在端口操作账户查询、取款和修改个人密码。

4、不管是任何操作,都要先登录核对帐号密码。银行存储管理系统银行管理员注册用户开户用户取款录入管理员信息用户基本信息存款数与类型用户登录、查询、取款、修改密码(2)、数据流程图: 管理员登录管理员信息表 用户开户、存款用户信息表用户存储信息表 用户查询、取款、修改密码银行管理员用户信息表存储信息表个人用户4 数据库设计我设计的银行管理系统只有两个实体:管理员与存储用户。而管理员只拥有管理员帐号、密码、姓名这三个信息,以方便查询管理员操作记录。储户则拥有个人信息和存储信息,分为两个表。个人信息的属性有银行卡号、姓名、身份证号、密码、电话、性别,存储信息有银行卡号、密码、存储数额、存储类型、利息利率、

5、存储日期、已存储时间(年份)、已获得利息、总余额这些信息,其中这里的银行卡号和密码是个人信息表的外键。由管理员操作用户的开户、存储操作等操作,而用户可以自己进行查询、取款、修改密码。以下为E-R模型图:银行管理员开户、存款存储用户mn个人存款查询、取款11各部分E-R图:管理员信息 编号姓名密码用户个人信息银行卡号姓名身份证号密码用户存储信息电话银号卡号密码存款数额存款类型存款利率存储日期性别存储时间账户余额关系表(已规范化):Adminstrator(管理员信息表)字段名称含义类型长度是否为空黙认值主键外键约束AdNumber管理员帐号varchar10NP主键AdName姓名varchar

6、10NAdPassword密码varchar12NUsersmessage(用户个人信息表)字段名称含义类型长度是否为空黙认值主键外键约束Bankcardnumber银行卡号varchar20NP主键Name姓名varchar10NPassword密码varchar20NIDcardnumber身份证号varchar20NTelephone电话varchar20NSex性别nvarchar1NCheck in(男,女)Savemessage(存储信息表)字段名称含义类型长度是否为空黙认值主键外键约束Bankcardnumber银行卡号varchar20NP主键UserPassword密码var

7、char20NSavemoney存储数额money8NSavestyle存储类型varchar10NAccrualrate利息利率double10NSavedate存储日期datetime8N自动填写当天日期Savetime已存储时间(年份)datetimeY公式计算:(datepart(year,getdate()-datepart(year, Savedate)Interest已获得利息MoneyY公式计算:(Savemoney*Accrualrate)*(datepart(year,getdate()-datepart(year, Savedate)Allmoney总余额MoneyY公式

8、计算:(Savemoney+Accrualrate*(datepart(year,getdate()-datepart(year, Savedate)由E-R图转化的关系表其中,利息、余额、存储时间我采用了公式计算,并检验正确。由以上关系表在SQL2008中建立了数据库。5 关键技术实现设计了显示用户个人信息及存储信息的个人信息视图以及只查询用户存储信息的视图和显示管理员信息的管理员视图。设计了四个触发器,包括两个管理员密码、用户密码设置修改不符合长度的触发器。一个定期存款未到期不允许取款的触发器,一个余额不足不允许取款的触发器。设计了添加、修改、删除管理员;用户开户、修改用户个人信息、用户销

9、户(删除个人信息与存储信息)、增加存款存储、用户修改密码用户取款这几个存储过程。并对关键事务:用户取款、用户开户、用户修改密码、用户添加存款这几个关键业务做了事务处理,我的方法是将事务的隔离级别设置为为提交读(read uncommitted),防止丢失修改、读脏数据等错误。具体就是在这些事务前加入set transaction isolation level read uncommitted具体代码如下:视图:由企业管理器直接创建。触发器:管理员密码长度触发器:Create trigger dbo.T1 on dbo.admins for insert,updateasdeclare AdP

10、assword varchar(50)select AdPassword=AdPassword from insertedif (len(AdPassword)12)beginprint 密码长度应在6到12ROLLBACK TRANSACTIONEnd用户密码长度触发器:Create trigger dbo.T2 on dbo.Usermessage for insert,updateasdeclare UserPassword varchar(50)select UserPassword=UserPassword from insertedif (len(UserPassword)12)b

11、eginprint 密码长度应在到6到12ROLLBACK TRANSACTIONEnd定期存款取款限定:Create trigger dbo.T4 on dbo.UserSavemessage for updateasdeclare Savetime moneydeclare Savestyle varchar(50)select Savetime=Savetime from insertedselect Savestyle=Savestyle from insertedif (Savestyle=定期三年 and Savetime 3)beginprint 储蓄时间不足年,无法取款roll

12、back transactionendelse if(Savestyle=定期五年 and Savetime 5)beginprint 储蓄时间不足年,无法取款rollback transactionend余额不足触发器:Create trigger dbo.T3 on dbo.UserSavemessage for updateasdeclare allmoney moneyselect allmoney=allmoney from insertedif (allmoney 1)beginprint 余额不足!rollback transactionend存储过程:添加管理员存储过程:cre

13、ate procedure dbo.AdminAdd(AdNumber varchar(50),AdName varchar(50), AdPassword varchar(50) )as insert into admins(AdNumber,AdName,AdPassword)values(AdNumber,AdName,AdPassword)删除管理员存储过程:create procedure dbo.Admindelete(AdNumber varchar(50) )as delete adminswhere(AdNumber=AdNumber)修改管理员信息存储过程:create p

14、rocedure dbo.AdminModify(AdNumber varchar(50),AdName varchar(50), AdPassword varchar(50) )as update adminsset AdName=AdName,AdPassword=AdPasswordwhere (AdNumber=AdNumber)用户开户(录入用户个人信息):set transaction isolation level read uncommittedCreate procedure dbo.UserAdd(Bankcardnumber varchar(50),Name varbin

15、ary(50), UserPassword varchar(50),IDcardnumber varchar(50),Telephone varchar(50),Sex varchar(1),Savemoney money,Savestyle varchar(50),Accrualrate float,Savedate datetime)as insert into Usermessage (Bankcardnumber,Name,UserPassword,IDcardnumber,Telephone,Sex)values(Bankcardnumber,Name,UserPassword,ID

16、cardnumber,Telephone,Sex)insert into UserSavemessage (Savemoney,Savestyle,Accrualrate,Savedate)values(Savemoney,Savestyle,Accrualrate,Savedate)用户销户(删除个人信息与存储信息):create procedure dbo.UserDetele(Bankcardnumber varchar(50)as delete Usermessage where (Bankcardnumber=Bankcardnumber)delete UserSavemessage

17、where (Bankcardnumber=Bankcardnumber)修改用户个人信息存储过程:create procedure dbo.UserModify(Bankcardnumber varchar(50),Name varchar(50), UserPassword varchar(50),IDcardnumber varbinary(50),Telephone varchar(50),Sex varchar(1)as update Usermessage set Name=Name,UserPassword=UserPassword,IDcardnumber=IDcardnumb

18、er,Telephone=Telephone,Sex=Sexwhere (Bankcardnumber=Bankcardnumber)用户取款:set transaction isolation level read uncommittedCreate procedure dbo.getmoney(Bankcardnumber varchar(50),getmoney money)as update UserSavemessage set Savemoney=Savemoney-getmoneywhere (Bankcardnumber=Bankcardnumber)增加存款存储过程:set

19、transaction isolation level read uncommittedcreate procedure dbo.addsavemoney(Bankcardnumber varchar(50),Savemoney money)as update UserSavemessage set Savemoney=Savemoney-Savemoneywhere (Bankcardnumber=Bankcardnumber)用户修改密码:set transaction isolation level read uncommittedcreate procedure dbo.Usermod

20、ifypassword(Bankcardnumber varchar(50), UserPassword varchar(50)as update Usermessage set UserPassword=UserPasswordwhere (Bankcardnumber=Bankcardnumber)触发器SQL脚本测试结果如下:余额不足的触发器SQL脚本测试结果:密码长度限定触发器SQL脚本测试结果:给出增添、修改、删除、取款等不同操作的存储过程的SQL脚本测试结果,存储过程其余结果类似:添加管理员存储过程SQL脚本语言测试结果:取款操作的存储过程测试结果:取款前:取款后:修改用户信息存储

21、过程脚本测试结果:修改前:修改后:删除用户的存储过程:执行前:执行后:6 数据库安全性控制设置了admin的用户,拥有所有架构和权限。以管理数据库设置了boss和yinhangwork两个角色,boss有对admins表的所有权限(修改、增加、查询),对usersavemessage表的查询操作权限,以方便查询统计业务。Yinhangwork可以对usersavemessage和usermessage表的所有操作,管理业务。7总结与展望这次的数据库课程设计,我选择做银行储蓄系统,一开始觉得自己数据库原理学得不错,做起来很简单,但是真正开始入手做了才发现做起来确实困难重重,尤其是自己第一次独立设

22、计一个数据库。从需求分析阶段开始,我就花了不少时间在网上搜索查找资料,想尽量地把这个系统做得完善。在充分了解了课程设计要求以及这个银行存储管理系统的需求之后,我花了一天多的时间画数据流图、结构框图已经E-R图,再从中得到了我所需要设计的关系表,经过思考和测试后,把关系表进行了一些优化。接下来便是数据库的设计了,我通过关系表在SQL2008中创建了我的银行管理系统的数据库。通过分析,做了视图、触发器、各个功能的存储过程,不断完善我的数据库。途中也遇到了一些问题,一开始不太理解触发器的定义,以为利息计算可以利用触发器,可是是错的,它只能用在插入、修改和删除操作过程中,通过查找最后我变换了方案,利息计算用属性的公式计算就可以了,可能很简单地得出。经过不断地测试和不断地改进,我把这次的课程设计的系统逐步完善了。当然,这个系统还存在不少不足的地方,例如没有把权限分得更深化,毕竟银行是一个大系统。例外有些操作可能实际用起来会比较繁琐。总之,这次的课程设计我的收获非常的大,学到的不仅是知识还有认真不断认识问题解决问题的精神。参 考 文 献石玉强、闫大顺、数据库原理及应用石玉强、闫大顺

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号