您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 数据库课程设计-银行ATM存取款机系统设计与实现
《数据库技术与开发》工程实训指导书1给学弟学妹的福利,数据库这个难度还算可以吧.也不是很大.大家多多思考一下.代码仅供参考.最好不要复制.手敲一遍也是好的.《数据库技术与开发》项目实训设计报告项目名称:银行ATM存取款机系统设计与实现姓名:谭海兵专业:软件工程指导教师:余金林完成日期:2015-11-22《数据库技术与开发》工程实训指导书2一、项目背景................................................................................................................31、项目任务..........................................................................................................32、项目技能目标..................................................................................................33、需求概述..........................................................................................................34、开发环境..........................................................................................................45、问题分析..........................................................................................................4二、项目实训内容........................................................................................................71、实训一:制定《数据库设计与编程规范》..................................................72、实训二:数据库分析设计与建模................................................................133、实训三:创建数据库....................................................................................154、实训四:创建触发器和插入测试数据........................................................205、实训五:模拟常规业务................................................................................276、实训六:创建、使用视图............................................................................317、实训七:存储过程实现业务处理................................................................348、实训八:利用事务实现转账........................................................................508、心得体会........................................................................................................55《数据库技术与开发》工程实训指导书3一、项目背景1、项目任务使用PowerDesigner完成数据库设计创建数据库、创建表、创建约束使用触发器和插入测试数据模拟常规业务、创建视图使用存储过程实现业务处理利用事务实现较复杂的数据更新2、项目技能目标使用PowerDesigner完成数据库概念模型和数据库物理模型设计。使用T-SQL语句创建数据库、表和各种约束。使用T-SQL语句编程实现常见业务。使用触发器实现多表之间的级联更新。使用事务和存储过程封装业务逻辑。使用视图简化复杂的数据查询。使用游标技术实现结果集的行集操作。3、需求概述某银行是一家民办的小型银行企业,现有十多万客户,公司将为该银行开发一套ATM存取款机系统,对银行日常的存取款业务进行计算机管理,以便保证数据的安全性,提高工作效率。要求根据银行存取款业务需求设计出符合第三范式的数据库结构,使用T-SQL语言创建数据库和表,并添加表约束,进行数据的增删改查,运用逻辑结构语句、事务、视图和存储过程,按照银行的业务需求,实现各项银行日常存款、取款和转账业务。《数据库技术与开发》工程实训指导书44、开发环境数据库:SQLSERVER2008开发版数据库建模工具:PowerDesigner155、问题分析该项目的ATM存取款机业务如下:(1)银行存取款业务介绍银行为客户提供了各种银行存取款业务。详见表1表1.银行存取款业务业务描述活期无固定存期,可随时存取,存取金额不限的一种比较灵活的存款定活两便事先不约定存期,一次性存入,一次性支取的存款通知不约定存期,支取时需提前通知银行,约定支取日期和金额方能支取的存款整存整取选择存款期限,整笔存入,到期提取本息的一种定期储蓄。银行提供的存款期限有1年、2年和3年零存整取一种事先原定金额,逐月按约定金额存入,到期支取本息的定期储蓄。银行提供的存款期限由1年、2年和3年自助转账在ATM存取款机上办理同一币种账户的银行卡之间互相划转(2)客户信息每个客户凭个人身份证在银行可以开设多个银行卡账户,开设账户时,客户需要提供的开户数据如表2所示:表2.开设银行卡账户的客户信息数据描述姓名必须提供《数据库技术与开发》工程实训指导书5身份证号唯一确定客户,如果是二代身份证,则是由17位数字和1位数字或者字符X构成。如果是一代身份证,则身份证号全部是15位数字。联系电话分为座机号码和手机号码:座机号码由数字和“-”构成,由以下两种格式:XXX-XXXXXXXX或者XXXX-XXXXXXX。手机号码由11位数字构成,且前2位必须是13或者15开头。居住地址可以选择(3)银行卡账户信息银行为每个账户提供一个银行卡,每个银行卡可以存入一种币种的存款,银行保存账户如表3所示:表3.银行卡账户信息数据描述卡号银行的卡号由16位数字组成,其中:一般前8位代表特俗含义,如代表某总行某支行等,假定该行要求其营业厅的卡号格式为10103576XXXXXXXX,后8位必须是随机产生且唯一,每4位号码后有空格。密码由6位数字构成,开户时默认为“888888”币种默认为RMB,目前该银行尚未开设其他币种存款业务。存款类型必须选择开户日期客户开设银行卡账户的日期,默认为当日开户金额客户开设银行卡账户时存入的金额,规定不得小于1元。是否挂失默认为“否”客户持银行卡在ATM机上输入密码,经系统验证身份后办理存款、取款和转账等银行业务。银行规定,每个账户当前的存款金额不得小于1元。(4)银行卡交易信息银行在为客户办理业务时,需要记录每一笔账目,账目交易信息如表4所示:表4.银行卡交易信息数据描述《数据库技术与开发》工程实训指导书6卡号银行的卡号由16位数字组成交易日期默认为当日交易金额必须大于0元交易类型包括:存入和支取两种备注对每笔交易做必要的说明(5)银行卡手工账户和存取款单据信息该银行要求这套软件实现银行客户的开户、存款、取款、转账和余额查询等业务,使得银行储蓄业务方便、快捷,同事保证银行业务数据的安全性。为使开发人员尽快了解银行业务,该银行提供了银行卡手工账户和存取款单据的样本数据,以供项目开发时参考,参加表5和表6。表5.银行卡手工账户样本数据表6.存取款单据样本数据《数据库技术与开发》工程实训指导书7二、项目实训内容1、实训一:制定《数据库设计与编程规范》长度规范凡是需要命名的对象其标识符均控制在30个字符以内,也即:SQLServer中的表名、字段名、函数名、存储过程、触发器、视图等名字长度要尽量不超过30个字符长度。构成规范数据库各种名称必须以字母开头,但严禁以系统关键字开头,名称只能含有字母、数字以及下划线“_”三类字符,“_”用于间隔名称中的各语义字段;不要使用系统保留字作表名。大小写规范构成SQLServer数据库中的各种名称(表名、字段名、过程名、视图名等所有命名符的首字母需要使用大写,也即每个命名单词的首字母大写,其它字符小写。但对于简写或缩写的短单词,如ID、UI可以全为大写。主键规范除临时表、流水表以及日志表外,其它表都要建立主键。主键最好设计成单一主键,尽量不要用复合主键,尽量使用没有业务语义的字段作为主键,如采用按顺序自增的数值型字段为主键注释规范每个表,每个字段都要有注释,说明其含义,对于冗余字段还要特别说明其维护方法,外键字段要说明参照于那个表,另外对于存储过程、视图、触发器、函数等代码均要增加注释,以保持代码的可读性以及后续的可维护性。行大小规范SQLServer的1页的大小是8K,因此一行的数据要控制到8K之内,如果超过8K要想办法将表进行拆分成多个子表。数据保留策略大表由于数据量较大,往往是系统的性能瓶颈所在,因此对于大表的设计好考虑《数据库技术与开发》工程实训指导书8到今后的数据转移、分片、Partition等,并且对大表以及其相关表的数据保留时间也要有一个提前规划,以免今后出现性能问题束手无策。必备字段要求每个大表都应该添加以下几个有用的字段,分别为创建日期、修改日期、操作人以及版本标记,创建这些字段的目的是为今后的数据转移以及分片或分区做准备,同时也有利于今后的数据审计等。注意事项基于大表的任何操作都要慎重思考,通常情况下要禁止在大表上创建触发器,禁止在大表上做频繁的批量更新或删除动作,禁止在生产时间对大表做DDL操作,禁止在大表上做全表扫描(FullScan)等。临时表功能SQLServer分为全局临时表和局部临时表,临时表在很多场合下能带来意想不到的效果,尤其是需要中转的数据记录集采用临时表能提升系统性能。临时表支持索引、约束、排序等实体表具有的功能。存储特点临时表的数据存储在tempdb数据库中,因此过于频繁的创建临时表会增加tempdb库的负荷,尤其是数据量超过10W条记录的临时表更是会影响tempdb库的性能,由此在某些情况下可用CTE替代临时表的使用。注意事项临时表执行完毕后,要及时的手工Drop掉,及时释放资源,减轻系统的Loading,另外特别注意的是要尽量禁止使用全局临时表,全局适合多个session间的数据交互,但往往会引起数据的串值。命名规范尽量采用有意义的字段名,使描述尽可能清楚,如采用缩写,尽量使用通用的缩写语言,如addr代表address,避免出现只有自己理解的缩写。日期字段时效性数据应包括“创建时间/修改时间”字段,时间标记对查找数据、清理数据、排序合并特别有用,另外要根据具体业务考量时间字段的类型,如在Smalldatetime《数据库技术与开发》工程实训指导书9和Datetime类型进行选择。注意保留词对于字段的命名,要确保字段名没有和保留词、数据库系统或者常用方法冲突,比如master、CROSS、address、substring、len、sysobjects等词就不适合用来做字段的独立命名。数值规范数值型
本文标题:数据库课程设计-银行ATM存取款机系统设计与实现
链接地址:https://www.777doc.com/doc-4812670 .html