欢迎投稿

今日深度:

一步一步设计你的数据库之概念数据建模(1)(2)

冗余关系

仔细分析冗余的关系。描述同一概念的两个或多个关系被认为是冗余的。当把ER模型转化为关系数据库中的表时,冗余的关系可能造成非范式化的表。需要注意的是两个实体间允许两个或更多关系的存在,只要这些关系具有不同的含义。在这种情况下这些关系不是冗余的。

举例来说,如下图1中Employee生活的City与该Employee所属的Professional-association的所在City可以不同(两种含义),故关系lives-in非冗余。

(图1 非冗余关系)

如下图2中的Employee工作的City与该Employee参与的Project的所在City在任何情况下都一致(同种含义),故关系works-in冗余。

(图2 传递性冗余关系)

三元关系

非常小心的定义三元关系,只有当使用多个二元关系也无法充分描述多个实体间的语义时,我们才会定义三元关系。以Technician、Project、Notebook为例。

例1:如果 一个Technician只做一个Project,一个Project只有一个Technician,每个Project会被独立记录在一本Notebook中。

(图3 例1二元关系图)

例2:如果一个Technician能同时做多个Project,一个Project可以有多个Technician同时参与,每个Project有一本Notebook(多个做同一个Project的Technician共用一本Notebook)。

(图4 例2二元关系图)

例3:如果一个Technician能同时做多个Project,一个Project可以有多个Technician同时参与,一个Technician在一个Project中使用独立的一本Notebook。

(图5 例3三元关系图)

注:三元关系的语义分析可参看一步一步设计你的数据库之纵览高级ER模型,这里不再赘述。


www.htsjk.Com true http://www.htsjk.com/shujukukf/17006.html NewsArticle 冗余关系 仔细分析冗余的关系。描述同一概念的两个或多个关系被认为是冗余的。当把ER模型转化为关系数据库中的表时,冗余的关系可能造成非范式化的...
评论暂时关闭