从概念结构设计中得到的E-R模型抽象地表达了用户的需求,并且独立于特定的数据模型,因此特定的DBMS无法支持。 为了建立最终的物理系统,将概念结构进一步转化为某个DBMS支持的数据模型,根据逻辑设计标准、数据语义约束、规范理论等对数据模型进行适当调整和优化,形成合理的全局逻辑结构,设计用户子模式这就是数据库逻辑设计要完成的任务。
数据库逻辑结构的设计分为两个步骤。 首先,将概念设计中得到的E-R图转换为关系模型。 接下来,优化关系模型,如图1.14所示。
图1.14逻辑结构设计流程
关系模型是一系列关系(二维表)的组合,E-R模型由三个元素组成:实体、实体属性和实体之间的关系。 因此,要将E-R模型转换为关系模型,必须将图元、属性和关系转换为相应的关系模型。 具体说明转换的规则。
1 .将图元类型转换为关系模型
将每个图元类型转换为关系。 实体的属性是关系的属性,而实体的关键字是关系的关键字。 例如,可以将学生图元转换为关系模型,如图1.15所示。 其中带下划线的属性是主属性,主属性是关系模型的外键。
图1.15将图元类型转换为关系模型
2 .一对一关系(1:1 )的转换
一对一关系有两种转换方法:
转换为独立的关系模型。 关联名称是关联模型名称,与关联相关联的两个实体的关键字和关联本身的属性是关联模型的属性,每个实体的关键字是关联模型的候选关键字。
与任意端的关系模型合并。 可以将两个相关实体分别转换为两个关系,并向其中一个关系的属性中添加另一个关系的主关键字。
例如,如果一条漂亮的项链工厂的每个仓库只有一个管理员,则仓库实体和管理员实体之间存在1:1关系。 根据以上介绍的原则,可以进行如图1.16所示的变换。
图1.16 1:1关系转换
实际设计中采用什么方案取决于具体应用。 如果在查询仓库关系时经常查询此仓库管理员的信息,则可以选择以前的关系模型以减少查询时的连接操作。 相反,如果在咨询管理员时经常查询仓库信息,则选择后者的关系模型。 总之,当模型转换出现很多方案时,效率是重要的取舍因素。
3 .一对多关系(1:n )转换
一对多关系也有两种转换方式。
将1:n关系转换为独立的关系模型。 联系名称是关系模型名称,被联系的各实体的关键字以及联系本身的属性是关系模型的属性,关系模型的关键字是n侧实体的关键字。
将1:n联系与n端关系合并。 1侧的关键词和联系属性被编入n侧的关系模型中
很好。
在图1.17中,如果实体“专业”和“学生”之间的联系为1:n,则两者可以使用以上原则进行关系模型的转换。
图1.17切换1: n联系
4 .多对多关系(m:n )转换
关系模型名称是关系名称,与关系相关的各实体的关键字以及关系本身的属性是关系模型的属性,关系模型的关键字是关系中各实体关键字的并集。
例如,在学校里,如果一个学生可以修多门课,一门课也可以为多个学生修,那么实体“学生”和“课程”之间就会满足多对多的关系,其转换方法如图1.18所示。
图1.18 m:n关系转换