数据库ATM自动取款机系统
- 格式:doc
- 大小:493.00 KB
- 文档页数:43
目录一、引言 (2)1.1编写目的 (2)1.2参考资料 (2)二、需求规约 (3)2.1业务描述 (3)2.2需求分析 (3)三、数据库环境说明 (5)四、逻辑设计 (6)五、物理设计 (7)5.2数据库表物理设计 (7)表[1]:交易信息表 (7)表[2]:用户信息表 (8)表[3]:银行卡信息表 (9)5.3视图的设计 (10)5.4存储过程及触发器的设计 (10)六、安全性设计 (18)6.1 防止用户直接操作数据库的方法设计 (18)七、数据库设计的测试说明 (19)7.1测试用例 (19)7.2设计结论 (24)八、实训总结 (25)一、引言1.1 编写目的本文档ATM自动取款机系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,使开发人员能据此开发该系统。
1.2 参考资料二、需求规约2.1 业务描述某银行拟开发一套ATM取款机系统,实现如下功能:1、开户(到银行填写开户申请单,卡号自动生成)2、获取密码(给出卡号,获取相应密码)3 解除挂失(给出卡号,解除挂失)4、修改密码(给出卡号,将旧密码修改为新密码)5、挂失(给出卡号,登记挂失信息)6、催款提醒(帐号余额小于等于某个值(比如100)时返回客户的姓名及联系电话(业务员可以催款提醒用户)。
7、周交易(查询某卡前一周的交易信息)8、查询最高消费(查询消费最高的卡号)9、查询挂失卡号(查看所有挂失的卡号)10、统计余额盈利(统计银行的资金流通余额和盈利结算。
计算公式为:资金流通余额=总存入量-总支取量盈利结算=总支取量*0.008-总存入量*0.003)11、存款取款存取过程(实现存款取款功能。
取款要求输入密码)12、转账交易存储过程(某卡上的款转帐到另一卡上。
要求事务处理2.2 需求分析根据银行方面取得的信息资料,得出系统的信息需求和处理要求,得到设计所需的需求信息。
这些信息是选择了对数据库设计直接有用的信息。
ATM系统的分析与建模不完全版1.系统功能分析2.系统结构分析ATM系统的结构主要包括硬件和软件两部分。
硬件包括ATM机、密码键盘、显示屏、打印机等设备;软件包括ATM应用程序、交易处理程序、数据库系统等。
ATM系统主要由前端控制器、交易管理器、数据库管理器等模块组成。
3.系统行为分析-用户插卡后,系统读取卡片信息并验证用户身份;-用户输入密码后,系统验证密码正确性;-用户选择操作后,系统进行交易处理;-交易处理完成后,系统更新数据库信息并输出结果给用户。
4.系统建模为了更好地理解ATM系统的工作原理,我们可以使用UML建模语言对其进行建模。
以下是ATM系统的简单UML建模:-用例图:显示了系统的功能模块和用户的操作。
-类图:包括了系统中的各种类和它们之间的关系。
-时序图:展示了系统中各个对象之间的时序关系。
-状态图:描述了系统中各个对象的状态变化规律。
-活动图:展示了系统中各个活动的流程和顺序。
通过建模分析,我们可以更清晰地了解ATM系统的整体结构和运行机制,从而有助于系统设计和优化。
5.系统设计与优化为了提高ATM系统的性能和稳定性,可以从以下几个方面进行设计与优化:-网络通讯:优化网络通讯模块,提高数据传输速度和稳定性。
-安全性:增强系统的安全性,包括加密传输、防止恶意操作等措施。
-用户体验:设计用户友好的界面和操作流程,提高用户体验。
-故障处理:完善系统的故障处理机制,及时处理各种异常情况。
通过系统设计与优化,可以使ATM系统更加稳定、高效和易用,提升用户体验和满意度。
总结:ATM系统是一种重要的金融服务系统,通过对其进行分析与建模,可以更好地了解其工作原理和功能。
系统的功能、结构、行为等方面都需要进行详细的分析与设计,以确保系统的性能和稳定性。
通过优化系统设计和增强安全性,可以提高ATM系统的服务质量和用户体验,满足用户的各种需求。
希望本文对ATM系统的分析与建模有所帮助,能够为相关领域的研究和实践提供一定的参考价值。
ATM数据流图概述:ATM(Automated Teller Machine,自动取款机)是一种自动化设备,用于在没有人工干预的情况下进行银行交易。
本文将详细介绍ATM的数据流图,展示其内部的数据流动以及与用户之间的交互。
1. 系统概述:ATM系统由多个模块组成,包括用户界面、交易处理、数据库等。
用户通过ATM机上的界面进行交互,输入指令并执行各种银行交易。
交易处理模块负责处理用户的请求,与数据库进行通信,并生成相应的交易记录。
2. 用户界面:用户界面是用户与ATM系统进行交互的入口。
它通常包括以下功能:- 插入卡片:用户将银行卡插入ATM机的卡槽。
- 输入密码:用户通过键盘输入密码进行身份验证。
- 选择操作:用户可以选择进行取款、存款、查询余额、转账等操作。
- 输入金额:用户可以通过键盘输入交易金额。
- 打印凭条:用户可以选择是否打印交易凭条。
3. 交易处理:交易处理模块负责处理用户的请求,并与数据库进行通信。
以下是交易处理的步骤:- 身份验证:系统首先验证用户的身份,比对输入的密码和数据库中存储的密码。
- 交易选择:根据用户选择的操作类型,系统确定执行的交易类型。
- 交易执行:系统根据用户的指令执行相应的交易,如取款、存款、转账等。
- 数据库交互:交易处理模块与数据库进行通信,更新用户账户余额和交易记录。
- 生成凭条:根据用户的选择,系统生成交易凭条并打印。
4. 数据库:数据库是ATM系统的核心组成部份,用于存储用户的账户信息和交易记录。
数据库包括以下表:- 用户表:存储用户的个人信息,如姓名、卡号、密码等。
- 账户表:存储用户的账户信息,包括账户余额等。
- 交易记录表:记录用户的交易信息,包括交易类型、交易金额、交易时间等。
5. 数据流图:ATM数据流图展示了数据在系统内部的流动和处理过程。
以下是ATM数据流图的主要组成部份:- 用户输入:表示用户通过界面输入的数据流。
- 用户输出:表示系统通过界面向用户输出的数据流。
ATM数据流图一、介绍ATM(Automated Teller Machine,自动取款机)是一种自助式银行服务设备,允许客户在无需人工干预的情况下进行多种银行交易,如取款、存款、查询余额等。
本文将通过数据流图的方式详细描述ATM系统的功能和数据流动。
二、系统概述ATM系统由多个主要组件组成,包括ATM终端、核心银行系统、ATM网络和银行数据库。
客户通过ATM终端与系统进行交互,ATM终端通过ATM网络连接到核心银行系统,核心银行系统负责处理客户的交易请求并与银行数据库进行通信。
三、数据流图以下是ATM系统的数据流图,包括上下文图和一级数据流图。
1. 上下文图上下文图显示了ATM系统与外部实体的交互,主要包括客户和银行数据库。
```客户 <--> ATM系统 <--> 银行数据库```2. 一级数据流图一级数据流图展示了ATM系统的主要功能和数据流动。
以下是一级数据流图的详细描述:```客户 --> ATM终端:输入卡号和密码ATM终端 --> 核心银行系统:验证客户身份核心银行系统 --> ATM终端:返回身份验证结果客户 --> ATM终端:选择交易类型(取款/存款/查询余额等)ATM终端 --> 核心银行系统:发送交易请求核心银行系统 --> ATM终端:处理交易请求并更新账户余额核心银行系统 --> 银行数据库:更新账户余额ATM终端 --> 客户:显示交易结果和账户余额客户 --> ATM终端:结束交易```四、数据流详细描述1. 客户输入卡号和密码:客户在ATM终端上输入银行卡号和密码,以验证身份。
2. 验证客户身份:ATM终端将卡号和密码发送给核心银行系统,核心银行系统通过与银行数据库的比对验证客户的身份,并返回验证结果。
3. 选择交易类型:客户在ATM终端上选择所需的交易类型,如取款、存款、查询余额等。
ATM机管理系统详细设计说明书ATM机管理系统详细设计说明书1:引言1.1 目的1.2 背景1.3 范围1.4 参考资料2:系统概述2.1 功能概述2.2 用户类型2.3 系统界面2.4 系统架构2.5 第三方集成3:数据库设计3.1 数据库架构3.2 数据库表结构3.3 数据库表关系4:模块设计4.1 登录模块4.1.1 用户身份验证 4.1.2 用户权限控制 4.2 交易模块4.2.1 取款功能4.2.2 存款功能4.2.3 转账功能4.2.4 查询余额功能 4.3 管理模块4.3.1 管理员权限验证 4.3.2 用户信息管理 4.3.3 ATM机信息管理5:界面设计5.1 登录界面5.2 交易界面5.3 管理界面6:系统安全设计6.1 数据加密6.2 访问控制6.3 日志记录7:性能优化7.1 高并发处理7.2 缓存使用7.3 数据库索引优化8:测试策略8.1 单元测试8.2 集成测试8.3 系统测试9:部署与维护9.1 部署环境9.2 系统上线流程 9.3 系统维护计划10:附件10:1 数据库表结构图10:2 界面设计图10:3 测试用例本文所涉及的法律名词及注释:1: ATM机:自动取款机(Automated Teller Machine),是一种自动化提供金融服务的机器。
2:系统界面:用户与系统进行交互的界面,包括登录界面、交易界面和管理界面。
3:数据库架构:数据库的组织方式,包括表、索引、关系等。
4:用户身份验证:验证用户身份是否合法,常见方式包括密码验证、指纹验证等。
5:访问控制:限制用户对系统资源的访问权限,确保系统安全。
6:单元测试:对系统中最小的功能单元进行验证的测试方法。
7:集成测试:将各个模块集成起来进行验证的测试方法。
8:系统测试:对整个系统进行验证的测试方法。
MySQL银⾏ATM存取款机系统(需求分析)银⾏ATM需求⽂档⼀.E-R图形⽂⼆.开发步骤1.明确需求--数据库设计--编码实现功能--测试2.绘制e-r图--绘制数据库模型图--使⽤三⼤⽅式规范数据库结构三.开发思路1. 模型图综述模型图描述了ATM机使⽤时的状态变化,包含登录、查询、存款、取款、转账、改密、业务选择界⾯状态,登录可以转向业务选择界⾯,其它状态则可以和业务选择界⾯相互转移。
2.系统功能1) 开户(到银⾏填写开户申请单,卡号⾃动⽣成)2) 取款3) 存款4) 挂失5) 修改密码6) 催款提醒7) 统计查询银⾏业务信息8) 转账3.模型图的状态描述(1)登录:⽤户登陆ATM系统,⼊⼝动作为插卡,密码错误时,重新输⼊密码。
(2)业务选择界⾯:⽤户登陆ATM系统后系统显⽰的主界⾯,以供⽤户进⾏择业务操作,⼊⼝动作为选择业务操作。
(3)存款:⼊⼝动作为选择存款业务,中间动作为放⼊现⾦,出⼝动作为发送存款结果。
(4)取款:⼊⼝动作为选择取款义务,中间动作为取出现⾦,出⼝动作为发送取款结果。
(5)转账:⼊⼝动作为选择转账业务,中间动作为输⼊⽬标账户、输⼊转账⾦额和账户,出⼝动作为发送转账结果。
(6)改密:⼊⼝动作为选择改密业务,中间动作为输⼊两次新密码,出⼝动作为发送改密结果,两个新密码不同或新旧密码相同则重新输⼊(7)查询:⼊⼝动作为选择查询业务,出⼝动作为发送账户信息。
4. 模型图的状态转移描述(1)登录到业务选择界⾯,条件是输⼊的密码正确。
(2)业务选择界⾯到取款、存款、转账、改密、查询,条件是选择了对应的业务。
(3)存款、取款、转账、改密、查询到业务选择界⾯,条件是对应业务结束。
5.数据库设计1) 创建⽤户⽤户信息表;银⾏卡信息表;交易信息表;存款类型表;2) 添加约束l ⽤户信息表约束顾客编号为主键;开户名必填;⾝份证号必填,只能是18位或15位,⾝份证号唯⼀约束;l 银⾏卡信息表约束卡号必填,主键,银⾏的卡号规则和电话号⼀样⼀般前8位代表特殊含义;货币必填,默认为⼈民币;开户⽇期必填,默认为系统⽇期;开户⾦额必填不低于⼀元;余额必填,不低于⼀元否则将销户;密码必填,6位数字,默认为6个8;是否挂失必填,0或1,默认为零未挂失;顾客编号必填表⽰该卡对应的顾客编号,⼀位顾客可以办理多张卡;l 交易信息表约束交易⽇期必填默认为系统当前⽇期;卡号必填外键可重复索引;交易⾦额必填,⼤于0;交易⽇期必填默认为系统当前⽇期;备注可选输⼊其他说明;l 存款类型表存款类型号,⾃动编号从1开始,主建;存款类型名称,必填;描述可空;3) 插⼊测试数据4) 模拟常规业务5) 创建使⽤客户友好信息视图使⽤事务完成存储或取款业务。
ATM自动取款机系统的分析与设计1.系统架构ATM系统的架构是整个系统的基础,决定了系统的性能和功能扩展的能力。
通常,ATM系统的架构包括硬件层、操作系统层、应用软件层和用户界面层。
硬件层包括ATM机、键盘、屏幕、打印机等设备;操作系统层一般采用嵌入式操作系统;应用软件层包括处理用户交互的系统软件;用户界面层包括用户输入和输出的界面。
在系统架构的设计中,需要考虑系统的可扩展性、可靠性和可维护性。
例如,系统需要支持多种硬件设备,兼容不同的操作系统,具有良好的故障处理机制,方便对系统进行升级和维护。
2.数据流程ATM系统的数据流程是系统的核心,涉及到用户交互、账户信息、交易记录等数据的处理和传输。
在设计数据流程时,需要考虑数据的安全性、一致性和完整性。
例如,用户输入的密码需要进行加密传输,账户信息需要进行实时更新,交易记录需要做好备份和恢复等操作。
在数据流程设计中,需要考虑到并发访问、网络延迟和恶意攻击等因素。
例如,系统需要实现正确的并发控制机制,保证用户的交易不会发生冲突;系统需要具备较高的网络速度和稳定性,确保用户可以及时完成交易;系统需要多层次的安全策略,防止恶意攻击者对系统进行攻击。
3.安全性ATM系统的安全性是系统设计的重点,因为涉及到用户的财产安全和个人隐私。
在设计安全性方面,需要考虑到用户认证、数据加密、防火墙和漏洞修复等问题。
例如,系统需要实现用户身份认证机制,防止非法用户对系统进行访问;系统需要对用户输入的敏感信息进行加密处理,确保数据传输安全;系统需要设置防火墙和入侵检测系统,及时发现并阻止网络攻击;系统需要定期更新补丁和漏洞修复程序,保证系统的安全性。
4.用户体验ATM系统的用户体验是系统设计的关键,因为直接影响到用户的使用感受和满意度。
在设计用户体验方面,需要考虑到界面设计、交互方式、反馈机制和操作流程等问题。
例如,系统需要设计简洁清晰的用户界面,方便用户快速找到需要的功能;系统需要提供直观友好的交互方式,减少用户输入错误的可能性;系统需要实时反馈用户操作的结果,让用户清楚地了解交易是否成功;系统需要优化操作流程,减少用户等待时间,提高用户满意度。
长沙学院课程设计说明书题目ATM系统系(部) 计算机科学与技术系专业(班级) 软件五班姓名学号指导教师起止日期2013.6.13—2013.06.22实训任务书课程名称:服务外包软件综合实训Ⅰ设计题目:ATM系统已知技术参数和设计要求:1.实训目的要求通过本实训,应能够对SQLServer20005工具的了解,与数据库语法的能力。
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)添加约束,必须是以‘1010 3576’开头,长度为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操作系统,SQL Server 2005 数据库客户端(2)服务器:SQL Server 2005 数据库服务器、4. 技术要求:1)掌握E-R图的绘制和数据库的设计。
2) 掌握T-SQL的语法知识,并能够熟练运用它。
3) 掌握事务与存储过程的使用。
4)触发器(选做)设计工作量:40课时工作计划:(1) 2011级软件工程所有班级20课时:设计,计算机系机房/普通教室。
16课时:上机、调试。
计算机系机房4课时:答辩。
计算机系机房。
指导教师签名:日期:教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表目录一、引言 (9)1.1编写目的 (9)1.2参考资料 (9)二、需求规约 (10)2.1业务描述 (10)2.2需求分析 (11)四、数据库的命名规则 (12)4.1数据库对象命名规则 (12)4.2数据项编码规则 (12)五、逻辑设计 (13)5.1E-R图 (13)5.2关系模型 (14)六、物理设计 (15)6.1表汇总 (15)6.2表[1]:[ USERINFO表](用户信息表) (15)6.3表[2]:[ CARDINFO表](银行卡信息表) (16)6.4表[3]:[ TRANSINFO表](供应表) (20)6.5存储过程的设计 (21)6.6触发器的设计 (31)七、操作结果 (34)7.1存款测试结果 (34)7.2取款测试结果 (34)7.3转账测试结果 (35)7.4注销结果测试 (35)八、事物设计 (37)8.1事物的创建 (37)一、引言1.1编写目的通过数据库ATM实训,进一步掌握数据库系统的理论和方法。
培养和锻炼开发管理信息系统的能力。
为今后信息系统开发打下良好的基础。
本文档是ATM系统设计文档的组成部分,数据库是一门应用性很强的专业课,在学习时必须注意理论与实践相结合。
本次课程环节旨在培养学生在本课程范围内,初步掌握解决实际应用问题时所应具备的查阅资料、综合运用所学知识的能力,为毕业设计及今后从事专业工作打下基础。
本课程环节要求学生了解企业管理信息系统后台数据库的设计、配置过程,掌握管理信息系统的开发方法。
主要包括:需求分析、数据分析、系统逻辑模型设计方法;功能设计、物理模型设计方法;系统的实现等方法。
完成一个小型系统后台数据库的设计与配置。
目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,设计该数据库的目的是设计一个ATM系统,能够按照一定条件查询、统计交易信息,可以模拟完成开户、存款、取款、转账、注销、挂失、激活、修改密码、查询等业务。
1.2参考资料二、需求规约2.1 业务描述ATM系统业务是模拟了银行ATM提款机业务的管理功能。
在计算机网络,数据库和先进的开发平台上,利用数据库sql语言模拟开发一个良好的ATM系统,实现顾客的开户、存款、取款、查询、转账、修改密码等一系列操作。
并且在完成一定的操作后保存数据的更新和查询。
在转账和取款时还要核对余额是否足够,在足够的条件下才能执行。
存储内容则是存储用户的一些信息,如电话号码和身份证号码等,一些用户的详细资料,还有卡号表中的金额的信息,并对这些信息能够及时更新。
2.2 需求分析开户功能:新客户需要开户之后才能拥有相应的卡,并对其进行各种交易。
在存入一定金额后可以登录或跳转到交易的界面,进行各种交易。
存款功能:客户要能够正确地存款,能够准确地更新客户账号中的余额,并且记录客户的操作。
取款功能:判断客户的余额是否大于取款金额,避免出现溢出现象,操作结果记录在表中。
转账功能:准确核对客户的账户信息,核对转入账号的信息,判断转出账号的余额是否大于转出金额,避免出现溢出现象,并记录转出账号和转入账号的操作。
注销功能:老用户可在此注销自己原有的卡。
挂失功能:当客户遗失自己卡后,需对卡进行挂失操作,否则该卡的余额取不出。
激活功能:客户遗失自己卡并找到卡后,可对卡进行激活操作,以便继续使用该卡。
修改密码功能:客户可在此功能下修改卡的原始密码。
查询功能:查询客户余额;查询客户的账号信息;查询客户的操作记录;三、数据库环境说明四、数据库的命名规则4.1 数据库对象命名规则4.2 数据项编码规则五、逻辑设计5.1 E-R图5.2 关系模型注:下划线为主码,下划波浪线为外码用户(顾客编号,开户名,身份证号码,联系电话,居住地址)银行卡(卡号,顾客编号,密码,开户金额,开户日期,是否挂失,余额,存款类型,货币类型)交易(交易号,卡号,交易金额,交易日期,交易类型,备注)六、物理设计6.1表汇总6.2表[1]:[ userinfo表](用户信息表)6.3表[2]:[ cardinfo表]( 银行卡信息表)6.4表[3]:[ transinfo表](供应表)6.5 存储过程的设计1、开户存储过程-- 提示:银行卡卡号共19位(4位数一组,中间用空格隔开),对于某个银行来说,前面8个数字是固定的,后面8个数字--要求随机的,并且唯一。
我们只需要产生8位随机的数字,然后和前8位固定的数字“10103576”连接即可。
随机函数的用法下:--RAND(随机种子):将产生0~1的随机数,要求每次的随机种子不一样。
为了保证随机种子每次不相同,一般的算法如下:-- 随机种子=当前的月份数×100000 + 当前秒数×1000 +当前毫秒数--产生了0~1的随机数后,我们取小数点后8位,即:0.xxxxxxxx--使用substring(字符串,开始位置,长度)create procedure proc_CardID2@randCardID char(19) output, --输出参数--银行卡号@card_password char(6), --账号密码@open_money money, --开户金额@isreportloss char(2), --是否挂失@saving_type varchar(10), --存款类型@cur_type char(5), --货币类型@customer_name char(10), --用户姓名@P_ID varchar(18) --身份证号ASdeclare @r numeric(15,8) --15位数,保留8位小数declare @tempStr char(10)select @r=rand((datepart(mm,getdate())*100000)+(datepart(ss,getdate())*1000)+datepart(ms,getdate()))set @tempStr=@rset @randCardID='1010 3576 '+substring(@tempStr,3,4)+' '+substring(@tempStr,7,4)--若存在该客户信息declare @customer_ID intif EXISTS(select * from userinfo where @P_ID=P_ID)begin-- 禁用CHECK约束alter table cardinfonocheck constraint ALL;select @customer_ID=customer_ID from userinfo where(@P_ID=P_ID )insert into cardinfo(card_ID,customer_ID,card_password,open_money,open_date,isreportloss,balance,saving_type,cur_type)values(@randCardID,@customer_ID,@card_password,@open_money,getdate(),@isreportloss,@open_money,@saving_type,@cur_type) -- 启用CHECK约束alter table cardinfocheck constraint ALL;endelsebeginprint'需注册用户信息!请先登记您的详细信息....'end--执行存储过程:declare @randCardID char(19)exec proc_CardID2 @randCardID output,'123456',109,'否','活期','RMB','曲先生','421411188001230314'print '您的卡号为:'+@randCardID2、存钱存储过程在存储过程中定义三个变量,@card_ID char(19), @inputmoney money和@card_password char(6),这三个变量是用来核对账号的。