本文档详细阐述了在数据库课程中设计并实现的一个具体项目——超市会员管理系统。该项目旨在通过实际操作加深学生对数据库理论知识的理解和掌握,包括系统需求分析、数据建模、SQL编程及性能优化等内容。
超市会员管理系统
1. 课程设计目的
通过课程设计加深对数据库基础理论和基础知识的理解,并掌握运用数据库管理系统实现数据管理的基本思路与方法,培养分析问题、解决问题的能力。
2. 系统功能设计
2.1 功能模块图
系统包含多个关键的功能模块,具体布局请参照提供的图表。
2.2 功能说明
该超市会员管理系统旨在为超市的会员管理工作提供一个较为系统的平台。它帮助超市存储及管理会员的基本信息、处理与维护会员卡以及生成和分析各类报表等,并能够取代之前复杂的手工记录方法,是一套较完备的工具,极大地提高了超市对会员管理效率。在很大程度上便利了管理者掌握并有效控制整个运营流程。
3. 数据库概念设计
3.1 根据不同的对象分别绘制各分E-R图。
(1)从会员基本信息抽象出的分E-R图如图表所示。
(2)从会员卡信息中提取的另一个独立E-R图同样展示于相关文档内,用于描述与管理各类卡片的信息和属性;
(3)物品信息相关的分E-R图也已绘制完成,并包含所有必要的实体关系说明;
4. 数据库逻辑设计
将联系转化为独立的关系模式。具体转化如下:
- 会员基本信息(会员卡卡号,姓名, 性别, 年龄, 联系方式, 购卡日期)
主码:姓名、会员卡卡号
- 会员卡信息(会员卡编号, 类型等详情)
主码:会员卡编号
- 物品信息(物品编号,物品种类,名称,单价)
主码:物品编号
- 购物记录表 (会员卡号码、商品编码及购物数量)
主键:由会员卡号与商品编码共同构成。
上述各关系模式中非主属性对主属性均不存在部分函数依赖和传递函数依赖,已经达到了3NF。购物信息则存在部分依赖属于2NF。
5. 数据库物理设计
5.1 数据表定义
(1)会员基本信息表结构如下:
- 属性名:Ino, Iname, Isex, Iage, Itel, Idate
- 类型及宽度等细节请参阅相关文档说明。
(2)会员卡信息表结构包括:
- Ino (会员卡号), Cno(编号) ,Ckind(类型)
(3)物品信息表定义为:
- Tno (物品编码), Tkind, Tname,Tprice
(4)购物记录详情如下所示:
- Ino,Tno 和 Squantity
5.2 各表索引的设计
- 会员基本信息表按年龄升序建立唯一性索引。
- 会员卡信息表根据卡号排序创建唯一索引。
- 物品信息参照单价进行有序排列并设置为唯一标识符。
- 购物记录则依据购物数量降序生成相应的独特键值。
6. 数据库实施
6.1 创建数据库的过程及结果展示如图所示。