为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

曾祥炫_ATM自动取款机系统

2018-02-19 32页 doc 89KB 24阅读

用户头像

is_569018

暂无简介

举报
曾祥炫_ATM自动取款机系统曾祥炫_ATM自动取款机系统 长 沙 学 院 课程设计说明书 题 目 ATM系统 系 (部) 计算机科学与技术系 专业(班级) 软件一班 姓 名 曾祥炫 学 号 2010022111 指导教师 胡灵敏 起止日期 2012-02-27~2012-03-31 课程设计任务书 课程名称:工程实训(三) 设计题目:ATM系统 已知技术参数和设计要求: 1( 实训目的要求 通过本实训,应能够对SQLServer20005工具的了解,与数据库语法的能力。 1) 了解SQL的简史和功能特性。 掌握E-R图的绘制和数据库...
曾祥炫_ATM自动取款机系统
曾祥炫_ATM自动取款机系统 长 沙 学 院 课程设计说明书 题 目 ATM系统 系 (部) 计算机科学与技术系 专业(班级) 软件一班 姓 名 曾祥炫 学 号 2010022111 指导教师 胡灵敏 起止日期 2012-02-27~2012-03-31 课程设计任务书 课程名称:工程实训(三) 设计题目:ATM系统 已知技术参数和设计要求: 1( 实训目的要求 通过本实训,应能够对SQLServer20005工具的了解,与数据库语法的能力。 1) 了解SQL的简史和功能特性。 掌握E-R图的绘制和数据库的设计。 2) 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 数据库服务器、 3. 技术要求: 1)掌握E-R图的绘制和数据库的设计。 2) 掌握T-SQL的语法知识,并能够熟练运用它。 3) 掌握事务与存储过程的使用。 4) 触发器(选做) 设计工作量: 40课时 : (1) 2010级软件工程所有班级 20课时: 设计,普通教室。 16课时:上机、调试。计算机系机房 4课时:答辩。计算机系机房。 (具体时间地点老师先申请,机动安排) 指导教师签名: 日期: 教研室主任签名: 日期: 系主任签名: 日期: 长沙学院课程设计鉴定表 姓名 曾祥炫 学号 2010022111 专业 软件工程 班级 软件一班 设计题目 ATM系统 指导教师 胡灵敏 指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见: 评定等级: 答辩小组长签名: 日期: 教研室意见: 教研室主任签名: 日期: 系(部)意见: 系主任签名: 日期: 说明 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 目 录 一、引言............................................................................................................................................................... 7 1.1编写目的 .................................................................................................................................................... 7 1.2参考资料 .................................................................................................................................................... 7 二、需求规约 ....................................................................................................................................................... 8 2.1业务描述 .................................................................................................................................................... 8 2.2需求分析 .................................................................................................................................................... 8 三、数据库环境说明...........................................................................................................................................13 四、数据库的命名规则 .......................................................................................................................................14 4.1数据库对象命名规则 ................................................................................................................................144.2数据项编码规则........................................................................................................................................14 五、逻辑设计 ......................................................................................................................................................15 5.1 数据库实体模型E-R图 ............................................................................................................................15 5.2 POWERDESINGER设计概念模型 ......................................................................................................................15 5.3 CDM ............................................................................................................................................................15 5.4 数据库相关实体的关系模型 ....................................................................................................................15 六、物理设计 ......................................................................................................................................................16 6.1表汇总 .......................................................................................................................................................16 6.2 表结构 .......................................................................................................................................................16 6.3 用户信息表: ............................................................................................................................................16 6.4 存储过程 ...................................................................................................................................................19 6.5视图的设计 ...............................................................................................................................................23 6.6 存储过程、函数及触发器的设计 .............................................................................................................23 七、数据库管理维护明 .......................................................................................................................................24 7.1 数据库的转储 ............................................................................................................................................24 .....................................................................................................................................................................25 一、引言 1.1编写目的 本文档是ATM自动取款机系统设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《ATM数据库设计和开发规范》。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。 1.2参考资料 资料名称 作者 文件编号、版本 2006年5月第4版 王珊、萨师煊 《数据库系统概 论》 二、需求规约 2.1业务描述 ATM自动取款机系统需要满足客户在ATM自助服务终端完成开户、存款、取款、查询挂失卡、查 询最高消费卡号、查询银行卡交易记录、修改卡密码、获取银行卡密码、银行卡挂失等功能。 2.2需求分析 开户 1、功能描述 用户可以利用此功能来申请一个账户,即一张银行卡。 2、界面描述 (1)用户输入本人的身份证号码,登陆到系统的操作界面。 (2)用户在主界面点击“开户”菜单,进入开户界面。 (3)在开户界面中,用户可以确定用户密码、账户密码,设立关于修改或获得客户密码和账户密码的 密保问题,并且确定密保问题的答案。用户还需输入个人的相关信息。 (4)在开户界面中,用户可以点击“创建随机卡号”菜单,进入创建随机卡号界面。 (5)用户可以在开户界面点击“返回”,返回到上一级界面。 3、业务规则 (1)系统应该确定用户的国籍为中国籍,非中国籍用户不能进行开户操作。 (2)若用户的其他银行卡在催款提醒后仍没有按期还款,系统将拒绝向用户开户。 (3)若用户被剥夺政治权利终身,系统将拒绝向用户开户。 4、业务流程 (1)开户是进行所有业务操作的第一步,只有经过开户之后才能进行后续操作。 5、输入 用户需要输入个人的身份证号码、用户密码、账户密码。 6、输出 系统向用户输出一张银行卡及银行卡的相关信息。 存款 1、功能描述 用户可以利用此功能来进行取款操作。 2、界面描述 (1)用户插入银行卡。 (2)用户输入正确的银行卡密码。 (3)验证通过后用户就可以将要存款的钞票放入ATM机。 (4)用户从ATM机上看到存入的金额数目以及银行卡余额。 3、业务规则 (1)用户插入的银行卡的卡号必须已经存在于ATM机系统中,如非银联卡只能在指定的银行完成 业务。 (2)用户必须要输入该银行卡对应的正确密码,否则不能完成存款操作。 (3)用户一次性存款的金额数目不能超过10000元即放入ATM机的面额为100元的钞票不能超过 100张。 4、业务流程 (1)只有要进行存款业务时才执行此项操作。 5、输入 用户需要输入银行卡卡号、银行卡账号密码、存款金额数。 6、输出 系统向用户打印输出用户存入的金额数目以及此银行卡的余额。 取款 1、功能描述 用户可以通过此项功能来进行取款业务。 2、界面描述 (1)用户插入银行卡。 (2)用户输入正确的银行卡密码。 (3)系统验证密码通过后用户输入要取款的金额数目。 (4)用户从ATM机上得到要取款的金额。 3、业务规则 (1)用户插入的银行卡的卡号必须已经存在于ATM机系统中,如非银联卡只能在指定的银行完成 业务。 (2)用户必须要输入该银行卡对应的正确密码,否则不能完成取款操作。 (3)用户银行卡的余额应该要大于过着等于要取款的金额。 (4)用户一次性取款的金额不能超过2000元。 4、业务流程 只有在用户需要完成取款业务时才执行此项操作。 5、输入 用户需要向系统输入银行卡卡号、银行卡账号密码、取款金额。 6、输出 用户从ATM机上得到要取款的金额、系统向用户打印输出该银行卡的余额。 获得密码 1、功能描述 用户可以利用此功能来获得客户密码和账户密码信息。 2、界面描述 (1)用户插入银行卡,登陆系统操作主界面。 (2)用户在主界面点击“获得密码”菜单。 (3)在“获得密码”菜单中会有“获得客户密码”和“获得账户密码”两个功能选项。 (4)用户点击两个功能选项中的任何一个功能选项都会有密保问题,用户需要正确回答密保问题后才 能得到相关密码。 (5)用户可以在“获得密码”界面点击“返回”,返回到上一级界面。 3、业务规则 (1)系统应该在用户正确回答所有密保问题后才能让用户获得密码。 (2)此功能所有用户都可使用。 4、业务流程 (1)用户是在忘记用户密码或者账户密码后才进行此操作。 (2)获得用户密码或者账户密码后,用户可以完成取款、存款、缴费等业务。 5、输入验证信息 用户输入密保问题的正确答案。 6、输出信息 在页面展现出用户的客户密码或者是账户密码。 银行卡挂失 1. 功能描述 用户可以通过此功能挂失自己丢失的银行卡或者是帮助自己的朋友挂失他的银行卡。 2. 界面描述 (1) 用户在ATM机选择挂失功能,进入银行卡挂失界面。 (2) 用户进入银行卡挂失界面后,有两种挂失方法,用户选择相应的挂失选项进行操作。 一、 选择“输入银行卡号”,然后输入相应的银行卡密码,界面会显示银行卡用户的姓名, 确认无误后,点击“确认挂失”,完成银行卡的挂失操作。如果输入密码错误,则系统会 提示输入错误,并要求重新输入,每天限输入错误三次,超过之后,则当天不能进行本银 行卡的挂失操作。 二、 如果用户遗忘银行卡号,则可以选择“输入身份证号”,系统验证之后,会要求用户 输入开户时所设定的银行卡密码,在输入银行卡密码正确之后,系统会给出验证问题“卡 上余额为多少”,用户输入卡上的余额(输入以整百为单位,误差在正负150之间)。如输 入错误,则重新输入,每天三次为限,超过三次,当天不能进行银行卡的挂失操作。 (3) 用户可以在银行卡挂失界面,点击“返回”,返回上一级界面。 (4) 用户可以在银行卡挂界面,点击“取消操作”,返回主菜单。 3. 业务规则 (1) 系统能够按照用户所选择的功能进行操作,通过用户输入的信息,能够进行相关银行卡挂 失的操作。 (2) 此功能只针对银行卡的用户使用。 4. 业务流程 (1)系统如将银行卡已做挂失操作,则该银行卡信息应该显示在挂失查询界面的列表当中。 (2)已经挂失的银行卡不能重复挂失。 5. 输入 银行卡号以及密码,卡上余额,身份证号。 6. 输出 (1)选择挂失方式。 (2)在列表页面显示将要进行挂失操作的银行卡信息。 (3)挂失成功提示。 查询卡号挂失 1、 功能描述 用户可以利用此功能点,查询处于“挂失”状态的银行卡信息。 2、 界面描述 (1) 系统用户输入工号,登陆系统操作主界面。 (2) 用户在主界面,点击“挂失查询”菜单,进入挂失查询界面。 (3) 用户进入挂失查询界面后,系统应将所有处于“挂失”状态的银行卡信息展示在列表当中。 (4) 用户可以在挂失查询界面,输入查询条件,点击“查询”,查询出特定条件的挂失卡信息。 (5) 用户可以在挂失界面的列表当中,选中一条挂失卡信息,点击“查看”,查看其详细信息。 (6) 用户可以在挂失界面,点击“返回”,返回上一级界面。 3、 业务规则 (1) 系统应能将所有处于“挂失”状态的银行卡记录,展示在挂失查询界面的列表当中。 (2) 此功能仅能供银行内部人员使用。 4、 业务流程 (1) 系统必须先将银行卡做挂失操作,才能在此界面查询出信息。 (2) 系统如将银行卡已做解挂操作,该卡信息不应再显示在挂失查询界面的列表当中。 5、 输入 工号、挂失查询出发事件。 6、 输出 在列表页面展示处于“挂失”状态的银行卡信息。 修改密码 1、 功能描述 利用此功能可以修改客户密码或账户密码。 2、 界面描述 (1)、用户在主界面可以点击“修改密码”选项,进入修改密码界面。 (2)、在“修改密码”界面中,可以选择“修改客户密码”或“修改账户密码”,点击相应按键的进入 下一步。 (3)、修改密码时,两次输入新密码,两次所输入的密码必须一致,否则将提醒“密码不一致,请重新 输入~”,并继续输入。 (4)、完成修改密码后,界面输出“修改成功~”。 (5)、用户可在“修改密码”界面中点击“返回”,返回主界面。 3、 业务规则 (1)、用户必须在输入原始密码后,方可进入修改密码的界面。 (2)、两次所输入的新密码必须一致,方可更改密码。 (3)、此功能仅供持卡用户使用。 4、 业务流程 (1)、此功能必须是已开户的银行卡。 5、 输入 (1)、原始密码。 (2)、两次相同的新密码。 (3)、修改密码触发器事件 6、 输出 (1)、成功修改后,输出“修改成功~”。 (2)、若两次输入新密码不一致,输出“密码不一致,请重新输入~”。 催款提醒 1、 功能描述 ATM机会通过此功能提醒已经超额使用的用户,提醒用户把超额的金额补还。 2、界面描述 (1)、用户输入账号密码,登陆系统操作界面。 (2)、用户进入系统界面后,系统将用户的超额信息自动展示在列表当中。 (3)、用户可以在此界面点击“还款”操作。 (4)、用户可以在此界面点击“继续”,进行下一步操作。 3、业务规则 (1)、系统应能将所有处于“超额”状态的银行卡记录,展示在催款提醒界面列表当中。 (2)、此功能仅供银行内部人员使用。 4、业务流程 (1)、系统必须先将银行卡做超额操作,才能在登陆系统后弹出此界面。 (2)、系统如没将银行卡做超额操作,则此界面不应显示。 5、输入 输入账号密码触发“超额”事件。 6、输出 在列表页面展示处于“超额”状态的银行卡信息。其中包括的信息有:账户姓名(如:“黄*”)、账户卡 号、超额金额、还款截止日期。 查询消费最高卡号 1、 功能描述 此功能用来查询在一周以内消费金额最高的卡号的相关信息。 2、 界面描述 (1) 系统用户输入工号,登陆系统操作主界面。 (2) 用户在主界面中点击“消费查询”,进入消费记录查询。 (3) 用户在消费查询界面中,可查询一周内所有有消费记录的银行卡信息,并按降序排列,展示在 列表中。 (4) 用户在消费记录列表中点击任意银行卡记录,可显示相应的银行卡的详细信息。 (5) 用户可在消费查询界面中可点击“返回”,返回到主界面。 3、 业务规则 (1) 系统将一周以内有过消费记录的银行卡信息输出到屏幕。 (2) 此功能仅供银行工作人员。 4、 业务流程 系统所显示的必须在一周内有过消费记录的银行卡。 5、 输入 工号、消费记录查询触发器事件。 6、 输出 消费记录列表。 三、数据库环境说明 数据库实数据库系数据库部数据库设计工具 数据库存放位说明 例 统 署环境 置 实例名,名称:如软硬件、网例如:存放位置,绝实例用途说明 文件名 MySql,版络环境,如pb,visio,rose对路径/相对如:用于amt系统 如atmdb 本:4.0 Windows 如 路径 xp Power_designer C:\amtdb\ 四、数据库的命名规则 4.1数据库对象命名规则 数据库对象 命名规则 备注 表 Tbl_功能描述字符串 例如:tbl_userInfo用户表 视图 View_功能描述字符串 例如:view_userInfo用户视图 存储过程 Proc_功能描述字符串 例如:proc_draw取款存储过程 4.2数据项编码规则 数据项 含义 类型 长度 小数位数 customerID 顾客编号 varchar 10 customerName 开户名 varchar 10 PID 身份证号 varchar 18 telephone 联系电话 varchar 12 address 居住地址 varchar 20 cardID 卡号 varchar 19 transMoney 交易金额 money 10 savingType 存款类型 varchar 10 openDate 开户日期 datetime openMoney 开户金额 money balance 余额 money pass 密码 varchar 6 overdraftDays 欠款天数 char 2 transDate 交易日期 datetime transType 交易类型 varchar 10 五、逻辑设计 5.1 数据库实体模型E-R图 5.2 PowerDesinger设计概念模型 5.3 CDM 无 5.4 数据库相关实体的关系模型 用户信息(开户名,顾客编号,PID,用户密码,联系电话,居住地址) 交易信息(交易日期,交易金额,交易类型,交易编号,卡号,备注) 银行卡信息(账号密码,卡号,货币类型,卡状态,密保问题,密保答案,余额,顾客编号,开户金额, 开户日期) 六、物理设计 6.1表汇总 表名 功能说明 用户信息表 存储银行卡用户的信息 交易信息表 存储银行卡的交易信息 银行卡信息表 存储银行卡信息 6.2表结构 6.3用户信息表: 表名 用户信息表 数据库用户 主键 customerID 其他排序字段 索引字段 customerID 序号 字段名称 数据类型(精允许为唯一区别度 默认值 约束条件/说明 度范围) 空Y/N Y/N N Y 高 无 01 customerName Char(10) 02 N Y 高 无 customerID Int 主键 03 N Y 无 高 PID Varchar(18) 04 N N 无 低 telephone Varchar(14) Varchar 05 无 N N 低 address (40) 06 Y 无 N 低 userPass Int sql脚本 create table userInfo( customerName char(10) not null, customerID int not null, PID Varchar(18) unique check(len(PID)=15 or len(PID)=18) not null, telephone varchar(14) check( telephone like('[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') or telephone like('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') or telephone like('[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') ) not null, address varchar(40) not null, userPass int not null, CONSTRAINT PK_userInfo PRIMARY KEY CLUSTERED (customerID) ); 备注 存储用户信息 交易信息表: 表名 交易信息表 数据库用户 主键 transID 其他排序字段 索引字段 transID 数据类型(精允许为唯一序号 字段名称 区别度 默认值 约束条件/说明 度范围) 空Y/N Y/N N Y 低 无 01 transDate Date 02 N Y 低 无 transMoney money 03 N Y 无 低 transType Char(10) 04 N Y 无 高 transID Int 主键 05 无 Y N 低 remark Char(10) 06 Y 无 N 高 cardID varchar(25) 外键 create table transInfo( transDate Date default(getdate()) not null, transMoney money check(transMoney>0) not null, transType char(10) check(transType like '存入' or transType like '支取 ') not null, sql脚本 transID int not null, remark char(10) null, cardID varchar(25) not null, CONSTRAINT FK_cardID FOREIGN KEY(cardID) REFERENCES cardInfo(cardID), CONSTRAINT PK_transInfo PRIMARY KEY CLUSTERED (transID) ); 备注 存储银行卡交易信息 银行卡信息表: 表名 银行卡信息表 数据库用户 主键 cardID 其他排序字段 索引字段 cardID 数据类型(精允许为唯一序号 字段名称 区别度 默认值 约束条件/说明 度范围) 空Y/N Y/N N Y 高 无 01 cardID varchar(25) 主键 02 N Y 高 无 cardPass Int 03 N N 无 低 curType Char(10) 04 N N 无 低 Char(8) cardcondtion 05 无 N N 低 openDate Date 06 Y 无 N 高 CustomerID Int 外键 07 N 无 N 低 openMoney 货币型 08 N 无 N 低 balance 整数型 09 N 无 N 低 problem 字符型 10 N 无 N 低 answer 字符型 create table cardInfo( cardID varchar(25) check( cardID like '1010 3576 [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9] [0-9][0-9][0-9]' ) not null, cardPass int check(len(cardPass)=6) default'888888' not null, customerID int not null, curType char(10) default 'RMB' not null, cardCondition char(8) check( cardCondition='正在使用' or cardCondition='挂失') default'正在使用' sql脚本 not null, openDate Date default(getdate()) not null, openMoney money check(openMoney>=1) not null, balance money not null, problem varchar(40) not null, answer varchar(20) not null, CONSTRAINT PK_cardInfo PRIMARY KEY CLUSTERED (cardID), CONSTRAINT FK_userInfo FOREIGN KEY(customerID) REFERENCES userInfo(customerID), ); 备注 存储银行卡信息 6.4 存储过程 存储过程名:procedure open_account 功能:开户 输入参数:@PID 用户身份证号码(用于验证用户的身份) 输出参数:@randCardID 银行卡卡号(用于唯一标识一张银行卡) 输出参数:@cardPassP 账户密码(取款时必须使用账户密码) 输出参数:@userPassP 用户密码(客户在查看自身信息时需使用用户密码) 输出参数:@customerID 顾客编号(用于标识客户) create procedure open_account @PID varchar(18),@customerName char(10),@cardPassP int,@cardPassV int,@userPassP int,@userPassV int,@answer varchar(20),@telephone varchar(14), @address varchar(40) As declare @PIDP varchar(18),@balanceP money,@cardPassM int,@cardPassN int, @problem varchar(40),@customerID int,@userPassM int,@userPassN int,@r numeric(15,8),@tempstr varchar(10),@randcardID char(25),@answerP varchar(20), @customerNameP char(10),@telephoneP varchar(14),@addressP varchar(40),@i int; Begin print'你的身份证是:' set @PIDP=@PID; print @PIDP; end; if exists (select @customerID from userInfo where PID=@PIDP) begin select @balanceP=balance from cardInfo,userInfo where userInfo.customerID=cardInfo.customerID; end; if(@balanceP<0) begin print'此用户为黑名单~' ; end; else begin select @r=rand((datepart(mm,getdate())*100000)+(datepart(ss,getdate())*1000)+datepart(ms,getdate())); set @tempstr=cast(@r as varchar); set @randCardID='1010 3576 '+substring(@tempstr,3,4)+' '+substring(@tempstr,5,4); print'您的卡号为:'; print @randCardID; end; set @cardPassM=@cardPassP; set @cardPassN=@cardPassV; print'请输入你的账户密码:'; print @cardPassM; print'请确认你的密码:'; print @cardPassN; if(@cardPassM!=@cardPassN) begin print '密码输入不一致~请重新输入。'; end; print'您设置的密保问题为:'; set @problem='我的名字是,'; print @problem; print'你的答案是:'; set @answerP=@answer; print @answerP; set @customerID=0; set @i=1; if(@i>0) begin set @customerID=@customerID+@i; print'你的客户编号是:'; print @customerID; set @i=@i+1; end; while(@userPassM!=@userPassN) begin print'请设置你的客户密码:'; set @userPassM=@userPassP; print @userPassM; print'请确认你的客户密码:'; set @userPassN=@userPassV; print @userPassN; end; begin print'请输入你的姓名:'; set @customerNameP=@customerName; print @customerNameP; print'请输入您的联系电话'; set @telephoneP=@telephone; print @telephoneP; print'请输入您的居住地址'; set @addressP=@address; print @addressP; insert into cardInfo values(@randcardID,@cardPassN,@customerID,'RMB','正在使用',GETDATE(),10,10,'我 的名字是,',@answerP); insert into userInfo values(@customerNameP,@customerID,@PIDP,@telephoneP,@addressP,@userPassP); end; 存储过程名:procedure fund 功能:存款 输入参数:@cardIDV 银行卡卡号(用于验证银行卡) 输入参数:@cardPassV 账户密码(用于存款时银行卡验证) 输出参数:@transMoney 交易金额(提醒用户已经交易的金额) create procedure fund @cardIDV varchar(25),@cardPassV int, @transMoneyV money as declare @cardIDP varchar(25),@cardPassP int,@transDate date,@transMoney money,@transType char(10),@transID int,@balance money,@num int begin select @cardIDP=cardID from cardInfo where cardID=@cardIDV; select @cardPassP=cardPass from cardInfo where cardID=@cardIDV; if(@cardIDV=@cardIDP and @cardPassV=@cardPassP) begin print '账号密码验证通过'; print '请放入钞票:' ; print @transMoneyV; if(@transMoneyV>=10000) begin print '对不起~本系统一次性存款不能超过10000元!,请放入少于100张100元 面额的钞票。'; end; if(@transMoneyV<10000) begin select @num=num from number; update cardInfo set balance=balance+@transMoneyV where cardID=@cardIDV; select @balance=balance from cardInfo where cardID=@cardIDV; print '操作成功~您的银行卡余额为:'; print @balance; insert into transInfo values(getdate(),@transMoneyV,'存入',@num,'',@cardIDV); update number set num=@num+1; end; end; if not exists(select * from cardInfo where cardID=@cardIDV) begin print '对不起~您的卡号在本系统中不存在'; end; if(@cardPassV!=@cardPassP) begin print '对不起~您输入的银行卡密码错误,请输入正确的密码。'; end; end; 存储过程名:procedure getPass 功能:获取密码 输入参数 @cardIDV 银行卡卡号(用于验证银行卡) 输入参数:@answerV 密保答案(获取密码时用于验证身份) 输出参数:@cardPass 账户密码(让客户获得自己遗忘的账户密码) 输出参数:@userPass 用户密码(让客户获得自己遗忘的用户密码) create procedure getPass @cardIDV varchar(25),@answerV varchar(20) As declare @cardIDP varchar(25),@problem varchar(40),@answerP varchar(20),@cardPass int, @userPass int,@customerIDC int,@customerIDU int begin select @cardIDP=cardID from cardInfo where cardID=@cardIDV; select @problem=problem from cardInfo where cardID=@cardIDV; select @answerP=answer from cardInfo where cardID=@cardIDV; select @cardPass=cardPass from cardInfo where cardID=@cardIDV; select @customerIDC=customerID from cardInfo where cardID=@cardIDV; select @customerIDU=customerID from userInfo where customerID IN(select customerID from cardInfo where customerID=@customerIDC); select @userPass =userPass from userInfo where customerID=@customerIDC; if(@cardIDV=@cardIDP) begin print '请回答密保问题' ; print @problem; print @answerV; end; if not exists(select * from cardInfo where cardID=@cardIDV) begin print '您的卡号在本系统中不存在'; end; if(@answerP=@answerV) begin print '密保答案验证通过'; print '账号密码是:'; print @cardPass; if(@customerIDC=@customerIDU) begin print '用户密码是:'; print @userPass; end; end; if(@answerP!=@answerV) begin print @answerV; print'输入错误,请输入正确的密保答案'; end; end; 6.5视图的设计 注:所有功能皆以存储过程来实现,没有进行视图的设计 6.6存储过程、函数及触发器的设计 七、数据库管理维护明 7.1 数据库的转储 转储是指DBA定期的将整个数据库复制到磁带或另外一个磁盘上保存起来的过程,备用的数据库称为后备副本或后援副本。当数据库遭到病毒或人为的破坏后,可以将后本副本重新装入。但是重装后备副本只能将数据库恢复到转储时的状态。数据库的转储有静态转储和动态转储两种方式,其中静态转储在进行转储时不允许对数据库进行任何的修改、存取活动,得到的是一个数据一致性的后备副本。静态转储虽然实现简单,但是降低了数据库的可用性。动态转储能够与用户事物并发进行,即在数据库转储期间允许对数据库进行存取或修改,动态转储的优点是不会影响新事物的运行,但是却不能保证副本中数据的正确性。 7.2 系统故障的恢复 系统故障造成数据库不一致状态的原因有两个:一是未完成事物对数据库的更新可能已经写入数据库,二是已提交对数据库的更新可能还留在缓冲区没来得及写入数据库。因此恢复操作就是要撤销故障发生时未完成的事物,重做已经完成的事物。 系统恢复步骤: (1)正向扫描日志文件,找出在故障发生前已经提交的事物,将其事物标识计入重做队列。同时找出 故障发生时尚未完成的事物,将其事物标识记入撤销队列。 (2)对撤销队列中的各个事物进行撤销(UNDO)处理。进行撤销处理的方法是,反向扫描日志文件, 对每个撤销事物的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。 (3)对重做队列中的各个事物进行重做(REDO)处理。进行重做处理的方法是:正向扫描日志文件, 对每一个重做事物重新执行日志文件登记的操作。即将日志记录中“更新后的值”写入数据库。 总结 通过这次ATM系统实训的学习,我有以下收获:第一,对利用数据库开发系统工程有了很大程度的提升,比如存储过程的建立与运用。第二,对软件工程的工程分析方法有了很大程度的提升,比如:对需求分析、概要设计分析、业务描述、可行性分析等有了一些自己的见解。第三,这次的ATM系统时我们一个团队共同开发而成的,我们每个人在团队里面都担任着不同的角色,但是每个角色都是这个团队不可或缺的部分,因此,通过这次实训,我加强了自己的团队意识、团队合作能力等。总之,这次ATM实训对于我整个能力方面是有很大提升的。
/
本文档为【曾祥炫_ATM自动取款机系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索