【问题标题】:Why do we define the minimum and maximum cardinality? - ERD为什么要定义最小和最大基数? - ERD
【发布时间】:2014-09-08 07:24:53
【问题描述】:

为什么要定义最小和最大基数?它是干什么用的?可读性?它与下面的概念有什么关系?如果我理解正确的话,实体之间的关系只不过是 SQL 连接。

【问题讨论】:

  • 0:n vs. 1:n 很重要 - FK 是否强制?此外,重要的是要知道某个东西是1:n 还是m:n 关系——第一个可以用简单的FK 列处理,第二个需要数据库中的中间“链接”(或“桥”)表。基数具有重要影响!
  • @marc_s 你能更深入地解释一下吗?为什么 0:n1:n 很重要?我知道m:n 关系评估为一个中间表,所以这确实以某种方式回答了我的问题:)
  • 如果有1:n关系,则表示子表中的FK列是必填——它必须有一个值——始终(该列必须在 SQL“speak”中定义为 NOT NULL)。如果它是0:n,FK 列也可以留空(在 SQL 中定义为 NULLable),这意味着该子实体与任何父实体之间没有关系 - 该子实体可以独立存在,没有父母
  • @marc_s 我对基数还不是很熟悉。如果我理解正确,您可以根据关系是1:nn:11:1 还是n:m 关系来推断关系是可选的还是强制性的?那么1:n 关系意味着它是强制性关系吗?我将尝试寻找更多关于这方面的资料,我的教科书让我感到困惑。
  • 强制与可选外键之间的链接不会影响 1:n 与 1:1。它影响 0,1:n 与 1:n。子记录需要有父记录还是可以是孤儿记录?出于参考完整性的实际原因,这非常重要。

标签: database-design


【解决方案1】:

概念

不,关系不是 JOIN,尽管 JOIN 通常(但不总是)在关系之上完成。

基数是您试图在数据库中表示的不同数据之间关系的基本属性。例如,让我们考虑一个“书籍和作者”数据库......

  • 一个作者可以有多本书,一本书可以由多个作者写。换句话说,书籍和作者之间存在 M:N(参见下面的符号部分)关系。
  • 另一方面,一封电子邮件不能属于多个作者,因此作者和电子邮件之间是 1:N 关系(按此顺序)。

重要的一点是,无论您如何查询或尝试修改数据,都需要强制执行这些关系。让 DBMS 通过声明性引用完整性(即外键)为您强制执行它们是usually the best way 这样做的。

符号

当您有 Lmin..Lmax 时:Rmin..Rmax 关系1,表示:

  • 对于左表中的任何给定行,右表中至少可以有 Rmin 行,最多可以有 Rmax 行,
  • 对于右表中的任何给定行,左表中至少可以有 Lmin 行,最多可以有 Lmax 行。

当 Lmax = 1 时,省略 Lmin 表示下限为 0 或 1(Rmax/R分钟)。令人困惑的是,说 1:N 可以表示 0..1:N1..1:N

当 Lmax = N 时,省略 Lmin 通常意味着 0(同样适用于 Rmax/Rmin)。非零下界极少用于关系的“多”方面。

将 Lx 和 Rx 替换为“0”、“1”和“N”将为您提供各种可能的组合,其中最常见和最重要的是:

  • 0..1 : 0..many(又名。零或一对多0..1:N),并且是建模的通过右表中的可空外键引用左表。在这种情况下,左右表通常称为“父”和“子”。
  • 1..1 : 0..many(又名一对多1..1:N),与上述基本相同,但外键不为空。
  • 0..many : 0..many(又名。ma​​ny to manyM:N),由所谓的“junction”建模”或“链接”位于左右表之间的表。

备注

术语“基数”有另一个(并且非常不同的)含义,它与从(子)查询返回的行数有关。除非从上下文中明确,否则请始终明确您使用的是两者中的哪一个......

另外,relationship 和relatiON 之间也有区别。 “关系”数据库的名称恰好来源于后者。


1 发音为“Lmin 或 Lmax 到 Rmin 或 R最大"。

【讨论】:

  • 我可以对与电子邮件相关的“作者”与“发件人”概念争论不休,但我不会。很好的答案。
  • 谢谢,但作为一个初学者,我仍然对这个符号感到很困惑......我想当你谈到 1:n 关系时,你只是指两个表之间的最大基数,所以不是可选性。
猜你喜欢
  • 2013-01-19
  • 2018-12-11
  • 1970-01-01
  • 2020-09-06
  • 2017-07-23
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
相关资源
最近更新 更多