对于弱实体集来说,我们知道他是没有主键的,它必须要依赖强实体集的主键,这种说法虽然正确,但是它是一种很模糊不清的说法。我们来看一下:假设说现在有一个产品,这个产品有很多模块组成,同一个产品模块的模块号一定不同,但是不同产品的模块可能重复。再比如说进程的端口号,同一个主机的端口号一定不同,但是不同主机的端口号可能是重复的。这个就使用到这个弱实体集。前者把产品和模块联系在一起,那么模块就是一个弱实体集,模块号属于是他的标识性属性,这个模块号只有和产品号合在一起才能真正决定一个模块。后者可以把主机和进程联系在一起,端口号标识不了一个进程,但是主机号和进程号合在一起可以标识。
上面的关系可以用下面的E-R图表示:
关于这个弱关系,原文注解:
The relationship set connecting the
weak entity set to the identifying
strong entity set is
depicted by a double diamond.
当这个弱实体集与其对应的强实体集联系在一起的时候,才用双菱形,弱实体集还可能与其他的实体集有联系,但是不画双菱形。比如下面这张图: