任务三 逻辑结构设计
知识点
1. 逻辑结构设计的主要任务是什么?
答:逻辑结构设计的主要任务是将概念结构设计阶段的E-R图转换为具体的DBMS支持的某种数据模型,包括层次模型、网状模型和关系模型。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。
2. E-R图向关系模型转换的基本规则有哪些?
答:E-R图向关系模型的转换规则有7条:
- 一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码
- 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
- 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
- 一个m:n联系可以转换为一个独立的关系模式
- 一个多元联系可以转换为一个独立的关系模式
- 具有相同码的关系模式可以合并
- 有些1:n的联系,将属性合并到n端后,该属性也作为主码的一部分
3. 1:1联系如何转换为关系模式?
答:一个1:1联系可以有两种转换方式:
- 转换为独立的关系模式:联系的属性和两端实体的码作为该关系模式的属性,两端实体的码均可作为候选码
- 与任意一端对应的关系模式合并:将联系的属性加入到任意一端实体的关系模式中,同时将另一端实体的码作为外键加入
4. 1:n联系如何转换为关系模式?
答:一个1:n联系可以有两种转换方式:
- 转换为独立的关系模式:联系的属性和两端实体的码作为该关系模式的属性,n端实体的码作为该关系模式的主码
- 与n端对应的关系模式合并:将联系的属性和1端实体的码加入到n端实体的关系模式中
5. m:n联系如何转换为关系模式?请举例说明。
答:一个m:n联系必须转换为一个独立的关系模式,该关系模式的属性包括两端实体的码和联系自身的属性,两端实体的码组合作为该关系模式的主码。
例如:学生与课程之间是m:n联系(选修),转换为关系模式:
- 学生(学号,姓名,性别,年龄,家庭住址)
- 课程(课程号,课程名,课时)
- 选修(学号,课程号,成绩)—— 学号和课程号组合为主码
6. 什么是关系模式的优化?为什么要优化?
答:数据库逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,通常以规范化理论为指导,根据应用适当地修改、调整关系数据库的结构,这就是关系模式的优化。
需要优化的原因:直接从E-R图转换得到的关系模式可能存在数据冗余、更新异常等问题,需要通过规范化理论进行优化调整。
7. 关系模式优化的方法有哪些?
答:关系模式优化的方法包括:
- 确定数据依赖:分析各属性间的函数依赖关系
- 极小化处理:对数据依赖进行极小化处理,消除冗余联系
- 确定范式级别:根据应用环境,对某些模式进行合并或分解
- 必要分解:对关系模式进行垂直分解或水平分解
8. 什么是垂直分解?什么情况下使用?
答:垂直分解是将一个关系模式的属性按访问频率拆分为多个关系模式。如果一个关系模式的属性特别多,就应该考虑是否可以对这个关系进行垂直分解。如果有些属性是经常访问的,而有些属性是很少访问的,则应该把它们分解为两个关系模式。
9. 什么是水平分解?什么情况下使用?
答:水平分解是将一个关系模式的数据按行拆分为多个关系模式。如果一个关系的数据量特别大,就应该考虑是否可以进行水平分解。例如,学生关系模式中数据庞大,可以将学生关系水平分割为在校学生和毕业学生两个关系。
10. 设计用户子模式的目的是什么?有哪些方法?
答:设计用户子模式主要考虑使用方便性和效率问题,主要借助视图手段实现:
- 建立视图,使用更符合用户习惯的别名:让字段名更贴近用户的业务术语
- 对不同级别的用户定义不同的视图,以保证系统的安全性:限制用户只能看到其权限范围内的数据
- 对复杂的查询操作定义视图,简化用户对系统的使用:将复杂的多表连接查询封装为视图
11. 具有相同码的关系模式如何处理?
答:具有相同码的关系模式可以合并。当多个关系模式具有相同的主码时,说明它们描述的是同一个实体的不同方面,可以合并为一个关系模式,将所有属性合并在一起。合并后可以减少连接操作,提高查询效率。
12. 多元联系如何转换为关系模式?
答:一个多元联系(涉及三个或以上实体的联系)可以转换为一个独立的关系模式。该关系模式的属性包括所有参与实体的码以及联系自身的属性,所有参与实体的码组合作为该关系模式的主码(或主码的一部分)。