首页 理论教育 现代数据库:联系与多元联系

现代数据库:联系与多元联系

时间:2023-10-21 理论教育 版权反馈
【摘要】:所以,联系也有联系名。此时,在谈论两个实体集之间的联系性质时,就可省略去联系名,直接说两个实体集之间具有一对一、一对多或者多对多的联系。(四)多元联系在E-R模型中,可以表示两个以上实体集间的联系,称为多元联系。考虑一个抽象的三元联系集R,它联系了实体集A、B、C。在此可引进实体集E替代联系集R,然后为实体集E和A、B、C建立三个新的二元联系集,分别命名为RA、RB、RC。

现代数据库:联系与多元联系

现实世界中,事物之间有着错综复杂的联系,反映在概念模型中,则有了实体集内部的联系和实体集之间的联系。其实,联系也是实体,但当概念模型确定之后,就只能作为联系存在了。所以,联系也有联系名。当然,联系的属性大部分隐藏在发生联系的各实体中。

(一)一对一联系(1∶1)

现有实体集A和B,若对于某个联系K来说,A中每个实体至多与B中一个实体相联系;反之亦然,则称A与B对于联系K来,具有一对一联系。

(二)一对多联系(1∶n)和多对一联系(n∶1)

对于联系K来说,若对A中的每一实体,B可有多个实体与之联系,但对B中的每一实体,A中最多有一个实体与之联系,则称A与B对于联系K来说是一对多联系,B与A对于联系K来说是多对一联系。

(三)多对多联系(m∶n)

从联系K的角度来看,如果A中任意一个实体在B中都能够找到与之相对应的联系,且相联系的实体有多个,则说明A与B对于联系K来说是多对多联系。反过来也是一样的,如果B中任意一个实体在A中都能够找到与之相对应的联系,且相联系的实体有多个,也通常存在多对多联系。例如:在足球世界杯比赛中,球队集与球队队长集之间对于代表联系来说,具有一对一联系;主教练集与队员集之间对于指导关系来说,具有一对多联系;裁判集与队员集之间对于执法关系来说,具有多对多联系。

两个实体集之间的联系究竟是属于哪一类的不仅与实体集有关,还与联系的内容有关。例如,在主教练集与队员集之间,对于朋友关系来说,就应是多对多联系了。

与现实世界不同,信息世界中实体集之间往往只有一种联系。此时,在谈论两个实体集之间的联系性质时,就可省略去联系名,直接说两个实体集之间具有一对一、一对多或者多对多的联系。

同一实体集内的各实体之间也可有某种联系。例如,场上队长与队员之间具有一对多的领导关系。

(四)多元联系

在E-R模型中,可以表示两个以上实体集间的联系,称为多元联系。

一个多元联系集总可以用多个不同的二元联系集来替代。考虑一个抽象的三元联系集R,它联系了实体集A、B、C。在此可引进实体集E替代联系集R,然后为实体集E和A、B、C建立三个新的二元联系集,分别命名为RA、RB、RC。

可以将这一过程直接推广到n元联系集的情况。所以,理论上可以限制E-R模型中只包含二元联系集。然而在大部分情况下,使用多元联系集比二元联系集更方便,具体原因如下:

(1)多元联系集可以清晰地表示出几个实体集参与一个联系集的情况,而转换为多个二元联系后,难以体现这种参与性。(www.xing528.com)

(2)对于为替代多元联系集而引进的实体集,有时不得不为其创建一个标识码,因为每个实体必须可以相互区分。创建的标识码和新建的多个二元联系一样,增加了设计的复杂度和对存储空间的需求。

(五)联系的属性

联系也可以具有单独的属性。如果希望建立某演员和制片公司为一部电影签约的有关酬金,此时,不能把酬金作为演员的属性,因为一个演员可能签约了多部电影,得到了不同的酬金;也不能把酬金作为制片公司的属性,因为制片公司可能对不同演员支付了不同的酬金;酬金也不能作为电影的属性,因为一部电影中不同的演员可能得到不同的酬金。所以,应该把酬金作为联系的属性。

(六)自身联系

在一个联系中,一个实体集可以出现两次或多次,扮演多个不同的角色,此种情况称为实体集的自身联系。一个实体集在联系中出现多少次,就从联系到这个实体集画多少条线,到实体集的每条线代表该实体集所扮演的不同角色。

同一部门中,职工与职工之间可有领导和被领导的关系,其中一名是另一名的领导。图中的联系集是1∶n,明确一名职工(领导)可领导其他多名职工,而一名职工只被另一名职工(领导)领导。

(七)弱实体集

弱实体集用英文表示为Weak Entity,在该实体集中,码是没有办法依靠一个实体集的属性就能够形成的。与弱实体集相对应的实体集为强实体集,用英文表示为Strong Entity,在该实体集中存在码。弱实体集作为一种实体,其部分内容需要依靠一个实体的码或多个实体的码才能存在,有的弱实体集的全部内容都需要有这些码的依靠才能存在;强实体集作为一种实体,不需要依靠其他实体的码就能够存在。

不依赖于任何其他实体的存在,就可以明确标识每个演员实体,因为演员实体存在自己的码(演员编号属性),所以演员实体是强实体。但角色实体就是一个弱实体,代表演员在影片中扮演的角色。如果没有演员实体和影片实体的存在,就不能唯一地表示一个角色实体的存在,我们称这类没有码的实体为弱实体。

弱实体集常出现在以下两种情况中:

第一种情况为弱实体集是依靠联系转换形成的,那么这些实体集所具备的码并不是他们本身的码,而是和它们连接的实体所具备的码属性所形成的;第二种情况为在子类实体中,如果存在弱实体,则将其称作子实体。

(八)子类和ls-a层次联系

在信息世界中,常常需要描述这样的实体集:A属于另一实体集B,A中的实体都有特殊的属性需要描述,并且这些特殊属性对其中其他的实体无意义。在E-R模型中,称A是B的子类,或B是A的父类。A与B两类实体之间存在一种层次联系——Is-a(属于)。

如果A和B存在Is-a联系,则A中的每个实体a只和B中的一个实体b相联系,而B中的每个实体最多和A中的一个实体相联系。从这个意义上说,A和B存在一对一的联系。但事实上,a和b是同一事物。A既可以继承B中的所有属性,又可以有自己特殊的属性说明。用来区分A的码也就是B中的码。例如,企业中的职工实体集和经理实体集存在Is-a联系,即经理是职工。经理既可以继承职工的所有属性,但又有“任职时间”其他职工没有的属性。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈