95

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

4

6 回答 6

143

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

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

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

以上还有可选的参与条件(一个表中的一行根本不必另一个表相关)。

请参阅 Wikipedia on Cardinality(数据建模)


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

请参阅 Wikipedia on Cardinality(SQL 语句)

于 2012-05-16T14:51:57.980 回答
32

这有点取决于上下文。基数意味着某物的数量,但它被用于各种环境。

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

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

于 2012-05-16T14:58:09.503 回答
10

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

在此处输入图像描述 图片来源


在此处输入图像描述 图片来源


  • 关系根据它们的基数(即集合中元素的数量)来命名和分类。
  • 靠近实体出现的符号是最大基数,另一个是最小基数
  • 实体关系,显示关系线的末端如下:
    在此处输入图像描述

在此处输入图像描述

图片来源

于 2017-07-15T11:34:19.907 回答
6

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

于 2012-05-16T14:54:26.727 回答
-2

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

于 2013-10-26T21:04:31.533 回答
-2

Definition: We have tables in database. In relational database, we have relations among the tables. These relations can be one-to-one, one-to-many or many-to-many. These relations are called 'cardinality'.

Significant of cardinality:

Many relational databases have been designed following stick business rules.When you design the database we define the cardinality based on the business rules. But every objects has its own nature as well.

When you define cardinality among object you have to consider all these things to define the correct cardinality.

于 2013-11-08T04:29:09.827 回答