数据库oracle银行管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计说明书I目录摘要...................................................1一、设计银行管理系统结构图1.1系统结构图...................................................2二、银行管理系统E-R图和表结构2.1E-R图........................................................32.2表结构.......................................................5三、创建系统数据表3.1创建表空间和用户.............................................63.2创建用户信息表并添加约束.....................................63.3创建银行卡信息表.............................................83.4创建交易信息表...............................................9四、模拟常规业务操作4.1建立更新账号触发器..........................................114.2存取款交易操作..............................................114.3用户开户....................................................134.4更改密码....................................................154.5账号挂失....................................................164.6余额查询....................................................164.7转账业务设置................................................174.8银行盈利结算................................................184.9撤户操作....................................................18五、总结...............................................20参考文献................................................21附录....................................................22课程设计说明书1摘要随着计算机的飞速发展及应用领域的扩大,特别是计算机网络和电子商务的发展,极大的改变了商业银行传统的经营模式。能够为客户提供方便、快捷、安全的服务,也能够有效的降低银行的营运成本,这是银行存储系统追求的目标。目前,对于现代化银行运营的要求是客户可以实现方便安全的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。方便用户快速的进行存款、取款、修改密码以及完成一些转账的交易,大大提高办公效率,能够及时、准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。课程设计说明书2一、设计银行管理系统结构图1.1系统结构图图1.1系统结构图银行系统账户管理财务管理信息查询开户修改密码账户挂失销户存款取款转账余额查询课程设计说明书3二、银行管理系统E-R图和表结构2.1E-R图图2.1开户名身份证号联系电话住址开户信息表开户开户名身份证号联系电话课程设计说明书4卡号货币种类存款类型开户日期开户金额余额密码是否挂失开户银行信息表交易用户编号交易信息表交易日期交易类型卡号交易金额图2.2课程设计说明书52.2表结构通过对银行管理系统的需求分析,应该为该系统设计3个表,分别为用户信息表、银行卡信息表和交易信息表。用户信息表用于存储用户的基本信息,包括用户的编号、开户名、身份证号、联系电话和家庭住址等信息表2.1用户信息表字段名称字段描述数据类型长度约束customer用户编号Number4主键customer开户名Varhcar220必填PID身份证号Varchar218必填telephone联系电话Varchar213必填Address家庭地址Varchar250无银行卡信息表用于存储银行卡相关的信息主要包括卡号、存储的货币类型,存款方式,开户时间,开户金额,余额、银行卡密码、是否挂失和用户编号等信息,表2.2银行卡信息表字段名称字段描述数据类型长度约束cardID卡号Varchar220主键curType货币种类Varhcar210必填SavingType存款类型Varchar28非空Opendate开户日期DATETIME必填openmoney开户金额Number8必填Balance帐户余额Number8必填Isreportloss是否挂失Varchar22必填Customer开户编号Varchar4外键交易信息表用于存储用户的交易记录,主要包括交易日期,卡号、交易类型,交易金额等信息。表2.3交易信息表字段名称字段描述数据类型长度属性Transdate交易日期DatetimePKcardID卡号Varhcar220非空transTYPE交易类型VARCHAR24非空transMoney交易金额NUMBER4非空remark备注VARCHAR250非空课程设计说明书6三、创建系统数据表3.1创建表空间和用户使用system用户连接数据库后,创建表空间space_zqp,指定数据文件为D:\Bank.dbf,代码如下图:图3.1表空间和用户3.2创建用户信息表并添加约束用户信息表保存了用户的基本信息,该表的创建语句如下,CREATETABLEuserInfo(customerIDNUMBER(4)NOTNULL,customerNameVARCHAR2(20)NOTNULL,PIDVARCHAR2(18)NOTNULL,telephoneVARCHAR2(13)NOTNULL,addressVARCHAR2(50)课程设计说明书7)PARTITIONBYHASH(PID)(PARTITIONpid1,PARTITIONpid2,PARTITIONpid3,);ALTERTABLEuserInfoADDCONSTRAINTPK_customerIDPRIMARYKEY(customerID)ADDCONSTRAINTUK_PIDUNIQUE(PID)ADDCONSTRAINTCK_PIDCHECK(LENGTH(PID)=18ORLENGTH(PID)=15)ADDCONSTRAINTCK_telephoneCHECK(telephoneLIKE'[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'ORLENGTH(telephone)=13);------------------创建可以自动生成自增主列的序列customerid_seqCREATESEQUENCEcustomerid_seqSTARTWITH1INCREMENTBY1NOCACHE如上述语句所示,在userInfo表中包含用户编号(customerid)、开户名(customername)、身份证号(PID)、联系电话(telephone)、家庭住址(address)。其中,customerid为主键,自增(从1开始);PID只能是18位或15位,并且是唯一的;telephone必须是xxxx-xxxxxxxx的格式或13位的手机号码。课程设计说明书8图3.2用户信息表3.3创建银行卡信息表银行卡信息表(cardinfo)中包含了卡号(cardid),货币种类(curType),存款类型(savingtype),开户日期(opendate),开户金额(openmoney),余额(balance),密码(pass),是否挂失(isREPORTLOSS)和用户编号(customerID)的信息。其中,cardID为主键,必须为10103756xxxxxxxx的格式;CURTYPE默认为RMB,openmoney必须不能低于一元;balance也必须不能低于一元;pass默认为88888888;ISREPORTLOSS的值必须是“是/否”中之一,默认为否;customerID为外键,引用userInfo表中的customerID列。课程设计说明书9图3.33.4创建交易信息表交易信息表中包含了五个字段,分别为transdate(交易日期),cardID(卡号)、TRANSTYPE(交易类型),transmoney(交易金额)和remark(备注)。其中,transdate默认为系统当前日期;cardid位外键,引用cardinfo表中的cardid列,可重复;transtype只能是“存入/取出”之一;transmoney必须大于0.课程设计说明书10图3.4交易信息表课程设计说明书11四、模拟常规业务操作4.1建立更新账号触发器结果如下:图4.1创建beforeupdate触发器4.2存取款交易操作当用户办理取款或存款业务时,不仅需要向交易信息表中添加一条交易记录,还需要修改当前账户中的余额,如果办理取款业务,如果将当前账户总的余额减去支取余额,如果办理托管业务,多叫当前账户中的金额加上存款金额。在交易信息表中包含一个名为transtype的字段,该字段用于表示交易类型,取值范围必须是存入或者自取,因此可以为transINFO表创建BEFOREINSERTR触发器。根据要办理里的交易类型,判断出当前的交易类型,如果transtype字段值为“支取”,则表示要办理取款业务,检测当前余额是否大于或等于要支取的金额,如果满足条件,则要修改cardinfo表中的balance字段值,将该字段值减去交易金额(transmoney),如果transtype字段值为“存入”,则表示要办理存款业务,修改cardinfo表中的balance字段值,将该值加上交易金额(transmoney)。代码如下:reateorreplacetriggertrig_transbeforeinsertorupdate课程设计说明书12ontransinfoforeachrowdeclaremy_balancenumber;rate_exceptionexception;beginselectbalanceintomy_balancefromcardinfowherecardid=:new.cardid;if:new.transtype='支取'thenifmy_balance:new.transmoney-1thendbms_output.put_line('对不起,您的余额不足!');return;elsifmy_balance:new.transmoney-1thenupdatecardinfosetbalance=balance-:new.transmoneywherecardId=:new.cardId;endif;elsif:new.transtype='存入'thenupdatecardinfosetbalance=balance+:new.transmoneywherecardid=:new.cardId;endif;dbms_output.put_line('交易成功!');exceptionwhenrate_exceptionthenraise_application_error(-20001,'交易失败');end;select*fromcardInfo_vw

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功