关系数据库语言分类
- 关系代数语言
用对关系的运算来表达查询要求,代表:ISBL - 关系演算语言:用谓词来表达查询要求
- 元组关系演算语言:谓词变元的基本对选是元组变量,代表:APLHA,QUEL
- 域关系演算语言: 谓词变元的基本对象是域变量,代表:QBE
- 具有关系代数和关系演算双重特点的语言
代表:SQL
关系运算概述
基本操作关系
- 查询: 选择、投影、链接、除、并、交、差
- 数据更新:插入、删除、修改
- 查询的表达能力是其中最重要的部门
- 选择、投影、并、差、笛卡尔积是5种基本操作
关系操作的特点
- 集合操作方式:操作的对象和结果都是集合,一次一集合的方式
关系代数是关系数据模型的基础
- 传统运算符
集合运算符
| 运算符 | 含义 |
|---|---|
| U | 并 |
| - | 差 |
| ∩ | 交 |
| × | 笛卡尔积 |
比较运算符
| 运算符 | 含义 |
|---|---|
| > | 大于 |
| ≥ | 大于等于 |
| < | 小于 |
| ≤ | 小于等于 |
| == | 等于 |
| != | xuanz不等于 |
专门关系运算符
2-1.png
关系运算术语:设关系模式为R(A1,A2,....An)
- R:关系
- t∈R:t是R的一个元组
- t[Ai]:表示元组t中属性Ai的分量
- t[A]=(t[Ai1],t[Ai]2]...t[Ai1],t[Aik]) 表示元组t在属性A上分量的集合
- A={Ai1,Ai2.....,Aik} 其中Ai1,Ai2....,Aik是A1,A2....,An中的一部分,则A称为属性列或属性组
![]()
传统的集合运算
并(Union): R U S
- 具有相同的目n(即两个关系都有n个属性)
- 相应的属性取自同一个域(兼容)
结果仍为n目关系,由属于R或属于S的元组组成
注:也就是关系R和S结构相同
R U S = {t | t ∈R V t ∈ S}
2-3.png
2-4.png
交(Intersection): R ∩ S
- 具有相同的目n,相应的属性取自同一个域
仍为n目关系,由即属于R又属于S的元组组成
R ∩ S = {t | t ∈ R ∧ t ∈ s}
注:也就是关系R和S结构相同
![]()
差 (Difference): R - S
- 具有相同的目n,相应的属性取自同一个域
仍为n 目关系,由属于R且不属于S的所有元组组成
注:也就是关系R和S结构相同
R - S = { t | t ∈ R ∧ t ∉ S }
![]()
广义的笛卡尔积(Extended Cartesian Product)
- R : n目关系,k1个元组(基数)
- S: m目关系,k2个元组(基数)
R*S
- 列: (n+m)列,元组的前n列是关系R的一个元组,后m列是关系S 的一个元组
- 行: k1 × k2 个元组
R × S = {tr ts | tr ∈ R ∧ ts ∈ S }
![]()
专门的关系运算
学生-课程数据库:
由三个表
学生关系Student,课程关系Course、选修关系SC
专门的关系运算
- 选择(Selection): 又称为限制(Restriction)
选择运算符的含义
- 在关系R中选择满足给定条件的诸元组
σF(R) = { t | t ∈ R ∧ F(t) = '真'} xuan'zF: 选择条件(逻辑表达式),基本形式为: X1 θ Y1
![]()
eg:
查询信息系(IS系)全体学生
![]()
- 投影(Projection)运算符的含义
从R中选择出若干属性列组成新的关系
πA(R)={ t[A] | t ∈ R }
A: R中的属性列
![]()
![]()
连接(Join,也称为θ连接)运算的含义
连接运算从R和S的广义笛卡尔积R×S中选取(R 关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组
![]()
- 连接的计算过程 (R S为例)
两类常用的连接运算
等值连接 (equijoin): θ为‘=’
![]()
![]()
自然连接(Natural join): 两个关系中进行比较的分量必须是相同的属性组,在结果中去掉重复的属性列
R和S具有相同的属性组B的元组
![]()
![]()
除 (Division)
- 给定关系R(X,Y)和S(Y,Z) ,其中X,Y,Z为属性组。R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域集
- R和S的除运算得到一个新的关系P(X)
P(X):元组在X上分量值x的象集Yx包含S在Y上投影的集合作
![]()
象集Zx
给定一个关系R(X,Z),X和Z 为属性组
当 t[X]=x时,x在R中的象集为:Zx={t[Z] | t ∈ R,t[X]=x}
他表示R中属性X上值为x的诸元组在Z上分量的集合
关系代数的扩展操作
悬浮元组 (dangling tuple)
- 在一个连接当中,如果一个元组不能和另外关系中的任何一个元组匹配,则该元组称为悬浮元组,一版被舍弃
自然连接 R ⨝ S 的悬浮元组时
![]()
完成外连接(OUTER JOIN)
如果把舍弃的元组(悬浮元组)也保存在结果关系中,而在其他属性上填值(Null),这种连接就叫作外连接
![]()
左外连接(保留左边)
- 如果只把左边关系R中舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN 或 LEFT JOIN)
右外连接(保留右边)
- 如果只把右边关系S中要舍弃的元组保留就叫做外连接(RIGHT OUTER JOIN 或 RIGHT JOIN)
重命名:Ps(A1,A2,... An)(R)
- 操作结果: 将关系R的名字改为S,且S关系zh

2-3.png
2-4.png











网友评论