Alex_McAvoy

想要成为渔夫的猎手

数据库逻辑结构设计

【概述】

概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是将概念模型设计好的 E-R 图转换为选用 DBMS 支持的数据模型相符合的逻辑结构

目前的数据库应用系统都采用支持关系数据模型的 RDBMS,因此这里仅介绍 E-R 图向关系数据模型的转换

【E-R 图向关系模型的转换】

E-R 图向关系模型的转换要解决的问题有两个:

  • 如何将实体型和实体间的联系转换为关系模式
  • 如何确定这些关系模式的属性和码

关系模型的逻辑结构是一组关系模式的集合,E-R 图是由实体型实体属性实体型间的联系这三个要素组成的,因此将 E-R 图转换为关系模型,实质上就是将上述的三个要素转换为关系模式

将一个实体型转换为一个关系模式,转换的一般原则如下:

1.对于 1:1 联系,可以转换为一个独立的关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码;也可与某一端实体对应的关系模式合并,需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性

2.对于 1:m 联系,可以转换为一个独立的关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,关系的码为 n 端实体的码;也可与 n 端对应的关系模式合并

3.对于 n:m 联系,可以转换为一个关系模式,与该联系相连的各实体的码及联系本身的属性,均转换为关系的属性,各实体的码组成关系的码或关系码的一部分

4.对于三个或三个以上实体间的多元联系,可以转换为一个关系模式,与该多元联系相连的各实体的码及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分

5.具有相同码的关系模式可以合并,即将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性,并适当调整属性的次序

【数据模型的优化】

数据库逻辑设计的结果不是唯一的,为进一步提高数据库系统的性能,应当根据应用需求进行适当的修改、调整数据模型的结构,即数据模型的优化

关系数据模型的优化以规范化理论为指导,具体方法如下:

1.确定数据依赖:按照需求分析阶段得到的语义,分别写出每个关系模式内部各属性间的数据依赖、不同关系模式属性间的数据依赖

2.消除冗余联系:对各关系模式间的数据依赖进行极小化处理,消除冗余的联系

3.确定所属范式:按照数据依赖理论对关系模式逐一分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,从而确定各关系模式分别属于第几范式(并非规范化程度越高的关系就越优,一般来说,3NF 足够)

4.对模式合并或分解:根据需求分析阶段得到的处理要求,分析对于当前的应用环境,这些模式是否合适,以确定是否对某些模式进行合并或分解

5.垂直分解或水平分解:对关系模式进行水平分解或垂直分解,以提高数据操作效率和存储空间利用率

感谢您对我的支持,让我继续努力分享有用的技术与知识点!