《数据库oracle银行管理系统.docx》由会员分享,可在线阅读,更多相关《数据库oracle银行管理系统.docx(48页珍藏版)》请在第壹文秘上搜索。
1、摘要1一、设计银行管理系统结构图1.I系统结构图2二、银行管理系统E-R图和表结构2. IE-R图43. 2表结构7三、创建系统数据表3.1创建表空间和用户93. 2创建用户信息表并添加约束93. 3创建银行卡信息表114. 4创建交易信息表12四、模拟常规业务操作4.1建立更新账号触发器144. 2存取款交易操作144. 3用户开户164. 4更改密码184. 5账号挂失194. 6余额查询204. 7转账业务设置215. 8银行盈利结算22五、总结24参考文献25附录26随着计算机的飞速发展及应用领域的扩大,特别是计算机网络和电子商务的发展,极大的改变了商业银行传统的经营模式。能够为客户提
2、供方便、快捷、安全的服务,也能够有效的降低银行的营运成本,这是银行存储系统追求的目标。目前,对于现代化银行运营的要求是客户可以实现方便安全的业务交易,银行职员可以进行高效合理的工作管理,实现银行业务电子化。方便用户快速的进行存款、取款、修改密码以及完成一些转账的交易,大大提高办公效率,能够及时,准确、有效的帮用户办理各种繁琐的手续,也减缓了银行工作人员的压力。一、设计银行管理系统结构图1.1系统结构图银行系统余额查询账户挂失修改密码2.1E-R图二、银行管理系统E-R图和表结构开户信息表开户通过对银行管理系统的需求分析,应该为该系统设计3个表,分别为用户信息表、银行卡信息表和交易信息表。用户信
3、息表用于存储用户的基本信息,包括用户的编号、开户名、身份证号、联系电话和家庭住址等信息表2.1用户信息表字段名称字段描述数据类型度约束customer用户编号Number4主键customer开户名Varhcar220必填PID身份证号Varchar218必填te1.ephone联系电话Varchar213必填Address家庭地址Varchar250无银行卡信息表用于存储银行卡相关的信息主要包括卡号、存储的货币类型,存款方式,开户时间,开户金额,余额、银行卡密码、是否挂失和用户编号等信息,表2.2银行卡信息表字段名称字段描述数据类型长度约束cardID卡号Varchar220主键CurTyp
4、e货币种类Varhcar210必填SavingType存款类型Varchar28非空Opendate开户R期DATETIME必填Openmoney开户金额Number8必填Ba1.ance帐户余额Number8必填Isreport1.osS是否挂失Varchar22必填Customer开户编号Varchar4外键交易信息表用于存储用户的交易记录,主要包括交易日期,卡号、交易类型,交易金额等信息。表2.3交易信息表字段名称字段描述数据类型长度属性Transdate交易日期DatetimePKcardID卡号Varhcar220非空transTYPE交易类型VARCHAR24非空transMone
5、y交易金额NUMBER4非空remark备注VARCHAR250非空三、创建系统数据表3.1创建表空间和用户使用system用户连接数据库后,创建表空间space_zqp,指定数据文件为D:Bank.dbf,代码如下图:SQ1.CREATETAB1.ESPACEspace_zqp2 DATAFI1.ED:Bank.dbfSIZE50M3 AUTOEXTENDONNEXT5MMAXSIZEUN1.IMITED;表空间已创建。SQ1.createuserzqp4 IDENTIFIEDBYzqp5 DEFAU1.TTAB1.ESPACEspace_zqp1 4TEMPORARYTAB1.ESPACE
6、tep5QUOTA2OMONspace_zqp;Jff1.户已创建。SQ1.grantdbatozqp;上权成功。JSQ1.connectzqp/zqp;已连接。图3.1表空间和用户3. 2创建用户信息表并添加约束用户信息表保存了用户的基本信息,该表的创建语句如下,CREATETAB1.Euserinfo(CUstomerIDNUMBER(4)NOTNU1.1.,CUstomerNameVARCHAR2(20)NOTNU1.1.,PIDVARCHAR2(18)NOTNU1.1.,te1.ephoneVARCHAR2(13)NOTNU1.1.,addressVARCHAR2(50)PARTITI
7、ONBYHASH(PID)(PARTITIONpid1.,PARTITIONpid2,PARTITIONpid3,);A1.TERTAB1.EuserinfoADDCONSTRAINTPK_customerIDPRIMARYKEY(customerID)ADDCONSTRAINTUK_PIDUNIQUE(PID)ADDCONSTRAINTCK_PIDCHECK(1.ENGTH(PID)=18OR1.ENGTH(PID)=15)ADDCONSTRAINTCK_teIephoneCHECK(1.IKEte1.ephone0-90-90-90-9-0-90-90-90-90-90-90-90-9fO
8、R1.ENGTH(te1.ephone)=13);创建可以自动生成自增主列的序列customerid_seqCREATESEQUENCEcustomerid_seqSTARTWITH1INCREMENTBY1NOCACHE如上述语句所示,在USerInfO表中包含用户编号(Customerid)开户名(customername)身份证号(P1.D)、联系电话(te1.ephone)家庭住址(address)。其中,CUStOnIerid为主键,自增(从1开始);P1.D只能是18位或15位,并且是唯一的;te1.ephone必须是xxxxxxxxxxxx的格式或13位的手机号码。SQ1.se1
9、.ect*fromcard1.ofo;CARDIDCURTYPESAVINGTYOPENDATEOPENMONEYBA1.ANCEpassisCustomerid10103576888888否123400011RMB活期17-11月-161000100010103576888888否123400046RMB定期17-11月-168000800010103576888888否1234000511RMB定期17-11月-1650005000CARDIDCURTYPESAVINGOPENDATEOPENMONEYBA1.ANCEpassisCustomerid10103576888888否12340
10、0063RMB定期17-11月-164000400010103576888888否123400077RMB定期17-11月-164400440010103576888888否1234001010RMB定期17-11月-1644004400CARDIDCURTYPESAVINGTYOPENDATEOPENHONEYBA1.ANCE图3.2用户信息表3.3创建银行卡信息表银行卡信息表(cardinfo)中包含了卡号(Cardid),货币种类(CUrType),存款类型(savingtype),开户日期(opendate),开户金额(openmoney),余额(ba1.ance),密码(PaSS),
11、是否挂失(isREPORT1.OSS)和用户编号(CUStOmer1.D)的信息。其中,CardID为主键,必须为IO1.O3756xxxxXXXX的格式;CURTYPE默认为RMB,openmoney必须不能低于一元;ba1.ance也必须不能低于一元;pass默认为88888888;ISREPORT1.OSS的值必须是“是/否”中之一,默认为否;CUstomerID为外键,引用userinfo表中的CustomerID列。1 CREATETAB1.Ecard1.ofo2 (3 cardIDVARCHAR2(20)NOTNU1.1.,4 curTypeVARCHAR2(10)NOTNU1.1
12、.,5 SavingTypeVARCHAR2(8)NOTNU1.1.,6 openDateDATENOTNU1.1.,7 operoneyNUKBER(8)NOTNU1.1.,8 ba1.anceNUMBER(8)NOTNU1.1.,9 passVARCHAR2(6)NOTNU1.1.,10 IsReport1.ossVARCHAR2(2)NOTNU1.1.,11 CustomerIDNU1.BER(4)NOTNU1.1.12 )13 PARTITIONBYRANGE(openDate)14 (15 PARTITIONOPenDateq1.VA1.UES1.ESSTHAN(TO_DATEC01
13、012007,ddyyyy,),16PARTITIONopenDate_p2VA1.UES1.ESSTHAN(TO_DATE(,01042007,ddrtyyyy,),17PARTITIONOPenDateq3VA1.UES1.ESSTHAN(TO_DATEC01/07/2007,ddmyyyy,),18PARTITIONOPenDate_p4VA1.UES1.ESSTHAN(TOJ)ATE(,01102007,ddmnyyyy,),19PARTITIONOPenDateq5VA1.UES1.ESSTHANCrc1.DATE(01/01/2008,ddmyyyy,),20PARTITIONOPenDate_p6VA1.UES1.ESSTHAN(TOJ)ATE(,01042008,ddWyyyy),21PARTITIONOPenDateq7VA1.UES1.ESSTHAN(TO.DATEC01/07/2008,ddnyyyy,),22PARTITIONopenDate_p8VA1.UES1.ESSTHAN(TOJDATE(,