第十八章Oracle实战案例

上传人:M****1 文档编号:569177914 上传时间:2024-07-28 格式:PPT 页数:28 大小:7.24MB
返回 下载 相关 举报
第十八章Oracle实战案例_第1页
第1页 / 共28页
第十八章Oracle实战案例_第2页
第2页 / 共28页
第十八章Oracle实战案例_第3页
第3页 / 共28页
第十八章Oracle实战案例_第4页
第4页 / 共28页
第十八章Oracle实战案例_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《第十八章Oracle实战案例》由会员分享,可在线阅读,更多相关《第十八章Oracle实战案例(28页珍藏版)》请在金锄头文库上搜索。

1、Inspur Education 第第1818章章 OracleOracle实战案例实战案例Inspur Education 本章目标本章目标 u运用前面的章节所涉及的知识进行运用前面的章节所涉及的知识进行OracleOracle项目项目功能的实现功能的实现2Inspur Education 需求说明与概要设计需求说明与概要设计uATMATM基本功能基本功能3Inspur Education 需求说明与概要设计需求说明与概要设计uATMATM用户使用的基本流程用户使用的基本流程4欢迎界面密码验证选择操作界面存款取款查询余额查询明细转账修改密码继续交易退出打印凭条打印是是否否是否Inspur E

2、ducation 需求说明与概要设计需求说明与概要设计u取款流程取款流程5取款100元200元300元400元自定义500元输入金额100的倍数取走钞票继续交易主界面退出其他服务是是金额选择否否Inspur Education 需求说明与概要设计需求说明与概要设计u存款流程存款流程6存款放入钞票等待处理取走未识别的钞票添加确认金额继续交易退出主界面其他服务是是否否Inspur Education 需求说明与概要设计需求说明与概要设计u查询流程查询流程7查询余额币种选择港币日元欧元美元人民币显示余额继续交易主界面其他服务退出是否Inspur Education 需求说明与概要设计需求说明与概要设

3、计u转账流程转账流程8转账输入转入卡号卡号正确输入转出金额继续操作成功继续交易主界面其他服务退出是否是否否是Inspur Education 详细详细设计设计u取款取款9Inspur Education 详细详细设计设计u存存款款10Inspur Education 详细详细设计设计u查询查询11Inspur Education 详细详细设计设计u现金转账现金转账12Inspur Education 详细详细设计设计u电子转账电子转账13Inspur Education 详细详细设计设计u密码修改密码修改14Inspur Education 数据库数据库设计设计15数据库设计一般分为六个阶段,

4、本书着重介绍与系统设计有关的前四个阶段:需求分析概念模型设计逻辑结构设计物理结构设计数据库实施Inspur Education 数据库数据库设计设计u数据库数据库需求分析需求分析16用户可以在ATM取得现金。用户可以在ATM上进行现金存储。用户可以在ATM上进行现金转账。用户可以修改账户的密码。查看账户的基本信息。查看账户的交易信息。修改账户的密码对于异常账户的停用和启用。Inspur Education 数据库数据库设计设计u数据库数据库需求分析需求分析17Inspur Education 数据库数据库设计设计u概念概念模型设计模型设计18Inspur Education 数据库数据库设计设

5、计u概念概念模型设计模型设计19Inspur Education 数据库数据库设计设计u概念概念模型设计模型设计20Inspur Education 数据库数据库设计设计u概念概念模型设计模型设计21Inspur Education 数据库数据库设计设计u概念概念模型设计模型设计22Inspur Education 数据库数据库设计设计u逻辑逻辑结构设计结构设计23Inspur Education 数据库数据库设计设计u物理物理结构设计结构设计24Inspur Education 系统实现系统实现u建表建表25-创建用户表CREATETABLEt_user(user_numberNUMBER(

6、10)NOTNULL,user_icVARCHAR2(18)NOTNULL,user_nameVARCHAR2(32)NOTNULL,user_contactVARCHAR2(13)NOTNULL,user_typeVARCHAR2(20)NOTNULL,CONSTRAINTpk_t_userPRIMARYKEY(user_number);COMMENTONTABLEt_userIS用户表;COMMENTONCOLUMNt_user.user_numberIS用户编号;COMMENTONCOLUMNt_user.user_icIS用户身份证号;COMMENTONCOLUMNt_user.use

7、r_nameIS用户姓名;COMMENTONCOLUMNt_user.user_typeIS用户类型;COMMENTONCOLUMNt_user.user_contactIS用户联系方式;-创建账户表CREATETABLEt_account(acc_cardsidNUMBER(19)NOTNULL,acc_usernumberNUMBER(10)NOTNULL,acc_cardspasswordNUMBER(6)NOTNULL,acc_cardsdateDATENOTNULL,acc_cardsmoneyDECIMAL(10,2)NOTNULL,acc_balanceDECIMAL(10,2)

8、NOTNULL,acc_cardsstateVARCHAR2(40),CONSTRAINTpk_t_accountPRIMARYKEY(acc_cardsid);COMMENTONTABLEt_accountIS账户表;COMMENTONCOLUMNt_account.acc_usernumberIS用户编号;COMMENTONCOLUMNt_account.acc_cardsidIS卡号;COMMENTONCOLUMNt_account.acc_cardspasswordIS密码;COMMENTONCOLUMNt_account.acc_cardsdateIS开户日期;COMMENTONCO

9、LUMNt_account.acc_cardsmoneyIS开户金额;COMMENTONCOLUMNt_account.acc_balanceIS余额;-创建ATM表CREATETABLEt_atm(atm_numberNUMBER(10)NOTNULL,atm_stateCHAR(1)NOTNULL,atm_balanceNUMBER(10,2)DEFAULT0.00,atm_addressVARCHAR2(100),CONSTRAINTpk_t_atmPRIMARYKEY(atm_number);COMMENTONTABLEt_atmISATM表;COMMENTONCOLUMNt_atm.

10、atm_numberISATM编号;COMMENTONCOLUMNt_atm.atm_stateISATM运行状态;COMMENTONCOLUMNt_atm.atm_balanceISATM余额;COMMENTONCOLUMNt_atm.atm_addressISATM地址;-创建交易流水表CREATETABLEt_transaction(transactions_numberNUMBER(20)NOTNULL,transactions_transoutaccNUMBER(19)NOTNULL,transactions_transinaccNUMBER(19)NOTNULL,transacti

11、ons_atmnumberNUMBER(10)NOTNULL,transactions_typeVARCHAR2(8)NOTNULL,transactions_moneyDECIMAL(10,2)DEFAULT0.00CONSTRAINTpk_t_transactionPRIMARYKEY(transactions_number);COMMENTONTABLEt_transactionIS交易流水表;COMMENTONCOLUMNt_transaction.transactions_numberIS交易流水号;COMMENTONCOLUMNt_transaction.transactions_

12、transoutaccIS转出账户;COMMENTONCOLUMNt_transaction.transactions_transinaccIS转入账户;COMMENTONCOLUMNt_transaction.transactions_atmnumberISATM编号;COMMENTONCOLUMNt_transaction.transactions_typeIS交易类型;COMMENTONCOLUMNt_transaction.transactions_moneyIS交易金额;Inspur Education 系统实现系统实现u存储过程存储过程26CREATEORREPLACEPROCED

13、UREqukuan(i_cardsidt_account.acc_cardsid%TYPE,i_currpasst_account.acc_cardspassword%TYPE,i_moneyt_account.acc_cardsmoney%TYPE,i_typet_transaction.transactions_type%TYPE,i_atmnumbert_atm.atm_number%TYPE)-定义4个输入参数:卡号,密码,金额,交易类型和atm编号IS-定义5个变量v_passwordt_account.acc_cardspassword%TYPE;v_cardsstatet_acc

14、ount.acc_cardsstate%TYPE;v_balancet_account.acc_cardsmoney%TYPE;v_atmbalancet_atm.atm_balance%TYPE;v_accumulateNUMBER(20);BEGINSELECTacc_cardspasswordINTOv_passwordFROMt_accountWHEREacc_cardsid=i_cardsid;-获取账户密码IFv_password=i_currpassTHEN-密码校验SELECTacc_cardsstateINTOv_cardsstateFROMt_accountWHEREacc

15、_cardsid=i_cardsid;-获取账户状态IFv_cardsstate冻结THEN-判断是否已冻结SELECTsum(transactions_money)INTOv_accumulateFROMt_transactionWHEREtransactions_transoutacc=i_cardsidANDtransactions_type=取款;-计算取款总额IF(v_accumulateISNOTnullANDv_accumulate+i_money20000ANDi_money5000ANDmod(i_money,100)=0)OR(v_accumulateISnullANDi_

16、moneyi_moneyTHEN-判断ATM的余额是否大于取款金额SELECTacc_balanceINTOv_balanceFROMt_accountWHEREacc_cardsid=i_cardsid;-获取账户的余额SELECTatm_balanceINTOv_atmbalanceFROMt_atmWHEREi_atmnumber=atm_number;INSERTINTOt_transaction(transactions_number,transactions_transoutacc,transactions_atmnumber,transactions_type,transacti

17、ons_money)VALUES(seq_atm.nextval,i_cardsid,i_atmnumber,i_type,i_money);- 生成交易流水UPDATEt_accountSETacc_balance=v_balance-i_moneyWHEREi_cardsid=acc_cardsid;-更新账户余额UPDATEt_atmSETatm_balance=v_atmbalance-i_moneyWHEREi_atmnumber=atm_number;-更新ATM机余额dbms_output.put_line(取款成功!);commit;ELSEdbms_output.put_li

18、ne(ATM机内余额不足!);ENDIF;ELSEdbms_output.put_line(金额不满足条件!);ENDIF;ELSEdbms_output.put_line(此卡被冻结!);ENDIF;ELSEdbms_output.put_line(密码不正确);ENDIF;EXCEPTIONWHENno_data_foundTHENROLLBACK;dbms_output.put_line(没有数据!);WHENOTHERSTHENROLLBACK;dbms_output.put_line(取款失败!);END;/Inspur Education 本章小结本章小结27Inspur GroupInspur Education 谢谢谢谢! !28

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号