




免费预览已结束,剩余14页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录第1章 需求分析11.1 背景描述11.2 数据需求11.3 事物需求1第2章 概念设计32.1 E-R图32.1.1 用户信息实体E-R图32.1.2 银行卡信息实体E-R图32.1.3 交易信息实体E-R图42.1.4 总体信息实体E-R图42.2 数据字典52.3 关系图6第3章 逻辑设计73.1 E-R图转化为关系模式7第4章 物理设计84.1 数据库数据文件的建立84.2 基本表的创建84.2.1 银行卡信息表的建立84.2.2 交易信息表的建立94.2.3 用户信息表的建立94.3 索引和视图的建立94.3.1 建立索引94.3.2 建立视图9第5章 完整性设计105.1.在UserInfo表上添加约束105.2 在CardInfo表上添加约束105.3在TransInfo表上添加约束10第6章 处理业务实现116.1数据库测试数据输入116.1.1 UserInfo测试数据输入116.1.2 CardInfo表测试数据输入116.2 业务实现126.2.1 存取款业务实现126.2.2 银行资金流通和盈利结算的统计126.2.3 查询本周开户的卡号136.2.4 查询本月交易金额最高的卡号136.3 触发器的实现146.4 转账存储过程的实现14第7章 设计总结17参考文献17第1章 需求分析1.1 背景描述ATM柜员机系统。ATM柜员机是由计算机控制的持卡人自我服务型的金融专用设备。ATM是英文Automatic Teller Machine的缩写。ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。在ATM自动取款机上也可以进行账户查询、修改密码和转账的业务。作为自助式金融服务终端,除了提供金融业务功能之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能。ATM自动取款机系统,是一个有终端机,ATM系统,数据库组成的应用系统。系统功能有用户在ATM上提取现金、查询账户余额、修改密码及转账功能。 ATM自动取款机系统向用户提供一个方便、简单、及时、随时随地可以随心所欲存取款的互联的现代计算机化的网络系统。可以大大减少工作人员,节约人力资源的开销,同时由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。 减少了用户办理业务的等待时间;用户可以随时随地可以随心所欲存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。1.2 数据需求ATM柜员机系统需要完成功能主要有:1 账户基本信息的输入,包括顾客编号,开户名,身份证号,联系电话,居住地址。2 账户基本信息的查询,修改,包括身份证号,联系电话,居住地址。3 银行卡基本信息的输入,包括银行卡号,银行卡密码,货币类型。4 银行卡基本信息的查询,修改,包括银行卡密码,货币类型。5 交易信息的输入,包括交易卡卡号,交易金额,交易日期,交易类型。6 对交易事务的处理,包括对银行卡余额的判断,并终止或继续交易。7 账户存款取款业务,包括取款,存款。8 统计银行的资金流通和盈利结算。9 查询一周内开户的卡号,并能显示卡的相关信息,包括卡号,余额,余额。10 查询本月交易金额最高的卡号。1.3 事物需求(1)在银行卡信息管理部分,要求:a可以查询银行卡拥有者的相应信息。b.可以对银行卡拥有者信息进行添加及删除的操作。(2)在用户信息管理部分,要求:a.可以查询开户信息。b.可以对账户信息进行维护,包括添加及删除的操作。(3)在账户交易信息管理部分,要求:。a.可以浏览账户交易基本信息。b.可以对账户信息进行维护操作。(4)在用户视图信息管理部分,要求: a可以浏览用户视图信息。 b可以维护用户视图相关信息。第2章 概念设计2.1 E-R图2.1.1 用户信息实体E-R图用户信息实体顾客编号开户名身份证号联系电话居住地址图 2.1 用户信息实体E-R图2.1.2 银行卡信息实体E-R图银行卡信息实体卡号货币种类存款类型开户日期开户金额金额密码是否挂失顾客编号图 2.2 银行卡信息实体E-R图2.1.3 交易信息实体E-R图交易信息实体交易日期卡号交易类型交易金额备注图2.3 交易信息实体E-R图2.1.4 总体信息实体E-R图银行卡交易信息用户使用交易m11n图2.4 总体信息实体E-R图2.2 数据字典表2.1 用户信息UserInfo表字段名称数据类型长度约束含义CustomerIDint主键顾客编号CustomerNamevarchar19必填开户名PIDChar()18必填,唯一约束身份证号TelephoneVarchar()13必填联系电话AddressVarchar()50可选输入居住地址表 2.2 银行卡信息CardInfo表字段名称数据类型长度约束含义CardIDChar()19主键卡号CurTypeChar()6必填货币种类SavingTypeChar()8必填存款类型OpenDateDatetime必填开户日期OpenMoneymoney必填开户金额Balancemoney必填余额PassChar()6必填密码IsReportLossbit必填是否挂失CustomerIDint外键顾客编号表 2.3 交易信息transInfo表字段名称数据类型长度约束含义TransIDint必填主键交易编号TransDatedatetime必填交易日期CardIDchar20外键卡号TransTypechar10必填交易类型TransMoneymoney必填交易金额Remarktext50可选输入备注2.3 关系图图 2.5 关系图第3章 逻辑设计3.1 E-R图转化为关系模式银行卡信息(卡号,货币类型,存款类型,开户日期,开户金额,余额,密码,是否挂失,顾客号)卡号为主码,顾客号为外码用户信息(顾客号,开户名,身份证号,联系电话,地址)顾客号为主码交易信息(交易编号,交易日期,卡号,交易类型,交易金额,备注)交易编号为主码,卡号为外码第4章 物理设计4.1 数据库数据文件的建立create database BankDB -建立数据库on primary(name=Bank_primary, -主数据文件filename=D:BankDBBank1.mdf,size=1MB,maxsize=50MB,filegrowth=30%),(name=Bank_data, -二级数据文件filename=D:BankDBBank2.ndf,size=1MB,maxsize=20MB,filegrowth=20%)log on(name=Bank_log, -日志文件filename=D:BankDBBank3.ldf,size=1MB,maxsize=10MB,filegrowth=10%)Go4.2 基本表的创建4.2.1 银行卡信息表的建立create table CardInfo -CardInfo表的创建与定义(CardID char(19) not null,CurType char(6) not null,SavingType char(8) not null,OpenDate datetime not null,OpenMoney money not null,Balance money not null,Pass char(6) not null,IsReportLoss bit not null,CustomerID int not null)go4.2.2 交易信息表的建立create table TransInfo -TransInfo表的创建与定义(TransID int identity not null,TransDate datetime not null,CardID char(19) not null,TransType char(4) not null,TransMoney money not null,Remark text)go4.2.3 用户信息表的建立create TABLE UserInfo -UserInfo表的创建与定义(CustomerID int identity(1,1),CustomerName varchar(8) not null,PID char(18) not null,Telephone varchar(13) not null,Address varchar(50)Go4.3 索引和视图的建立4.3.1 建立索引create nonclustered index index_CardID on transInfo(cardID) -创建索引4.3.2 建立视图create view Card_Info asselect distinct CardInfo.CardID,UserInfo.CustomerName,CardInfo.OpenDate,CardInfo.Balance,UserInfo.PID,UserInfo.Telephone,UserInfo.Address from UserInfo,CardInfowhere CardInfo.CustomerID=UserInfo.CustomerID第5章 完整性设计5.1.在UserInfo表上添加约束alter table UserInfo -在UserInfo表上添加约束add constraint PK_UserInfo primary key(CustomerID), constraint UQ_PID unique(PID), constraint CK_PID check(len(PID)=15 or len(PID)=18), constraint CK_Telephone check(Telephone like0-90-90-90-9-0-90-90-90-90-90-90-90-9or Telephone like 0-90-90-9-0-90-90-90-90-90-90-90-9 or len(Telephone)=11)Go5.2 在CardInfo表上添加约束alter table CardInfo -在CardInfo表上添加约束add constraint PK_CardID primary key(CardID), constraint CK_CardID check(CardID like 1010 3576 0-90-90-90-9 0-90-90-90-9), constraint DF_CurType default(RMB) for CurType, constraint CK_SavingType check(SavingType in(活期,定活两便,定期), constraint DF_OpenDate default(getdate() for OpenDate, constraint CK_OpenMoney check(OpenMoney=1), constraint CK_Balance check(balance=1), constraint CK_Pass check(Pass like 0-90-90-90-90-90-9), constraint DF_Pass default(888888) for Pass, constraint DF_IsReportLoss default(0) for IsReportLoss, constraint FK_CardInfo_CustomerID_UserInfo foreign key(CustomerID) references UserInfo(CustomerID)go5.3在TransInfo表上添加约束alter table TransInfo -在TransInfo表上添加约束add constraint DK_TransDate default(getdate() for TransDate, constraint FK_TransInfo_CardID_CardInfo foreign key(CardID) references CardInfo(CardID),constraint CK_TransType check(TransType in(存入,支取), constraint CK_TransMoney check(TransMoney0)go第6章 处理业务实现6.1数据库测试数据输入6.1.1 UserInfo测试数据输入insert into UserInfo(CustomerName,PID,Telephone,Address)select 张三,123453748595487476北京海淀 unionselect 李四,321245678912345678河北石家庄 unionselect 王五,421126198512345725湖北武汉 unionselect 赵六,421126198712348521湖北黄冈 unionselect 丁六,567891321242345818北京西城区unionselect 王五,567891234532124674河北石家庄 unionselect 张三,123456789012345343北京海淀区 unionselect 丁一,334456889012678457,2222-63598978,河南新乡 unionselect 丁湖南长安市 unionselect 夏湖南长沙市 unionselect 戴湖北荆门市 unionselect 张湖北红安 unionselect 叶虚2222-63598978,湖北黄冈市插入成功后图 6.1 UserInfo表数据6.1.2 CardInfo表测试数据输入insert into CardInfo(CardID,SavingType,OpenMoney,Balance,CustomerID)select 1010 3576 1234 5678,活期,1000,1000,12 unionselect 1010 3576 1212 1134,定期,1,1,6 unionselect 1010 3576 1256 2289,定活两便,2000,2000,1 unionselect 1010 3576 1278 3391,定期,1500,1500,2 unionselect 1010 3576 1223 4567,活期,2000,2000,3 unionselect 1010 3576 1298 8765,定活两便,2500,2500,4 unionselect 1010 3576 7489 4893,定期,3000,3000,7go图6.2 CardInfo表数据6.2 业务实现6.2.1 存取款业务实现/*张三卡号:1010 3576 1234 5678 取款900 */insert into TransInfo(CardID,TransType,TransMoney)-在TransInfo表中插入交易数据values (1010 3576 1234 5678,支取,900)update CardInfo -更新卡信息set Balance=Balance-900 where CardID=1010 3576 1234 5678go/*李四卡号:1010 3576 1212 1134 存款5000*/insert into TransInfo(CardID,TransType,TransMoney)values(1010 3576 1212 1134,存入,5000)update CardInfoset Balance=Balance+5000 where CardID=1010 3576 1212 1134图 6.3 存取款业务数据处理结果图6.2.2 银行资金流通和盈利结算的统计declare moneyIn moneydeclare moneyOut moneydeclare profit moneydeclare all moneyselect moneyIn=sum(TransMoney) from TransInfo where TransType=存入select moneyOut=sum(TransMoney) from TransInfo where TransType=支取print 银行流通金额总计为:+convert(varchar(10),moneyIn-moneyOut)+RMBset profit=moneyOut*0.008-moneyIn*0.003print 盈利结算为:+ convert(varchar(10),profit)+RMBgo图 6.4 银行流通金额和盈利数据处理6.2.3 查询本周开户的卡号SELECT * FROM CardInfo WHERE (DATEDIFF(Day,getDate(),openDate)DATEPART(weekday,openDate)图 6.5 查询本周开户卡号6.2.4 查询本月交易金额最高的卡号SELECT * FROM TransInfoSELECT DISTINCT CardID FROM TransInfoWHERE TransMoney=(SELECT Max(TransMoney) FROM TransInfo)图 6.6 查询本月交易金额最高卡号6.3 触发器的实现create trigger Trans_triggeron TransInfo for insert,updateas declare upMoney moneydeclare trType char(4)declare moneyRemain moneydeclare cardID char(19)select upMoney=t.TransMoney,trType=t.TransType,moneyRemain=c.Balance,cardID=c.CardIDfrom TransInfo t,inserted i,CardInfo cwhere t.CardID=i.CardID and i.CardID=c.CardIDif(trType=支取) and (moneyRemainupMoney)begin raiserror(您的账户余额不足!,16,1) print 您的卡号为+cardID print 您卡上的余额为+convert(varchar(10),moneyRemain) rollback transactionend触发器测试insert into TransInfo(CardID,TransType,TransMoney)values(1010 3576 1223 4567,支取,2000)update CardInfoset Balance=Balance-2000 where CardID=1010 3576 1223 4567图 6.7 触发器测试6.4 转账存储过程的实现create procedure proc_transform card1 char(19),pass1 char(6),money money,card2 char(19),pass2 char(6)asdeclare remain1 money,remain2 moneyprint交易正在进行,请稍后.if(select Pass from CardInfo where CardID=card1)pass1 or (select Pass from CardInfo where CardID=card2)pass2)beginraiserror(密码错误,无法交易,16,1)returnenddeclare remain moneyselect remain=Balance from CardInfo where CardID=card1if(remainmoney+1) begin print 余额不足,交易失败 endelse begin update CardInfo set Balance=Balance-money where CardID=card1 update CardInfo set Balance=Balance+money where CardID=card2 print交易成功end select remain1=Balance from CardInfo where CardID=card1 select remain2=Balance from CardInfo where CardId=card2 print 转账卡号为:+card1+卡上余额为:+convert(char,remain1) print 被转账卡卡号为:+card2+卡上余额为:+convert(char,remain2)go密码错误测试:execute proc_transform 1010 3576 1212 1134,123456,6000,1010 3576 1223 4567,888888图 6.8 密码错误测试余额不足测试:execute proc_transform 1010 3576 1212 1134,888888,6000,1010 3576 1223 4567,888888图 6.9 余额不足测试转账成功测试:execute proc_transform 1010 3576 1212 1134,888888,1000,1010 3576 1223 4567,888888图 6.10 转账成功测试第7章 设计总结在这一个星期中,在做ATM柜员机系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,有些问题不但要深入地理解,而且要不断地更正以前的错误思维。之所以能够顺利实现基本功功能,遇到不能解决的问题,在积极咨询培训老师和同学之后都能成功的解决。做一个系统最重要的是整体思路,在做之前,必须要先理清自己的思路,否则在后来系统的开发过程中会感觉没有明确的方向感。开发一套系统,最重要的是细心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义 ,不管什么系统,只用运用到实际应用中,才具有先现实意义,要保持清醒的头脑。我刚开始的时候就是看着老师发的文档一题题往下做,后来我发现问题之后就把整个系统的思想理清了又重新开始的。在整个系统中把我们这个学期学到的所有知识几乎都用到了,在运用知识的过程中如果不熟悉就会无法融会贯通,所以对知识的熟练程度要求比较高,在做系统的过程中在参照自己以前的程序代码,这样就可以比较顺利的完成了。刚开始时创建表时,有一些字段的数据类型设计的不合理。比如存款类型和账户余额在一开始时我设置的是char类型,但在后来的运算中总是需要把char类型转化,这样很麻烦,我就重新定义了表,把类型转化为money,这样运算时就简单一点了。在做系统时经常会提示一些约束冲突,刚开始自己还以为做错了,后来才
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年反射疗法师大赛理论能力提升B卷题库【完整版】附答案详解
- 2025年医学研究方法学统计分析试题答案及解析
- 2025年自考专业(人力资源管理)经典例题及答案详解【必刷】
- 农发行宜宾市珙县2025秋招结构化面试15问及话术
- 2025年临床执业医师模拟题库附答案详解(培优)
- 全面监控方案制定
- 地产项目施工安全预案
- 小区环境维护与管理
- 学霸的学习方法大公开
- 妇女生殖健康保护规程
- 2025年度反洗钱阶段考试培训试考试题库(含答案)
- 收割芦苇施工方案
- 普通黄金现货购买合同8篇
- 三力测试考试题库及答案视频讲解
- 2025年河南省人民法院聘用书记员考试试题及答案
- 2025年中学教师资格考试《综合素质》核心考点与解析
- 口腔冠延长术
- 部编版七年级语文上册《闻王昌龄左迁龙标遥有此寄》课件
- 诊所经营管理课件
- 2024年江苏省连云港市辅警协警笔试笔试模拟考试(含答案)
- 铁路工务介入管理办法
评论
0/150
提交评论