ATM取款机系统数据库设计与实现

需积分: 18 13 下载量 93 浏览量 更新于2024-08-23 收藏 2.3MB PPT 举报
"本资源是关于银行ATM(取款机)系统第四阶段标准代码的演示,涵盖了数据库设计和SQL操作。主要涉及了创建索引、视图以及接口和多态性在Java中的应用。" 在银行ATM系统中,数据库设计是至关重要的,它确保了系统的稳定性和数据的完整性。在描述中提到了三个关键的表:`userInfo`(用户信息表)、`cardInfo`(银行卡信息表)和`transInfo`(交易信息表)。 1. 用户信息表(userInfo)包含了顾客的基本信息,如`customerID`(顾客编号,自动编号主键)、`customerName`(开户名,必填)、`PID`(身份证号,唯一约束)、`telephone`(联系电话,格式受限)和`address`(居住地址,可选输入)。 2. 银行卡信息表(cardInfo)则存储了银行卡的详细资料,包括`cardID`(卡号,主键,有特定格式)、`curType`(货币种类,默认RMB)、`savingType`(存款类型,如活期、定活两便、定期)、`openDate`(开户日期,默认系统当前日期)、`openMoney`(开户金额,最低1元)、`balance`(余额,最低1元)、`pass`(密码,6位数字,默认6个8)、`IsReportLoss`(是否挂失,是/否值,默认否)和`customerID`(顾客编号,外键,表示对应顾客)。 3. 交易信息表(transInfo)记录了所有交易活动,包括`transDate`(交易日期,默认系统当前日期)、`cardID`(卡号,外键,可重复索引)、`transType`(交易类型,如存入、支取)、`transMoney`(交易金额,必须大于0)和`remark`(备注,可选输入)。 在SQL操作方面,创建了非聚簇索引`index_cardID`在`transInfo`表的`cardID`字段上,优化了按卡号查询的效率。同时,创建了一个视图`view_userInfo`,将英文字段名转换为中文,便于使用。这展示了数据库设计中的规范化和用户体验考虑。 此外,提到了Java编程语言中接口和多态的概念。Java通过接口支持多重继承,允许一个对象在运行时动态地转化为需要的对象类型,只要该对象实现了相应的接口或扩展了特定的父类。接口提供了多态性,使得我们可以根据不同的需求给对象赋予不同的行为。 这个ATM系统设计不仅关注了数据库的实体关系模型和数据完整性,还考虑了查询性能和用户界面的友好性,并结合了面向对象编程的原则,以实现一个高效、易用的银行自助服务系统。