什么是数据库中的基数?


Answers:


120

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

用数据建模的术语来说,基数是一个表与另一个表的关系。

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

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

请参阅有关基数的Wikipedia (数据建模)


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

请参阅有关基数的Wikipedia (SQL语句)


2
基数为零是否意味着两个表彼此不相关?
泰勒(Tyler)

基数为零?没有一个词用得太多-但我想这意味着那个。通常-在ER图中不会有连接此类表的线,因此无需指出基数。
Oded

数据建模中的零基数用于指示可选关系。如0..1或0..n
Walter Mitty

类似于术语基数的数学含义:**(数据建模)两个表之间的基数是两个表之间的值的唯一性(基数作为两个集合之间的函数)**(数据库查询优化)表的基数是该列的行有多独特(集合本身的基数)
harshvchawla 18-4-2

29

这取决于上下文。基数表示事物的数量,但是它可以在多种情况下使用。

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

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


8

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

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


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


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

在此处输入图片说明

图片来源


1
使用文字而非图片/链接作为文字-包括表格和ERD。释义或引用其他文字。给出您所需要的并将其与您的问题联系起来。仅将图像用于不能表示为文本的内容或将其用作扩展文本。无法搜索或剪切和粘贴图像。
philipxy

4

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


1
基数可以表示几项不同的内容,但是Oded的答案很可能是您要查找的内容。
安德鲁(Andrew)

-2

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


-2

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

基数的意义:

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.