数据库关系代数.ppt
文本预览下载声明
关系运算 选择运算 投影运算 链接运算 关系代数 关系代数语言 用传统的集合运算和专门的关系运算来表达查询的抽象语言 关系代数运算符 关系代数表达式 关系代数中有限次运算复合后形成的式子 表示记号 R,t?R,t[Ai],A,t[A], A 设关系模式为R(A1,A2,…,An),它的一个关系设为R t?R表示t是R的一个元组 t[Ai]则表示元组t中相应于属性Ai的一个分量 若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}后剩余的属性组 传统的集合运算 若R和S是同类关系(即它们都具有n个属性且相应属性取自同一个域),则可进行并、差、交运算。对两者进行集合运算之前,要对两者的属性列进行排序,保证两个关系的属性顺序相同。 表示记号 tr ts R为n目关系,S为m目关系 tr ?R,ts?S, tr ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组 传统的集合运算 广义笛卡尔积 R X S,其关系模式是R和S的模式的并集,是R和S的元组以所有可能的方式组合起来。当R和S有同名的属性,至少要为其中一个属性重新命名。 数学描述:若关系R有k1个元组n个属性,关系S有k2个元组m个属性,则两个关系的广义笛卡尔积有k1 * k2个元组n+m个属性(前n个属性来自于R,后m个属性来自于S) 专门的关系运算:选择 记号:t?R表示t是R的一个元组 选择 从关系R中选取使逻辑表达式F为真的元组,行选。记作 逻辑表达式F由逻辑运算符连接算术表达式,算术表达式基本形式为 X1 ? Y1 其中?表示比较运算符,X1,Y1是属性名或常量或简单函数,属性名可以用它的序号来代替 1)选择运算例 关系代数:投影 定义:从关系R中选择出满足条件F的若干属性列并组成新的关系,列选 其中 表示元组t中相应于属性Ai的一个分量。 注意:运算结果要去掉重复元组。 关系代数:连接 连接 从关系R和S的笛卡尔积中选取属性间满足条件的元组 其中A和B分别是关系R和S上可比的属性组, 是比较运算符 等值连接 从关系R和S的笛卡尔积中选取A,B属性值相等的元组 自然连接 特殊的等值连接,R和S具有相同的属性组B,在结果中去掉重复的属性列 连接 θ连接(包含等值连接):先将R和S做笛卡积,然后从R×S的元组中选择满足条件C的元组集合。 自然连接:假设A1、A2、……An是R和S的模式中的公共属性,那么如果R的元组r和S的元组s在这些属性上取值都相同,r和s组合而成的元组就归入该自然连接中。 一般的连接操作是从行的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 关系代数:除 除 R与S 的除运算得到一个新的关系P(X), P是R中满足下列条件的元组在X属性列上的投影: 关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组 (R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集) 元组在X上分量值x的象集Yx包含S在Y上的投影 设有关系R、S 如图所示,求R÷S 的结果 第四步:判断包含关系 R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现: X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1; 而X2的像集包含了关系S中属性Y的所有值,所以R÷S的最终结果就是X2 , 关系代数:综合应用 1)在以上S-C数据库中,查询选修了1号课程的学生号码. 2)在以上S-C数据库中,查询选修了1号课程或3号课程的学生号码. 查询所有年龄在20岁以下的学生的姓名和年龄 SELECT Sname,Sage FROM Student WHERE Sage20; 2.确定范围: BETWEEN….AND…. NOT BETWEEN….AND…. 查询年龄在20到23岁之间的学生的姓名和年龄。 SELECT Sname,Sage FROM Student WHERE Sage BETWEEN 20 AND 23; 6、多重条件查询 (AND OR) 例如:查询计算机系年龄在20岁以下的学生姓名 SELECT Sname FROM Student WHERE Sdept=‘CS’ AND Sage20; DELETE FROM Student WHERE
显示全部