《数据库关系代数》PPT课件.ppt_第1页
《数据库关系代数》PPT课件.ppt_第2页
《数据库关系代数》PPT课件.ppt_第3页
《数据库关系代数》PPT课件.ppt_第4页
《数据库关系代数》PPT课件.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关系运算,选择运算 投影运算 链接运算,关系代数,关系代数语言 用传统的集合运算和专门的关系运算来表达查询的抽象语言 关系代数运算符 关系代数表达式 关系代数中有限次运算复合后形成的式子,表示记号,R,tR,tAi,A,tA, A 设关系模式为R(A1,A2,An),它的一个关系设为R tR表示t是R的一个元组 tAi则表示元组t中相应于属性Ai的一个分量 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列 tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合 A 则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组,传统的集合运算,若R和S是同类关系(即它们都具有n个属性且相应属性取自同一个域),则可进行并、差、交运算。对两者进行集合运算之前,要对两者的属性列进行排序,保证两个关系的属性顺序相同。,表示记号,tr ts R为n目关系,S为m目关系 tr R,tsS, 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),RS,A B C A B C a1 b1 c1 a1 b2 c2 a1 b1 c1 a1 b3 c2 a1 b1 c1 a2 b2 c1 a1 b2 c2 a1 b2 c2 a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1 a2 b2 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 a2 b2 c1 a2 b2 c1,例:包括Student,Course,三个关系 Student(Sno, Sname, Sex, Sage, Sdept) Course(Cno, Cname, Cpno, Ccredit) SC(Sno, Cno, Grade) 用此例讲解专门的关系运算,例子:学生课程数据库,例:学生课程数据库,包括Student,Course,SC三个关系,Sno Sname Ssex Sage Sdept 95001 李勇 男 20 CS 95002 刘晨 女 19 IS 95003 王敏 女 18 MA 95004 张立 男 19 IS,Student,Cno Cname Cpqo Ccredit 1 数据库 5 4 2 数学 2 信息系统 1 4 4 操作系统 6 3 5 数据结构 7 4 6 数据处理 2 7 Pascal语言 6 4,Course,Sno Cno Grade 95001 1 92 95001 2 85 95001 3 88 95002 2 90 95002 3 80,SC,专门的关系运算:选择,记号:tR表示t是R的一个元组 选择 从关系R中选取使逻辑表达式F为真的元组,行选。记作 逻辑表达式F由逻辑运算符连接算术表达式,算术表达式基本形式为 X1 Y1 其中表示比较运算符,X1,Y1是属性名或常量或简单函数,属性名可以用它的序号来代替,查询信息系全体学生: Sdept = IS(Student) 或 = IS(Student) 查询年龄小于20岁的学生: Sage (Student) 或 (Student) 结果如下:,Sno Sname Ssex Sage Sdept 95002 刘晨 女 19 IS 95004 张立 男 19 IS,Sno Sname Ssex Sage Sdept 95002 刘晨 女 19 IS 95003 王敏 女 18 MA 95004 张立 男 19 IS,1)选择运算例,关系代数:投影,定义:从关系R中选择出满足条件F的若干属性列并组成新的关系,列选 其中 表示元组t中相应于属性Ai的一个分量。 注意:运算结果要去掉重复元组。,2)投影运算例 查询学生的姓名和所在系: Sname,Sdept(Student)或2,5(Student) 查询学生关系中有哪些系: Sdept(Student)或5(Student) 结果如下:,Sname Sdept 李勇 CS 刘晨 IS 王敏 MA 张立 IS,Sdept CS IS MA,关系代数:连接,连接 从关系R和S的笛卡尔积中选取属性间满足条件的元组 其中A和B分别是关系R和S上可比的属性组, 是比较运算符 等值连接 从关系R和S的笛卡尔积中选取A,B属性值相等的元组 自然连接 特殊的等值连接,R和S具有相同的属性组B,在结果中去掉重复的属性列,连接,连接(包含等值连接):先将R和S做笛卡积,然后从RS的元组中选择满足条件C的元组集合。 自然连接:假设A1、A2、An是R和S的模式中的公共属性,那么如果R的元组r和S的元组s在这些属性上取值都相同,r和s组合而成的元组就归入该自然连接中。 一般的连接操作是从行的角度进行运算,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,3)连接运算例 设有如图的关系和关系,A B C a1 b1 5 a1 b2 6 a2 b3 8 a2 b4 12,R,B E b1 3 b2 7 b3 10 b3 2 b5 2,S,A R.B C S.B E a1 b1 5 b2 7 a1 b1 5 b3 10 a1 b2 6 b2 7 a1 b2 6 b3 10 a2 b3 8 b3 10,R CE S,A R.B C S.B E a1 b1 5 b1 3 a1 b2 6 b2 7 a2 b3 8 b3 10 a2 b3 8 b3 2,等值连接, a1 b1 5 3 a1 b2 6 7 a2 b3 8 10 a2 b3 8 2,自然连接,R R.B=S.B S,R S,表示记号:象集Zx,给定一个关系R(X,Z),X和Z为属性组 当tX=x时,x在R中的象集(Images Set)为: Zx=tZ|t R,tX=x,它表示R中属性组X上值为x的诸元组在Z上分量的集合。,例子: a1的象集为(b1,c2),(b2,c3),(b2,c1),关系代数:除,除 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上的投影,除,除操作是同时从行和列角度进行运算,4) 除运算例 设有如图的关系和,则结果如下 a1的象集为(b1,c2),(b2,c3),(b2,c1) a2的象集为(b3,c7),(b2,c3) a3的象集为(b4,c6) a4的象集为(b6,c6) 在(,)上的投影为 (b1,c2),(b2,c1),(b2,c3) 因只有a1的象集包含了在(,)属性组上的投影,故 a1,设有关系R、S 如图所示,求RS 的结果,找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);,第二步:被除关系R中与S中不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影为X1,X2; 第三步:求关系R中X属性对应的像集Y 根据关系R的记录,可以得到与X1值有关的记录,如图3所示;与X2有关的记录,如图4所示,第四步:判断包含关系 RS其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现: X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1; 而X2的像集包含了关系S中属性Y的所有值,所以RS的最终结果就是X2 ,,关系代数:综合应用,1)在以上S-C数据库中,查询选修了1号课程的学生号码 2)在以上S-C数据库中,查询选修了1号课程或3号课程的学生号码,Sno( Cno = 1 (SC),Sno( Cno = 1 v Cno=3 (SC),Sno( Cno = 1 (SC) U Sno( Cno = 1 (SC),2)查询选修了号课程的学生的学号,解: Sno( Cno = 2 (SC)),3)查询至少选修了一门其直接先行课为号课程的学生姓名,关系代数:综合应用,关系数据库语言SQL,要求:查询命令,操作命令,SQL是结构化查询语言(Structured Query Language)的缩写,美国国家标准局ANSI在1986年将SQL作为关系数据库系统的标准语言,后被国际标准化组织(ISO)采纳为国际标准。现在很多大型数据库都实现了SQL语言。,SQL概述,SQL和SQL SERVER的区别,SQL(structured query language) 结构化查询语言。 它是一种标准,不是一种软件 SQL SERVER是数据库管理系统的一种 它是一种软件,这种软件在遵循SQL这种标准,很多数据库管理软件及开发工具都支持SQL这种标准。,SQL语言的特点,SQL语言的特点,1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4. 以同一种语法结构提供两种使用方法 5. 语言简洁,易学易用,SQL语句的书写准则,对大小写不敏感 一条语句可以写成一行或多行 关键字不能在行与行之间分开 数据项例如属性项、表、视图项等同时列出时,分隔符用逗号;字符或字符串常量要用单引号定界。,SQL的核心是数据查询。对于数据库的查询操作是通过 SELECT 查询命令实现的,它的基本形式由 SELECTFROMWHERE 查询块组成,多个查询块可以嵌套执行。,1、SELECT 查询语句和条件语句,SELECT 查询字段 FROM 表名 WHERE 条件,查询字段:可以使用通配符* 、字段名、字段别名,表名: 数据库.表名 ,表名,常用条件: = 等于 、不等于、in 包含 、 not in 不包含、 like 匹配 BETWEEN 在范围 、 not BETWEEN 不在范围 ,条件运算: and 、 or 、 ( ),语句格式 SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;,指定要显示的属性列,指定查询对象,指定查询条件,查询结果按指定列的值分组,筛选出只有满足指定条件的组,对查询结果表按指列值的升序或降序排序,查询工作的关键就在通过分析怎样把实际问题中的自然语言描述转化为 1)从哪个表中查询 即:from 后的一项 2)要查询哪些列 即:select 后的一项 3) 要查询的条件 即: where 后的一项,完成查询工作的三个关键步骤,第3步最复杂,1、表达式比较,例如:查询全体学生的学号和姓名 SELECT Sno,Sname FROM Student 查询全体学生的详细记录 SELECT * FROM Student,查询所有年龄在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;,3.确定集合 IN,查询信息系(IS)和数学系(MA)的学生的姓名和性别,SELECT Sname,Ssex FROM Student WHERE Sdept IN( IS,MA),当与指定的值表中的任何一个匹配时,返回TRUE,否则返回FALSE,4、字符匹配,用NOT LIKE 和 LIKE与通配符%和_搭配,表示任意长度的字符串,表示任意单个字符,例如:查询所有姓刘的学生的姓名和学号 SELECT Sname,Sno FROM Student WHERE Sname LIKE 刘% 2、SELECT * FROM mingdan WHERE 姓名 LIKE _红,5、涉及空值的查询,查询缺少成绩的学生学号和相应课程号 SELECT Sno,Cno FROM SC WHERE Grade IS NULL,6、多重条件查询 (AND OR),例如:查询计算机系年龄在20岁以下的学生姓名 SELECT Sname FROM Student WHERE Sdept=CS AND Sage20;,一般格式:,SELECT 列名1,列名2, FROM 表名 WHERE 条件表达式 ORDER BY 列名1 ASC | DESC ,列名2ASC | DESC,升序(默认),降序,对查询结果排序,查询选修了3号课程的学生学号及成绩,查询结果按分数的降序排列。,SELECT Sno, Grade FROM SC WHERE Cno=3 ORDER BY Grade DESC,注意: (1)ORDER BY子句不改变基本表中行或者列的顺序,只改变查询结果的排列顺序。 (2)ORDER BY子句制定排序的列必须出现在SELECT子句的列表达式中。 (3)排序是查询语句的最后一步工作,所以要把ORDER BY子句一般放在查询语句的最后。,数据汇总,1、聚合函数,表 聚合函数一览表,表示去掉结果中的重复行,指定ALL选项或不指定则表示保留重复行,例:查询学生总数 SELECT COUNT(*) FROM Student;,计算1号课程的学生平均成绩 SELECT AVG(Grade) FROM SC WHERE Cno=1;,查询每个班的学生人数?,2、GROUP BY子句,GROUP BY子句用于对表或视图中数据的查询结果按某一列或多列值分组,值相等的分为一组,2、GROUP BY子句,例:求各个课程号及相应的选课人数,SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno,注意: SELECT子句的列表中只能包含在GROUP BY中指出的列或在聚合函数中指定的列。,3、HAVING短语,如果分组后还要求按一定条件对这些组进行筛选,最终只输出满足制定条件的组,则可以使用HAVING短语指定筛选条件。 HAVING通常与GROUP BY子句一起使用。,SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 3,例查询选修了3门以上课程的学生学号:,Having 短语指定选择组的条件,只有满足条件的组才被选出来。,Where子句从基本表中选择满足条件的元组,having选择满足条件的组,若一个查询同时涉及两个或两个以上的表,则称为连接查询。 连接查询中用来连接两个关系的条件称为连接条件或连接谓词,一般格式为: .,连接谓词中的列名称为连接字段,连接查询,连接查询中用来连接两个关系的条件称为连接条件或连接谓词,格式: . 其中比较运算符主要有:=、=、=、!= 当连接运算符为=时,叫等值连接。 使用其它运算符称为非等值连接。 连接谓词中的列名称为连接字段。,在SELECT 中 连接条件放在where 后面,例:查询每个学生及其选课情况,Select Student.*, SC.* From Student,SC Where Student. Sno=SC.Sno;,数据更新,主要包括对数据库表的数据进行插入、修改、删除操作。,INSERT UPDATE DELETE,Insert 插入语句,insert into 表名 (字段,) values(值,),insert into 表名 values(值,),插入时须考虑清楚字段类型避免插入后出现缺值,乱码现象,插入数据,插入数据的操作有两种形式: (1)使用VALUES子句向数据库的基本表表一次插入一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论