什么是数据库中的基数?

时间:2012-05-16 14:49:08

标签: database oracle database-design cardinality

我一直在网上搜索,但我似乎无法找到一个我能理解的答案。

如此友善,如果有人可以借助示例向我解释数据库中的基数是什么?

谢谢。

6 个答案:

答案 0 :(得分:98)

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

在数据建模术语中,基数是一个表与另一个表相关的方式。

  • 1-1(表A中的一行涉及表B中的一行)
  • 1-Many(表A中的一行涉及tableB中的许多行)
  • 许多(表A中的许多行与tableB中的许多行相关)

上面还有可选的参与条件(其中一个表中的一行 与其他表完全相关)。

请参阅Cardinality (data modelling)上的维基百科。


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

请参阅Cardinality (SQL statements)上的维基百科。

答案 1 :(得分:26)

这取决于上下文。基数表示某些内容的数量,但它会在各种情况下使用。

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

可能还有其他一些情况,人们使用不同的背景来谈论基数,并且意味着别的东西。

答案 2 :(得分:2)

基数是指列中包含的数据的唯一性。如果列有大量重复数据(例如存储“true”或“false”的列),则它的基数较低,但如果值非常独特(例如社会安全号码),则它具有较高的基数。 / p>

答案 3 :(得分:2)

  

在数据库中,基数是指表格中的行集。

enter image description here img source

enter image description here img source

  • 关系按基数(即number of elements of the set)命名和分类。
  • 对于实体而言显示的符号是最大基数,另一个是最低基数
  • 实体关系,显示关系线的结尾,如下所示:
    enter image description here

enter image description here

图片source

答案 4 :(得分:-1)

集合的基数是集合中元素的数量 对于 我们有一套 a> a,b,c<所以这套包含3个元素 3是该集的基数

答案 5 :(得分:-2)

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

重要的基数:

许多关系数据库都是按照业务规则设计的。当您设计数据库时,我们会根据业务规则定义基数。但是每个物体都有自己的本性。

当你在对象中定义基数时,你必须考虑所有这些事情来定义正确的基数。