falla.zhang

导航

ERWIN 7.0笔记

1.Subject Area

clip_image002

Ancestors 祖先 Descendants 后裔

2.主键,外键

标识和非标识关系

在标识关系中,外键迁移到键区(线上)。

clip_image004

Figure 3.12: Identifying relationship.

clip_image006
关系被称为标识,是因为父实体的键成了子实体标识的一部分,即子实体的标识依赖于父实体。标识关系用连接两个实体间的带点实线来表示,到目前为止,我们见到的所有关系都是标识关系。

Figure 3.13: Identifying relationship.

在这个例子中,PLAYERs由”team name”和”player name”两个来标识,这必须的,因为有时,同一个球员可以参加不同球队,并且有时,业务 (比如说管理的棒球统计)需要区分球队成员。

标识关系运用其业务规则,即通过父实体的标识符来标识子实体。在3.8中电影和电影-拷贝例子中,通过它拥有的唯一编号来标识拷贝,相反,我们决定用电影的标识符和增加第二部分(拷贝-编号)来区分每一个拷贝。

非标识关系 (虚线)也连接父实体和子实体,由非标识关系迁移的非空外键子集被置于数据区(线下)。

clip_image008

Figure 3.14: Non-identifying relationship.

既然在非标识关系中一些 (或所有)迁移的键不是子实体主关键字的一部分,那么子就不能由父来标识。正如我们将在第5和 6章所要了解的,当我们在插入、删除和更新操作下需要保持的父子关系完整性时,这个差别非常重要。这被称作参照完整性问题。

在乘客-座位例子中,航空公司已挑选”seat number”来标识座位-预留的实例。

clip_image010

Figure 3.15: PASSENGER-SEAT example.

由于相同座位占有者在每一次飞行中是变化的,目前乘客PASSENGERi不是键的一部分。然而,这个模型仍然不恰当,只用 “seat number”不能充分地标识当前乘客所预订的座位。在下面的模型中,我们扩展了座位-保留SEAT-RESERVATION的键,增加了”flight-number”来申明FLIGHT和SEAT-RESERVATION关系。(更多的非标识关系见第5章)

clip_image012

Figure 3.16: SEAT-RESERVATION example.

clip_image013

线说明

clip_image014
非标识关系贡献父实体的键给子实体,但是,由定义知,一些 (或所有)键不变成子实体的键,意思是子不标识依赖于父,允许这样的情形,关系中”多”端的实体没有”父”而可能存在,即它不是存在依赖。

从子实体看,如果关系是强制mandatory的,那么子存在依赖于父。如果可选,那么子既不存在也不标识依赖于关系 (虽然它也许依赖于其他关系)。ERwin用菱形为表示可选的情况,菱形只存在于非标识关系中(因为标识关系贡献主关键字,而主关键字部分不能为NULL)。带菱形的非标识关系是”零或一对多”的关系。

实体主键迁移給子实体作为部分主键(PK)

实体須由父实体决定,其存在亦需依附父实体

clip_image015

实体主键迁移給子实体作为非键属性(非PK) , 其表示並不能由父实体來决定子实体为何

子实体不須由父实体决定,但其存在仍需依附父实体 (mandatory)

clip_image016

posted on 2010-02-01 15:55  falla.zhang  阅读(2591)  评论(0编辑  收藏  举报