我正在从数据库系统学习在学校进行测试,而我在网上发现了类似的例子,我不确定。以下关系的基数是什么?
我会说1:1。我的一些朋友说1:M。我对吗?
我一直在想如下:ET1使用atr3(FK)与ET2紧密耦合,但也有自己的atr1(PK)。所以ET2:ET1是1:M。但是在ET2中有一个atr1(FK),这种关系对我来说听起来就像那个有ET1的ET2只能与其中一个ET1完全链接,因此产生的关系应该是1:1。
你怎么看?非常感谢你们。
答案 0 :(得分:2)
有两种关系。没有单个基数来描述相同的两个实体之间的两个唯一关系。
我的回答:ET2:ET1是1..N; ET1:ET2为0..N
根据您的描述(主要是ET1.atr1是PK),该图非常混乱。这是我对图表的看法 - ET1.atr3“在行上方”,因此是ET1.atr1的复合主键的一部分。由于ET1.atr1由ET2引用,因此它必须是候选键(即ET1.atr1值必须能够唯一地标识单个记录)。一个实体必须先插入另一个实体(显然),因此两个FK字段中的一个必须是可空的。由于ET1的FK到ET2(ET1.atr3)是复合主键的一部分,因此它不能为空。因此,ET2.atr1必须可以为空。该图显示了表示ET1:ET2关系的虚线,进一步强制表明这是0..N
的关系。如果您可以进一步澄清情况,我会更新我的答案。
答案 1 :(得分:1)
在缺乏进一步信息的情况下,这种关系似乎很多:很多。
链接到另一个表上的主键的一个表上的外键表示多对一关系。这意味着:
因此,它们之间存在多对多的关系。
通常,这是在关系模型中通过引入链接实体来处理的,其中复合键由两个现有实体的主键组成,以及仅在链接级别出现的任何属性 - 所以这里,链接实体ET1_ET2将有一个由atr1和atr3组成的复合键,而外键atr3和atr1将分别从ET1和ET2中删除。
(可以想象其他关系,但需要确认更多信息 - 例如,ET1和ET2实际上可能是同一实体,涉及材料清单类型关系。)