数据库课程设计atm机

上传人:第*** 文档编号:56922500 上传时间:2018-10-17 格式:DOCX 页数:60 大小:317.89KB
返回 下载 相关 举报
数据库课程设计atm机_第1页
第1页 / 共60页
数据库课程设计atm机_第2页
第2页 / 共60页
数据库课程设计atm机_第3页
第3页 / 共60页
数据库课程设计atm机_第4页
第4页 / 共60页
数据库课程设计atm机_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《数据库课程设计atm机》由会员分享,可在线阅读,更多相关《数据库课程设计atm机(60页珍藏版)》请在金锄头文库上搜索。

1、1数据库技术与应用课程设计报告项目名称:银行 ATM 存取款机系统设计与实现姓 名:杨磊专 业:软件 12-2 班指导教师: 余金林完成日期:2014-11-722目录目录1、创建数据库31.1 创建数据库.31.2 创建各个数据表及相关的约束.31.3 添加外键约束和生成数据库关系图.72、创建触发器和插入测试数据72.1 创建级联触发器.72.1.1 创建 Insert 触发器.72.1.2 创建 Delete 触发器.92.1.3 创建 Update 触发器.102.2 插入数据表的测试数据.112.2.1bbt 表的测试数据.112.2.2bc 表的测试数据.122.2.3bankca

2、rd 表的测试数据.122.2.4bankdealInfo 表的测试数据.133、模拟常规业务153.1 修改客户密码.153.2 办理银行卡挂失.153.3 统计银行资金流通余额和盈利结算.163.4 查询本周开户信息.173.5 查询本月单次交易金额最高的卡号和总交易金额最高的卡号.183.6 查询挂失客户.183.7 催款提醒业务194、创建、使用视图1934.1 输出银行客户记录视图 VW_userInfo194.2 输出银行卡记录视图 VW_CardInfo204.3 输出银行卡交易记录视图 VW_TransInfo214.4 根据客户登录名查询该客户账户信息 VW_OneUserI

3、nfo225、存储过程实现业务处理225.1 完成存款或取款业务.225.2 产生随机卡号.255.3 完成开户业务.265.4 分页显示查询交易数据.295.5 打印客户对账单.305.6 统计未发生交易的账户.345.7 统计银行卡交易量和交易额.366、利用事务实现转账427、心得体会:461 1、创建数据库、创建数据库1.11.1 创建数据库创建数据库使用 Create DataBase 语句创建“ATM 存取款机系统”数据库 BankDB,数据文件和日志文件保存在指定目录下(建议建立一个文件夹,用于存放该实训项目的所有相关 T-SQL 源文件) ,文件增长率为 15%。-创建bank

4、数据库create database bank on primary(name=bank,filename=NC:Documents and SettingsAdministrator桌面新建文件夹bank.mdf,size=5,filegrowth=15%)log on(name=bank_log,filename=NC:Documents and SettingsAdministrator桌面新建文件夹bank_log.ldf,size=2,filegrowth=15%)use bankgo41.21.2 创建各个数据表及相关的约束创建各个数据表及相关的约束根据实训 1 设计出的“银行 A

5、TM 存取款机系统”PDM 模型的数据表结构,使用 Create Table 语句创建表结构。5根据银行业务,分析表中每个列相应的约束要求,为每个表添加各种约束。要求创建表时要求检测是否存在表结构,如果存在,则先删除再创建。-判断银行业务类型表是否存在,如存在则删除if exists(select * from sysobjects where id=OBJECT_ID(Nbbt)drop table bbt -建立银行业务类型表,包含银行业务类型编号bbtid,银行业务类型名称bbtname,银行业务描述bbtcommentcreate table bbt(bbtid int identit

6、y(1,1) primary key,bbtname char(20) not null,bbtcomment varchar(100)go-判断银行卡客户是否存在,若存在则删除if exists(select * from sysobjects where id=OBJECT_ID(Nbc)drop table bc-创建银行客户信息表,包含客户编号bcid,客户姓名bcname,客户身份证bcicno,客户联系电话bctel、客户居住地址bcaddrcreate table bc6(bcid int identity(1,1) primary key,bcname char(20) not

7、 null,-定义身份证号前位必须是数字,后位可以是数字或者X。bcicno char(18) not null check(left(bcicno,17) like 0-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-90-9 and (right(bcicno,1) like 0-9 or right(bcicno,1) like X),-定义联系方式,必须是固定电话号码或者手机号,且前位必须是,第位必须是或或bctel varchar(20) not null check(bctel like 0-90-90-90-9_0-90-90-90-90

8、-90-90-9 orbctel like 0-90-90-9_0-90-90-90-90-90-90-90-9or bctel like 13580-90-90-90-90-90-90-90-90-9),-定义客户地址bcaddr varchar(100);-判断银行卡是否存在,若存在,则删除银行卡bankcardif exists(select * from sysobjects where id=object_id(Nbankcard)drop table bankcard7-建立银行卡信息create table bankcard(-卡号必须符合位数字构成,前位为,后位是随机产生且唯一

9、,每位必须有一个空格bcno char(19) primary key check(bcno like 1010 3576 0-90-90-90-9 0-90-90-90-9),-密码,开户默认为bcpwd char(6) not null default(888888),-币种,为RMB类型bccurrency char(5) not null default(RMB),-存款类型bcbbtid int not null,-开户日期,默认当日bcopendate date not null default(getdate(),-开户金额,不得小于元bcopenamount money not

10、 null check(bcopenamount=1),-是否挂失,默认为否bcregloss char(2) default(否),-客户编号bcbcid int not null,bcexistbalance money not null8);-判断交易信息bankdealInfo是否存在,若存在则删除if exists(select * from sysobjects where id=OBJECT_ID(NbankdealInfo)drop table bankdealInfo-创建交易信息表create table bankdealInfo(-交易编号为自动增长列bdno int i

11、dentity(1,1) primary key,-卡号bdbcno char(19) not null,-交易日期bddealdate date not null default(getdate(),-交易金额bddealacount money not null,-交易类型,有种存入和支取bddealtype Char(10) not null check(bddealtype=存入 or bddealtype=支取),-交易备注bddealcomment varchar(100)9);1.31.3 添加外键约束和生成数据库关系图添加外键约束和生成数据库关系图-建立表之间的外键约束关系al

12、ter table bankcardadd constraint fk_bc_bbt foreign key(bcbbtid) references bbt(bbtid);alter table bankcardadd constraint fk_bc_bc foreign key(bcbcid) references bc(bcid);alter table bankdealInfoadd constraint fk_bdi_bc foreign key(bdbcno) references bankcard(bcno);图 1.1102 2、创建触发器和插入测试数据、创建触发器和插入测试数

13、据2.12.1 创建级联触发器创建级联触发器2.1.12.1.1 创建创建 InsertInsert 触发器触发器在交易信息表 BankDealInfo 中创建一个 Insert 触发器,当增加一条交易信息时,修改相应银行卡的存款余额。-在交易信息表中插入一个触发器,使用游标当新增一个交易信息,修改银行卡的存款余额if (object_id(tr_InsertdealInfo,tr) is not null)drop trigger tr_InsertdealInfogocreate trigger tr_InsertdealInfoon bankdealinfofor insertasdec

14、lare type char(10),sum money,bdbcno char(19);-创建一个游标,指向inserted表declare cursor_bankdealinfo cursor for select bddealtype,bddealacount,bdbcno from inserted-打开游标open cursor_bankdealinfo-取游标中各个字段的值复制给各个变量fetch next from cursor_bankdealinfo into type,sum,bdbcno11while fetch_status=0begin-判断交易记录里是存入还是支取,

15、及时更新银行卡表的存款余额if(rtrim(ltrim(type)=存入) update bankcard set BCExistBalance=BCExistBalance+sum where bcno=bdbcno; if(rtrim(ltrim(type)=支取) update bankcard set BCExistBalance=BCExistBalance-sum where bcno=bdbcno;fetch next from cursor_bankdealinfo into type,sum,bdbcnoend close cursor_bankdealinfodeallocate cursor_bankdealinfogo2.1.22.1.2 创建创建 DeleteDelete 触发器触发器在交易信息表创建一个 Delete 触发器,当删除一条交易信息时,修改相应银行卡的存款余额。-在交易信息表中插入一个触发器,使用游标,当删除一个交易信息,修改银行卡的存款余额if (object_id(tr_DeldealInfo,tr) is not null)drop trigger tr_DeldealInfogocreate t

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

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

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