银行管理系统课程设计报告
- 格式:doc
- 大小:292.00 KB
- 文档页数:20
. ... .
2013-2014学年第一学期
《数据库原理》
课程设计报告
题目:银行存储管理系统
专业班级:计算机与信息工程系11(1)班
学生姓名:唐益田
学号:1108010129
指导教师:磊
设计周数:2周
设计成绩:
计算机与信息工程系
2013年12月16日
目录
1 概述 (3)
2 需求与功能分析 (3)
3 概要设计 (3)
4 数据库设计 (5)
5 关键技术实现 (8)
6 数据库安全性控制 (18)
7总结与展望 (19)
参考文献 (19)
1 概述
现今的社会,资金流动十分频繁。不单单是企业、产商,个人也不例外。银行作为一个金融机构,在现代人们的生活中扮演着极其重要的角色。为生活节奏飞快的现代人提供快速、便捷、高效的理财服务。伴随着电脑技术的发展,各大银行的储蓄管理系统也随之出现在这一舞台之上。这次的数据库课程设计我以这一应用环境为背景,应用数据库原理课程所学的数据库设计与关系数据理论,结合实际的操作和设计进行设计。目标是制定一套合理、有效,规和实用的银行管理系统,对银行信息进行集中统一的管理。提高银行工作效率,做到信息的规管理,科学统计和快速查询。这次课程设计我所应用的开发环境是windows7,开发工具是SQL2008,所制作数据库在window2000以上操作系统都可以正常运行。
2 需求与功能分析
银行储存管理系统要求每一个银行管理者都有一个系统帐号,并且每一个帐号都有密码,系统对用户的添加、管理、存款添加都有管理者执行,而不是由存储用户自己执行。该系统主要有两部分业务容:存款与取款。取款则可以由储户自己在取款窗口取款,也可以由管理员管理取款操作。系统扩充的功能有管理员的添加、修改,用户修改密码。
3 概要设计
下面为银行存储管理系统的的概要设计:
(1)、系统总体框图:
银行是一个与我们的生活息息相关的部门。在我们的生活中银行主要办理以下业务:1,储户开户登记;2,定期存款;3,定期取款;4,活期存款;5,活期取款;6,利息结算7,
输出明细账单,8、销户9、管理员的添加与修改。这些功能都是由管理员来操作的,管理员可以操作管理员信息表、用户个人信息表和用户存储信息表这三个表。而对于用户,可以单独在端口操作账户查询、取款和修改个人密码。不管是任何操作,都要先登录核对帐号密码。
(2)、数据流程图:
4 数据库设计
我设计的银行管理系统只有两个实体:管理员与存储用户。而管理员只拥有管理员帐号、密码、姓名这三个信息,以方便查询管理员操作记录。储户则拥有个人信息和存储信息,分为两个表。个人信息的属性有银行卡号、姓名、身份证号、密码、、性别,存储信息有银行卡号、密码、存储数额、存储类型、利息利率、存储日期、已存储时间(年份)、已获得利息、总余额这些信息,其中这里的银行卡号和密码是个人信息表的外键。由管理员操作用户的开户、存储操作等操作,而用户可以自己进行查询、取款、修改密码。
以下为E-R模型图:
各部分E-R图:
关系表(已规化):
Adminstrator(管理员信息表)
Usersmessage(用户个人信息表)
Savemessage(存储信息表)
由E-R图转化的关系表
其中,利息、余额、存储时间我采用了公式计算,并检验正确。
由以上关系表在SQL2008中建立了数据库。
5 关键技术实现
设计了显示用户个人信息及存储信息的个人信息视图以及只查询用户存储信息的视图和显示管理员信息的管理员视图。
设计了四个触发器,包括两个管理员密码、用户密码设置修改不符合长度的触发器。一个定期存款未到期不允许取款的触发器,一个余额不足不允许取款的触发器。
设计了添加、修改、删除管理员;用户开户、修改用户个人信息、用户销户(删除个人信息与存储信息)、增加存款存储、用户修改密码用户取款这几个存储过程。
并对关键事务:用户取款、用户开户、用户修改密码、用户添加存款这几个关键业务做了事务处理,我的方法是将事务的隔离级别设置为为提交读(read uncommitted),防止丢失修
改、读脏数据等错误。具体就是在这些事务前加入set transaction isolation level read uncommitted
具体代码如下:
视图:由企业管理器直接创建。
触发器:
管理员密码长度触发器:
Create trigger[dbo].[T1]on[dbo].[admins]for insert,update
as
declare@AdPassword varchar(50)
select@AdPassword=AdPassword from inserted
if (len(@AdPassword)<6 or len(@AdPassword)>12)
begin
print'密码长度应在6到12'
ROLLBACK TRANSACTION
End
用户密码长度触发器:
Create trigger[dbo].[T2]on[dbo].[Usermessage]for insert,update
as
declare@UserPassword varchar(50)
select@UserPassword=UserPassword from inserted
if (len(@UserPassword)<6 or len(@UserPassword)>12)
begin
print'密码长度应在到6到12 '
ROLLBACK TRANSACTION
End
定期存款取款限定:
Create trigger[dbo].[T4]on[dbo].[UserSavemessage]for update
as