table在线性代数、统计学、数据库中都有着非常重要的作用,数据的展现形式和应用基础都建立在table之上。
什么是table
从常规来看table是有行和列组成的一种展现数据形式的二维数据结构。
线性代数中的表
线性代数中的表叫做矩阵(matrix)。他是由一维的列向量和一维的行向量做点积运算扩张为二维的矩阵。矩阵可以看作一系列线性无关的列向量的线性组合。如此可以将一维的列向量转化为二维的矩阵。对于研究列向量之间的关系以及多维空间中的n维超平面之间的关系建立了基础。
主成分分析中对数据进行降维处理时,即用到了列空间的一组基这样一种处理方式。只是这组基底具有方差解释度最高这一特点。
在使用最小二乘法进行回归分析时,倘若使用投影矩阵的概念和运算法则,对于更深层次的理解最小二乘法以及简化偏微分的运算起到了很好的作用。从投影的角度来看,最小二乘法即是在找这样一条直线,使得从原点出发的这些向量的投影距离最短。
统计学中的表
统计学中的表是由行向量(观测)和列向量(变量)组成的二维数据结构,表出形式由矩阵和数据框,其中数据框是我们日常习惯称谓的表。
二维的表对于处理联合概率、边缘分布概率、协方差矩阵这样的操作起着非常重要的作用。理解了表对于上述概念的理念十分重要。
在数据可视化中,对于二维的表中的数据和一维的列向量数据的展示方法也是不同的。点图、常用于二维列向量之间的关系描述,柱状图常用于一维的向量数据展示。
数据库中的表
数据库的理论知识来源于《集合论与图论》。在集合论中表是由一维的行向量和列向量做笛卡尔积运算,形成表。在数据库中行叫做元组(无顺序),列叫做属性。数据库可以看作一系列n元组做笛卡尔积运算得到。在查询过程中,所有的查询基于属性(列),所有的条件基于元组(行)。数据库可以看作是由n个元组构成的集合(table),这个n个元组都是这个集合(table)的子集。
我们日常使用的数据库叫做关系型数据库。到底什么是“关系”?和“table”由什么区别?
| 正式的关系模型术语 | 非正式的日常用语 |
|---|---|
| 关系(relation) | 表(table) |
| 元组(tuple) | 行(row)或记录(record) |
| 势(cardinality) | 行数(number of rows) |
| 属性(attribute) | 列(column)或字段(field) |
| 度(degree) | 列数(number of columns) |
| 定义域(domain) | 列的取值集合(pool of legal values) |
- 关系中不允许存在重复的元组,而表中可以存在。
- 关系中的元组没有从上往下的顺序,而表中的行有从上往下的顺序。
- 关系中的属性没有从左往右的顺序,而表中的列有从左往右的顺序。
- 关系中所有的属性的值都是不可分割的,而表中列的值是可以分割的。
| 针对列的查询 | 针对行的筛选 |
|---|---|
| select | where |
| 聚合函数 | having |
| group by | case···when··· |
| order by | 谓词(like、between、exists、in等) |
| partition by | 比较运算符 |
| 子查询作为新的查询列 | |
| inner join outer join | union union all intersect except |