ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:241.53KB ,
资源ID:4480703      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4480703.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库ATM自动取款机系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库ATM自动取款机系统.docx

1、数据库ATM自动取款机系统长 沙 学 院课程设计说明书题目ATM系统系(部)计算机科学与技术系专业(班级)软件五班姓名学号指导教师起止日期2013.6.132013.06.22实训任务书课程名称:服务外包软件综合实训设计题目:ATM系统已知技术参数和设计要求:1 实训目的要求通过本实训,应能够对SQLServer20005工具的了解,与数据库语法的能力。1) 了解SQL的简史和功能特性。2) 掌握E-R图的绘制和数据库的设计。3) 掌握T-SQL的语法知识,并能够熟练运用它。 4) 掌握事务与存储过程的使用。2 问题描述(功能要求):本次案例将完成一个ATM银行取款机系统的数据库。(1) 创建

2、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

3、3576开头,长度为12 为cardinfo表中的货币类型(curType)添加默认约束,默认为RMB。 为cardinfo表中的存款类型添加约束,只能是活期、定活两便和定期。 cardinfo表中开卡日期默认为当天日期。 cardinfo表中的开户金额不能低于1元。 cardinfo表中的余额不能低于1元。 cardinfo表中的密码长度为6位数。默认为88888。 cardinfo表中是否挂失只能是是和否。默认为否 添加userinfo表与cardinfo表的外键约束。 transinfo表中的交易日期默认为当天。 交易类型只能是存入和支取。 添加cardinfo表与transinfo表的

4、外键约束。(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课时:答辩。计算机系机房。班级日期节次地点内容指导老师

5、11软件5班15周周四9-12节致远楼1201布置任务、上机调试曾俊勇15周周五9-12节致远楼1201上机调试15周周六9-12节致远楼1201上机调试16周周一9-12节致远楼1401上机调试16周周二9-12节致远楼1401上机调试16周周三9-12节致远楼1401上机调试16周周四9-12节致远楼1201上机调试16周周五9-12节致远楼1201上机调试16周周六5-8节致远楼1404上机调试16周周六9-12节致远楼1201答辩指导教师签名:日期:教研室主任签名: 日期:系主任签名: 日期:长沙学院课程设计鉴定表姓名学号专业软件工程班级软件五班设计题目ATM自动取款机系统指导教师曾俊

6、勇指导教师意见: 评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;一、引言1.1编写目的通过数据库ATM实训,进一步掌握数据库系统的理论和方法。培养和锻炼开发管理信息系统的能力。为今后信息系统开发打下良好的基础。本文档是ATM系统设计文档的组成部分,数据库是一门应用性很强的专业课,在学习时必须注意理论与实践相结合。本次课程环节旨在培养学生在本课程范围内,初步掌握解决实际应用问题时所应具备的查阅资料、综合运用所学知识的能力,为毕业设计

7、及今后从事专业工作打下基础。本课程环节要求学生了解企业管理信息系统后台数据库的设计、配置过程,掌握管理信息系统的开发方法。主要包括:需求分析、数据分析、系统逻辑模型设计方法;功能设计、物理模型设计方法;系统的实现等方法。完成一个小型系统后台数据库的设计与配置。目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,设计该数据库的目的是设计一个ATM系统,能够按照一定条件查询、统计交易信息,可以模拟完成开户、存款、取款、转账、注销、挂失、激活、修改密码、查询等业务。1.2参考资料资料名称作者文件编号、版本数据库系统概论王珊、萨师煊2006年5月第4版数据库设计入门经典鲍威尔2

8、007年3月第1版数据库原理克罗恩科2005年6月第1版二、 需求规约2.1 业务描述ATM系统业务是模拟了银行ATM提款机业务的管理功能。在计算机网络,数据库和先进的开发平台上,利用数据库sql语言模拟开发一个良好的ATM系统,实现顾客的开户、存款、取款、查询、转账、修改密码等一系列操作。并且在完成一定的操作后保存数据的更新和查询。在转账和取款时还要核对余额是否足够,在足够的条件下才能执行。存储内容则是存储用户的一些信息,如电话号码和身份证号码等,一些用户的详细资料,还有卡号表中的金额的信息,并对这些信息能够及时更新。2.2 需求分析开户功能: 新客户需要开户之后才能拥有相应的卡,并对其进行

9、各种交易。在存入一定金额后可以登录或跳转到交易的界面,进行各种交易。存款功能:客户要能够正确地存款,能够准确地更新客户账号中的余额,并且记录客户的操作。 取款功能:判断客户的余额是否大于取款金额,避免出现溢出现象,操作结果记录在表中。转账功能:准确核对客户的账户信息,核对转入账号的信息,判断转出账号的余额是否大于转出金额,避免出现溢出现象,并记录转出账号和转入账号的操作。注销功能: 老用户可在此注销自己原有的卡。挂失功能: 当客户遗失自己卡后,需对卡进行挂失操作,否则该卡的余额取不出。激活功能: 客户遗失自己卡并找到卡后,可对卡进行激活操作,以便继续使用该卡。修改密码功能: 客户可在此功能下修

10、改卡的原始密码。查询功能:查询客户余额;查询客户的账号信息;查询客户的操作记录;三、 数据库环境说明数据库实例数据库系统数据库部署环境数据库设计工具数据库存放位置说明ATM自动取款机系统Sql Server 2008Windows 2007Sql Server存放位置,绝对路径/相对路径用于ATM自动取款四、 数据库的命名规则4.1 数据库对象命名规则数据库对象命名规则备注表字符串功能描述字符串例如:Client客户信息表视图_View功能描述字符串例如:all_view每个客户订单数视图触发器_trigger功能描述字符串例如:Decre_trigger减少库存触发器存储过程proce_ 功

11、能描述字符串例如:proce_SearchClient查询客户 信息存储过程 4.2 数据项编码规则数据项命名规则数据类型长度范围备注编号类整数序号整型0-65535无姓名类字符串Varchar(20)0-20位无地址类字符串Varchar(20)0-20位无电话类字符串Char(11)11位无价格类浮点型float无无时间类Datetime型Datetime无2011-01-01 10:10:10五、 逻辑设计5.1 E-R图用户信息表户名顾客编号顾客编号PID联系电话居住地址银行卡信息表表卡号密码货币类型是否挂失余额顾客编号开户金额开户日期属于交易信息表属于交易日期交易金额交易类型卡号备注

12、1NMN交易号5.2 关系模型注:下划线为主码,下划波浪线为外码用户(顾客编号,开户名,身份证号码,联系电话,居住地址)银行卡(卡号,顾客编号,密码,开户金额,开户日期,是否挂失,余额,存款类型,货币类型)交易(交易号,卡号,交易金额,交易日期,交易类型,备注)六、 物理设计6.1表汇总表名功能说明表userinfo用户信息表,存储用户信息等表cardinfo银行卡信息表,存储银行卡信息等表transinfo交易信息表,存储客户的交易信息信息等6.2表1: userinfo表( 用户信息表)表名用户信息表(userinfo)数据库用户sa主键customer_ID其他排序字段无索引字段无序号字

13、段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1customer_IDintNY无无identity(1,1)主键/客户编号2customer_namechar(10)NN无无客户姓名3P_IDvarchar(18)NY无无check(len(P_ID)=15 or len(P_ID)=18)身份证号码4customer_phonevarchar(11)YN无无check(customer_phone like 0-90-90-90-90-90-90-90-90-90-90-9 )联系电话5customer_addressvarchar(50) YN无无居住地址s

14、ql脚本create table userinfo( customer_ID int identity(1,1) primary key,-顾客编号 customer_name char(10) not null,-开户名 P_ID varchar(18) unique check(len(P_ID)=15 or len(P_ID)=18) not null,-身份证号码 customer_phone varchar(11) check(customer_phone like 0-90-90-90-90-90-90-90-90-90-90-9 ),-联系电话 customer_address

15、varchar(50) -居住地址 );6.3表2: cardinfo表( 银行卡信息表)表名银行卡信息表(cardinfo)数据库用户sa主键card_ID其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1card_IDchar(19) NY无无check(card_ID like 1010 3576 0-90-90-90-9 0-90-90-90-9)主键/卡号2customer_ID int NY无无外键/顾客编号3card_passwordchar(6)NN无无default 888888 check(len(card_pass

16、word)=6)密码4open_moneymoneyNN无无check(open_money=1)开户金额5open_datedatetimeNN无无default getdate() 开户日期6isreportlosschar(2)YN无无default 否 check(isreportloss=是 or isreportloss=否)挂失状态7balancemoneyNN无无check(balance=1)余额8saving_typevarchar(10)NN无无check(saving_type like 活期 or saving_type like 定活两便 or saving_typ

17、e like定期)存款类型9cur_typechar(5)NN无无default RMB /货币类型sql脚本create table cardinfo( card_ID char(19) check(card_ID like 1010 3576 0-90-90-90-9 0-90-90-90-9) primary key,-卡号 customer_ID int,-顾客编号 card_password char(6) not null default 888888 check(len(card_password)=6),-卡密码 open_money money not null check(

18、open_money=1),-开户金额 open_date datetime default getdate() not null, -开户日期 isreportloss char(2) default 否 check(isreportloss=是 or isreportloss=否), -是否挂失 balance money not null check(balance=1), -余额 saving_type varchar(10) not null check(saving_type like 活期 or saving_type like 定活两便 or saving_type like定

19、期),-存款类型 cur_type char(5) not null default RMB ,-货币类型 foreign key (customer_ID) references userinfo(customer_ID) on delete cascade on update cascade);6.4表3: transinfo表(供应表)表名交易信息表(transinfo)数据库用户sa主键trans_ID其他排序字段无索引字段无序号字段名称数据类型(精度范围)允许为空Y/N唯一Y/N区别度默认值约束条件/说明1trans_IDintNY无无identity(1,1)主键/交易号2card

20、_IDchar(19)NY无无check(card_ID like 1010 3576 0-90-90-90-9 0-90-90-90-9)外键/卡号3trans_moneymoneyNN无无check(trans_money0)/交易金额4trans_datedetetimeNN无无defaultgetdate()交易日期5trans_typevarchar(5)NN无无check(trans_type like 存入 or trans_type like 支取)交易类型6remarkvarchar(50)YN无无备注sql脚本create table transinfo( trans_ID

21、 int identity(1,1) primary key,-交易号 card_ID char(19) not null check(card_ID like 1010 3576 0-90-90-90-9 0-90-90-90-9) ,-卡号 trans_money money not null check(trans_money0),-交易金额 trans_date datetime not null defaultgetdate(),-交易日期 trans_type varchar(5) check(trans_type like 存入 or trans_type like 支取),-交

22、易类型 remark varchar(50), -备注 foreign key (card_ID) references cardinfo(card_ID) on delete cascade on update cascade)6.5 存储过程的设计1、开户存储过程- 提示:银行卡卡号共19位(4位数一组,中间用空格隔开),对于某个银行来说,前面8个数字是固定的,后面8个数字-要求随机的,并且唯一。我们只需要产生8位随机的数字,然后和前8位固定的数字“10103576”连接即可。随机函数的用法下:-RAND(随机种子):将产生01的随机数,要求每次的随机种子不一样。为了保证随机种子每次不相同

23、,一般的算法如下:- 随机种子=当前的月份数100000 + 当前秒数1000 +当前毫秒数-产生了01的随机数后,我们取小数点后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(

24、5), -货币类型 customer_name char(10), -用户姓名 P_ID varchar(18) -身份证号 AS declare 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=r set randCardID=1010 3576 +substring(tempStr,3,4)+ +substring(t

25、empStr,7,4) -若存在该客户信息 declare customer_ID int if EXISTS(select * from userinfo where P_ID=P_ID) begin - 禁用CHECK约束 alter table cardinfo nocheck 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,i

26、sreportloss,balance,saving_type,cur_type) values(randCardID,customer_ID,card_password,open_money, getdate(),isreportloss,open_money,saving_type,cur_type) - 启用CHECK约束 alter table cardinfo check constraint ALL; end else begin print需注册用户信息!请先登记您的详细信息. end-执行存储过程:declare randCardID char(19)exec proc_Car

27、dID2 randCardID output,123456,109,否,活期,RMB,曲先生,421411188001230314print 您的卡号为:+randCardID2、存钱存储过程在存储过程中定义三个变量,card_ID char(19), inputmoney money和card_password char(6),这三个变量是用来核对账号的。card_ID char(19)用来核对卡号是否正确,inputmoney money暂时存储需要存入的金额,card_password char(6)则是用来核对密码的。存储过程中对所有需要核对的信息都进行了准确的核对,例如核对账号是否处于挂失状态,核对账号密码是否正确。在核对完所有的信息之后才准确地完成操作。存钱存储过程如下:create procedure proc_in

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1