数据库课程设计

发布 2022-10-04 15:31:28 阅读 1990

《数据库技术与开发》

项目实训设计报告。

项目名称: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,销售终端的英文缩写 是...