- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库关系代数数据库系代数
关系运算 选择运算 投影运算 链接运算 关系代数 关系代数语言 用传统的集合运算和专门的关系运算来表达查询的抽象语言 关系代数运算符 关系代数表达式 关系代数中有限次运算复合后形成的式子 表示记号 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
文档评论(0)