【问题标题】:What is cardinality in Databases?什么是数据库中的基数?
【发布时间】:2012-05-24 03:58:21
【问题描述】:

有人可以借助示例向我解释一下数据库中的基数是什么吗?

【问题讨论】:

    标签: database database-design cardinality


    【解决方案1】:

    混淆的来源可能是在两种不同的上下文中使用该词 - 数据建模和数据库查询优化。

    在数据建模术语中,基数是一张表与另一张表的关系。

    • 1-1(A表的一行对应B表的一行)
    • 1-Many(表 A 中的一行与表 B 中的多行相关)
    • Many-Many(表 A 中的许多行与表 B 中的许多行相关)

    上面还有可选的参与条件(其中一个表中的一行根本没有与另一个表相关)。

    参见维基百科Cardinality (data modelling)


    在谈到数据库查询优化时,基数是指表的一列中的数据,特别是其中有多少个唯一值。此统计信息有助于规划查询和优化执行计划。

    参见维基百科Cardinality (SQL statements)

    【讨论】:

    • 基数为零是否意味着这两个表不相互关联?
    • 基数为零?一个术语用得不多——但我想这就是这个意思。通常 - 在 ER 图中不会有连接此类表的线,因此无需指示基数。
    • 数据建模中的零基数用于表示可选关系。如 0..1 或 0..n
    • 类比术语基数的数学内涵:**(数据建模)两个表之间的基数是两个表之间值的唯一性(基数作为两个集合之间的函数)**(数据库查询优化)表的基数是该列的行的唯一性(集合本身的基数)
    【解决方案2】:

    这在一定程度上取决于上下文。基数是指事物的数量,但它可以在各种情况下使用。

    • 在构建数据模型时,基数通常是指表 A 中与表 B 相关的行数。也就是说,对于 A 中的每一行 (1:1),B 中是否有 1 行,是B 中有 N 行对应于 A 中的每一行 (1:N),B 中是否有 M 行对应于 A 中的每 N 行 (N:M),等等。
    • 当您考虑使用 b*-tree 索引还是位图索引是否更有效或谓词的选择性等问题时,基数是指特定列中不同值的数量。例如,如果您有一个PERSON 表,GENDER 可能是一个非常低的基数列(GENDER 中可能只有两个值)而PERSON_ID 可能是一个非常高的基数列(每行都有不同的值)。
    • 在查看查询计划时,基数是指预期从特定操作返回的行数。

    在其他情况下,人们可能会使用不同的上下文来谈论基数并表示其他含义。

    【讨论】:

      【解决方案3】:

      在数据库中,基数表中的行数。

      img source


      img source


      • 关系按其基数(即number of elements of the set)命名和分类。
      • 出现在实体附近的符号是最大基数,另一个是最小基数
      • 实体关系,显示关系线的结尾如下:

      图片source

      【讨论】:

      【解决方案4】:

      基数是指列中包含的数据的唯一性。如果一列有很多重复数据(例如存储“真”或“假”的列),则它的基数较低,但如果值高度唯一(例如社会安全号码),则它具有高基数。

      【讨论】:

      • 基数可以指几个不同的东西,但 Oded 的回答是最有可能您正在寻找的东西。
      【解决方案5】:

      集合的基数是集合中元素的数量 为了 我们有一套 a > a,b,c

      【讨论】:

        【解决方案6】:

        定义: 我们在数据库中有表。在关系数据库中,我们有表之间的关系。这些关系可以是一对一、一对多或多对多。这些关系称为“基数”。

        基数的显着性:

        许多关系数据库的设计遵循严格的业务规则。当您设计数据库时,我们根据业务规则定义基数。但是每个物体也都有自己的性质。

        当您定义对象之间的基数时,您必须考虑所有这些因素来定义正确的基数。

        【讨论】:

          猜你喜欢
          • 2017-09-02
          • 2011-09-01
          • 1970-01-01
          • 2012-09-30
          • 2011-05-01
          • 2012-02-02
          • 1970-01-01
          • 2014-04-01
          • 1970-01-01
          相关资源
          最近更新 更多