模拟银行数据库管理系统.docx
《模拟银行数据库管理系统.docx》由会员分享,可在线阅读,更多相关《模拟银行数据库管理系统.docx(9页珍藏版)》请在冰豆网上搜索。
![模拟银行数据库管理系统.docx](https://file1.bdocx.com/fileroot1/2022-11/26/3d541595-fb92-487a-8ad4-68c0a4d86855/3d541595-fb92-487a-8ad4-68c0a4d868551.gif)
模拟银行数据库管理系统
目录
总体设计…………………………………………………2
1、目的与意义…………………………………………2
2、设计内容与要求……………………………………2
3、设计工具……………………………………………3
4、详细设计……………………………………………3
1、系统需求分析
2、数据库需求分析
3、数据库概念结构设计和数据库逻辑模型设计
4、设计表&流程图
5、关系图
6、关系表
5、编码……………………………………………………7
6、实验总结………………………………………………9
7、参考资料………………………………………………10
总体设计
首先进行需求分析和结构设计,确定该系统的一些功能要求及数据的存储方法,画出流程图以及E-R图。
然后根据需求分析所得的流程图及E-R图设计表,确定属性。
再用SQL语言编写程序实现操作。
最后对系统进行调试与测试,确定系统是否完成设计要求。
一、目的与意义
1、加深理解概念模型、数据模型(尤其是关系模型)、逻辑结构及物理结构等概念。
2、通过实验。
掌握关系数据库设计的基本技术,熟悉数据库设计的方法及整个设计过程,并进一步加深对数据库系统概念和特点的理解。
重点包括数据库抽象的方法,概念模型的E-R图表示,概念模型向数据模型的转换规则,视图(逻辑结构设计)和索引(物理设计)的建立方法等。
3、能够根据用户的实际需求进行数据库系统的设计。
4、进一步了解和掌握SQLServer的系统功能。
二、设计内容与要求
根据现行银行的数据库管理模型,模拟银行数据库管理系统实际运行的过程,设计一个,实现存款、取款、查询等基本功能的管理系统。
具体要求如下:
1、对银行存取款所涉及到的各种因素进行收集,明确主次问题,确定范式,实现实体和关系体的确立和区分,并附加其相关属性。
保证实体完整性和参照完整性。
2、对实体的各个属性进行分析,确定主码。
同时对关系模型要确定其外码,并确定主码。
3、编写相关代码实现数据库的创建和赋值等功能
4、根据实际运行环境建立适当的视图和索引
5、对所建立的数据库进行测试与调试,并请相关人员进行测定,并加以完善。
3、设计工具
SQL是一种介于关系代数与关系演算之间的结构化查询语言,其功能并不仅仅是查询。
SQL是一个通用的、功能极强的关系数据库语言。
它之所以能够为用户和业界所接受,并成为国际标准,是因为它是一个综合的、功能极强同时又简捷易学的语言。
SQL语言集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)功能于一体。
四、详细设计
1、系统需求分析
银行存取款管理系统主要用于用户的一些操作,包括存款、取款、查询、转账等基本操作,主要涉及到银行与用户两个实体,还有交易(存、取、转款等)这个联系。
2、数据库需求分析
数据库设计必须满足一下几点:
1、用户可以进行存款、取款、查询、转账等基本操作;
2、相关用户(高级用户和系统管理员)可查询用户的全部资料,用户只可以查询自己资料;
3、用户必须有唯一的ID,并且用户的权限不同设计对应的用户类型;
4、用户只有查询的权限,没有修改的权限,系统管理员有修改数据库的权限。
3、数据库概念结构设计和数据库逻辑模型设计
1、流程图
2、
ER图模型如下所示
E-R图
其中:
四个实体一个联系
实体及属性:
:
Custom:
账号,用户名,身份证,开户时间,开户银行,账户结余,住址;
Bank:
银行ID,银行名称,总存款金额,银行地址;
Staff:
员工号,员工姓名,所属银行,税收,工资,入行时间;
Acount:
流水号,交易时间,交易类型,交易金额,余额,上次余额。
联系及属性
Trade:
流水帐号,员工号,账号,银行ID
关系图:
关系表:
Acount:
Bank:
Custom:
Staff:
Trade:
五、编码
CREATEDATABASEbank_data
onprimary(
NAME=bank_mian_data,
FILENAME='F:
\bank_data.mdf',
SIZE=100MB,
MAXSIZE=1000MB)
logon(
NAME=bank_log_data,
FILENAME='F:
\bank_data.ldf',
SIZE=100MB,
MAXSIZE=1000MB);
createtablebank(--银行表
银行IDchar(20)primarykey,
银行名称char(20)unique,
总存款金额float,
银行地址char(20)NOTNULL);
createtablecustom(--用户表
账号char(22)PRIMARYKEY,
用户名char(20)NOTNULL,
身份证char(18)notnull,
开户时间smalldatetimeNOTNULL,
开户银行char(20)NOTNULL,
帐户余额float,
住址char(30)NOTNULL,);
createtablestaff(--员工表
员工号char(20)PRIMARYKEY,
员工姓名char(20)NOTNULL,
所属银行char(20)NOTNULL,
职位char(20)NOTNULL,
工资float,
入行时间smalldatetime,)
createtableAcount(--账单表
流水号char(20)primarykey,
交易时间smalldatetimenotnull,
交易类型char(20),
交易金额float,
余额float,
上次余额float,
constraintc2check(交易类型in('存款','取款','转账')))
createtabletrade(
流水号char(20),
员工号char(20),
账号char(22),
银行IDchar(20),
constraintc1primarykey(流水号,员工号,账号,银行ID),
constraintc3foreignkey(流水号)referencesAcount(流水号),
constraintc4foreignkey(员工号)referencesstaff(员工号),
constraintc5foreignkey(账号)referencescustom(账号),
constraintc6foreignkey(银行ID)referencesbank(银行ID),)
六、实验总结
经过实验,我们的收获颇多。
刚开始的时候我们感到无从下手,很多问题都没有头绪,对于课程的理解不够,想了很久都没什么思路,甚至想到放弃或者抄袭,但想想自己这样做那就一点收获都没有了,所以还是硬着头皮往下做。
后来经过老师的帮助和自己专研看书,在查阅了一些资料之后终于有了一些想法,并且逐步逐步的向下设计,慢慢完成要求,完善系统。
其实数据库是一项很有用的技术,现代社会凡是用到计算机的地方几乎都有数据库的存在,我想我们作为一个学习通讯的学生对于数据库的知识是必须掌握的,这对于我们未来是至关重要的,这是将来很多工作的基础。
实验作为一个实践环节,对于我们更好的掌握课本知识是很有利的,如果少了这个环节,我们仅仅是学理论,纸上谈兵,华而无实,无法体会到数据库的应用,这是很糟糕的,同时也不利于我们掌握书本上的理论知识。
因为实验设计教学环节所必须的一部分希望今后能多增加一些这样的环节,让我们更好的应用所学的理论,同时也让我们体会到知识的强大,因为我们用自己所学的东西亲手做一些东西并实现一些功能是相当有成就感的。
在实验过程中,我们对数据库的基本操作及应用有了更加深刻的体会,如:
表的创建、数据的插入、删除、修改、主键的确定以及外码及约束条件的应用等等。
最终,我们组所设计的银行取款管理系统数据库基本上能够满足相应的的要求,也达到了我们预期的效果。
不过在实验过程中,虽然我们搜集了大量的资料来了解银行取款管理系统的管理方面相关的信息,但是我们对其流程毕竟还不是非常了解,在设计表和视图的过程中难免出现了考虑不全面和信息累赘的问题,所以我们的数据库还有待改善。
总的来说,本次实验帮助我们将数据库的基本内容都贯穿了起来,有效的帮助我们理解和复习了数据库的相关内容,我们觉得此次的实验是比较成功的。
参考资料
[1]苗雪兰等.数据库系统原理及应用教程[M].北京:
机械工业出版社.2009,07.
[2]王珊等.数据库基础及应用[M].北京:
人民邮电出版社.2009.
[3]康晓兵.西安理工大学印刷包装工程学院数字媒体技术专业《多媒体数据库技术》课程实验大纲.2011,3.