ATM取款系统数据库设计

需积分: 0 0 下载量 182 浏览量 更新于2024-08-15 收藏 1.41MB PPT 举报
"ATM取款系统的数据库设计" 在设计ATM取款系统数据库时,首先需要理解系统的核心功能和所需存储的数据。本系统主要包括开户、取款、存款、查询余额和转账等操作,因此数据库设计应围绕这些功能展开。 问题分析: 1. 用户信息表(userInfo): - customerID:顾客编号,自动编号,为主键,确保每个用户有唯一的标识。 - customerName:开户名,必填,用于记录客户姓名。 - PID:身份证号,必填且唯一,可以是18位或15位。 - telephone:联系电话,必填,格式限定为固定电话或手机号码。 - address:居住地址,可选输入,用于记录客户的居住地。 2. 银行卡信息表(cardInfo): - cardID:卡号,必填且为主键,遵循特定的银行格式,例如10103576xxxxxxx,并且每4位有空格。 - curType:货币种类,必填,默认为RMB(人民币)。 - savingType:存款类型,包括活期、定活两便、定期。 - openDate:开户日期,必填,默认为系统当前日期。 - openMoney:开户金额,必填,不能低于1元。 - balance:余额,必填,不能低于1元,否则系统会自动销户。 - pass:密码,必填,由6位数字组成,开户默认为6个"8"。 - IsReportLoss:是否挂失,必填,值为"是"或"否",默认为"否"。 - customerID:顾客编号,外键,表示该卡对应的顾客编号,一个顾客可以办理多张卡。 3. 交易信息表(transInfo): - transDate:交易日期,必填,默认为系统当前日期。 - cardID:卡号,必填,外键,与cardInfo表关联,记录每次交易的卡号。 - transType:交易类型,必填,包括存款(存入)和取款(支取)。 - transMoney:交易金额,必填,必须大于0,表示交易的金额。 - remark:备注,可选输入,用于记录额外的交易信息。 难点分析: 在设计ER图(实体关系图)时,需考虑各个实体(如用户、卡片、交易)之间的关系。用户与卡片之间是一对多关系,一个用户可以有多张卡片;卡片与交易之间是一对多关系,一张卡片可以有多笔交易。在建库和建表过程中,需设定好主键、外键和约束,确保数据的一致性和完整性。例如,创建数据库的SQL语句如下: ```sql CREATE DATABASE bankDB ON ( NAME='bankDB_data', FILENAME='D:\bank\bankDB_data.mdf', SIZE=1MB, FILEGROWTH=15% ) LOG ON ( NAME='bankDB_log', FILENAME='D:\bank\bankDB_log.ldf', SIZE=1MB, FILEGROWTH=15% ); ``` 以上语句创建了一个名为bankDB的数据库,数据文件初始大小为1MB,以15%的速度增长。日志文件同样设置在D:\bank目录下,同样1MB起始,按15%增长。在创建表时,需要定义各个字段的类型、长度、是否可为空以及约束条件,例如唯一性约束、非空约束等。 数据库设计完成后,可以进一步进行数据插入、查询、更新和删除操作,以支持ATM取款系统的正常运行。同时,为了保证系统的安全性,还需要考虑如加密存储敏感信息(如密码)、防止SQL注入攻击等安全措施。