关系代数的出现,主要是源于对声明性语言与程序性语言的讨论,两边的代表分别是 SQL 和 关系代数(RA)。
SQL是一种声明性查询语言,它描述希望获得的元组集合,为了数据库中有效地实现查询,需要将 SQL 查询转换成过程性程序。
关系代数(RA)是一种用于关系数据库的查询语言,它在用户界面中是不可见的,但是在SQL的核心起着重要作用,还提供了一个评估 SQL 的中间步骤。RA 常用于关系型 DBMS 内部对 SQL 查询进行表达和优化。
关系代数是由一组所有可能的数据库形成的集合,与一组关系操作符共同组成的代数。
常用的操作符号如下表所示:
操作符
|
记号
|
含义
|
备注
|
选择(selection)
|
σ_φ(R)
|
选择行(元组)
|
φ 为选择的条件,如 A=1;A=B
可用的操作符有 { =, <, ≤, >, ≥, ≠ }
|
投影(projection)
|
π_(A_1,...,A_n) (R)
|
选择列(属性)
|
A_1,...,A_n 为要投影的属性
|
联合集(union)
交叉集(intersection)
区别集(difference)
|
R_1 ∪ R_2
R_1 ∩ R_2
R_1 - R_2
|
集合运算
|
联合集自动清除重复的结果
|
笛卡尔积
连接
自然连接
|
R_1 × R_2
R_1
_φ R_2
R_1
R_2
|
连接表
|
φ 是连接的条件
|
重命名(renaming)
|
ρ_R'(A_1,...,A_n)(R)
ρ_R'(R)
ρ_(A_1,...,A_n)(R)
|
对关系表或者属性重命名
|
R' 是重命名后的关系表名
|
-
交换律(commutative):σ_φ1 (σ_φ2 (R)) = σ_φ2 (σ_φ1 (R)) 或表示成 σ_φ1 (σ_φ2 (R)) = σ_(φ2 ^ φ1) (R)
投影
-
自动清除重复的结果(集合运算)
-
结果与选择列的顺序有关,常用于给指定属性重新排序,因此不具备交换律
-
如果 A 包含 B,则 π_B(π_A (R)) = π_B(R)
关系操作符的完整集合
一组关系操作符的完整集合通常包含 6 个操作符:
-
选择(σ), 投影(π), 重命名(ρ), 联合集(∪), 区别集(-)和笛卡尔积(×)。
这意味着交叉集(∩)和连接()可以通过以上的操作符结合得到:
-
连接: R1
R2 = σ_φ (R1 × R2)
-
intersection: R1 ∩ R2 = R1 − (R1 − R2)
操作符的优先级:(从高到低){ σ,π,ρ },{ ×,
},{ ∩ },{ ∪,− }
前言关系代数的出现,主要是源于对声明性语言与程序性语言的讨论,两边的代表分别是 SQL 和 关系代数(RA)。SQL是一种声明性查询语言,它描述希望获得的元组集合,为了数据库中有效地实现查询,需要将 SQL 查询转换成过程性程序。关系代数(RA)是一种用于关系数据库的查询语言,它在用户界面中是不可见的,但是在SQL的核心起着重要作用,还提供了一个评估 SQL 的中间步骤。RA 常用于关系...
主码只有一个,从候选码中取
r1
关系对
r2
关系的外码约束表明,
r1
中对某个元组取值也必须是
r2
对某个元组的取值,
r1
关系称为外码约束的引用关系,
r2
关系称为被引用关系
用小写的希腊字母σ表示,如
文章目录一、查1.基本
代数
指令(1)select from语句与$\Pi$(5)cartesian product: X2.附加
代数
指令(2)where语句与$\sigma$
1.基本
代数
指令
(1)select from语句与Π\PiΠ
select A1, A2, ..., An
from r
A是属性,r是表名
相当于ΠA1,A2,...,An(r)\Pi_{A1,...
关系代数
表达式的五个基本算子
1.选择(selection):即选择某些行。代码:select ··· from ··· where。表达式:σ<条件>(<表>)。
2.投影(projection):即选择某些列。代码:select ··· distinct from ··· (distinct有去重的功能)。表达式:Π<属性>(<表>)。
3.叉乘(cross product):笛卡尔
1.查询优化概述
查询优化就是从多个可能的策略中,找出最有效的查询执行计划的一种处理过程。选择一个给定查询的执行方法例子:查询music学院老师的姓名和教授的课程名称
一个执行计划准确地定义了每个运算应使用的算法,以及运算之间的执行应该如何协调。
给定一个
关系代数
表达式,查询优化器的任务是产生一个查询执行计划,该计划能获得与原关系表达式相同的结果,并且得到结果集的执行代价最小。基于代价的优化的步骤2.关系表达式的转换3.等价规则(重要)
几个例子:
3.代价估计4.表达式结果集统计大小的估计
5.直方图
文档:
关系代数
、
AL
PHA语言、QBE语言.note
http://note.youdao.com/noteshare?id=f1ac982f0a397695ea4c5401bf606ec3&sub=1B0119DF56AB4975BD7339E0580AA707
关系代数
欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
List item
Set intersection 交(两关系含有的相同元组,和并有关系)
Natu
ra
l join 自然连接
Division 除
Assignment 赋值