1
数据库原理与应用技术
1.5.5.1 4.5.1 概念模型向关系模型的转换
4.5.1 概念模型向关系模型的转换

概念模型向关系模型的转化,即把现实世界的事务及其联系转化为计算机世界的数据及其联系。E-R模型是概念模型最流行也是用得最广的一种,所以逻辑结构设计的任务就是把概念结构设计阶段的E-R图转换成与选用DBMS所支持的数据模型相符合的逻辑结构。本节主要介绍基于关系模型的数据库逻辑设计。

绝大部分关系型DBMS都支持标准SQL语言,有的还进行了扩展。在SQL中,可以定义表(Table)、列(Column)、视图(View)、主码(Primary Key)、外码(Foreign Key)、约束(Constraint)等数据库对象,用于描述关系数据库的逻辑结构。表4-2所示列出了从E-R图到关系数据库结构转换的主要规律。

表4-2 概念/关系结构转换对照表

实体、属性及主码的转换都是比较直接的。表和列的命名与相应的实体和属性相同。虽然RDBMS大都支持汉字命名,但建议表名及列名最好不要用汉字。

E-R模型向关系模型转换一般应遵循如下原则。

(1) 每个实体转换为一种关系模式,实体的属性就是关系的属性,实体的码就是关系的码。

(2) 1∶1联系可以转换为两种关系模式,新的关系模式除了原有的码与属性外,还增加了对方的码作为外来码。1∶1联系也可以转换为一种独立的关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性,每个实体的码均为该关系的候选码。

(3) 1∶n联系可以转换为两种关系模式,单方维持原关系模式不变,多方关系模式在现有属性的基础上增加对方的码作为它的外来码。1∶n联系也可以转换为一种独立的关系模式,与该联系相连的各实体的码及联系本身的属性均转换为关系的属性。

(4) m∶n联系可以转换为三种关系模式,原有的两种关系模式不变,新增加一种关系模式,与该联系相连的各实体的码及联系本身的属性转换为关系的属性,而关系的码为各实体码的组合。

(5) 三个或三个以上实体间的一种多元联系可以转换为一种关系模式。与该多元联系相连的各实体的码及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。例如,现有一个E-R模型,模型中教师和课程间有讲授的关系,讲授课程要使用对应的书籍,所以“讲授”联系是一种三元联系。课程实体的主码为课程号,教师实体的主码为职工号,书籍的主码为书号,所以可以将该三元联系转换为如下关系模式:

讲授(课程号,职工号,书号)

其中:课程号、职工号和书号为关系的组合键。

(6) 同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。例如,教师实体集内部存在领导与被领导的1:n自联系,可将该联系与教师实体合并,这时主键职工号将多次出现,但作用不同,可用不同的属性名加以区分,即

教师:{职工号,姓名,性别,职称,系主任}

(7) 具有相同码的关系模式可合并。例如,现有两种关系模式如下。

性别关系模式:性别(学号,性别)

学生关系模式:学生(学号,姓名,出生日期,所在系,年级,班级号,平均成绩)

两种关系模式都以学号为键,可以将它们合并为一种关系模式,即

学生(学号,姓名,性别,出生日期,所在系,年级,班级号,平均成绩)

(8) 弱实体的处理。所谓弱实体是依赖于实体的存在而存在的实体。例如,职工家属是弱实体,依赖于职工的存在而存在,若职工离职或身故,则职工家属这个弱实体也随之消失。因为弱实体不能独立存在,必须依附于所有者实体,所以当转换为关系模式时,弱实体所对应的关系模式中必须包含所有者实体的主码。转换过程如图4-25所示。

图4-25 弱实体转换为关系模式