《数据库技术与开发》
项目实训设计报告。
项目名称:atm存取款机系统。
姓名:**学号:**
专业:软件2012-1
指导教师: 于金林。
完成日期:2014-11-19
使用create database语句创建“atm存取款机系统”数据库bankdb
**如下:-创建bankdb数据库。
create database bankdb on primary
name=n'bankdb',filename=n'c:\2024年工程案例项目\银行atm存取款机系统\',size=5mb,filegrowth=15%
log on
name=n'bankdb_log',filename=n'c:\2024年工程案例项目\银行atm存取款机系统\bankdb_',size=2mb,filegrowth=15%
go使用create table语句创建表结构。
根据银行业务,分析表中每个列相应的约束要求,为每个表添加各种约束。
要求创建表时要求检测是否存在表结构,如果存在,则先删除再创建。
**如下。use bankdb;
go-判断银行业务类型表是否存在,若存在则删除。
if exists(select * from sysobjects where id=object_id(n'bankbusinesstype'))
drop table bankbusinesstype
-创建银行业务类型表。
create table bankbusinesstype
bbtid int identity(1,1) primary key,--银行业务类型编号。
bbtname char(20) not null,--银行业务类型名称。
bbtcomment varchar(100)--银行业务类型描述。
go-判断银行卡客户是否存在,若存在则删除。
if exists(select * from sysobjects where id=object_id(n'bankcustomer'))
drop table bankcustomer
-创建银行客户信息表。
create table bankcustomer
bcuid int identity(1,1) primary key,--银行客户编号。
bcuname char(20) not null,--银行客户名字。
bcuicno char(18) not null --银行客户身份证号。
check(left(bcuicno,17) like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
and (right(bcuicno,1) like '[0-9]' or right(bcuicno,1) like 'x'))定义身份证号前位必须是数字,后位可以是数字或者x。
bcutel varchar(20) not null --银行客户****。
check(bcutel like '[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' or
bcutel like '[0-9][0-9][0-9]_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
or bcutel like '1[358][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')定义****,必须是固定**号码或者手机号,手机前2位必须是13或15
bcuaddress varchar(100)--银行客户地址。
go-判断银行卡是否存在,若存在,则删除银行卡bankcard
if exists(select * from sysobjects where id=object_id(n'bankcard'))
drop table bankcard
-建立银行卡信息。
create table bankcard
--卡号必须符合16位数字构成,前8位为1010 3576,后位是随机产生且唯一,每4位必须有一个空格。
bcno char(19) primary key check(bcno like '1010 3576 [0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9]')bcpassword char(6) not null default('888888'),密码,开户默认为888888
bccurrency char(5) not null default('rmb'),币种,为rmb类型。
bcbbtid int not null,--存款类型。
bcopendate date not null default(getdate())开户日期,默认当日。
bcopenamount money not null check(bcopenamount>=1),-开户金额,不得小于元。
bcregloss char(2) default('否'),是否挂失,默认为否。
bcbcuid int not null,--客户编号。
bcexistbalance money not null--余额。
-判断交易信息bankdealinfo是否存在,若存在则删除。
if exists(select * from sysobjects where id=object_id(n'bankdealinfo'))
drop table bankdealinfo
-创建交易信息表。
create table bankdealinfo
bdno int identity(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)--交易描述。
添加子表外键约束及生成数据库关系图。
**如下:-建立表之间的外键约束关系。
alter table bankcard
add constraint fk_bc_bbt foreign key(bcbbtid) references bankbusinesstype(bbtid);
-bc表与btt表。
alter table bankcard
add constraint fk_bc_bcu foreign key(bcbcuid) references bankcustomer(bcuid);
-bc表与bcu表。
alter table bankdealinfo
add constraint fk_bd_bc foreign key(bdbcno) references bankcard(bcno);
-bd表与bc表。
在sql server里自动生成数据库关系图,如下所示:
2.1.1创建insert触发器。
在交易信息表bankdealinfo中创建一个insert触发器,当增加一条交易信息时,修改相应银行卡的存款余额。
建议使用游标,实现批量增加的级联更新。
-创建insert触发器。
-在交易信息表中插入一个触发器,使用游标当新增一个交易信息,修改银行卡的存款余额。
if (object_id('tr_insertdealinfo','tr') is not null)
数据库库课程设计
目录。引言11 开发环境1 1.1 硬件环境1 1.2 软件环境1 1.2.1 sql server 2005 delphi7简单介绍2 2 需求分析3 2.1 信息需求3 2.2 功能需求3 2.3 安全性与完整性要求3 3 概念结构设计3 4 逻辑结构设计4 5 数据库实现6 5.1 创建数据库...
数据库课程设计总结数据库课程设计个人总结
数据库课程设计个人总结 4班6组赵 王婆卖瓜时间过了,言归正传吧。凡是都要有个总结,以下便是我在这个课程设计中的一点心得。首先我分析一下我们组任务顺利完成的成功之处并总结一些经验,供以后反省参考用。凡事预则备,不预则废。这是我的座右铭,也是我深有感悟的几句古语之一。在这个项目的开始阶段,老师便让我们...
数据库课程设计
简单pos系统。班级 计科二班 姓名 韩田田 学号 201010510237 目录。前言。销售管理作为零售企业现代化管理不可缺少的组成部分,日益受到人们的重视。传统销售模式以及销售管理体系和机制,已经越来越难以适应零售企业现代化管理的需求。pos point of sales,销售终端的英文缩写 是...