数据库ATM管理系统.docx
- 文档编号:10024310
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:34
- 大小:232.27KB
数据库ATM管理系统.docx
《数据库ATM管理系统.docx》由会员分享,可在线阅读,更多相关《数据库ATM管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
数据库ATM管理系统
长沙学院
课程设计说明书
题目
ATM系统
系(部)
数学与计算机科学系
专业(班级)
姓名
学号
指导教师
杨刚、刘刚钦
起止日期
2016.05.27—2016.06.03
课程设计任务书
课程名称:
软件工程根底实训Ⅲ
设计题目:
ATM系统
技术参数和设计要求:
1.实训目的要求
通过本实训,应能够对SQLServer2016工具的了解,与数据库语法的能力。
1)了解SQL的简史和功能特性。
2)掌握E-R图的绘制和数据库的设计。
3)掌握T-SQL的语法知识,并能够熟练运用它。
4)掌握事务与存储过程的使用。
2.问题描述〔功能要求〕:
本次案例将完成一个ATM银行取款机系统的数据库。
(1)创立BankDB数据库。
并保存在D:
\ATM文件夹下。
(2)创立用户信息表〔userinfo〕
(3)创立银行卡信息表〔cardinfo〕
(4)创立交易信息表〔transinfo〕
(5)添加各种约束关系:
Ø为userinfo表中客户ID(customerID)添加主键约束。
Ø为userinfo表中客户的身份证〔PID〕添加唯一约束
Ø为useinfo表中的身份证号码添加检查约束,长度为15或者18
Ø为userinfo表中的客户号码添加检查约束。
Ø为cardinfo表中的卡号ID〔cardID〕添加主键约束
Ø为cardinfo表中的卡号ID〔cardID〕添加约束,必须是以
Ø‘10103576’开头,长度为12
Ø为cardinfo表中的货币类型〔curType〕添加默认约束,默认为RMB。
Ø为cardinfo表中的存款类型添加约束,只能是‘活期、定活两便和定期’。
Øcardinfo表中开卡日期默认为当天日期。
Øcardinfo表中的开户金额不能低于1元。
Øcardinfo表中的余额不能低于1元。
Øcardinfo表中的密码长度为6位数。
默认为88888。
Øcardinfo表中是否挂失只能是‘是’和‘否’。
默认为‘否’
Ø添加userinfo表与cardinfo表的外键约束。
Øtransinfo表中的交易日期默认为当天。
Ø交易类型只能是‘存入’和‘支取’。
Ø添加cardinfo表与transinfo表的外键约束。
〔6〕开户
〔7〕取钱
〔8〕存钱
〔9〕查询余额
〔10〕转账
〔11〕交易统计
3.运行环境要求:
〔1〕客户端:
windows操作系统,SQLServer2016数据库客户端
〔2〕效劳器:
SQLServer2016数据库效劳器、
3.技术要求:
1〕掌握E-R图的绘制和数据库的设计。
2)掌握T-SQL的语法知识,并能够熟练运用它。
3)掌握事务与存储过程的使用。
4〕触发器〔选做〕
设计工作量:
20课时
工作方案:
(1)2013级软件工程所有班级
8课时:
设计,数计系机房/普通教室。
8课时:
上机、调试。
数计系机房
4课时:
辩论。
数计系机房。
〔具体时间地点老师先申请,机动安排〕
指导教师签名:
日期:
教研室主任签名:
日期:
系主任签名:
日期:
长沙学院课程设计鉴定表
姓名
学号
专业
软件工程
班级
5
设计题目
ATM系统
指导教师
杨刚、刘钢钦
指导教师意见:
评定等级:
教师签名:
日期:
辩论小组意见:
评定等级:
辩论小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系〔部〕意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀〞、“良好〞、“及格〞、“不及格〞四类;
一、引言
1.1编写目的
通过数据库ATM实训进一步掌握数据库系统的理论和方法。
培养和锻炼开发管理信息系统的能力。
为今后信息系统开发打下良好的根底。
本文档是ATM系统设计文档的组成局部数据库是一门应用性很强的专业课在学习时必须注意理论与实践相结合。
本次课程环节旨在培养学生在本课程范围内初步掌握解决实际应用问题时所应具备的查阅资料、综合运用所学知识的能力为毕业设计及今后从事专业工作打下根底。
本课程环节要求学生了解企业管理信息系统后台数据库的设计、配置过程掌握管理信息系统的开发方法。
主要包括需求分析、数据分析、系统逻辑模型设计方法功能设计、物理模型设计方法系统的实现等方法。
完成一个小型系统后台数据库的设计与配置。
目的是明确数据库的表名、字段名等数据信息用来指导后期的数据库脚本的开发设计该数据库的目的是设计一个ATM系统能够按照一定条件查询、统计交易信息可以模拟完成开户、存款、取款、转账、注销、挂失、激活、修改密码、查询等业务。
1.2参考资料
资料名称
作者
文件编号、版本
?
数据库系统概论?
王珊、萨师煊
2006年5月第4版
?
现代软件工程?
孙涌
2003年8月第1-246版
?
精通SQLserver2000数据库管理与开发?
于松涛
2003年10月
二、需求规约
2.1业务描述
随着科技的开展,人们生活水平的不断提高,高性能高效率的产品越来越受到人们的欢送。
ATM自动取款机是一种非常智能的机器,人们可以直接与它交互,代替以前的手工操作,大大提高了银行的工作效率。
针对银行业务种类繁多、客户需求量大等现象,为了减少银行人员的工作任务,方便客户,使用户自己就可以在ATM机上存款、取款、查询余额、转账、修改密码、打印凭条、退卡等根底功能。
在这样的需求下我们模拟开发了ATM自动取款机系统。
经济可行性
本系统其他应用软件、硬件系统也易于获得.因此,开发本钱较低。
而引进使用本系统后,与传统方式相比,具有高效率、低本钱、高质量的特点,可以节省不少人力、物力及财力。
所以,从经济的角度来看,该系统可行。
技术可行性
开发工具:
VS2005
数据库环境:
SQLServer2016
系统环境:
MicrosoftWindows2000或以上版本。
系统实现依靠相对熟悉的c语言和SQLServer2016数据库系统,其根本操作实质还是对数据库进行添加、删除、查找等操作。
操作可行性
系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便。
2.2需求分析
需求分析是软件设计的一个重要的环节。
本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的根底数据以及数据处理要求进行分析,从而确定用户的需求。
用户对系统的需求我们从以下几方面进行分析。
2.2.1功能需求
ATM是最普遍的自助银行设备,可以提供最根本的银行效劳之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。
在ATM自动取款机上也可以进行账户查询、修改密码和转账的业务。
作为自助式金融效劳终端,除了提供金融业务功能之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能。
ATM自动取款机系统,是一个有终端机,ATM系统,数据库组成的应用系统。
系统功能有用户在ATM上提取现金、查询账户余额、修改密码及转账功能。
ATM自动取款机系统向用户提供一个方便、简单、及时、随时随地可以随心所欲存取款的互联的现代计算机化的网络系统。
可以大大减少工作人员,节约人力资源的开销,同时由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。
减少了用户办理业务的等待时间;用户可以随时随地可以随心所欲存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。
(1)在银行卡信息管理局部,要求:
2a.可以查询银行卡拥有者的相应信息。
b.可以对银行卡拥有者信息进行添加及删除的操作。
(2)在用户信息管理局部,要求:
a.可以查询开户信息。
b.可以对账户信息进行维护,包括添加及删除的操作。
(3)在账户交易信息管理局部,要求:
。
a.可以浏览账户交易根本信息。
b.可以对账户信息进行维护操作。
(4)在用户视图信息管理局部,要求:
a.可以浏览用户视图信息。
b.可以维护用户视图相关信息。
数据需求
信息需求,即在系统中需要处理哪些数据。
根据对ATM系统的分析,本系统的信息需求如表2-1所示。
表2-1信息输入输出
信息输入
信息处理
信息输出
输入个人信息及开户银行卡信息
更新系统中的银行卡信息,
将新信息存入系统数据库
操作反应〔如开户成功〕
输入用户号、卡号
检索系统数据库
符合用户需求的银行卡信息
输入客户的名字
检索系统数据库以得到订票
记录,删除用户请求的订票
记录,更新系统数据库
操作反应〔如注销成功等〕
输入个人信息、开户银行卡信息及充值的金额
更新系统中的银行卡信息,
将新信息存入系统数据库
操作反应〔如存款成功〕
输入个人信息、开户银行卡信息及支取的金额
更新系统中的银行卡信息,
将新信息存入系统数据库
操作反应〔如取款成功〕
输入2个人信息、2张银行卡信息及转账的金额
更新系统中的银行卡信息,
将新信息存入系统数据库
操作反应〔如转账成功〕
2.2.3性能需求
为了保证系统能够长期、平安、稳定、可靠、高效的运行,本系统应该满足以下的性能需求。
1.准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
系统应能及时而且准确的根据用户权限及所输入的信息做出响应。
由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。
2.易用性
本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。
三、数据库环境说明
数据库实例
数据库系统
数据库部署环境
数据库设计工具
数据库存放位置
说明
ATM
管理系统
SQLServer2016
Window7
SQLServer
存放位置,绝对路径/相对路径D:
/Program
完整的
存款取款转账流程
四、数据库的命名规那么
4.1数据库对象命名规那么
数据库对象
命名规那么
备注
表
Tbl_功能描述字符串
例如:
Cardinfo银行卡信息表
视图
View_功能描述字符串
例如:
银行卡信息总表视图
存储过程
Procedure_功能描述字符串
例如:
CreateID存储过程
触发器
Insert_功能描述字符串
例如:
Decre注销银行卡
4.2数据项编码规那么
数据项
命名规那么
数据类型
长度范围
备注
CardID
10103576XXXX
char
14位
银行卡号
CurType
默认为RMB
Char
5位
货币类型
SavingType
活期,定期,定活两期
char
15位
存款类型
OpenDate
年-月-日-时-分-秒
varchar
20位
开户时间
OpenMoney
数字
varchar
10位
开户金额
Balance
数字
varchar
10位
余额
Pass
数字
varchar
6位
密码
IsReportLoss
是,否
varchar
8位
挂失状态
五、逻辑设计
(1)关系模式:
用户信息〔顾客号,开户名,身份证号,地址,联系〕
交易信息〔交易编码,交易日期,卡号,交易类型,交易金额〕
银行卡信息〔卡号,货币类型,开户日期,开户金额,密码,是否挂失,存储类型〕
(2)关系图:
图5.1系统总体结构E-R图
图5.2逻辑关系图
六、物理设计
6.1表汇总
表名
功能说明
用户实体信息表
存储客户的相关信息及其数据类型以及相关的约束
银行卡信息表
存储银行卡的相关信息及其数据类型以及相关的约束
交易信息表
存储交易的相关信息及其数据类型以及相关的约束
6.2表的根本信息
用户实体信息表
表名
用户实体信息表
数据库用户
主键
用户号
其他排序字段
无
索引字段
用户号
序号
字段名称
数据类型〔精度范围〕
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
CustomerID
int
N
Y
高
用户号/主键
2
CustomerName
varchar(8)
N
N
中
用户名
3
PID
char(18)
N
N
中
身份证
4
Telephone
varchar(11)
N
N
中
联系
5
U_Address
varchar(50)
N
N
中
地址
sql脚本
createtableUserinfo--用户实体信息表
(
CustomerIDintprimarykey,--主键约束用户ID
CustomerNamevarchar(8)notnull,
PIDchar(18)check(len(PID)=15orlen(PID)=18)unique,--身份证号码约束
Telephonevarchar(11)check(len(Telephone)=11)unique,--号码约束
U_Addressvarchar(50)
);
备注
银行卡信息表
表名
银行卡信息表
数据库用户
主键
银行卡号
其他排序字段
用户号升序
索引字段
银行卡号
序号
字段名称
数据类型〔精度范围〕
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
CardID
char(30)
N
Y
高
10103576
银行卡号/主键
2
CurType
char(5)
N
N
中
RMB
币种
3
SavingType
char(15)
N
N
中
活期,定期,定活两期
存储类型
4
OpenDate
datetime
N
N
中
开户时间
5
OpenMoney
money
N
N
中
开户金额
6
Balance
money
N
N
中
余额
7
Pass
char(6)
N
N
中
密码
8
IsReportLoss
char(8)
N
N
中
是/否
挂失状态
9
CustomerID
int
N
N
中
用户号/外键
sql脚本
createtableCardinfo--银行卡信息表
(
CardIDchar(30)check(CardIDlike'10103576%'andlen(CardID)=14)primarykey,--卡号主键约束
CurTypechar(5)default('RMB'),--货币类型默认为RMB
SavingTypechar(15)check--存款类型
(SavingTypelike'活期'orSavingTypelike'定期'orSavingTypelike'定活两便'),
OpenDatedatetimedefault(getdate())notnull,--开户日期
OpenMoneymoneycheck(OpenMoney>=1)notnull,--开户金额
Balancemoneycheck(Balance>=1)notnull,--余款
Passchar(6)default('888888')notnull,
IsReportLosschar(8)check--挂失
(IsReportLosslike'是'orIsReportLosslike'否')default'否'notnull,
CustomerIDintnotnull,
foreignkey(CustomerID)referencesUserinfo(CustomerID)ondeletecascade
);
备注
交易信息表
表名
交易信息表
数据库用户
主键
身份证号码
其他排序字段
无
索引字段
身份证号码
序号
字段名称
数据类型〔精度范围〕
允许为空Y/N
唯一Y/N
区别度
默认值
约束条件/说明
1
TransID
int
N
Y
高
交易编号
2
TransDate
datetime
N
N
中
交易日期
3
CardID
char(30)
N
N
中
银行卡/外键
4
TransType
char(10)
N
Y
高
存入,支取
交易类型
5
TransMoney
money
N
N
中
交易金额
6
Remark
text
N
N
中
备注
sql脚本
createtableTransInfo--交易信息表
(
TransIDintidentitynotnull,--交易编号
TransDatedatetimedefault(getdate()),--交易日期
CardIDchar(30)notnullforeignkey(CardID)referencesCardInfo(CardID),--卡号外键约束
TransTypechar(10)check(TransTypelike'存入'orTransTypelike'支取'),--交易类型
TransMoneymoneycheck(TransMoney>0),
Remarktext
);
备注
6.3视图的设计
图6.3.1银行卡信息总表视图
6.4存储过程、函数及触发器的设计
触发器1:
注销卡信息[Decre]
USE[ATMbank]
GO
/******Object:
Trigger[dbo].[Decre]ScriptDate:
06/06/201606:
30:
46******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERtrigger[dbo].[Decre]
on[dbo].[Cardinfo]
afterdelete
as
declare@CardIDchar(19),@CustomerIDint
select@CardID=CardID,@CustomerID=CustomerIDfromdeleted
begin
print'开始注销用户信息'
deletefromUserinfowhere@CustomerID=CustomerID
print'恭喜您的用户信息注销成功'
end
图注销用户银行卡
存储过程1:
开户[CreateID]
USE[ATMbank]
GO
/******Object:
StoredProcedure[dbo].[CreateID]ScriptDate:
06/06/201606:
33:
19******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERproc[dbo].[CreateID]
@CardIDvarchar(30),
@SavingTypechar(15),
@OpenMoneymoney,
@Balancemoney,
@CustomerIDint
as
ifexists(selectCardID
fromCardinfo
whereCardID=@CardID
)
print'该卡号已被注册'
elseif@OpenMoney<1
print'开户金额不能低于一元'
else
begin
insertintoCardinfo(CardID,SavingType,OpenDate,OpenMoney,Balance,CustomerID)
values(@CardID,@SavingType,GETDATE(),@OpenMoney,@Balance,@CustomerID)
print'开户成功'
end
图存储过程开户的实现
图开户约束的实现
存储过程2:
存钱[InputMoney]
USE[ATMbank]
GO
/******Object:
StoredProcedure[dbo].[InputMoney]ScriptDate:
06/06/201606:
36:
23******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERproc[dbo].[InputMoney]
@CardIDchar(19),
@inputmoneymoney
as
begin
if(selectisreportlossfromCardinfowhereCardID=@CardID)='是'
print'该账户正在挂失中,无法进行交易'
else
begin
updateCardinfosetBalance=Balance+@inputmoneywhereCardID=@CardID
print'交易成功'
insertintoTransInfo(CardID,TransMoney,TransDate,TransType,Remark)
values(@CardID,@inputmoney,getdate(),'存入','余额增加'+convert(char(19),@inputmoney))
if(@@error<>0)
rollback;
return;
end
end
图6.4.4存储过程存钱的实现
图6.4.5存钱的挂失约束
存储过程3:
取款[TakeMoney]
USE[ATMbank]
GO
/******Object:
StoredProcedure[dbo].[TakeMoney]ScriptDate:
06/06/2016
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 ATM 管理 系统