已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号2013-2014学年 第一学期0908010129数据库原理课程设计报告题 目 : 银行存储管理系统 专业班级 : 计算机与信息工程系11(1)班 学生姓名 : 学 号 : 指导教师 : 设计周数 : 2周 设计成绩 : 计算机与信息工程系2013年12月16日目 录1 概述22 需求与功能分析23 概要设计24 数据库设计45 关键技术实现76 数据库安全性控制177总结与展望17参 考 文 献181 概述现今的社会,资金流动十分频繁。不单单是企业、产商,个人也不例外。银行作为一个金融机构,在现代人们的生活中扮演着极其重要的角色。为生活节奏飞快的现代人提供快速、便捷、高效的理财服务。伴随着电脑技术的发展,各大银行的储蓄管理系统也随之出现在这一舞台之上。这次的数据库课程设计我以这一应用环境为背景,应用数据库原理课程所学的数据库设计与关系数据理论,结合实际的操作和设计进行设计。目标是制定一套合理、有效,规范和实用的银行管理系统,对银行信息进行集中统一的管理。提高银行工作效率,做到信息的规范管理,科学统计和快速查询。这次课程设计我所应用的开发环境是windows7,开发工具是sql2008,所制作数据库在window2000以上操作系统都可以正常运行。2 需求与功能分析银行储存管理系统要求每一个银行管理者都有一个系统帐号,并且每一个帐号都有密码,系统对用户的添加、管理、存款添加都有管理者执行,而不是由存储用户自己执行。该系统主要有两部分业务内容:存款与取款。取款则可以由储户自己在取款窗口取款,也可以由管理员管理取款操作。系统扩充的功能有管理员的添加、修改,用户修改密码。3 概要设计下面为银行存储管理系统的的概要设计:(1)、系统总体框图:银行是一个与我们的生活息息相关的部门。在我们的生活中银行主要办理以下业务:1,储户开户登记;2,定期存款;3,定期取款;4,活期存款;5,活期取款;6,利息结算7,输出明细账单,8、销户9、管理员的添加与修改。这些功能都是由管理员来操作的,管理员可以操作管理员信息表、用户个人信息表和用户存储信息表这三个表。而对于用户,可以单独在端口操作账户查询、取款和修改个人密码。不管是任何操作,都要先登录核对帐号密码。银行存储管理系统银行管理员注册用户开户用户取款录入管理员信息用户基本信息存款数与类型用户登录、查询、取款、修改密码(2)、数据流程图: 管理员登录管理员信息表 用户开户、存款用户信息表用户存储信息表 用户查询、取款、修改密码银行管理员用户信息表存储信息表个人用户4 数据库设计我设计的银行管理系统只有两个实体:管理员与存储用户。而管理员只拥有管理员帐号、密码、姓名这三个信息,以方便查询管理员操作记录。储户则拥有个人信息和存储信息,分为两个表。个人信息的属性有银行卡号、姓名、身份证号、密码、电话、性别,存储信息有银行卡号、密码、存储数额、存储类型、利息利率、存储日期、已存储时间(年份)、已获得利息、总余额这些信息,其中这里的银行卡号和密码是个人信息表的外键。由管理员操作用户的开户、存储操作等操作,而用户可以自己进行查询、取款、修改密码。以下为e-r模型图:银行管理员开户、存款存储用户mn个人存款查询、取款11各部分e-r图:管理员信息 编号姓名密码用户个人信息银行卡号姓名身份证号密码用户存储信息电话银号卡号密码存款数额存款类型存款利率存储日期性别存储时间账户余额关系表(已规范化):adminstrator(管理员信息表)字段名称含义类型长度是否为空黙认值主键外键约束adnumber管理员帐号varchar10np主键adname姓名varchar10nadpassword密码varchar12nusersmessage(用户个人信息表)字段名称含义类型长度是否为空黙认值主键外键约束bankcardnumber银行卡号varchar20np主键name姓名varchar10npassword密码varchar20nidcardnumber身份证号varchar20ntelephone电话varchar20nsex性别nvarchar1ncheck in(男,女)savemessage(存储信息表)字段名称含义类型长度是否为空黙认值主键外键约束bankcardnumber银行卡号varchar20np主键userpassword密码varchar20nsavemoney存储数额money8nsavestyle存储类型varchar10naccrualrate利息利率double10nsavedate存储日期datetime8n自动填写当天日期savetime已存储时间(年份)datetimey公式计算:(datepart(year,getdate()-datepart(year, savedate)interest已获得利息moneyy公式计算:(savemoney*accrualrate)*(datepart(year,getdate()-datepart(year, savedate)allmoney总余额moneyy公式计算:(savemoney+accrualrate*(datepart(year,getdate()-datepart(year, savedate)由e-r图转化的关系表其中,利息、余额、存储时间我采用了公式计算,并检验正确。由以上关系表在sql2008中建立了数据库。5 关键技术实现设计了显示用户个人信息及存储信息的个人信息视图以及只查询用户存储信息的视图和显示管理员信息的管理员视图。设计了四个触发器,包括两个管理员密码、用户密码设置修改不符合长度的触发器。一个定期存款未到期不允许取款的触发器,一个余额不足不允许取款的触发器。设计了添加、修改、删除管理员;用户开户、修改用户个人信息、用户销户(删除个人信息与存储信息)、增加存款存储、用户修改密码用户取款这几个存储过程。并对关键事务:用户取款、用户开户、用户修改密码、用户添加存款这几个关键业务做了事务处理,我的方法是将事务的隔离级别设置为为提交读(read uncommitted),防止丢失修改、读脏数据等错误。具体就是在这些事务前加入set transaction isolation level read uncommitted具体代码如下:视图:由企业管理器直接创建。触发器:管理员密码长度触发器:create trigger dbo.t1 on dbo.admins for insert,updateasdeclare adpassword 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)beginprint 密码长度应在到6到12 rollback 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 储蓄时间不足年,无法取款rollback 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存储过程:添加管理员存储过程:create 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 procedure dbo.adminmodify(adnumber varchar(50),adname varchar(50), adpassword varchar(50) )as update adminsset adname=adname,adpassword=adpasswordwhere (adnumber=adnumber)用户开户(录入用户个人信息):create procedure dbo.useradd(bankcardnumber varchar(50),name varbinary(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,idcardnumber,telephone,sex)insert into usersavemessage (savemoney,savestyle,accrualrate,savedate)values(savemoney,savestyle,accrualrate,savedate)set transaction isolation level read uncommitted用户销户(删除个人信息与存储信息):create procedure dbo.userdetele(bankcardnumber varchar(50)as delete usermessage where (bankcardnumber=bankcardnumber)delete usersavemessagewhere (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=idcardnumber,telephone=telephone,sex=sexwhere (bankcardnumber=bankcardnumber)用户取款:create procedure dbo.getmoney(bankcardnumber varchar(50),getmoney money)as update usersavemessage set savemoney=savemoney-getmoneywhere (bankcardnumber=bankcardnumber)set transaction isolation level read uncommitted增加存款存储过程:create procedure dbo.addsavemoney(bankcardnumber varchar(50),savemoney money)as update usersavemessage set savemoney=savemoney-savemoneywhere (bankcardnumber=bankcardnumber)set transaction isolation level read uncommitted用户修改密码:create procedure dbo.usermodifypassword(bankcardnumber varchar(50), userpassword varchar(50)as update usermessage set userpassword=userpasswordwhere (bankcardnumber=bankcardnumber)set transaction isolation level read uncommitted触发器sql脚本测试结果如下:余额不足的触发器sql脚本测试结果:密码长度限定触发器sql脚本测试结果:给出增添、修改、删除、取款等不同操作的存储过程的sql脚本测试结果,存储过程其余结果类似:添加管理员存储过程sql脚本语言测试结果:取款操作的存储过程测试结果:取款前:取款后:修改用户信息存储过程脚本测试结果:修改前:修改后:删除用户的存储过程:执行前:执行后:6 数据库安全性控制设置了admin的用户,拥有所有架构和权限。以管理数据库设置了boss和yinhangwork两个角色,boss有对admins表的所有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 本科毕业论文(设计)中期检查情况总结
- 临床试验脱落数据的可视化呈现与解读
- 临床路径标准化病人模拟教学在老年科教学中的效果
- 临床路径模拟推广的元认知策略与自主学习模式
- 略论三线建设在四川的发展及其影响
- 经济学专业本科毕业论文参考选题
- 浅谈谷胱甘肽过氧化物酶Ⅳ抑制剂 RSL3
- 2025年安徽省六安市中考作文猜题及范文分析
- 杭州市上塘-中河高架交通改善方案研究
- 科技查新报告模板
- 个人玉石转让协议书
- 海南锋利气体有限公司空分设备更新及配套项目环境影响报告表
- 金矿山合作开采协议书
- 2024年税务师考试真题及答案解析
- 《3.5摆的快慢》教学设计 -2024-2025学年教科版科学五年级上册
- 铁路建设项目穿透式安全管理题库及答案解析
- 肌筋膜疼痛综合征触发点运动前激活与放松方案
- 2026年跨境电商物流服务公司承运人(船公司航空公司)管理办法
- 皮带输送机安全培训课件
- 2025年国开高数试题及答案
- (2025)幼儿园卫生保健知识考试试题及答案
评论
0/150
提交评论