数据库课程设计-银行atm存取款机系统设计与实现

上传人:第*** 文档编号:56922514 上传时间:2018-10-17 格式:DOC 页数:56 大小:1.16MB
返回 下载 相关 举报
数据库课程设计-银行atm存取款机系统设计与实现_第1页
第1页 / 共56页
数据库课程设计-银行atm存取款机系统设计与实现_第2页
第2页 / 共56页
数据库课程设计-银行atm存取款机系统设计与实现_第3页
第3页 / 共56页
数据库课程设计-银行atm存取款机系统设计与实现_第4页
第4页 / 共56页
数据库课程设计-银行atm存取款机系统设计与实现_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《数据库课程设计-银行atm存取款机系统设计与实现》由会员分享,可在线阅读,更多相关《数据库课程设计-银行atm存取款机系统设计与实现(56页珍藏版)》请在金锄头文库上搜索。

1、数据库技术与开发工程实训指导书1给学弟学妹的福利,数据库这个难度还算可以吧.也不是很大.大家多多思考一下.代码 仅供参考.最好不要复制.手敲一遍也是好的. 数据库技术与开发项目实训设计报告项目名称:银行 ATM 存取款机系统设计与实现姓 名:谭海兵专 业:软件工程指导教师:余金林完成日期:2015-11-22数据库技术与开发工程实训指导书2一、项目背景31、项目任务32、项目技能目标33、需求概述34、开发环境35、问题分析4二、项目实训内容61、实训一:制定数据库设计与编程规范62、实训二:数据库分析设计与建模123、实训三:创建数据库144、实训四:创建触发器和插入测试数据195、实训五:

2、模拟常规业务266、实训六:创建、使用视图307、实训七:存储过程实现业务处理338、实训八:利用事务实现转账498、心得体会54数据库技术与开发工程实训指导书3一、项目背景一、项目背景1、项目任务、项目任务使用 PowerDesigner 完成数据库设计创建数据库、创建表、创建约束使用触发器和插入测试数据模拟常规业务、创建视图使用存储过程实现业务处理利用事务实现较复杂的数据更新2、项目技能目标、项目技能目标使用 PowerDesigner 完成数据库概念模型和数据库物理模型设计。使用 T-SQL 语句创建数据库、表和各种约束。使用 T-SQL 语句编程实现常见业务。使用触发器实现多表之间的级

3、联更新。使用事务和存储过程封装业务逻辑。使用视图简化复杂的数据查询。使用游标技术实现结果集的行集操作。3、需求概述、需求概述某银行是一家民办的小型银行企业,现有十多万客户,公司将为该银行开发一套 ATM 存取款机系统,对银行日常的存取款业务进行计算机管理,以便保证数据的安全性,提高工作效率。要求根据银行存取款业务需求设计出符合第三范式的数据库结构,使用 T-SQL语言创建数据库和表,并添加表约束,进行数据的增删改查,运用逻辑结构语句、事务、视图和存储过程,按照银行的业务需求,实现各项银行日常存款、取款和转账业务。数据库技术与开发工程实训指导书44、开发环境、开发环境数据库:SQL SERVER

4、 2008 开发版数据库建模工具:PowerDesigner155、问题分析问题分析该项目的 ATM 存取款机业务如下:(1) 银行存取款业务介绍银行为客户提供了各种银行存取款业务。详见表 1表表 1银行存取款业务银行存取款业务业务业务描述描述活期无固定存期,可随时存取,存取金额不限的一种比较灵活的存款定活两便事先不约定存期,一次性存入,一次性支取的存款通知不约定存期,支取时需提前通知银行,约定支取日期和金额方能支取的存款整存整取选择存款期限,整笔存入,到期提取本息的一种定期储蓄。银行提供的存款期限有 1 年、2 年和 3 年零存整取一种事先原定金额,逐月按约定金额存入,到期支取本息的定期储蓄

5、。银行提供的存款期限由 1 年、2 年和 3 年自助转账在 ATM 存取款机上办理同一币种账户的银行卡之间互相划转(2) 客户信息每个客户凭个人身份证在银行可以开设多个银行卡账户,开设账户时,客户需要提供的开户数据如表 2 所示:表表 2开设银行卡账户的客户信息开设银行卡账户的客户信息数据数据描述描述姓名必须提供数据库技术与开发工程实训指导书5身份证号唯一确定客户,如果是二代身份证,则是由 17 位数字和 1 位数字或者字符 X 构成。如果是一代身份证,则身份证号全部是 15 位数字。联系电话分为座机号码和手机号码:座机号码由数字和“-”构成,由以下两种格式:XXX-XXXXXXXX 或者 X

6、XXX-XXXXXXX。手机号码由 11 位数字构成,且前 2 位必须是 13 或者 15 开头。居住地址可以选择(3) 银行卡账户信息银行为每个账户提供一个银行卡,每个银行卡可以存入一种币种的存款,银行保存账户如表 3 所示:表表 3银行卡账户信息银行卡账户信息数据数据描述描述卡号银行的卡号由 16 位数字组成,其中:一般前 8 位代表特俗含义,如代表某总行某支行等,假定该行要求其营业厅的卡号格式为1010 3576 XXXX XXXX,后 8 位必须是随机产生且唯一,每 4 位号码后有空格。密码由 6 位数字构成,开户时默认为“888888”币种默认为 RMB,目前该银行尚未开设其他币种存

7、款业务。存款类型必须选择开户日期客户开设银行卡账户的日期,默认为当日开户金额客户开设银行卡账户时存入的金额,规定不得小于 1 元。是否挂失默认为“否”客户持银行卡在 ATM 机上输入密码,经系统验证身份后办理存款、取款和转账等银行业务。银行规定,每个账户当前的存款金额不得小于 1 元。(4) 银行卡交易信息银行在为客户办理业务时,需要记录每一笔账目,账目交易信息如表 4 所示:表表 4银行卡交易信息银行卡交易信息数据库技术与开发工程实训指导书6数据数据描述描述卡号银行的卡号由 16 位数字组成交易日期默认为当日交易金额必须大于 0 元交易类型包括:存入和支取两种备注对每笔交易做必要的说明(5)

8、 银行卡手工账户和存取款单据信息该银行要求这套软件实现银行客户的开户、存款、取款、转账和余额查询等业务,使得银行储蓄业务方便、快捷,同事保证银行业务数据的安全性。为使开发人员尽快了解银行业务,该银行提供了银行卡手工账户和存取款单据的样本数据,以供项目开发时参考,参加表 5 和表 6。表表 5银行卡手工账户样本数据银行卡手工账户样本数据表表 6存取款单据样本数据存取款单据样本数据数据库技术与开发工程实训指导书7二、项目实训内容二、项目实训内容1、实训一:制定实训一:制定数据库设计与编程规范数据库设计与编程规范长度规范长度规范凡是需要命名的对象其标识符均控制在 30 个字符以内,也即:SQL Se

9、rver 中的表名、字段名、函数名、存储过程、触发器、视图等名字长度要尽量不超过 30 个字符长度。构成规范构成规范数据库各种名称必须以字母开头,但严禁以系统关键字开头,名称只能含有字母、数字以及下划线“_”三类字符,“_”用于间隔名称中的各语义字段;不要使用系统保留字作表名。大小写规范大小写规范构成 SQL Server 数据库中的各种名称(表名、字段名、过程名、视图名等所有命名符的首字母需要使用大写,也即每个命名单词的首字母大写,其它字符小写。但对于简写或缩写的短单词,如 ID、UI 可以全为大写。主键规范主键规范除临时表、流水表以及日志表外,其它表都要建立主键。主键最好设计成单一主键,尽

10、量不要用复合主键,尽量使用没有业务语义的字段作为主键,如采用按顺序自增的数值型字段为主键注释规范注释规范每个表,每个字段都要有注释,说明其含义,对于冗余字段还要特别说明其维护方法,外键字段要说明参照于那个表,另外对于存储过程、视图、触发器、函数等代码均要增加注释,以保持代码的可读性以及后续的可维护性。行大小规范行大小规范 SQL Server 的 1 页的大小是 8K,因此一行的数据要控制到 8K 之内,如果超过8K 要想办法将表进行拆分成多个子表。数据库技术与开发工程实训指导书8数据保留策略数据保留策略大表由于数据量较大,往往是系统的性能瓶颈所在,因此对于大表的设计好考虑到今后的数据转移、分

11、片、Partition 等,并且对大表以及其相关表的数据保留时间也要有一个提前规划,以免今后出现性能问题束手无策。必备字段要求必备字段要求 每个大表都应该添加以下几个有用的字段,分别为创建日期、修改日期、操作人以及版本标记,创建这些字段的目的是为今后的数据转移以及分片或分区做准备,同时也有利于今后的数据审计等。注意事项注意事项 基于大表的任何操作都要慎重思考,通常情况下要禁止在大表上创建触发器,禁止在大表上做频繁的批量更新或删除动作,禁止在生产时间对大表做 DDL 操作,禁止在大表上做全表扫描(Full Scan)等。临时表功能临时表功能SQL Server 分为全局临时表和局部临时表,临时表

12、在很多场合下能带来意想不到的效果,尤其是需要中转的数据记录集采用临时表能提升系统性能。临时表支持索引、约束、排序等实体表具有的功能。存储特点存储特点 临时表的数据存储在 tempdb 数据库中,因此过于频繁的创建临时表会增加tempdb 库的负荷,尤其是数据量超过 10W 条记录的临时表更是会影响 tempdb 库的性能,由此在某些情况下可用 CTE 替代临时表的使用。注意事项注意事项 临时表执行完毕后,要及时的手工 Drop 掉,及时释放资源,减轻系统的Loading,另外特别注意的是要尽量禁止使用全局临时表,全局适合多个 session 间的数据交互,但往往会引起数据的串值。命名规范命名规

13、范尽量采用有意义的字段名,使描述尽可能清楚,如采用缩写,尽量使用通用的缩写语言,如 addr 代表 address,避免出现只有自己理解的缩写。日期字段日期字段 数据库技术与开发工程实训指导书9时效性数据应包括“创建时间/修改时间”字段,时间标记对查找数据、清理数据、排序合并特别有用,另外要根据具体业务考量时间字段的类型,如在Smalldatetime 和 Datetime 类型进行选择。注意保留词注意保留词 对于字段的命名,要确保字段名没有和保留词、数据库系统或者常用方法冲突,比如 master、CROSS、address、substring、len、sysobjects 等词就不适合用来做

14、字段的独立命名。数值规范数值规范数值型的主要有INT、BIGINT、TINYINT、SMALLINT、FLOAT、NUMERIC、MONEY 等类型,要根据实际应用选择合适的类型,如字段的数据为小于 255 的整形数字,那么就要选择 TINYINT;如字段数据小于 32767 的整形数字,那么就要选择 SMALLINT,以此类推。文本规范文本规范文本类型主要有 CHAR、VARCHAR、TEXT 等类型,要根据实际应用选择合适的类型,如字段文本长度固定为 8 位,那么就要用 CHAR(8);如文本长度最大为100,并且大小是非定长的,那么就要设为 VARCHAR(100)。并且以上文本若为汉字

15、,那么就要设为 NVARCHAR 和 NCHAR。字段命名技巧字段命名技巧 字段命名要统一规范,同一个字段在不同的表中命名要一致,另外字段名一般都要带上业务模块的前缀,如订单(Order)价格字段命名为 Or_Price,部门(Department)编号为 Dep_No。命名规范没有那个是最合理的,只有定义好最适合自己的统一规范即可。外键建立索引外键建立索引外键不建立索引,将有可能导致两个严重的问题。1.更新相关的表产生死锁。2.两表关联查询时性能低下。因此通常情况下都必须要求外键建立索引。联合索引规范联合索引规范当数据对某表经常要多条件查询时,可能就需要建立联合索引,联合索引的第数据库技术与

16、开发工程实训指导书10一个引导列字段非常重要,引导列字段通常要能过滤掉大部分数据,这样方能减少IO 的读写,提高性能。非引导列字段在引导列的查询数据基础上继续过滤数据,以提高查询速度。联合索引对更新会产生一定的性能影响。禁用多余索引禁用多余索引数据库索引能提高查询速度,但会增加写操作的开销,因此对一些几月或者从没有使用过的索引要删除掉,以免增大数据库的负荷。重复索引问题重复索引问题一般情况下,尽量避免重复索引的出现,重复索引很容易引起死锁,减低数据库的并发访问。重复索引也会造成索引的维护困难。索引数量限制索引数量限制数据库索引主要用来解决读的性能瓶颈,但是会增加写操作的负荷,因此过多的索引会造成更新速度变慢,甚至会引起不要的死锁。一般情况下表中的索引不要超过 5 个。注意事项注意事项建立索引前,要充分了解表的使用及数据特性,要了解表的查询条件和查询频率,甚至随着业务的变化而引起表数据使用状况的变化,带之而来的是索引也需要相应调整。命名规范命名规范

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号