Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL中基数的定义是什么_Mysql_Sql_Statements_Cardinality - Fatal编程技术网

Mysql SQL中基数的定义是什么

Mysql SQL中基数的定义是什么,mysql,sql,statements,cardinality,Mysql,Sql,Statements,Cardinality,我的教科书对基数的定义如下: 关系的基数是它包含的元组数。相反,元组的数量称为关系的基数,并且随着元组的添加或删除而改变。高基数-多个元组,低基数-少数元组 Wikipedia文章对其进行了如下定义: 基数是指数据库表的特定列(属性)中包含的数据值的唯一性。基数越低,列中重复的元素越多。基数有三种类型:高基数、正常基数和低基数 它们可能都是对的,但我无法将这两个定义作为相关定义联系起来。请重新措辞 这两个定义都试图说基数是“行数”。区别在于比较是“在表中”还是“在特定列中” 数据库教科书中的版本

我的教科书对基数的定义如下:

关系的基数是它包含的元组数。相反,元组的数量称为关系的基数,并且随着元组的添加或删除而改变。高基数-多个元组,低基数-少数元组

Wikipedia文章对其进行了如下定义:

基数是指数据库表的特定列(属性)中包含的数据值的唯一性。基数越低,列中重复的元素越多。基数有三种类型:高基数、正常基数和低基数


它们可能都是对的,但我无法将这两个定义作为相关定义联系起来。请重新措辞

这两个定义都试图说基数是“行数”。区别在于比较是“在表中”还是“在特定列中”

数据库教科书中的版本侧重于关系代数和表的结构(该术语中的“关系”)

维基百科条目更实用。它包含教科书定义,假设表具有主键(主键的基数与表相同)。但是,它也可以应用于(比如)标志列。如果标志只具有两个值(
0
1
),那么我们可以说列的基数是2


这对于优化查询很重要。基数是选择连接、聚合和选择数据的最佳方法的一个组成部分。实际上,大多数数据库使用的信息多于基数,即所谓的关于列及其值的“统计信息”来进行优化。

如果我们有表A和表B,请将基数视为表B中与表A中的行相关的行数。如果表是个人和车辆,而且这种关系是有基础的,因为过去大多数人乘坐很多不同的车辆,而且大多数车辆驾驶很多人。如果关系是OWNS,则基数较低-大多数人拥有一辆车,一些人没有,一辆车通常有一个或两个车主,而不是更多


请注意,关系一侧的基数不等于另一侧的基数。如果表是PERSON和FINGER,并且关系属于,那么一个人有许多手指,但每个手指只属于一个人。

他们说的是同一件事,这与元组(
关系代数)或行(外行术语)有关

当它表示高基数时,特定属性(或字段)的可能值是唯一的,因此行数或元组数更高:

示例

 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而言,
基数
高的
,因为它是唯一的。在这种情况下,它有五(5)个元组/行

另一方面,Lastname具有正常的基数,特别是只有三(3)个唯一元组/行。因此它具有
正常基数

最后,Gender只有两个可能的唯一元组,因此
基数较低

您可能会将这里的
基数
与关系(或表)中的
属性/字段的数量有关的
程度
混淆

另一方面,
数据库的教科书
在谈到
基数时
通常与一个实体与另一个实体的关系有关,也就是说,参与给定关系类型的实体可能出现的关系数。因此,例如,对于
二元关系
基数
可以是
一对一
一对多
多对多
有两个概念

  • 索引基数
  • 基数
  • 我认为这是指索引基数,这是非常不同的

    • 索引基数被认为是索引中唯一值的数量
    • 该术语用于讨论创建索引、表扫描、索引访问与表访问,以及它如何影响插入、更新、删除和存储空间
    再举一个例子,,

    • 在SQL(结构化查询语言)中,术语基数是指数据库表的特定列(属性)中包含的数据值的唯一性
    • 基数越低,列中重复的元素越多。 因此,具有最低可能基数的列的每一行的值都相同。SQL数据库使用基数帮助确定给定查询的最佳查询计划
    我认为,仅仅是“基数”一词,重点是表之间的关系 特别是,它不是用来讨论单个表或数据唯一性的术语

    IBM文档(如果搜索单词unique,则不会提及它) 当解释基数时,必须考虑在关系的两端显示的符号。可能的端点标签显示在以下列表中:

    • 0..1(零或一个匹配)
    • 1..1(正好一场比赛)
    • 0..n(零个或多个匹配)
    • 1..n(一个或多个匹配项)
    在数学中,集合的基数是“集合元素数”的度量。(未提及独特的btw)

    在数据库设计中,一个数据方面相对于另一个数据方面的基数或基本原则是一个关键特性。为了解释每个方面是如何联系在一起的,一个方面与另一个方面之间的关系必须是精确的。 在关系模型中,表可以关联为“一对多”、“多对多”、“一对零或一”等。。这