第四阶段银行ATM(取款机)系统
在第四阶段中,我们将学习如何使用 SQL 语句创建索引和视图,并应用于银行 ATM(取款机)系统的数据库设计中。本阶段将为期 30 分钟,要求学员自己动手操作,教员巡视,解答学员提出的问题。
数据库设计
ATM 取款机系统数据库设计是本阶段的核心内容。我们将设计一个完整的数据库,包括用户信息表、银行卡信息表和交易信息表。
用户信息表(userInfo)
用户信息表是 ATM 取款机系统的基础表,用于存储用户的基本信息。该表包括以下字段:
* customerID:顾客编号,自动编号(标识列),从 1 开始,主键
* customerName:开户名,必填
* PID:身份证号,必填,只能是 18 位或 15 位,身份证号,唯一约束
* telephone:联系电话,必填,格式为 xxxx-xxxxxxxx 或手机号,13 位
* address:居住地址,可选输入
银行卡信息表(cardInfo)
银行卡信息表用于存储银行卡的详细信息。该表包括以下字段:
* cardID:卡号,必填,主健,银行的卡号规则和电话号码一样,一般前 8 位代表特殊含义,如某总行某支行等
* curType:货币种类,必填,默认为 RMB
* savingType:存款类型,必填,活期/定活两便/定期
* openDate:开户日期,必填,默认为系统当前日期
* openMoney:开户金额,必填,不低于 1 元
* balance:余额,必填,不低于 1 元,否则将销户
* pass:密码,必填,6 位数字,开户时默认为 6 个“8”
* IsReportLoss:是否挂失,必填,是/否值,默认为”否”
* customerID:顾客编号,外键,必填,表示该卡对应的顾客编号,一位顾客允许办理多张卡号
交易信息表(transInfo)
交易信息表用于存储交易记录。该表包括以下字段:
* transDate:交易日期,必填,默认为系统当前日期
* cardID:卡号,必填,外健,可重复索引
* transType:交易类型,必填,只能是存入/支取
* transMoney:交易金额,必填,大于 0
* remark:备注,可选输入,其他说明
ER 图和数据库设计
在设计数据库时,我们需要首先设计 ER 图,以确定实体和关系。然后,我们可以使用 SQL 语句创建数据库和表,添加约束和索引。
以下是创建数据库的 SQL 语句:
```sql
CREATE DATABASE bankDB
ON
(
NAME='bankDB',
FILENAME='D:\bank\bankDB.mdf',
SIZE=10MB,
FILEGROWTH=15%
)
LOG ON
(
NAME='bankDB_log',
FILENAME='D:\bank\bankDB_log.ldf',
SIZE=5MB,
FILEGROWTH=15%
)
```
在设计数据库时,我们需要考虑数据的完整性、唯一性和参照完整性等约束。同时,我们还需要考虑索引的创建,以提高查询效率。
通过本阶段的学习,我们将掌握数据库设计的基本原则和技术,能够独立设计和实现一个完整的数据库系统。