一切皆是关系。

什么是关系?

  • 事物之间相互作用、相互影响的状态。
  • Relation (philosophy), links between properties of an object.
  • Relation (mathematics), In mathematics, a binary relation is a general concept that defines some relation between the elements of two sets. It is a generalization of the more commonly understood idea of a mathematical function.

关系代数(Relational Algebra)——极简教程_python


那么,关系数据库中的“关系”,到底是什么?

关系代数


关系代数(Relational Algebra)——极简教程_java_02


关系代数是过程查询语言,它以关系为输入,生成关系为输出。关系代数主要为关系数据库和SQL提供理论基础。其中,
R*表示一个关系。输入关系,输出关系。
函数 f 表示关系算子。关系算子就是从关系到关系的映射。
关系运算中,支持的算子有:f = Cartesian product(×)、Projection (Π)、Selection (σ)、Rename (ρ)、join (⋈) 、Division (÷)等。


关系代数(Relational Algebra)——极简教程_数据库_03


在关系数据库理论中,最初由EF Codd定义的关系是:

关系 = 一组元组 Tuple (d 1 , d 2 , ..., d n )

其中,每个元素 d j是 D j的成员,D 是一个数据域。
元组中每个元素都被称为一个属性值(列值)。
一个属性是与域配对的名称(现在通常称为类型或数据类型)。


关系代数(Relational Algebra)——极简教程_sql_04

​https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf​

关系代数(Relational Algebra)——极简教程_数据库_05


在关系数据库的数据库语言SQL中,关系由表表示,其中表的每一行表示一个元组,每个属性的值形成一列。

Relation=Table, Tuple=Row, Attribute = Column


关系代数(Relational Algebra)——极简教程_java_06


关系模型理论

First introduced by Ted Codd(1970), “关系数据库之父”。
Terminologies:
a. Relation
b. Tuple
c. Attributes
d. Domain
e. Relation Schema
f. Degree (or arity) of a relation
g. Cardinality
h. Relational Database Schema
i. Relational database state (or relation instance)


关系代数(Relational Algebra)——极简教程_sql_07


1923年8月23日,Codd生于英格兰多塞特郡的波特兰。在牛津学习数学与化学后, 他作为一名英国皇家空军的飞行员参加了第二次世界大战。
1948年(25岁),他来到纽约面试IBM,成为一名程序员。
1965年(42岁),获得密歇根大学计算机科学博士学位。
1967年(44岁),回到IBM上班。
1981年(58岁),科德因在关系型数据库方面的贡献获得了图灵奖。
2003年4月18日,科德在家中死于心力衰竭,享年 79 岁。

参考资料

ClickHouse高级数据查询SQL: WITH/JOIN/IN/INTO OUTFILE/嵌套子查询/交并差计算等:​​https://mp.weixin.qq.com/s?__biz=MzA5OTI2MTE3NA==&mid=2658341869&idx=1&sn=95d9c41e186667ff6276822f7f2e3553&scene=58&subscene=0​

ClickHouse 使用EXPLAIN 分析 SQL 执行计划:​​https://mp.weixin.qq.com/s?__biz=MzA5OTI2MTE3NA==&mid=2658341869&idx=2&sn=dba0c8b7631cf772c4d0868f7585d003&scene=58&subscene=0​