Voice(Title,Year,Name) 学习要点4、关系代数 关系代数是一种抽象的查询语言,通过对关系的运算来表达查询。 关系代数的运算对象是关系,运算结果也是关系。关系代数运算可以分为四类: 1.普通的集合运算:并、交、差 2.删除一部分关系的运算:选择运算“σ”会删除某些行 投影运算“π”会删除某些列 3.合并两个关系的运算:“笛卡儿积”运算把两个关系的元组以所有可能的方式组合起来,“连接”运 算有选择地从两个关系取出元组组合在一起。 4.改名运算:不改变关系的元组,只改变关系的模式:改变属性的名字或者关系本身的名字。 4.1关系的集合运算: 能够进行集合运算的属性集需要具有如下条件: 1)R和S的模式具有相同的属性集。 2)在对R和S进行集合运算之前,要对R和S的属性列进行排序,保证两个关系的属性顺序相同。 三种最普通的集合运算:并、交和差: 1RUS,R和S的并,它是R中的元素和S中的元素共同组成的集合。 2R∩S,R和S的交,它是既出现在R中又出现在S中的元素组成的集合。 3R一S,R和S的差,它是只在R中出现,不在S中出现的元素组成的集合。 举例:关系代数 4.1 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 关系R StudentNo StudentName Age Dept 303 陈海军 21 生物系 305 王海 20 化学系 308 李小亮 19 物理系 关系S 并集RUS: StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 303 陈海军 21 生物系 交集RnS: StudentNo StudentName Age Dept 305 王海 20 化学系 308 李小亮 19 物理系 16
16 Voice(Title, Year, Name) 学习要点 4、关系代数 关系代数是一种抽象的查询语言,通过对关系的运算来表达查询。 关系代数的运算对象是关系,运算结果也是关系。 关系代数运算可以分为四类: 1.普通的集合运算:并、交、差 2.删除一部分关系的运算:选择运算“σ”会删除某些行 投影运算“π”会删除某些列 3.合并两个关系的运算:“笛卡儿积”运算把两个关系的元组以所有可能的方式组合起来,“连接”运 算有选择地从两个关系取出元组组合在一起。 4.改名运算:不改变关系的元组,只改变关系的模式:改变属性的名字或者关系本身的名字。 4.1 关系的集合运算: 能够进行集合运算的属性集需要具有如下条件: 1)R 和 S 的模式具有相同的属性集。 2)在对 R 和 S 进行集合运算之前,要对 R 和 S 的属性列进行排序,保证两个关系的属性顺序相同。 三种最普通的集合运算:并、交和差: 1 R∪S,R 和 S 的并,它是 R 中的元素和 S 中的元素共同组成的集合。 2 R∩S,R 和 S 的交,它是既出现在 R 中又出现在 S 中的元素组成的集合。 3 R―S,R 和 S 的差,它是只在 R 中出现,不在 S 中出现的元素组成的集合。 举例:关系代数 4.1 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 关系 R StudentNo StudentName Age Dept 303 陈海军 21 生物系 305 王海 20 化学系 308 李小亮 19 物理系 关系 S 并集 R∪S: StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 303 陈海军 21 生物系 交集 R∩S: StudentNo StudentName Age Dept 305 王海 20 化学系 308 李小亮 19 物理系
差集R一S: StudentNo StudentName Age Dept 304 江民 19 计算机系 差集S一R: StudentNo StudentName Age Dept 303 陈海军 21 生物系 42投影J兀 投影运算符是π,该运算作用于关系R将产生一个新关系S,S只具有R的某几个属性列。投影运算 的一般表达式如下: S=JTA1,A2,…,An(R) S是投影运算产生的新关系,它只具有R的属性Al,A2,…,An所对应的列。 举例:关系代数 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 关系R 对于关系R, StudentNo,.StudentName(R)的结果是: StudentNo StudentName 304 江民 305 王海 308 李小亮 结果 (关系R到结果的变换。 第1步:显下面的表格 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第2步:选择满足条件的列 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第3步:得到结果 StudentNo StudentName 304 江民 305 王海 12
17 差集 R―S: StudentNo StudentName Age Dept 304 江民 19 计算机系 差集 S―R: StudentNo StudentName Age Dept 303 陈海军 21 生物系 4.2 投影π 投影运算符是π,该运算作用于关系 R 将产生一个新关系 S,S 只具有 R 的某几个属性列。投影运算 的一般表达式如下: S = πA1, A2, … , An(R) S 是投影运算产生的新关系,它只具有 R 的属性 A1, A2, … , An 所对应的列。 举例:关系代数 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 关系 R 对于关系 R,πStudentNo,StudentName(R)的结果是: StudentNo StudentName 304 江民 305 王海 308 李小亮 结果 (关系 R 到结果的变换。 第 1 步:显下面的表格 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第 2 步:选择满足条件的列 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第 3 步:得到结果 StudentNo StudentName 304 江民 305 王海
308 李小亮 4.3选择: 选择运算符是·,该运算符作用于关系R也将产生一个新关系S,S的元组集合是R的一个满足某条 件C的子集。选择运算的一般表达式为: S=Oc(R) S的模式与R的模式完全相同。 C是我们所熟悉的条件表达式。 举例:关系代数 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 关系R 对于关系R, 0 Age>19(R)的结果是: StudentNo StudentName Age Dept 305 王海 20 化学系 结果 (关系R到结果的变换。 第1步:显下面的表格 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第2步:满足Age>19的是 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第3步:得到结果 StudentNo StudentName Age Dept 305 王海 20 化学系 Age>18 AND Dept=“计算机系”(R)的结果是: StudentNo StudentName Age Dept 304 江民 19 计算机系 4.4笛卡尔积:
18 308 李小亮 ) 4.3 选择: 选择运算符是σ,该运算符作用于关系 R 也将产生一个新关系 S,S 的元组集合是 R 的一个满足某条 件 C 的子集。选择运算的一般表达式为: S = σC(R) S 的模式与 R 的模式完全相同。 C 是我们所熟悉的条件表达式。 举例:关系代数 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 关系 R 对于关系 R,σAge>19(R)的结果是: StudentNo StudentName Age Dept 305 王海 20 化学系 结果 (关系 R 到结果的变换。 第 1 步:显下面的表格 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第 2 步:满足 Age>19 的是 StudentNo StudentName Age Dept 304 江民 19 计算机系 305 王海 20 化学系 308 李小亮 19 物理系 第 3 步:得到结果 StudentNo StudentName Age Dept 305 王海 20 化学系 ) σAge>18 AND Dept=“计算机系”(R)的结果是: StudentNo StudentName Age Dept 304 江民 19 计算机系 4.4 笛卡尔积:
两个关系R和S的笛卡尔积是一个新的关系,记作RXS,其关系模式是R和S的模式的并集,RXS 是把R和S的元组以所有可能的方式组合起来,RXS拥有的元组数量是R的元组数与S的元组数的乘积。 举例:关系代数 R关系为: A B a b n S关系为: B C D g y n p X RXS为 A R.B S.B C D a 1 f g h a 1 1 y a 1 n p X 2 f g b ? 1 b n n 4.5自然连接: 两个关系R和S的自然连接,记作RS,得到的关系模式是R和S模式的并集。 RS的元组是:假设A、A:、AA是R和S的模式中的公共属性,那么如果R的元组r和 S的元组s在这些属性上的取值都相同,r和s组合而成的元组就归入RS。 举例:关系代数 R关系为: B a b n S关系为: C D f g h X n X 对于上例中的关系R和S,R☒S为 19
19 两个关系 R 和 S 的笛卡尔积是一个新的关系,记作 R╳S,其关系模式是 R 和 S 的模式的并集,R✕S 是把 R 和 S 的元组以所有可能的方式组合起来,R✕S 拥有的元组数量是 R 的元组数与 S 的元组数的乘积。 举例:关系代数 R 关系为: A B a l b n S 关系为: B C D f g h l x y n p x R✕S 为 A R.B S.B C D a l f g h a l l x y a l n p x b n f g h b n l x y b n n p x 4.5 自然连接: 两个关系 R 和 S 的自然连接,记作 R S,得到的关系模式是 R 和 S 模式的并集。 R S 的元组是:假设 A1 、A2 、A3…An 是 R 和 S 的模式中的公共属性,那么如果 R 的元组 r 和 S 的元组 s 在这些属性上的取值都相同,r 和 s 组合而成的元组就归入 R S。 举例:关系代数 R 关系为: A B a l b n S 关系为: B C D f g h l x y n p x 对于上例中的关系 R 和 S,R S 为
A B C D b n p 只有两个关系的元组在所有公共属性上的取值都相同时,才可以将他们的组合放入两个关系的自然连 接中。 4.6日连接: 关系R与关系S的基于C的日连接首先作R和S的笛卡尔积,然后从RXS的元组中选择满足条件 C的元组集合。表现为:R☒cS 举例:关系代数 R关系为: A B a b n S关系为: B C D f h n D 对于上例中的关系R和S, R R.BASB S为 A RB S.B C D a g h n p b f g h n X 4.70改名: 运算PS(A1,A2,,An)(R)用来把关系R改名为关系S,同时把关系S的属性从左至右依次命名 为Al,A2,…,A。假如我们只想改变关系名,不想改变关系模式中的属性名,那么用如下形式 OS (R) 举例:关系代数 R关系为: B 20
20 A B C D a l x y b n p x 只有两个关系的元组在所有公共属性上的取值都相同时,才可以将他们的组合放入两个关系的自然连 接中。 4.6 θ连接: 关系 R 与关系 S 的基于 C 的θ连接首先作 R 和 S 的笛卡尔积,然后从 R✕S 的元组中选择满足条件 C 的元组集合。表现为:R c S 举例:关系代数 R 关系为: A B a l b n S 关系为: B C D f g h l x y n p x 对于上例中的关系 R 和 S,R R.B≠S.B S 为 A R.B S.B C D a l f g h a l n p x b n f g h b n n x y 4.7 ρ改名: 运算ρS ( A1, A2, … , An )(R)用来把关系 R 改名为关系 S,同时把关系 S 的属性从左至右依次命名 为 A1, A2, … , An。 假如我们只想改变关系名,不想改变关系模式中的属性名,那么用如下形式 ρS(R) 举例:关系代数 R 关系为: A B a l b n