关系代数(Relational Algebra)——极简教程
Posted 东海陈光剑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系代数(Relational Algebra)——极简教程相关的知识,希望对你有一定的参考价值。
一切皆是关系。
什么是关系?
- 事物之间相互作用、相互影响的状态。
- 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.
那么,关系数据库中的“关系”,到底是什么?
关系代数
关系代数是过程查询语言,它以关系为输入,生成关系为输出。关系代数主要为关系数据库和SQL提供理论基础。其中,
R*表示一个关系。输入关系,输出关系。
函数 f 表示关系算子。关系算子就是从关系到关系的映射。
关系运算中,支持的算子有:f = Cartesian product(×)、Projection (Π)、Selection (σ)、Rename (ρ)、join (⋈) 、Division (÷)等。
在关系数据库理论中,最初由EF Codd定义的关系是:
关系 = 一组元组 Tuple (d 1 , d 2 , ..., d n )
其中,每个元素 d j是 D j的成员,D 是一个数据域。
元组中每个元素都被称为一个属性值(列值)。
一个属性是与域配对的名称(现在通常称为类型或数据类型)。
在关系数据库的数据库语言SQL中,关系由表表示,其中表的每一行表示一个元组,每个属性的值形成一列。
Relation=Table, Tuple=Row, Attribute = Column
关系模型理论
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)
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
以上是关于关系代数(Relational Algebra)——极简教程的主要内容,如果未能解决你的问题,请参考以下文章
数据库关系数据库(Relational Databases)