什么是数据库中的基数?

Som*_*ody 73 database oracle database-design cardinality

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

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

谢谢.

Ode*_*ded 105

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

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

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

另外还有可选的参与条件以上(其中一个表中的行不具有涉及到其他表的话).

请参阅基数上的维基百科(数据建模).


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

请参阅基数上的维基百科(SQL语句).

  • 基数为零是否意味着两个表彼此不相关? (2认同)

Jus*_*ave 26

这取决于上下文.基数表示某事物的数量,但它会在各种情况下使用.

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

在其他情况下,人们可以使用不同的上下文来讨论基数,而这意味着别的东西.


Pre*_*raj 10

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

在此处输入图片说明 图片来源


在此处输入图片说明 图片来源


  • 关系按其基数(即集合的元素数)命名和分类。
  • 出现在实体附近的符号是最大基数,另一个是最小基数
  • 实体关系,显示关系线的结尾如下:
    在此处输入图片说明

在此处输入图片说明

图片来源


And*_*rew 5

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

  • 基数可以指几个不同的事物,但 Oded 的答案“最有可能”就是您正在寻找的。 (2认同)