我的教科书数据库系统将基数定义如下:
关系的基数是它包含的元组的数量。相比之下,元组的数量称为关系的基数,并且随着元组的添加或删除而变化。高基数 - 很多元组,低基数 - 很少元组。
而关于基数(SQL 语句)的维基百科文章将其定义如下:
基数是指包含在数据库表的特定列(属性)中的数据值的唯一性。基数越低,列中的重复元素就越多。基数有 3 种类型:高基数、正常基数和低基数。
他们可能都是对的,但我无法将这两个定义连接为相关定义。一个改写将是appriciated!
我的教科书数据库系统将基数定义如下:
关系的基数是它包含的元组的数量。相比之下,元组的数量称为关系的基数,并且随着元组的添加或删除而变化。高基数 - 很多元组,低基数 - 很少元组。
而关于基数(SQL 语句)的维基百科文章将其定义如下:
基数是指包含在数据库表的特定列(属性)中的数据值的唯一性。基数越低,列中的重复元素就越多。基数有 3 种类型:高基数、正常基数和低基数。
他们可能都是对的,但我无法将这两个定义连接为相关定义。一个改写将是appriciated!
他们说的是同一件事,它与元组 ( relational algebra
) 或行(外行术语)有关。
当它说高基数是唯一的特定属性(或字段)的可能值时,因此行或元组的数量更高:
示例:
StudentID Lastname Firstname Gender
101 Smith John M
102 Jones James M
103 Mayo Ann F
104 Jones George M
105 Smith Suse F
至于StudentID是因为它是独一无二的cardinality
。high
在此它有五 (5) 个元组/行。
另一方面,姓氏具有正常的基数,特别是只有三 (3) 个唯一元组/行。因此它有normal cardinality
。
最后Gender因此只有两个可能的唯一元组Low Cardinality
。
Cardinality
您可能在这里混淆了与关系(或表)Degree
中的数量有关的关系。attributes/fields
另一方面,教科书Database
通常Cardinality
与一个实体与另一个实体的关系有关,即参与给定关系类型的实体可能发生的关系的数量。因此,例如 abinary relationship
cardinality
可以one-to-one
是one-to-many
或many-to-many
。
这两个定义都试图说基数是“行数”。区别在于比较是“在表中”还是“在特定列中”。
您的数据库教科书中的版本侧重于关系代数和表的结构(该术语中的“关系”)。
维基百科条目更实用。它包含了教科书的定义,假设表有一个主键(主键的基数与表相同)。但是,它也可以应用于标志列。如果标志只取两个值(0
vs 1
),那么我们可以说该列的基数是 2。
这对于优化查询很重要。基数是选择连接、聚合和选择数据的最佳方法的一个组成部分。在实践中,大多数数据库使用比基数更多的信息,即关于列及其值的所谓“统计”以进行优化。
有两个概念
我相信这是指索引基数,这是非常不同的 https://www.ibm.com/developerworks/data/library/techarticle/dm-1309cardinal/
这是另一个示例, https://en.wikipedia.org/wiki/Cardinality_(SQL_statements)
只是基数这个词,我相信侧重于表之间的关系 特别是,它不是用于讨论单个表或数据唯一性的术语
IBM 文档(如果您搜索单词 unique,则未提及) https://www.ibm.com/support/knowledgecenter/en/SSEP7J_10.2.2/com.ibm.swg.ba.cognos.ug_cog_rlp.10.2。 2.doc/c_cog_rlp_rel_cardinality.html 解释基数时,必须考虑显示在关系两端的符号。可能的结束标签显示在以下列表中:
在数学中,集合的基数是“集合的元素数量”的量度。(没有提到独特的顺便说一句) https://en.wikipedia.org/wiki/Cardinality
在数据库设计中,一个数据方面相对于另一个方面的基数或基本原则是一个关键特征。一个与另一个的关系必须是精确的,彼此之间的关系必须准确,才能解释各个方面如何联系在一起。在关系模型中,表可以关联为“一对多”、“多对多”、“一对零或一”等。这就是所谓的基数一个给定的表相对于另一个表。 https://en.wikipedia.org/wiki/Cardinality_(data_modeling)
如果我们有表 A 和 B,将基数视为与表 A 中的行相关的表 B 的行数。如果表是 PERSON 和 VEHICLE,并且关系是 RODE_ON,那么基数很高,因为大多数过去人们乘坐许多不同的车辆,大多数车辆载着很多人。如果关系是 OWNS,那么基数很低——大多数人拥有一辆车,有些人没有,而且一辆车通常只有一两个车主,而不是更多。
请注意,关系一侧的基数不等于另一侧的基数。如果表是 PERSON 和 FINGER,并且关系是 BELONG TO,那么一个人有很多手指,但每个手指只属于一个人。