1、。目 录1 绪论1.1 选题目的及意义21.2 设计内容22 需求分析2.1 功能需求22.2 数据需求23数据库设计3.1概念结构设计73.2逻辑结构设计93.3物理结构设计114.设计结果及分析 4.1查询与结果分析245.设计体会29参考文献参与设计人员:姓名学号班级负责项目陈盛业20114419信管(2)需求分析李宁20114432信管(2)数据库设计、分析向绍鹏20114462信管(2)绪论 、设计体会阳治安20114466信管(2)数据库设计、分析1.1选题的目的及意义 银行管理系统:该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表之间的联系很紧密,该系统对数据
2、库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充分训练数据库表设计的能力和运用VC的能力。1.2 设计内容用户管理模块:建立新用户、删除老用户、更改用户操作;账户操作模块:账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录;数据库模块:数据库备份、数据库恢复;2 需求分析2.1 功能需求对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作记录并能够查询操作记录
3、等功能。2.2 数据需求2.21数据字典银行管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。在定义的银行数据库管理系统数据字典中,主要对数据流图中的账户信息定期历史操作记录定期存款定期取款活期操作进行说明。【1】数据需求的描述(1)数据项名称:帐号含义说明:惟一标识一个用户类型:数字型长度:20逻辑关系:不允许为空(2)数据项名称:开户人姓名类型:字符型长度:20逻辑关系:不允许为空(3)数据项名称:账户密码类型:数字型长度:6逻辑关系:不允许为空(4)数据项名称:身分证号类型:数字型长度:20逻辑关系:不允许为空(5)数据项名称:账户余额类型:数字型逻辑关系:不允许为空(
4、6)数据项名称:开户日期类型:数字型逻辑关系:不允许为空(7)数据项名称:开户地址类型:字符型长度:30逻辑关系:不允许为空(8)数据项名称:利息类型:数字型 逻辑关系:不允许为空(9)数据项名称:金额含义说明:可以表示为存入和支出 类型:数字型 逻辑关系:不允许为空(10)数据项名称:存入日期类型:数字型 逻辑关系:不允许为空(11)数据项名称:存款人姓名 类型:字符型 长度:10 逻辑关系:不允许为空(12) 数据项名称:存储年份 类型:数字型 逻辑关系:不允许为空(13) 数据项名称:存储利率 类型:float型 逻辑关系:不允许为空(14)数据项名称:取款人姓名 类型:字符型 长度:1
5、0逻辑关系:不允许为空【2】.数据结构的描述(1)数据名字:注册申请表数据来源:储户数据目的:储户信息数据组成:姓名+密码+住址+身份证号码(2)数据名字:储户信息表数据来源:储户数据目的:身份验证数据组成:姓名+密码+住址+身份证号码+现有金额(3)数据名字:利息清单数据来源:系统数据目的:储户数据组成:利息+姓名+取款时间(4)数据名字:存单数据来源:存款信息表数据目的:储户数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额 (5)数据名字:取款单数据来源:储户 数据目的:取款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号(6)数据名字:存款单数据来
6、源:储户数据目的: 存款信息表数据组成:姓名+到期时间+存入类型+存入时间+利率+存入金额+身份证号【3】. 数据存储描述(1)数据存储名称:储户基本表含义说明:存放储户的有关信息组成结构:储户信息包括账号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址。说明:储户帐号具有惟一性和非空性。(2)数据存储名称:活期存取款表 含义说明:存放活期存取款的信息组成结构:活期存取款包括帐号,金额,办理日期,利息,账户余额;说明:帐号具有惟一性和非空性.(3)数据存储名称:定期存款表; 含义说明:存放定期存款的信息组成结构:帐号,存款人姓名,金额,存储年份,年利率,存储日期说明:帐号,存储日期,
7、存储年份,年利率具有惟一性和非空性.(4)数据存储名称:定期取款表; 含义说明:存放定期取款的信息组成结构:帐号,取款人姓名,取款金额,取款日期.说明:帐号,取款人姓名,取款日期具有惟一性和非空性.(5)数据存储名称:定期记录表 含义说明:存放定期存取款的信息组成结构:帐号,存取款人姓名,操作金额,年份,操作日期说明:帐号,操作日期具有惟一性和非空性.3. 数据库设计3.1概念结构设计帐号银行储户开户地址姓名性别帐户余额开户日期密码身份证号定期操作记录活期操作记录图1银行基本信息实体图 图2储户基本信息实体图定期记录存取款人姓名操作日期帐号操作金额年份图3定期记录基本信息实体图活期存取款存储帐
8、号银行储户开户地址姓名性别帐户余额开户日期密码身份证号定期存取款定期操作记录活期操作记录图4 合并部分视图生成E-R图3.2 逻辑结构设计3.2.1 E-R图向关系模型的转换(1)一个1:1联系可转换为一个独立的关系模式,可以与任意一端对应的关系模式合并;(2)一个1:n联系可以转换为独立的关系模式,也可以与n端对应的关系模式合并;(3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分; 将实体转化为关系模式。由E-R图转换成关系模式储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);活期
9、存取款(nID,帐号,金额,办理日期,利息,账户余额);定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);定期取款(nID,帐号,取款人姓名,取款金额,取款日期);定期记录(nID,帐号,存取款人姓名,操作金额,操作类型,操作日期)3.2.2判断每个表分别属于第几范式(1)由储户表(姓名,账号,密码,身份证号,性别,帐户余额,开户日期,开户地址)写出数据依赖:储户姓名身份证号,储户姓名账号,储户姓名地址该表中的各个元组都不可再分、并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表满足BCNF范式。(2)由活期存取款表(序号,利息,帐号,金额,办理日期,账户余额);
10、写出数据依赖:利息帐号,利息办理日期,利息金额该表中的每个元组都不可再分、并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表也满足BCNF范式。(3)由定期存款表 (序号,年利率,帐号,存款人姓名,金额,存储年份,存储日期)写出数据依赖:年利率存储年份,年利率存储日期,该表中每个元组都不可再分并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表同样满足BCNF范式。(4)由定期取款表 (序号,取款人姓名,帐号,取款金额,取款日期)写出数据依赖:取款人姓名帐号该表中各个元组都不可再分同样无部分函数依赖和传递函数依赖并且主码都是候选码,所以该表同样满足BCNF范式。(5)由定期记录表
11、(序号,存取款人姓名,帐号,操作金额,操作类型,操作日期)写出数据依赖:存取款人姓名帐号储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);活期存取款(nID,帐号,金额,类型,办理日期,利息,账户余额);定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);定期取款(nID,帐号,取款人姓名,取款金额,取款日期);定期记录(nID,帐号,存取款人姓名,类型,操作金额,年份,操作日期)3.3 物理结构设计储户表序号字段名称字段描述数据类型长度属性1CNo帐号Varchar20PK2CName开户人姓名Varhcar20非空3CPassword登录密码Cha
12、r6非空4CID身份证号Varchar20非空5CSex性别Char 2非空6CBalance帐户余额Float8非空7CDate开户日期Datetime8非空8CAddress开户地址Varchar30非空主键:帐号;约束条件:各属性均非空,密码长度为6位;序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CMoney操作金额Float8非空4CStyle操作类型Varchar10非空5CDate操作日期Datetime8非空6CInterest利息Float8非空7CBalance帐户余额Float8非空活期存取款表主键:nID;外键:帐号;被
13、参照表:储户表约束条件:各属性均非空;定期存款表序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CName存款人姓名Varchar10非空4CMoney存款金额Float8非空5CDate存款日期Datetime8非空6CYear存储年份Int4非空7CRate存储利率Float8非空主键:nID;外键:帐号;被参照表:储户表约束条件:各属性均非空;定期取款表序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CName取款人姓名Varchar10非空4CMoney取款金额Float8非空5CDate取
14、款日期Datetime8非空主键:nID;外键:nID;被参照表:定期存款表约束条件:各属性非空定期操作记录表序号字段名称字段描述数据类型长度属性1nID序号Int4PK2CNo帐号Varchar20非空3CName存取款人姓名Float8非空4CStyle操作类型Char4非空5CMoney存取款金额float8非空6CYear存储年份Int4非空7CDate存取款日期Datetime8非空主键:nID;外键:nID;被参照表:定期存款表,定期取款表约束条件:各属性非空3.4创建基本表提高查询速度,分别为各表经常查询的列建立索引。(1)为chuhu(储户表)中的cno属性建立唯一索引cno:
15、CREATE UNIQUE INDEX cno_index on chuhutable(cno);(2)为Hcq(活期存取款表)中nid属性建立唯一索引nid:CREATE UNIQUE INDEX nid_index ON Hcq(nid);(3)为dqcun (定期存款表)中nid属性建立降序唯一索引niddesc:CREATE UNIQUE INDEX niddesc ON dqcun(nid desc);(4)为dqqu (定期取款表)中nid属性建立升序唯一索引nidasc:CREATE UNIQUE INDEX nidasc ON dqqu(nid asc);(5)为dqjilu
16、(定期记录表)中nid属性建立降序唯一索引niddesc:CREATE UNIQUE INDEX niddesc ON dqjilun (nid desc);数据的载入是一个非常繁杂和重要的过程需要很大的工作量,可分为人工输入与其它格式数据文件导入。该系统只是一个简单的实验系统,所以采用手工输入少量的数据可满足实验要求即可。分别给储户基本信息表,活期存取款基本信息表,定期存款基本信息表,定期取款基本信息表和定期操作记录基本信息表输入数据。下面若干个表分别显示了所要求的表基本信息息的录入和显示的结果(1)创建储户表Create table chuhu(CNo int primary key,CN
17、amechar(20) not null,CPasswordint not null,CIDint not null,CAddresschar(20) not null,CBalanceint not null,CDatedatetime not null,CSexchar(2) not null,) 图5利用查询编辑器创建储户信息表 图6储户信息表(2)创建活期存取款表Create table Hcq (nID int primary key,CNo int not null,CMoney int not null,CBalance int not null,CDate datetime n
18、ot null,CInterest int not null,) 图7利用查询编辑器创建活期存取款表 图8活期存取款表(3)创建定期存款表Create table dqcun(nID int primary key, CNo int not null,CName char(10) not null,CMoney int not null,Crate float not null,CYear int not null,CDate datetime not null,) 图9利用查询编辑器创建定期存款表 图10定期存款表 (4)创建定期取款表Create table dqqu(nID int pr
19、imary key,CNo int not null,CDate datetime not null,CMoney int not null,CName char(20) not null,)图11利用查询编辑器创建定期取款表 图12定期取款表 (5)定期操作记录表Create table dqjilu(nID int primary key,CNo int not null,CDate datetime not null,CStyle char(4) not null,CMoney int not null,CName char(8) not null,)图13利用查询编辑器创建定期操作记录
20、表 图14定期操作记录表3.4.1为系统创建视图(1)储户表的视图 图15 储户表的视图(2)活期存取款表的视图 图16活期存取款表的视图(3)定期存款表的视图 图17 定期存款表的视图(4)定期取款表的视图 图18 定期取款表的视图(5)定期操作记录的视图 图19 定期操作记录的视图4.设计结果及分析4.1 查询与结果分析(1)查询储户姓名为王刚的用户的信息结果为 : 图20查询储户姓名为王刚的用户的信息(2)查询操作金额为85000元用户的帐号结果为 : 图21查询操作金额为85000元用户的帐号(3)查询定期存取款表中序号为1的用户的名字结果为 :图22查询定期存取款表中序号为1的用户的
21、名字(4)为储户表插入一条数据(10012365,张朋,000236,31426003017,鞍山,64,2003-12-20,男)的信息结果为 : 图23为储户表插入一条数据信息(5)创建角色u1并将对储户表查询,修改和插入的功能赋给角色u1create role u1grant select,update,inserton chuhu to u1结果为: 图24创建角色u1并将对储户表查询,修改和插入的功能赋给角色u1(6) 收回角色u1储户表修改的功能revoke updateon chuhufrom u1结果为: 图25收回角色u1储户表修改的功能(7)删除角色u1结果为: 图26删除
22、角色u1(8)建立触发器,当向储户表插入新信息后,打印出又添加了一个供应商信息字样结果为: 图27建立触发器(9)创建查看一个储户的基本信息的存储过程结果为: 图28创建存储过程5.设计体会这次银行管理系统课程设计,我主要采用是Microsoft SQL Severe2005数据库设计软件。通过这次课程设计,加深了我对课程设计的理解。通过这次数据库课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有了更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,我懂得
23、了不少数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立和理解,增强了自己在数据库中应用SQL语言的灵活性,其中包括插入、删除、修改、查询,牵涉表与表之间的联系,主键与外键的定义约束项的设置,使逻辑更严密。在整个学习与设计过程中,在课程设计过程中不免遇到各种各样的困难,通过与同学间的探讨,查阅资料解决困难,增强了自己的自学能力.这次课程设计让我知道了什么叫做付出才有回报.这次课程设计给了我一个锻炼自己,强化专业知识的机会,通过这次课程设计,我相信,只要认真学习,多借鉴别人的经验,多思考,多实践,最后就能成功了。在实验中我上网查阅了不少参考资料,并学以致用,自我创新,从学到用又从
24、用到学,不断修改,同时加强了自己对理论知识的学习与理解,这对完善系统设计有很大帮助。总之在这次设计过程中我受益匪浅,为以后工作打下了坚实的基础此次设计的银行管理系统实现的功能还很有限,都是些基本的功能,还有很多改进完善的地方,比如办理信用卡的业务,此次只是办理的银行储蓄卡的业务;实现帐号密码变更的功能,查询列出同一用户多个帐户的功能。这些功能等以后再添加了,因为这次课程设计时间有限,所以完成的功能也就很有限,但感觉收获很大,很有成就感。6.参考文献1 苗雪兰等.数据库系统原理及应用教程M.北京:机械工业出版社.2009,07. 2 王珊等.数据库基础及应用M.北京:人民邮电出版社.2009.3 康晓兵.西安理工大学印刷包装工程学院数字媒体技术专业多媒体数据库技术课程实验大纲.2011,3.THANKS !致力为企业和个人提供合同协议,策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考-可编辑修改-