《数据库原理及应用》课程设计报告专业:信息管理与信息系统班级:信息0801学号:081204112姓名:黄露题目名称:银行储蓄业务管理系统完成日期:2011.3.11数据库课程设计·银行储蓄管理系统第2页共19页目录一、系统定义…………………………………………………..3二、需求分析…………………………………………………..3(一)系统综合需求(二)系统逻辑模型1.数据流图:2.数据字典三、系统设计…………………………………………………...5(一)概念结构设计E-R图:(二)逻辑结构设计四、详细设计……………………………………………………6(一)开发平台及工具(二)数据库分析五、源程序清单……………………………………………13六、设计心得…………………………………………………………18数据库课程设计·银行储蓄管理系统第3页共19页一、系统定义:银行是一个国家正常运转必不可缺的机构,当今社会,几乎是每个人都会涉及到储蓄业务,为此,为方便用户查询和使用各种业务,可用计算机为工具对查询管理为一体的各种服务。当然,这样的一个银行储蓄业务系统就应运而生了。本系统是一个简单的储蓄系统,可以对储户的信息进行查询修改以及删除。二、需求分析:(一)系统综合需求本系统是银行用户的存取款系统。主要功能是管理各个用户存取款的相关数据。储户填写的存款单或取款单输入系统,如果是存款,则系统记录存款人姓名,住址(或电话号码),身份证号码,存款类型,存款金额,存款日期等信息,并打印存单给储户;如果是取款,则需要输入帐号、取款金额等信息,核对正确后系统打印出清单给储户。(二)系统逻辑模型1.数据流图:图1-1系统数据流图数据库课程设计·银行储蓄管理系统第4页共19页2.数据字典数据名字:注册申请表数据来源:储户数据目的:储户信息数据组成:姓名+密码+住址+身份证号码数据名字:储户信息表数据来源:储户数据目的:身份验证数据组成:姓名+密码+住址+身份证号码+现有金额数据名字:利息清单数据来源:系统数据目的:储户数据组成:利息+姓名+取款时间数据名字:存单数据来源:存款信息表数据目的:储户数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额数据名字:取款单数据来源:储户数据目的:储户信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号数据名字:存款单数据来源:储户数据目的:存款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额+身份证号表1.1系统数据字典数据库课程设计·银行储蓄管理系统第5页共19页三、系统设计:(一)概念结构设计E-R图:(二)逻辑结构设计数据库课程设计·银行储蓄管理系统第6页共19页四、详细设计(一)开发平台及工具开发工具MicrosoftVisualC++6.0DBMS:MicrosoftSQLServer2000建模工具:MicrosoftVisio,word编辑器说明:为了方便的实现系统以及个人熟悉程度的因素,选择了VC++6.0的开发平台。在Windows平台上我们所学过的就只有MSSQLServer了,所以采用SQLServer2000来进行开发。(二)银行储蓄业务数据库分析1)本系统由三张表组成,具体如下:表名属性(字段)名储户表账号、身份证号、姓名、性别、身高、地址、存款余额存款单表存款单号、金额、存款方式、账号、存款日期取款单表取款单号、金额、取款方式、账号、取款日期系统表基本信息2)表间关系如下:一个存款单或取款单属于一个用户,一个用户可以拥有多次存款单或取款单。用户通过存款操作与存款单建立联系,通过取款操作与取款单建立联系。3)数据准备前期准备工作:以system账户登录,创建新账户createuserdyidentifiedbylyjn;grantdbatody;connectdy/dy@orcl;各个表的具体信息和创建表的代码如下:储户表(luser)数据库课程设计·银行储蓄管理系统第7页共19页字段(属性)含义字段(属性)名字段(属性)类型账号acnumVARCHAR(5)身份证号idNUMBER姓名nameVARCHAR2(20)性别sexVARCHAR2(2)身高heightNUMBER(3,2)地址addressVARCHAR2(20)存款余额(亿)Balance(billion)INT创建储户表的代码如下:CREATETABLEluser(acnumVARCHAR2(5)NOTNULL,idNUMBERNOTNULL,nameVARCHAR2(20)NOTNULL,sexVARCHAR2(2)CHECK(sexIN('男','女')),heightNUMBER(3,2)NOTNULL,addressVARCHAR2(20)NOTNULL,balanceINTNOTNULL);ALTERTABLEluser添加主键约束ADDCONSTRAINTXPKluserPRIMARYKEY(acnum);存款单表(depositslip)字段(属性)含义字段(属性)名字段(属性)类型存款单号dps_numNUMBER账号acnumVARCHAR2(5)存款时间dps_timeTIMESTAMP金额(亿)moneyINT存款方式dps_wayVARCHAR2(10)创建存款单表的代码如下:CREATETABLEdepositslip(dps_numNUMBERNOTNULL,moneyINTCHECK(money=0),dps_wayVARCHAR2(10)NOTNULL,acnumVARCHAR2(5)NOTNULL,dps_timeTIMESTAMPNULL);ALTERTABLEdepositslip添加主键约束ADDCONSTRAINTXPKdepositslipPRIMARYKEY(dps_num,acnum);ALTERTABLEdepositslip在depositslip表中的acnum字段中添加外键约束数据库课程设计·银行储蓄管理系统第8页共19页ADD(CONSTRAINTR_5FOREIGNKEY(acnum)REFERENCESluser(acnum));取款单表(drawslip)字段(属性)含义字段(属性)名字段(属性)类型取款单号dw_numNUMBER账号acnumVARCHAR2(5)取款时间dw_timeTIMESTAMP金额(亿)MoneyINT取款方式dw_wayVARCHAR2(10)创建取款单表的代码如下:CREATETABLEdrawslip(dw_numNUMBERNOTNULL,moneyINTCHECK(money=0),dw_wayVARCHAR2(10)NOTNULL,acnumVARCHAR2(5)NOTNULL,dw_timeTIMESTAMPNULL);ALTERTABLEdrawslip添加主键约束ADDCONSTRAINTXPKdrawslipPRIMARYKEY(dw_num,acnum);ALTERTABLEdrawslip在drawslip表中的acnum字段中添加外键约束ADD(CONSTRAINTR_6FOREIGNKEY(acnum)REFERENCESluser(acnum));4)插入(insert)数据1、插入储户表(luser)数据insertintoluser(ACNUM,ID,NAME,SEX,HEIGHT,ADDRESS,BALANCE)values('00001',3422101,'刘忠田','男',1.72,'北京市朝阳区',345);insertintoluser(ACNUM,ID,NAME,SEX,HEIGHT,ADDRESS,BALANCE)values('00002',3422102,'周正义','男',1.78,'天津市宝坻区',123);insertintoluser(ACNUM,ID,NAME,SEX,HEIGHT,ADDRESS,BALANCE)values('00003',3422103,'陈光标','男',1.80,'南京市新街口',333);insertintoluser(ACNUM,ID,NAME,SEX,HEIGHT,ADDRESS,BALANCE)values('00004',3422104,'张茵','女',1.65,'上海市黄浦区',234);insertintoluser(ACNUM,ID,NAME,SEX,HEIGHT,ADDRESS,BALANCE)values('00005',3422105,'陈丽华','女',1.70,'香港市旺角区',111);数据库课程设计·银行储蓄管理系统第9页共19页2、插入存款单表(depositslip)数据insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98001,'00001',120,to_date('08-08-2009','dd-mm-yyyy'),'整存整取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98002,'00001',300,to_date('10-08-2009','dd-mm-yyyy'),'整存整取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98003,'00002',100,to_date('12-08-2009','dd-mm-yyyy'),'整存零取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98004,'00002',150,to_date('12-09-2009','dd-mm-yyyy'),'整存零取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98005,'00003',200,to_date('15-08-2009','dd-mm-yyyy'),'零存整取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98006,'00003',100,to_date('14-09-2009','dd-mm-yyyy'),'零存整取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98007,'00003',80,to_date('23-09-2009','dd-mm-yyyy'),'零存整取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98008,'00004',80,to_date('23-08-2009','dd-mm-yyyy'),'零存零取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98009,'00004',180,to_date('24-09-2009','dd-mm-yyyy'),'零存零取');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)数据库课程设计·银行储蓄管理系统第10页共19页values(98010,'00005',190,to_date('24-08-2009','dd-mm-yyyy'),'通知存款');insertintodepositslip(DPS_NUM,ACNUM,MONEY,DPS_TIME,DPS_WAY)values(98011