数据库课程设计银行管理系统xml.docx
- 文档编号:9252999
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:25
- 大小:127.27KB
数据库课程设计银行管理系统xml.docx
《数据库课程设计银行管理系统xml.docx》由会员分享,可在线阅读,更多相关《数据库课程设计银行管理系统xml.docx(25页珍藏版)》请在冰豆网上搜索。
数据库课程设计银行管理系统xml
目录
1.1选题的目的及意义1
1.2设计内容1
1.1选题的目的及意义
银行管理系统:
该系统要求建立的用户表并不是很多,完成的功能也相对有限,但其中各个表之间的联系很紧密,该系统对数据库表的设计要求会很高,所以完成这个题目,能更好的训练数据库设计和VC的编程能力,选择该题目就是充分训练数据库表设计的能力和运用VC的能力。
1.2设计内容
用户管理模块:
建立新用户、删除老用户、更改用户操作;
账户操作模块:
账户信息、活期存取款操作、查询活期操作记录、定期存款、定期取款、查询定期操作记录;
数据库模块:
数据库备份、数据库恢复;
2需求分析
2.1功能需求
对于用户部分,能够新建和删除用户,在操作过程中可以更改用户;对于账户部分,可以查询用户的信息,包括各种基本信息、活期余额、定期账单等;对于账户操作部分,有活期存取款、定期存取款操作,另外操作完成之后存储相应的操作记录并能够查询操作记录等功能。
2.2数据需求
2.21数据字典
银行管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。
在定义的银行数据库管理系统数据字典中,主要对数据流图中的账户信息
定期历史操作记录定期存款定期取款活期操作进行说明。
【1】数据需求的描述
(1)数据项名称:
帐号
含义说明:
惟一标识一个用户
类型:
数字型
长度:
20
逻辑关系:
不允许为空
(2)数据项名称:
开户人姓名
类型:
字符型
长度:
20
逻辑关系:
不允许为空
(3)数据项名称:
账户密码
类型:
数字型
长度:
6
逻辑关系:
不允许为空
(4)数据项名称:
身分证号
类型:
数字型
长度:
20
逻辑关系:
不允许为空
(5)数据项名称:
账户余额
类型:
数字型
逻辑关系:
不允许为空
(6)数据项名称:
开户日期
类型:
数字型
逻辑关系:
不允许为空
(7)数据项名称:
开户地址
类型:
字符型
长度:
30
逻辑关系:
不允许为空
(8)数据项名称:
利息
类型:
数字型
逻辑关系:
不允许为空
(9)数据项名称:
金额
含义说明:
可以表示为存入和支出
类型:
数字型
逻辑关系:
不允许为空
(10)数据项名称:
存入日期
类型:
数字型
逻辑关系:
不允许为空
(11)数据项名称:
存款人姓名
类型:
字符型
长度:
10
逻辑关系:
不允许为空
(12)数据项名称:
存储年份
类型:
数字型
逻辑关系:
不允许为空
(13)数据项名称:
存储利率
类型:
float型
逻辑关系:
不允许为空
(14)数据项名称:
取款人姓名
类型:
字符型
长度:
10
逻辑关系:
不允许为空
【2】.数据结构的描述
(1)数据名字:
注册申请表
数据来源:
储户
数据目的:
储户信息
数据组成:
姓名+密码+住址+身份证号码
(2)数据名字:
储户信息表
数据来源:
储户
数据目的:
身份验证
数据组成:
姓名+密码+住址+身份证号码+现有金额
(3)数据名字:
利息清单
数据来源:
系统
数据目的:
储户
数据组成:
利息+姓名+取款时间
(4)数据名字:
存单
数据来源:
存款信息表
数据目的:
储户
数据组成:
姓名+到期时间+存入类型+存入时间+利率+存入金额
(5)数据名字:
取款单
数据来源:
储户
数据目的:
取款信息表
数据组成:
姓名+到期时间+存入类型+存入时间+利率+取款金额+身份证号
(6)数据名字:
存款单
数据来源:
储户
数据目的:
存款信息表
数据组成:
姓名+到期时间+存入类型+存入时间+利率+存入金额+身份证号
【3】.数据存储描述
(1)数据存储名称:
储户基本表
含义说明:
存放储户的有关信息
组成结构:
储户信息包括账号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址。
说明:
储户帐号具有惟一性和非空性。
(2)数据存储名称:
活期存取款表
含义说明:
存放活期存取款的信息
组成结构:
活期存取款包括帐号,金额,办理日期,利息,账户余额;
说明:
帐号具有惟一性和非空性.
(3)数据存储名称:
定期存款表;
含义说明:
存放定期存款的信息
组成结构:
帐号,存款人姓名,金额,存储年份,年利率,存储日期
说明:
帐号,存储日期,存储年份,年利率具有惟一性和非空性.
(4)数据存储名称:
定期取款表;
含义说明:
存放定期取款的信息
组成结构:
帐号,取款人姓名,取款金额,取款日期.
说明:
帐号,取款人姓名,取款日期具有惟一性和非空性.
(5)数据存储名称:
定期记录表
含义说明:
存放定期存取款的信息
组成结构:
帐号,存取款人姓名,操作金额,年份,操作日期
说明:
帐号,操作日期具有惟一性和非空性.
3.数据库设计
3.1概念结构设计
图1银行基本信息实体图图2储户基本信息实体图
图3定期记录基本信息实体图
图4合并部分视图生成E-R图
3.2逻辑结构设计
3.2.1E-R图向关系模型的转换
(1)一个1:
1联系可转换为一个独立的关系模式,可以与任意一端对应的关系模式合并;
(2)一个1:
n联系可以转换为独立的关系模式,也可以与n端对应的关系模式合并;
(3)一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分;将实体转化为关系模式。
由E-R图转换成关系模式
储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);
活期存取款(nID,帐号,金额,办理日期,利息,账户余额);
定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);
定期取款(nID,帐号,取款人姓名,取款金额,取款日期);
定期记录(nID,帐号,存取款人姓名,操作金额,操作类型,操作日期)
3.2.2判断每个表分别属于第几范式
(1)由储户表(姓名,账号,密码,身份证号,性别,帐户余额,开户日期,开户地址)写出数据依赖:
储户姓名→身份证号,储户姓名→账号,储户姓名→地址
该表中的各个元组都不可再分、并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表满足BCNF范式。
(2)由活期存取款表(序号,利息,帐号,金额,办理日期,账户余额);
写出数据依赖:
利息→帐号,利息→办理日期,利息→金额
该表中的每个元组都不可再分、并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表也满足BCNF范式。
(3)由定期存款表(序号,年利率,帐号,存款人姓名,金额,存储年份,存储日期)写出数据依赖:
年利率→存储年份,年利率→存储日期,
该表中每个元组都不可再分并且无部分函数依赖和传递函数依赖、主码都是候选码,所以该表同样满足BCNF范式。
(4)由定期取款表(序号,取款人姓名,帐号,取款金额,取款日期)写出数据依赖:
取款人姓名→帐号
该表中各个元组都不可再分同样无部分函数依赖和传递函数依赖并且主码都是候选码,所以该表同样满足BCNF范式。
(5)由定期记录表(序号,存取款人姓名,帐号,操作金额,操作类型,操作日期)写出数据依赖:
存取款人姓名→帐号
储户(帐号,姓名,密码,身份证号,性别,帐户余额,开户日期,开户地址);
活期存取款(nID,帐号,金额,类型,办理日期,利息,账户余额);
定期存款(nID,帐号,存款人姓名,金额,存储年份,年利率,存储日期);
定期取款(nID,帐号,取款人姓名,取款金额,取款日期);
定期记录(nID,帐号,存取款人姓名,类型,操作金额,年份,操作日期)
3.3物理结构设计
储户表
序号
字段名称
字段描述
数据类型
长度
属性
1
CNo
帐号
Varchar
20
PK
2
CName
开户人姓名
Varhcar
20
非空
3
CPassword
登录密码
Char
6
非空
4
CID
身份证号
Varchar
20
非空
5
CSex
性别
Char
2
非空
6
CBalance
帐户余额
Float
8
非空
7
CDate
开户日期
Datetime
8
非空
8
CAddress
开户地址
Varchar
30
非空
主键:
帐号;
约束条件:
各属性均非空,密码长度为6位;
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CMoney
操作金额
Float
8
非空
4
CStyle
操作类型
Varchar
10
非空
5
CDate
操作日期
Datetime
8
非空
6
CInterest
利息
Float
8
非空
7
CBalance
帐户余额
Float
8
非空
活期存取款表
主键:
nID;外键:
帐号;被参照表:
储户表
约束条件:
各属性均非空;
定期存款表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CName
存款人姓名
Varchar
10
非空
4
CMoney
存款金额
Float
8
非空
5
CDate
存款日期
Datetime
8
非空
6
CYear
存储年份
Int
4
非空
7
CRate
存储利率
Float
8
非空
主键:
nID;外键:
帐号;被参照表:
储户表
约束条件:
各属性均非空;
定期取款表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CName
取款人姓名
Varchar
10
非空
4
CMoney
取款金额
Float
8
非空
5
CDate
取款日期
Datetime
8
非空
主键:
nID;外键:
nID;被参照表:
定期存款表
约束条件:
各属性非空
定期操作记录表
序号
字段名称
字段描述
数据类型
长度
属性
1
nID
序号
Int
4
PK
2
CNo
帐号
Varchar
20
非空
3
CName
存取款人姓名
Float
8
非空
4
CStyle
操作类型
Char
4
非空
5
CMoney
存取款金额
float
8
非空
6
CYear
存储年份
Int
4
非空
7
CDate
存取款日期
Datetime
8
非空
主键:
nID;外键:
nID;被参照表:
定期存款表,定期取款表
约束条件:
各属性非空
3.4创建基本表
提高查询速度,分别为各表经常查询的列建立索引。
(1)为chuhu(储户表)中的cno属性建立唯一索引cno:
CREATEUNIQUEINDEXcno_indexonchuhutable(cno);
(2)为Hcq(活期存取款表)中nid属性建立唯一索引nid:
CREATEUNIQUEINDEXnid_indexONHcq(nid);
(3)为dqcun(定期存款表)中nid属性建立降序唯一索引niddesc:
CREATEUNIQUEINDEXniddescONdqcun(niddesc);
(4)为dqqu(定期取款表)中nid属性建立升序唯一索引nidasc:
CREATEUNIQUEINDEXnidascONdqqu(nidasc);
(5)为dqjilu(定期记录表)中nid属性建立降序唯一索引niddesc:
CREATEUNIQUEINDEXniddescONdqjilun(niddesc);
数据的载入是一个非常繁杂和重要的过程需要很大的工作量,可分为人工输入与其它格式数据文件导入。
该系统只是一个简单的实验系统,所以采用手工输入少量的数据可满足实验要求即可。
分别给储户基本信息表,活期存取款基本信息表,定期存款基本信息表,定期取款基本信息表和定期操作记录基本信息表输入数据。
下面若干个表分别显示了所要求的表基本信息息的录入和显示的结果
(1)创建储户表
Createtablechuhu
(CNointprimarykey,
CNamechar(20)notnull,
CPasswordintnotnull,
CIDintnotnull,
CAddresschar(20)notnull,
CBalanceintnotnull,
CDatedatetimenotnull,
CSexchar
(2)notnull,
)
图5利用查询编辑器创建储户信息表
图6储户信息表
(2)创建活期存取款表
CreatetableHcq
(nIDintprimarykey,
CNointnotnull,
CMoneyintnotnull,
CBalanceintnotnull,
CDatedatetimenotnull,
CInterestintnotnull,
)
图7利用查询编辑器创建活期存取款表
图8活期存取款表
(3)创建定期存款表
Createtabledqcun
(nIDintprimarykey,
CNointnotnull,
CNamechar(10)notnull,
CMoneyintnotnull,
Cratefloatnotnull,
CYearintnotnull,
CDatedatetimenotnull,
)
图9利用查询编辑器创建定期存款表
图10定期存款表
(4)创建定期取款表
Createtabledqqu
(nIDintprimarykey,
CNointnotnull,
CDatedatetimenotnull,
CMoneyintnotnull,
CNamechar(20)notnull,
)
图11利用查询编辑器创建定期取款表
图12定期取款表
(5)定期操作记录表
Createtabledqjilu
(nIDintprimarykey,
CNointnotnull,
CDatedatetimenotnull,
CStylechar(4)notnull,
CMoneyintnotnull,
CNamechar(8)notnull,
)
图13利用查询编辑器创建定期操作记录表
图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的用户的名字
(4)为储户表插入一条数据(10012365,张朋,000236,31426003017,鞍山,64,2003-12-20,男)的信息
结果为:
图23为储户表插入一条数据信息
(5)创建角色u1并将对储户表查询,修改和插入的功能赋给角色u1
createroleu1
grantselect,update,insert
onchuhu
tou1
结果为:
图24创建角色u1并将对储户表查询,修改和插入的功能赋给角色u1
(6)收回角色u1储户表修改的功能
revokeupdate
onchuhu
fromu1
结果为:
图25收回角色u1储户表修改的功能
(7)删除角色u1
结果为:
图26删除角色u1
(8)建立触发器,当向储户表插入新信息后,打印出又添加了一个供应商信息字样
结果为:
图27建立触发器
(9)创建查看一个储户的基本信息的存储过程
结果为:
图28创建存储过程
5.设计体会
这次银行管理系统课程设计,我主要采用是MicrosoftSQLSevere2005数据库设计软件。
通过这次课程设计,加深了我对课程设计的理解。
通过这次数据库课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有了更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,我懂得了不少数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立和理解,增强了自己在数据库中应用SQL语言的灵活性,其中包括插入、删除、修改、查询,牵涉表与表之间的联系,主键与外键的定义约束项的设置,使逻辑更严密。
在整个学习与设计过程中,在课程设计过程中不免遇到各种各样的困难,通过与同学间的探讨,查阅资料解决困难,增强了自己的自学能力.这次课程设计让我知道了什么叫做付出才有回报.这次课程设计给了我一个锻炼自己,强化专业知识的机会,通过这次课程设计,我相信,只要认真学习,多借鉴别人的经验,多思考,多实践,最后就能成功了。
在实验中我上网查阅了不少参考资料,并学以致用,自我创新,从学到用又从用到学,不断修改,同时加强了自己对理论知识的学习与理解,这对完善系统设计有很大帮助。
总之在这次设计过程中我受益匪浅,为以后工作打下了坚实的基础
此次设计的银行管理系统实现的功能还很有限,都是些基本的功能,还有很多改进完善的地方,比如办理信用卡的业务,此次只是办理的银行储蓄卡的业务;实现帐号密码变更的功能,查询列出同一用户多个帐户的功能。
这些功能等以后再添加了,因为这次课程设计时间有限,所以完成的功能也就很有限,但感觉收获很大,很有成就感。
6.参考文献
[1]苗雪兰等.数据库系统原理及应用教程[M].北京:
机械工业出版社.2009,07.
[2]王珊等.数据库基础及应用[M].北京:
人民邮电出版社.2009.
[3]康晓兵.西安理工大学印刷包装工程学院数字媒体技术专业《多媒体数据库技术》课程实验大纲.2011,3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 银行 管理 系统 xml