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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

ATM机数据库设计.docx

1、ATM机数据库设计 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】ATM机数据库设计武汉理工大学华夏学院课程设计报告书课程名称: 数据库系统原理 题 目: ATM机数据库设计 系 名: 信息工程系 专业班级: 姓 名 学 号: 指导教师: 2011 年 7 月 1 日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程系 设计题目: 银行ATM机后台数据库设计开发要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1创建数据库 Bank,数据表,并建立主外键、约束、建立表测试数据;2

2、实现以下功能:(1)简单查询(2)嵌套查询(3)连接查询(4)统计银行的资金流通余额和盈利结算(5)创建触发器(6)创建存储过程设计报告撰写格式要求:1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。严格要求自己,要独立思考,按时、独立完成课程设计任务。2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者一律以抄袭论处。设计报告正文字数不少于万字(不包括附录)时间安排:消化资料、系统调查 ?1天系统分析、总体设计,实施计划、撰写报告 ? 3天演示、验收

3、 1天指 导 教 师 签 字: 2011年 6 月 25 日系 主 任 签 字: 2011 年 6 月 26 日1.问题描述 4背景 4数据需求 4.方案图表设计 4 E-R图 4数据字典 7关系图: 83.数据库源代码 9数据库建立 9数据初始化 114.结果数据处理 12简单查询 12连接查询 13嵌套查询 13统计银行的资金流通余额和盈利结算 14创建触发器 14创建存储过程 155.结束语 171.问题描述背景 通过数据库课程设计,进一步掌握数据库系统的理论和方法。培养和锻炼开发管理信息系统的能力。为今后信息系统开发打下良好的基础。本课程环节主要针对关系数据库基础与应用这么课程进行设计

4、,数据库是一门应用性很强的专业课,在学习时必须注意理论与实践相结合。本次课程环节旨在培养学生在本课程范围内,初步掌握解决实际应用问题时所应具备的查阅资料、综合运用所学知识的能力,为毕业设计及今后从事专业工作打下基础。本课程环节要求学生了解企业管理信息系统后台数据库的设计、配置过程,掌握管理信息系统的开发方法。主要包括:需求分析、数据分析、系统逻辑模型设计方法;功能设计、物理模型设计方法;系统的实现等方法。完成一个小型系统后台数据库的设计与配置。数据需求随着社会的日益发展,银行在人们的日常生活扮演者重要的角色。ATM机给人们的日常生活带来了方便,它出现在各个街道角落里。ATM数据库系统使自动取款

5、机机高速快捷的工作,不易发生数据丢失,统计错误,使ATM机更加安全方便。开发及运行环境操作系统:Microsoft Windows XP 软件平台:Microsoft SQL Server 2000硬件环境:服务器端P4/256MB/80GB以上,客户端PC 586/128MB/40MB以上.方案图表设计 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-4 交易信息实体E-R图2.1.6总的信息实体E-R图:图2-7总的信息实体E-R图数据字典表-1用户信息表userIn

6、fo :字段名称说 明customerID顾客编号自动编号(标识列),从1开始,主键customerName开户名必填PID身份证号必填,只能是18位或15位,身份证号唯一约束telephone联系电话必填,格式为xxxx-xxxxxxxx或手机号13位address居住地址可选输入表-2银行卡信息表cardInfo:字段名称说 明cardID卡号必填,主健,银行的卡号规则和电话号码一样,一般前8位代表特殊含义,如某总行某支行等。假定该行要求其营业厅的卡号格式为:1010 3576 xxxx xxx开始,每4位号码后有空格,卡号一般是随机产生.curType货币种类必填,默认为RMBsavin

7、gType存款类型活期/定活两便/定期openDate开户日期必填,默认为系统当前日期openMoney开户金额必填,不低于1元balance余额必填,不低于1元,否则将销户pass密码必填,6位数字,开户时默认为6个“8”IsReportLoss是否挂失必填,是/否值,默认为”否”customerID顾客编号外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号表2-3交易信息表transInfo :字段名称说 明transDate 交易日期必填,默认为系统当前日期cardID卡号必填,外健,可重复索引transType 交易类型必填,只能是存入/支取transMoney交易金额必填,

8、大于0remark备注可选输入,其他说明关系图:数据库存表关系图3.数据库源代码数据库建立3.1.1创建数据库use mastergo if exists(select * from sysdatabases where name = ATM) drop database ATMgo-创建数据库create database ATMon primary( name = ATM_data, filename = d:bank, size=10mb, filegrowth =10%,maxsize=100mb)log on (name = ATM_log, filename = d:bank, s

9、ize=10mb, filegrowth =10%,maxsize=100mb)3.1.2 创建用户信息表create table userinfo(customerID int identity(1,1) primary key,customerName varchar(20) not null,PID char(18) char(18) not null unique check(PID like 0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-9 or PID like 0-90-90-90-90-90-90-90-90-90-9

10、0-90-90-90-90-9),telephone char(15) check(telephone like 0-90-90-90-9-0-90-90-90-90-90-90-9or telephone like 0-90-90-90-90-90-90-90-90-90-90-90-90-9) not null,address varchar(50)3.1.3创建银行卡信息表create table cardinfo(cardID char(30) check(cardID like 1010 3576 0-90-90-90-9 0-90-90-90-9) primary key,curT

11、ype char(5) default (RMB),savingType char(15) check(savingType like 活期or savingType like 定期or savingType like 订活两便) ,openDate datetime default (getdate() not null,openMoney money check (openMoney=1) not null,balance money check(balance =1) not null,pass char(6) check(pass like 0-90-90-90-90-90-9) de

12、fault 888888 not null,IsReportLoss char(8) check (IsReportLoss like 是or IsReportLoss like 否) default 否 not null,customerID int unique not null)3.1.4交换信息表create table transinfo( transDate datetime default getdate() not null, cardID char(30) unique not null, transType char(10) check (transType like 存入

13、or transType like 支取), transMoney money check (transMoney0 ), remark text3.1.5创建联系alter table transinfoadd foreign key(cardID) references cardinfo(cardID) alter table cardinfoadd foreign key(customerID) references userinfo(customerID)数据初始化3.2.1向表userinfo中输入数据INSERT INTO userInfo(customerName,PID,tel

14、ephone,address ) VALUES(Lily,25,湖北武汉)INSERT INTO userInfo(customerName,PID,telephone,address ) VALUES(黄安,26,湖北安陆)INSERT INTO userInfo(customerName,PID,telephone,address ) VALUES(刘浩,25,湖北孝感)INSERT INTO userInfo(customerName,PID,telephone,address ) VALUES(王娜,45966,湖北应城)INSERT INTO userInfo(customerNam

15、e,PID,telephone,address ) VALUES(张珂,25559,湖北武汉)INSERT INTO userInfo(customerName,PID,telephone,address ) VALUES(张静初,25221,湖北宜昌)INSERT INTO userInfo(customerName,PID,telephone,address ) VALUES(李明博,25256,韩国)3.2.2向cardInfo表中插入数据INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES

16、(1010 3576 5589 5986,活期,1000,1000,1)INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(1010 3576 5524 4986,定期,1000,1000,3)INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(1010 3576 5698 5987,活期,1000,1000,2)INSERT INTO cardInfo(cardID,savingType,ope

17、nMoney,balance,customerID) VALUES(1010 3576 2156 5789,定期,1000,1000,5)INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(1010 3576 5589 5966,定期,1000,1000,6)INSERT INTO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(1010 3576 1569 1856,活期,1800,1800,4)INSERT IN

18、TO cardInfo(cardID,savingType,openMoney,balance,customerID) VALUES(1010 3576 5589 5386,定期,1000,1000,7)3.2.3向transInfo表中插入数据INSERT INTO transInfo(transType,cardID,transMoney) VALUES(支取,1010 3576 5589 5986,900) INSERT INTO transInfo(transType,cardID,transMoney) VALUES(支取,1010 3576 5524 4986,600) INSER

19、T INTO transInfo(transType,cardID,transMoney) VALUES(存入,1010 3576 5589 5966,5000) INSERT INTO transInfo(transType,cardID,transMoney) VALUES(支取,1010 3576 1569 1856,300) INSERT INTO transInfo(transType,cardID,transMoney) VALUES(支取,1010 3576 5698 5987,100) 4.结果数据处理4.1.1查询本周开户的卡号,显示该卡相关信息4.1.2 查询本月交易金额最

20、高的卡号4.1.3在黄安的卡上取款900元,在张珂的卡上存入5000元4.1.3统计银行的资金流通余额和盈利结算declare in money,out moneyselect in=sum(transMoney) from transInfo where transType=存入select out=sum(transMoney) from transInfo where transType=支取print 银行流通余额总计为:+convert(varchar(20),in-out)+RMBprint 盈利:+convert(varchar(20),(out*-(in*)+RMB 创建触发器

21、 create trigger insert_transType on transinfo for insert -指定了触发对象与触发事件asbegin declare transType char(10),cardID char(30) select transType=transType,cardID=cardID from inserted if(transType = 支取) begin update transType set balance = blance - transMoney where transMoneybalance) print 交易失败,余额不足。 else i

22、f(convert(int,qk)%100!=0) print 本柜员机只提供面值100元的纸币,取款金额为100的整数倍。 else if(select balance from cardInfo where cardID=cardID)-qk1) print 取款后余额不能低于1元 else begin update cardInfo set balance = balance - qk where cardID=cardID -更新剩余余额 insert transInfo(transDate ,cardID,transType,transMoney,remark) values(def

23、ault,cardID,支取,qk,) -记录交易信息 -显示卡号,余额 declare cardID varchar(18),left money select cardID=cardID,left=balance from cardInfo where pass=pass print 交易成功 print 交易金额:+convert(varchar(10),qk) print 卡号:+convert(varchar(18),cardID)+ 余额:+convert(varchar(10),left) end end-存款 create proc saveMoney ( cardID var

24、char(18), pass varchar(6), ck money ) as begin print 正在交易,请稍候 print if(select pass from cardInfo where cardID=cardID)!=pass) print 密码不正确。 else if(select IsReportLoss from cardInfo where IsReportLoss=IsReportLoss)=是) print 卡已挂失, 交易不能进行。 else if(convert(int,ck)%100!=0) print 本柜员机只存入面值100元的纸币,存款金额为100的

25、整数倍。 else begin update cardInfo set balance =balance + ck where cardID=cardID insert transInfo(transDate ,cardID,transType ,transMoney,remark) values(default,cardID,存入,ck,) declare cardID varchar(25),left money select cardID=cardID,left=balance from cardInfo where pass=pass print 交易成功 print 交易金额:+co

26、nvert(varchar(10),ck) print 卡号:+convert(varchar(18),cardID)+余额:+convert(varchar(10),left) end end5.结束语在这一个星期中,在做系统的过程中遇到了很多问题,有的是知识存储不足,有的是考虑不够周全,有些问题不但要深入地理解,而且要不断地更正以前的错误思维。之所以能够顺利实现基本功功能,除了有自己的辛勤努力之外,遇到不能解决的问题,多亏了老师和周围同学的热心帮助。 做一个系统最重要的是整体思路,在做之前,必须要先理清自己的思路,否则在后来系统的开发过程中会感觉没有明确的方向感。开发一套系统,最重要的是细

27、心,并不是一定要做到面面俱到,但也要充分考虑到客户的需求和现实意义 ,不管什么系统,只用运用到实际应用中,才具有先现实意义,要保持清醒的头脑。我刚开始的时候就是看着老师发的文档一题题往下做,后来我发现问题之后就把整个系统的思想理清了又重新开始的。 在整个系统中把我们这个学期学到的所有知识几乎都用到了,在运用知识的过程中如果不熟悉就会无法融会贯通,所以对知识的熟练程度要求比较高,在课外时间我就加强自己的理论知识的学习,在做系统的过程中在参照自己以前的程序代码,这样就可以比较顺利的完成了。 刚开始时创建表时,有一些字段的数据类型设计的不合理。比如存款类型和账户余额在一开始时我设置的是char类型,

28、但在后来的运算中总是需要把char类型转化,这样很麻烦,我就重新定义了表,把类型转化为money,这样运算时就简单一点了。在做系统时经常会提示一些约束冲突,刚开始自己还以为做错了,后来才明白那正是自己做的约束在起作用了。这还是理论与实际不能结合的原因啊。在整个系统中有很多存储过程,自己对存储过程掌握的不是太熟练,所以在做的过程中很吃力,有时候写完存储过程执行的时候经常会出错,因为有时是输入的变量个数与存储类型不符,有时是类型不一致。但是最后通过自己的努力还是成功的完成了。 通过这次实践我学到了很多东西,做系统细心很重要,作为一个编程人员,更是如此。在整个系统中丢失了一个逗号,分号都是很严重的事情,所以保持清醒头脑,胆大心细是一个编程人员的良好心态。也为以后自己踏上工作之路做好了实践经验准备。这次实践不仅把学到的知识都进行了运用,巩固了知识之外还学习到了开发系统应该注意的问题的解决方法,这对以后的工作有很大的帮助。我

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

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