任务三 逻辑结构设计
一、核心定义与任务
逻辑结构设计的主要任务是将概念结构设计阶段得到的E-R图,转换为具体DBMS支持的数据模型(如关系模型、层次模型、网状模型),同时为不同数据处理场景生成对应的逻辑子模式。
子任务一:E-R图向关系模型的转换规则
这是逻辑结构设计的核心环节,具体规则如下:
-
实体型转换 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码(主键)就是关系的码。 例如:“学生”实体 →
学生(学号, 姓名, 性别, 年龄, 家庭住址)。 -
1:1联系转换 可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
-
1:n联系转换 可以转换为一个独立的关系模式,也可以与
n端(多方)对应的关系模式合并。 合并后,联系的属性会并入n端的关系模式,且有时会成为n端主码的一部分。 -
m:n联系转换 必须转换为一个独立的关系模式,包含双方实体的码(作为联合主键)和联系本身的属性。 例如:学生与课程的“选修”联系 →
选修(学号, 课程号, 成绩)。 -
多元联系转换 转换为一个独立的关系模式,包含所有参与实体的码和联系的属性。
-
合并规则 具有相同码的关系模式可以合并,以减少冗余。
子任务二:关系模型的优化及设计用户子模式
1. 关系模式的优化
优化目的是提升数据库性能,以规范化理论为指导,步骤如下:
- 确定数据依赖:分析各属性间的依赖关系。
- 极小化处理数据依赖:消除冗余的联系和依赖。
- 确定范式级别:根据应用场景,对关系模式进行合并或分解(如从3NF调整为BCNF)。
- 必要的分解:
- 垂直分解:当一个关系属性过多、访问频率差异大时,拆分为多个关系(如把“基本信息”和“详细档案”分离)。
- 水平分解:当关系数据量过大时,按条件拆分(如把学生分为“在校学生”和“毕业学生”)。
2. 设计用户子模式(视图)
用户子模式通过视图实现,核心目标是提升使用便捷性与安全性:
- 建立视图,使用符合用户习惯的别名,降低理解成本。
- 为不同权限的用户定义不同视图,保证数据安全(如普通用户无法查看敏感字段)。
- 对复杂查询定义视图,简化用户操作(如将多表关联查询封装为视图)。