数据建模基数的目的是什么?

时间:2012-10-10 09:55:22

标签: database database-design entity-relationship modeling cardinality

我理解基数是什么,所以请不要解释; - )

我想知道,做基数的目的是在数据建模中,以及为什么我应该关心。

示例:在ER模型中,您可以建立关系并将基数与关系相关联。 我什么时候在开发过程中进一步使用基数?我为什么要关心基数?

例如,在完成ER模型后,我如何,何时以及在何处使用基数。

谢谢: - )

5 个答案:

答案 0 :(得分:1)

基数告诉你关于桌子设计的重要信息。 1:m关系需要子表中的外键列指向父主键列。多对多关系意味着一个JOIN表,外键指向两个参与者。

答案 1 :(得分:0)

基数是两个实体之间关系的重要信息。在对实际表架构进行建模时,您需要它们用于以后的模型。如果不知道关系基数,就无法对表格进行建模,也无法对它们之间的关键限制进行建模。

例如,一辆汽车必须有4个轮子,而这些轮子必须连接到一辆汽车上。没有基数,你可以拥有一辆带有3个,1个,0个,12个等车轮的车,此外还可以与其他车辆共用。当然,根据具体情况,这可能有意义,但通常不会。

答案 2 :(得分:0)

数据模型是一组约束;没有约束,一切皆有可能。基数是一种(特殊的)约束。在大多数文化中,婚姻是完全两个人之间的关系。 (在某些文化中,这些人必须具有不同的性别。)

数据建模的问题是您必须指定要对数据施加的约束。一些约束(唯一的,外键)更重要,并且与其他约束(“salary< 100000”)相比较少依赖于问题域。在大多数情况下,基数将介于至关重要虚假之间。

答案 3 :(得分:0)

  

例如,在完成ER模型后,我如何,何时以及在何处使用基数。

在物理创建数据库时,方向,NULL能力和FK数量取决于ER图中关系的两个端点的基数。它甚至可以“添加”或“删除”一些表和键。

例如:

  • “1:N”关系表示为从“N”表到“1”表的NOT NULL FK。你不能在相反的方向上做同样的意思。
  • “0..1:N”关系表示为从“N”到“0..1”表的可空FK。
  • “1:1”关系由两个NOT NULL FK(也是键)表示,形成循环引用 1 或将两个实体合并为一个物理表。
  • “0..1:1”关系由两个FK表示,其中一个是NULL(也在键下)。
  • “0..1:0..1”关系由两个FK表示,包括NULL-able和under keys,或者由带有特制键的联结表表示。
  • “M:N”关系需要额外的(所谓的“结点”或“链接”)表。该表的一个键是子表中迁移的键的组合。

并非所有基数都可以(容易地)在物理数据库中以声明方式表示,但幸运的是,这些基数可能最有用......


1 在插入新数据时会出现鸡与蛋问题,这通常通过将约束检查推迟到事务结束来解决。

答案 4 :(得分:0)

如果您正在创建应用程序的数据层,并且您决定使用ORM,那么它可能是实体框架。

当您需要创建模型和模型贴图时,有一点。此时,您将能够提取ERD,查看放在图表上的基数并创建正确的关系,以使数据层形状与数据库形状相匹配。