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