2.2.1 传统集合操作
1.关系数据库语言的分类
1.关系代数语言
用对关系的运算来表达查询要求
2.关系演算语言(过于数据化)
元组关系演算语言
谓词变元的基本对象是元组变量
代表:APLHA、QUEL
域关系演算语言
谓词变元的基本对象是域变量
代表:QBE
3.具有关系代数和关系演算双重特点的语言
代表:SQL(Structured Query Language)
2.关系代数
1.关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
2.关系代数的特征
1.运算对象是关系
2.运算结果亦是关系
3.关系代数的运算符有两类:集合运算符和专门的关系运算符,如图所示
3.传统的集合运算
1.并
2.差
3.交
4.笛卡尔积
4.一些符号
1.R,t∈R,t[Ai]
设关系模式为R(A1,A2,...,An),它的一个关系设为R
t∈R 表示t是R的一个元组
t[Ai] 则表示元组t中相应于属性Ai的一个分量
2.A,t[A],A一拔
若A={Ai1,Ai2,...,Aik},其中Ai1,Ai2,...,Aik是A1,A2,...An中的一部分,则A称为属性列或属性组
t[A]=(t[Ai1],t[Ai2],...,t[Aik])表示元组t在属性列A上诸分量的集合
A一拔则表示{A1,A2,...An}中去掉{Ai1,Ai2,...,Aik}后剩余的属性组
3.tr和ts的串接
R为n目关系,S为m目关系
tr∈R,ts∈S,tr和ts的串接称为元组的连接
tr和ts的串接是一个n+m列的元组,前n个分量为R中的一个n元组,后m各分量为S中的一个m元组
4.象集Zx
给定一个关系R(X,Z),X和Z为属性组
当t[X]=x时,x在R中的象集(Images Set)为:Zx={t[Z]|t∈R,t[X]=x}
它表示R中属性组X上值为x的诸元组在Z上分量的集合
5.并
运算对象
R和S的要求
去有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域
R与S同质
R∪S
仍为n目关系,由属于R或属于S的元组组成
R∪S={t|t∈R∨t∈S},即把R和S的所有元组不重复的搬到R∪S中
6.差
运算对象
R和S的要求
去有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域
R与S同质
R-S
仍为n目关系,由属于R而不属于S的元组组成
R-S={t|t∈R∧t∉S}
即:把R中所有的元组先搬到R-S中,然后删去S中出现的元组
7.交
运算对象
R和S的要求
去有相同的目n(即两个关系都有n个属性)
相应的属性取自同一个域
R与S同质
R∩S
仍为n目关系,由属于R并且属于S的元组组成
R∩S={t|t∈R∧t∈S}
即:把R中所有的元组先搬到R∩S中,然后删去S中没有出现的元组
8.笛卡尔积