"该资源是关于使用Oracle数据库构建的校园一卡通系统,涵盖了从E-R模型转换为关系模型、数据库规范化与反规范化的过程,并提供了相关的SQL建表语句。系统功能包括办卡、充值、消费、转账、挂失和销户。"
在设计校园一卡通系统时,首先会构建实体-关系(E-R)模型来描述系统中的实体及它们之间的关系。在这个系统中,主要实体包括学生、卡、刷卡机和消费情况。E-R模型转换为关系模型后,产生了如下的表结构:
1. 学生表Student:包括学生的学号(StuID)、姓名(StuName)、所在学院(StuAcademy)和班级(StuClass)。
2. 卡表Card:记录卡片信息,如卡号(CardID)、与之关联的学生学号(StuID)、卡片的创建时间(CreateTime)、结束时间(EndTime)、余额(Balance)以及状态(Status)。
3. 刷卡机表Smac:记录刷卡机的信息,如PosID表示设备编号,Balance表示设备上的余额。
4. 消费情况表Consume_Record:记录每笔消费的详情,包括卡号(CardID)、消费时间(Consume_Time)、支出金额(Expenditure)和消费方式(fangshi)。
5. 销户记录表destroy_record:当卡片被销户时,记录卡号(cardid)、销户时间(destroy_time)以及对应的学生学号(StuID)。
为了优化数据库性能和数据冗余,进行了关系模式的规范化。规范化是一种将数据分解为更小、更独立的部分,以减少数据冗余和提高数据一致性的方式。在这个系统中,规范化后的表包括:
- 学生信息表,包含了学生的学号、姓名、性别和班级。
- 一卡通信息表,包含学号、卡号、余额和挂失情况。
- 管理员表,包含管理员编号、姓名和级别。
- 高级管理员表,针对具有特定权限的管理员,包含管理员编号、密码。
- 设备表,记录设备编号、设备状态和管理员编号。
- 日志表,记录消费事件,包括卡号、消费时间、消费类型、设备编号、管理员编号和消费金额。
另一方面,反规范化是将规范化后的数据重新组合,以提高查询效率。在本系统中,反规范化后的一卡通表包含了学号、姓名、性别、挂失情况、卡号和余额。日志表则合并了设备编号和管理员编号,而管理员表则包含了设备编号和设备状态,以简化查询。
最后,SQL建表语句用于在Oracle数据库中创建这些表,例如创建学生信息表和卡表的命令。这样的数据库设计能够支持校园一卡通系统的高效运行,满足学生、管理员和其他用户的需求。