关系模式到 ER 图/基数差异

Relational Schema to ER Diagram /Cardinalities difference

如果我们有一个 ER 图并且我们想要转换为关系模式,我们遵循特定的过程(例如 Elmashri& Navathe 书). 我不清楚的是,当基数为 1:1 与 1:N 时,是否存在 差异。这种差异在关系模式中是如何表示的?

例如,在来自 Elmashri 的下图中,如果我们关注基数为 1:N 的部门-项目之间的关系,我们将采用以下关系模式。 如果基数是 1:1 会有区别吗?

更直接地问:在下图中,如果有人只给我它的左侧部分和关系模式,我怎么说这两个关系(黑色和红色圆圈)是 1:1 还是 1:N?

从 ER 和伪 ER 重新映射到关系

这是陈式的ER图。菱形表示关系(ship)s/associations & 有对应的tables/relations。线条表示参与并具有相应的 FK。红衣主教是关于钻石的,即关系(船)s/associations,即tables/relations。它们会告诉您某些关于哪些实体组合可以参与关系(船)/关联的事情。

您的教科书是 Elmashri 和 Navathe 编写的数据库系统基础知识第 7 版。它遵循上述用法并解释了如何映射 X:Y:etc 并解释了它如何特别映射您的示例。该 DDL 可以通过将 ERD 映射到明显的 "cross reference"/"relationship" tables 然后组合它们而产生。但是你的教科书只是给出了多种映射方式X:Ys,并没有清楚地说明捷径是如何从明显的方式加组合中产生的

例如:查询select Dnum, Pnum from PROJECT的值table表示二元关系"for some Pname & Plocation, department Dnum controls project Pnum"——当"department Dnum controls project Pnum"时可能是真的部门和项目的关系控制。 ER图说对应的二元关系是Dnum:Pnum中的1:N & Pnum:Dnum中的N:1。 因为 CONTROLS 在其基数中具有特定的 1,其明显的 table 可以 与 PROJECT 实体 table 组合成table 项目。如果它是 M:N,那么合并会有某些问题,因此您的文本会给出不同的映射——但根据先前的假设,它仍然 可能 是。如果你这样做或者只是使用明显的映射,那么你的关系设计对于 1:N 和 M:N 都是一样的。 1:1 允许其他组合。

不同的设计和绘图方法对基数和关系映射有不同的约定。许多所谓的 ER 方法并不是真正的 ER,因为它们是平凡的 ER——一切都是一个(可能是关联的)实体。所有行都在一端或两端涉及 1 或 1-or-0——因为它们是关于某些隐式二元关系和与 FK 相关的 tables——就像明显的 Chen tables 组合在一起时如上。也有 look-here & look-away 基数和其他约定,如显式空 FK。一切都取决于你使用的是什么 textbook/reference/method。

您的 DDL 图 "relation" 是 FK——错误地但普遍被伪 ER 方法称为 "relationship"。您没有在 DDL 图中有意义地使用 "X:Y"。您或多或少地使用了伪 ER 图如何标记 FK。但是基数是关于由FK的引用table.

的某个投影表示的关系(船)/关联

从关系到ER&伪ER的重新映射

如果您从 Chen ER 设计开始并且仅使用明显的映射,那么您将拥有 tables 1:1 实体和关系,实体 tables 将是没有 FK 的。但是您的教科书有多种映射选择,涉及以多种方式将 ER 图实体和关系 tables 组合到其他 tables,因此数据库中的 tables 不会告诉您它们产生的图表实体和关系。

关系设计比 Chen ER 设计更通用 --tables 表示 0 个或多个值的关系。 (每个基的每个超级键 table 和查询结果都标识了某个实体。)所以并非所有合理的关系设计都对应于 Chen ER 设计。而伪 ER 方法的一个好处是它们真正记录 DDL,而不区分实体和关系。但如果它们确实来自设计中未记录的实体和关系。因此,您无法从这样的 relational/pseudo-ER 设计映射回那些实体和关系。

您不会知道 DDL 约束的基数,除非您将它们放入——您应该将它们放入,最好是声明性的,否则会触发。 FK 和 CK(通过 PK 和 UNIQUE NOT NULL)足以表达二元关系(ship)s/associations 的 Chen 基数约束,但不是 n 元。伪 ER 方法可能会或可能不会解决超出 PK 和 CK 的约束。 Chen ER 设计可能具有必须通过一般关系设计原则解决的问题约束——所以它们实际上只是临时的。 (而且——没必要。)

What is the difference between an entity relationship model and a relational model?