Skip to main content

任务三 逻辑结构设计

一、核心定义与任务

逻辑结构设计的主要任务是将概念结构设计阶段得到的E-R图,转换为具体DBMS支持的数据模型(如关系模型、层次模型、网状模型),同时为不同数据处理场景生成对应的逻辑子模式


子任务一:E-R图向关系模型的转换规则

这是逻辑结构设计的核心环节,具体规则如下:

  1. 实体型转换 一个实体型转换为一个关系模式。实体的属性就是关系的属性,实体的码(主键)就是关系的码。 例如:“学生”实体 → 学生(学号, 姓名, 性别, 年龄, 家庭住址)

  2. 1:1联系转换 可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

  3. 1:n联系转换 可以转换为一个独立的关系模式,也可以与 n 端(多方)对应的关系模式合并。 合并后,联系的属性会并入 n 端的关系模式,且有时会成为 n 端主码的一部分。

  4. m:n联系转换 必须转换为一个独立的关系模式,包含双方实体的码(作为联合主键)和联系本身的属性。 例如:学生与课程的“选修”联系 → 选修(学号, 课程号, 成绩)

  5. 多元联系转换 转换为一个独立的关系模式,包含所有参与实体的码和联系的属性。

  6. 合并规则 具有相同码的关系模式可以合并,以减少冗余。


子任务二:关系模型的优化及设计用户子模式

1. 关系模式的优化

优化目的是提升数据库性能,以规范化理论为指导,步骤如下:

  • 确定数据依赖:分析各属性间的依赖关系。
  • 极小化处理数据依赖:消除冗余的联系和依赖。
  • 确定范式级别:根据应用场景,对关系模式进行合并或分解(如从3NF调整为BCNF)。
  • 必要的分解
    • 垂直分解:当一个关系属性过多、访问频率差异大时,拆分为多个关系(如把“基本信息”和“详细档案”分离)。
    • 水平分解:当关系数据量过大时,按条件拆分(如把学生分为“在校学生”和“毕业学生”)。

2. 设计用户子模式(视图)

用户子模式通过视图实现,核心目标是提升使用便捷性与安全性:

  • 建立视图,使用符合用户习惯的别名,降低理解成本。
  • 为不同权限的用户定义不同视图,保证数据安全(如普通用户无法查看敏感字段)。
  • 对复杂查询定义视图,简化用户操作(如将多表关联查询封装为视图)。