"银行ATM(取款机)系统数据库设计"
在设计银行ATM取款机系统数据库时,我们需要考虑以下几个核心知识点:
1. 数据库实体与关系设计:
- 用户信息表(userInfo):包含了顾客的基本信息,如customerID(顾客编号)、customerName(开户名)、PID(身份证号)、telephone(联系电话)和address(居住地址)。其中,customerID为主键,PID和telephone具有特定的格式和约束,如身份证号必须是18位或15位,电话号码应符合特定格式。
2. 银行卡信息表(cardInfo):
- cardID(卡号)是主键,且遵循特定的银行卡号规则,例如以10103576开头,每4位后有空格,且是随机生成的。
- curType(货币种类)默认为RMB,存款类型包括活期、定活两便和定期。
- openDate(开户日期)默认为系统当前日期,openMoney(开户金额)和balance(余额)都有最低限制,不足则会销户。
- pass(密码)是6位数字,默认为6个"8",IsReportLoss(是否挂失)是一个布尔值,表示卡片是否已挂失。
- customerID(顾客编号)作为外键,关联到用户信息表,表明该卡属于哪个客户,一个客户可以有多个卡号。
3. 交易信息表(transInfo):
- transDate(交易日期)默认为系统当前日期,记录每次交易的时间。
- cardID(卡号)作为外键,连接到银行卡信息表,表示进行交易的卡号。
- transType(交易类型)包括存入和支取,transMoney(交易金额)必须大于0,用于记录交易的金额。
- remark(备注)是可选的,用于输入额外的交易说明。
4. SQL语句创建数据库:
- 使用CREATE DATABASE语句创建数据库,例如:`CREATE DATABASE bankDB`,指定数据库名称。
- 定义数据文件的存储位置、初始大小、增长百分比等,例如:`ON (NAME='...', FILENAME='...', SIZE=..., FILEGROWTH=...)`。
- 创建日志文件,例如:`LOGON ("...")`。
5. 表的创建、字段约束与关系建立:
- 使用CREATE TABLE语句创建表,定义每个字段的数据类型、约束条件(如NOT NULL、UNIQUE、FOREIGN KEY等)。
- 通过FOREIGN KEY约束建立表间的关系,确保数据的一致性和完整性。
在实际操作中,学员需要根据这些设计要求,动手编写SQL语句来创建和授权系统维护账号,以实现ATM取款机系统的数据库结构。教师在巡视过程中解答学员的问题,确保他们理解和正确实施这些设计原则。