已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ATM取款机系统数据库设计,2,问题描述,某银行拟开发一套ATM取款机系统,实现如下功能:1、开户(到银行填写开户申请单,卡号自动生成)2、取钱3、存钱4、查询余额5、转账(如使用一卡通代缴手机话费、个人股票交易等)现要求对“ATM柜员机系统”进行数据库的设计并实现,数据库保存在D:bank目录下,文件增长率为15%。,3,问题分析-1,用户信息表:userInfo:,4,问题分析-2,银行卡信息表:cardInfo,5,问题分析-3,交易信息表:transInfo,6,难点分析-1,设计ER图、建库、建表、加约束、建关系部分,建库语句:CREATEDATABASEbankDBON(NAME=,FILENAME=,SIZE=,FILEGROWTH=)LOGON(.),建表语句:CREATETABLE表名(customerIDINTIDENTITY(1,1),customerNameCHAR(8)NOTNULL,.),文件增长率,数据文件,日志文件,自动编号,从1开始,非空/必填,7,难点分析-2,设计ER图、建库、建表、加约束、建关系部分,建约束语句:ALTERTABLEcardInfoADDCONSTRAINTPK_cardIDPRIMARYKEY(cardID),CONSTRAINTCK_cardIDCHECK(cardIDLIKE101035760-9),CONSTRAINTDF_curTypeDEFAULT(RMB)FORcurTypeCONSTRAINTFK_customerIDFOREIGNKEY(customerID)REFERENCESuserInfo(customerID),CONSTRAINTUQ_PIDUNIQUE(PID),.,主键约束,检查约束,外键约束(建关系),唯一约束,默认约束,8,难点分析-3,建表时:IDENTITY(1,1),check约束:len()函数,建表时:NOTNULL,check约束:like0-90-9,设计ER图、建库、建表、加约束、建关系部分,9,子查询:SELECT.FROMWHEREtransMoney=(SELECTFROM)内部连接:SELECTFROMuserInfoINNERJOINcardInfoON.SQL编程:DECLAREinMoneymoneySELECTinMoney=sum(transMoney)from.where(transType=存入)视图:CREATEVIEWview_userInfoAS-SQL语句GO,难点分析-4,声明变量,插入测试数据、常规业务模拟、创建索引视图部分,给变量赋值的两种方法:SELECT或SET,测试视图:SELECT.FROMview_userInfo,10,CREATETRIGGERtrig_transONtransInfoFORINSERTAS.selectmyTransType=transType,outMoney=transMoney,myCardID=cardIDfrominsertedif(.)beginraiserror(交易失败!余额不足!,16,1)rollbacktran-取消交易endGO,难点分析-5,插入的数据临时表:inserted,创建触发器部分,错误提示:raiserror()函数,取消交易,撤销事务:rollbacktrans,插入触发器,11,创建存储过程:CREATEPROCEDUREproc_takeMoneycardchar(19),typechar(4),inputPasschar(6)=AS.SQL语句GO调用存储过程:EXECproc_openAccount李四,3212456789123456781,定期,难点分析-6,存储过程部分1:,存储过程的参数,有默认值的参数,放在最后,12,创建存储过程:CREATEPROCEDUREproc_randCardIDrandCardIDchar(19)OUTPUTSELECTr=RAND(随机种子)例如:0.082332623215.setrandCardID=.SUBSTRING(tempStr,3,4).GO调用存储过程:DECLAREmycardIDchar(19)EXECUTEproc_randCardIDmycardIDOUTPUT,难点分析-7,存储过程部分2:,OUTPUT表示传出的参数,产生0-1的随机数,字符串截取函数,截取小数点后8位作为卡号的后八为数卡号(4位一组,用空格隔开):1010357608233262,调用带output输出参数的存储过程,13,阶段划分,第一阶段(30分钟)利用PowerDesigner设计E-R图第二阶段(50分钟)利用SQL语句实现建库、建表、加约束、建关系第三阶段(30分钟)利用SQL语句插入测试数据、模拟常规业务操作第四阶段(40分钟)利用SQL语句创建索引和视图、创建触发器第五阶段(60分钟)利用SQL语句创建3个存储过程并测试第六阶段(20分钟)利用SQL语句创建转帐事务并测试第七阶段(20分钟)利用SQL语句创建系统维护帐号并授权,14,第一阶段,第一阶段(50分钟)利用PowerDesigner设计E-R图要求学员自己动手操作,教员巡视,解答学员提出的问题,15,阶段检查,针对第一阶段抽查学员的操作结果教员给出点评或集中演示难点部分,16,第一阶段结果演示1,第一阶段操作的结果:?加吗?,17,第二阶段,第二阶段(50分钟)利用SQL语句实现建库、建表、加约束、建关系要求学员自己动手编写SQL语句,教员巡视,解答学员提出的问题,18,阶段检查,针对第二阶段抽查学员的编码结果教员给出点评或集中演示难点部分,19,第二阶段标准代码演示-1,建库,IFexists(SELECT*FROMsysdatabasesWHEREname=bankDB)DROPDATABASEbankDBGOCREATEDATABASEbankDBON(NAME=bankDB_data,FILENAME=d:bankbankDB_data.mdf,SIZE=1mb,FILEGROWTH=15%)LOGON(.,检验数据库是否存在,如果为真,删除此数据库,创建建库bankDB,20,第二阶段标准代码演示-2,建表:,USEbankDBGOCREATETABLEuserInfo用户信息表(customerIDINTIDENTITY(1,1),customerNameCHAR(8)NOTNULL,PIDCHAR(18)NOTNULL,telephoneCHAR(13)NOTNULL,addressVARCHAR(50)GO,CREATETABLEcardInfo-银行卡信息表(cardIDCHAR(19)NOTNULL,curTypeCHAR(5)NOTNULL,savingTypeCHAR(8)NOTNULL,openDateDATETIMENOTNULL,openMoneyMONEYNOTNULL,balanceMONEYNOTNULL,passCHAR(6)NOTNULL,IsReportLossBITNOTNULL,customerIDINTNOTNULL),CREATETABLEtransInfo-交易信息表(transDateDATETIMENOTNULL,transTypeCHAR(4)NOTNULL,cardIDCHAR(19)NOTNULL,transMoneyMONEYNOTNULL,remarkTEXT)GO,21,第三阶段,第三阶段(60分钟):利用SQL语句实现插入测试数据、常规业务操作要求学员自己动手操作,教员巡视,解答学员提出的问题,22,阶段检查,针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评,23,第三阶段标准代码演示-1,张三和李四开户:,SETNOCOUNTON-不显示受影响的条数信息INSERTINTOuserInfo(customerName,PID,telephone,address)VALUES(张三,123456789012345北京海淀)INSERTINTOcardInfo(cardID,savingType,openMoney,balance,customerID)VALUES(1010357612345678,活期,1000,1000,1)INSERTINTOuserInfo(customerName,PID,telephone)VALUES(李四,321245678912345678INSERTINTOcardInfo(cardID,savingType,openMoney,balance,customerID)VALUES(1010357612121134,定期,1,1,2)SELECT*FROMuserInfoSELECT*FROMcardInfoGO,24,第三阶段标准代码演示-2,张三的卡号取款900元,李四的卡号存款5000元,/*-交易信息表插入交易记录-*/INSERTINTOtransInfo(transType,cardID,transMoney)VALUES(支取,1010357612345678,900)/*-更新银行卡信息表中的现有余额-*/UPDATEcardInfoSETbalance=balance-900WHEREcardID=1010357612345678/*-交易信息表插入交易记录-*/INSERTINTOtransInfo(transType,cardID,transMoney)VALUES(存入,1010357612121134,5000)/*-更新银行卡信息表中的现有余额-*/UPDATEcardInfoSETbalance=balance+5000WHEREcardID=1010357612121134GO,25,第三阶段标准代码演示-3,修改密码和挂失帐号,/*-修改密码-*/-1.张三(卡号为1010357612345678)修改银行卡密码为123456-2.李四(卡号为1010357612121134)修改银行卡密码为123123updatecardInfosetpass=123456WHEREcardID=1010357612345678updatecardInfosetpass=123123WHEREcardID=1010357612121134SELECT*FROMcardInfo/*-李四的卡号挂失-*/updatecardInfosetIsReportLoss=1WHEREcardID=1010357612121134SELECT*FROMcardInfoGO,26,第三阶段标准代码演示-4,统计银行的资金流通余额和盈利结算,DECLAREinMoneymoneyDECLAREoutMoneymoneyDECLAREprofitmoneySELECTinMoney=sum(transMoney)FROMtransInfoWHERE(transType=存入)SELECToutMoney=sum(transMoney)FROMtransInfoWHERE(transType=支取)print银行流通余额总计为:+convert(varchar(20),inMoney-outMoney)+RMBsetprofit=outMoney*0.008-inMoney*0.003print盈利结算为:+convert(varchar(20),profit)+RMBGO,27,第三阶段标准代码演示-5,其他操作,/*-查询本周开户的卡号,显示该卡相关信息-*/SELECT*FROMcardInfoWHERE(DATEDIFF(Day,getDate(),openDate)0)beginprint转帐失败!rollbacktranendelsebeginprint转帐成功!committranendGO,-调用上述事务过程转帐declarecard1char(19),card2char(19)selectcard1=cardIDfromcardInfoInnerJoinuserInfoONcardInfo.customerID=userInfo.customerIDwherecustomerName=李四selectcard2=cardIDfromcardInfoInnerJoinuserInfoONcardInfo.customerID=userInfo.customerIDwherecustomerName=张三EXECproc_transfercard1,card2,2000GO,40,第七阶段,第七阶段(60分钟):利用SQL语句创建系统维护帐号并授权要求学员自己动手操作,教员巡视,解答学员提出的问题,41,阶段检查,针对第三阶段抽查学员的编码结果抽查学员编写的完整代码,要求学员上台讲解,并演示运行结果教员给出点评,42,第七阶段标准代码演示-1,添加系统维护帐号sysAdmin,并授权,-1.添加S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学术论文选题五大忌讳四个原则辑文编译-4027(同名40088)
- 三农产业供应链优化作业指导书
- 怎么样写好汉语言文学毕业
- 天津音乐学院历届(2009年)硕士研究生学位论文选题一
- 在自主游戏中支持幼儿的深度学习-以大班沙水活动为例
- 利用掺杂技术提高OLED性能及白光OLED色度改善的理论研究
- 企业薪酬管理问题研究综述毕业论文文献综述开题报告任务书
- 汉语言文学设计毕业论文
- 导师对研究生论文评语(三)
- 企业员工心理健康状况调查与分析报告
- 2025化工维修岗位试题及答案
- 精美的邮票(教学设计)-2024-2025学年人教版(2012)美术四年级上册
- 上市公司财务培训课件
- 名词性从句的语法课件 高三英语一轮复习
- 2025浙江省测绘科学技术研究院招聘编外人员12人笔试考试参考试题附答案解析
- 2025广东深圳市龙岗区国资国企系统面向全市集中选聘中层管理人员考试及考察笔试历年常考点试题专练附带答案详解2套试卷
- 2025年研学旅行练习题库含答案
- 2025年兼职书法教师合同协议
- 18种重点危险化学品生产工艺典型反应及安全控制条件
- 新型二次加压供水设备技术方案
- 基于PLC的自动洗车控制系统设计
评论
0/150
提交评论