《数据厍设计与开发》讲义 1.2关系代数 关系模型的重要部分是关系操纵,关系 代数是一种抽象的查询语言,是关系数 据操纵语言的一种传统表达方式,它是 用对关系的运算来表达查询的。利用关 系代数可以演示一个查询语言从关系数 据库系统中检索信息的潜力,可以用最 简单的形式来表达所有关系数据库查询 语言必须完成的运算的集合,这些基本 的运算对解释标准查询语言SQL如何被执 行很有帮助,同时也有利于培养关系运 算的思维能力 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 1.2关系代数 • 关系模型的重要部分是关系操纵,关系 代数是一种抽象的查询语言,是关系数 据操纵语言的一种传统表达方式,它是 用对关系的运算来表达查询的。利用关 系代数可以演示一个查询语言从关系数 据库系统中检索信息的潜力,可以用最 简单的形式来表达所有关系数据库查询 语言必须完成的运算的集合,这些基本 的运算对解释标准查询语言SQL如何被执 行很有帮助,同时也有利于培养关系运 算的思维能力
《数据厍设计与开发》讲义 1.2关系代数 关系代数的运算对象是关系,运算结果亦为关 系。关系代数用到的运算符包括四类;集合运 算符、专门的关系运算符、算术比较符和逻辑 运算符。关系代数的运算按运算符的不同可分 为传统的集合运算和专门的关系运算两类。其 中传统的集合运算将关系看成元组的集合,其 运算是从关系的“水平”方向即行的角度来进 行。而专门的关系运算不仅涉及行而且涉及列 比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 1.2关系代数 • 关系代数的运算对象是关系,运算结果亦为关 系。关系代数用到的运算符包括四类;集合运 算符、专门的关系运算符、算术比较符和逻辑 运算符。关系代数的运算按运算符的不同可分 为传统的集合运算和专门的关系运算两类。其 中传统的集合运算将关系看成元组的集合,其 运算是从关系的“水平”方向即行的角度来进 行。而专门的关系运算不仅涉及行而且涉及列。 比较运算符和逻辑运算符是用来辅助专门的关 系运算符进行操作的
《数据厍设计与开发》讲义 关系代数运算符 运算符符号含义键盘格式示例 U并」 UNION RUS,,或 R UNION S 集合∩交| INTERSECT|Rns,或 R INTERSECT S 运算符 差 MINUS R-S,或 R MINUS S ×乘| TIMES R×S,或 R TIMES S 0|选择 R where c|o姓名→录三”(S)或 专门 s where姓名=张三’ 关系π投影|R[] π考号,姓名(S)或S考号,姓名」 运算符∞连接 JOIN R∞S,或RJ0INS 除 DIVIDEBY R÷S,或 R DIVIDEBY S 关系代数中这些运算经有限次复合后形成的式子称为关系 代数表达式。 北京邮电次学软优学 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 关系代数运算符 运算符 符号 含义 键盘格式 示例 集合 运算符 ∪ 并 UNION R∪S,或 R UNION S ∩ 交 INTERSECT R∩S,或 R INTERSECT S - 差 MINUS R-S,或 R MINUS S × 乘 TIMES R×S,或 R TIMES S 专门 关系 运算符 σ 选择 R where C σ姓名=“张三”(S)或 S where 姓名=‘张三’ π 投影 R[ ] π考号,姓名(S)或S[考号,姓名] ∞ 连接 JOIN R∞S,或R JOIN S ÷ 除 DIVIDEBY R÷S,或R DIVIDEBY S 关系代数中,这些运算经有限次复合后形成的式子称为关系 代数表达式
《数据厍设计与开发》讲义 1.2.1传统的集合运算 ·传统的集合运算是二目运算,包括并、差、交 广义笛卡尔积。 ·定义1.2.1设关系R和关系S具有相同的目n(即 两个关系都有n个属性),且相应的属性取自同 个域,则可以定义并、差、交运算如下 并( Union):关系R与关系S的并记作 RUS={t|t∈R∨t∈S} 其结果仍为n目关系,由属于R或属于S的元组 组成 差( Difference):关系R与关系S的差记作:R- S={t|t∈R∧t!∈S} 其结果仍为n目关系,由属于R而不属于S的所 有元组组成。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 1.2.1传统的集合运算 • 传统的集合运算是二目运算,包括并、差、交、 广义笛卡尔积。 • 定义1.2.1 设关系R和关系S具有相同的目n(即 两个关系都有n个属性),且相应的属性取自同 一个域,则可以定义并、差、交运算如下: –并 (Union): 关 系 R 与 关 系 S 的 并 记 作 : R∪S={t|t∈R∨t∈S} 其结果仍为n目关系,由属于R或属于S的元组 组成。 –差(Difference): 关系R与关系S的差记作:R— S={ t|t∈R∧t!∈S } 其结果仍为n目关系,由属于R而不属于S的所 有元组组成
《数据厍设计与开发》讲义 1.2.1传统的集合运算 交( Intersection):关系R与关系S的交记作: R∩S={tt∈R∧t∈S 其结果仍为n目关系,由既属于R又属于S的元 组组成。关系的交可以用差来表示,即R∩S=R-(R 广义笛卡尔积( Extended cartesian product):两 个分别为n目和m目的关系R和S的广义笛卡尔积是 个(n+m)列的元组的集合。元组的前n列是关系R的 个元组,后m列是关系S的一个元组。若R有k1个 元组,S有k2个元组,则关系R和关系S的广义笛卡 尔积有k1×k2个元组。记作: R×S={ trts tr∈R∧ts∈S 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 1.2.1传统的集合运算 –交 (Intersection): 关 系 R 与关系 S 的交记作: R∩S={ t|t∈R∧t∈S } 其结果仍为n目关系,由既属于R又属于S的元 组组成。关系的交可以用差来表示,即R∩S=R-(RS)。 –广义笛卡尔积(Extended Cartesian Product):两 个分别为n目和m目的关系R和S的广义笛卡尔积是一 个(n+m)列的元组的集合。元组的前n列是关系R的 一个元组,后m列是关系S的一个元组。若R有k1个 元组,S有k2个元组,则关系R和关系S的广义笛卡 尔积有 k1×k2 个 元 组 。 记 作 : R×S={trts|tr∈R∧ts∈S }
《数据厍设计与开发》讲义 传统集合运算举例 R RUS AB C al b1 cl al b1 c1 al b2 c2 al b2 c2 a2 b2 c1 a2 b2 c1 al b3 c2 R∩S AB C AB C al b2 c2 al b2 c2 al b3 c2 a2 b2 c1 2b2c1 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 传统集合运算举例 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 R∪S A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 a1 b3 c2 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1 R∩S A B C a1 b2 c2 a2 b2 c1
《数据厍设计与开发》讲义 传统集合运算举例 R R-S A B C B al b1 cl al bl C al b2 c2 R×S a2 b2 c1 A C A al b2 1b2 al b2 AB C al b2 2b2 al b2 c2 al b2 2 1b2 a b2 2 b3 al b3 c2 al b2 2 a2 b2 c1 b2 1b2 a2 a2 b2 2b2 C 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 传统集合运算举例 R A B C a1 b1 c1 a1 b2 c2 a2 b2 c1 R-S A B C a1 b1 c1 R×S A B C A B C a1 b2 c1 a1 b2 c2 a1 b2 c1 a1 b3 c2 a1 b2 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 S A B C a1 b2 c2 a1 b3 c2 a2 b2 c1
《数据厍设计与开发》讲义 1.2.2专门的关系运算 ·专门的关系运算包括选择、投影、连接、 除等。为了叙述上的方便,先引入几个 常用记号 设关系模式为R(A1,A2,…,An)。它的 个关系设为R。t∈R表示t是R的一个元组。 t[Ai]则表示元组t中相应于属性Ai的一个分 量 若A={Ail,Ai2,…,Aik},其中Ai1, Ai2,…,Aik是A1,A2,…,An中的一部分, 则A称为属性列或域列 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 1.2.2 专门的关系运算 • 专门的关系运算包括选择、投影、连接、 除等。为了叙述上的方便,先引入几个 常用记号。 –设关系模式为R(Al,A2,…,An)。它的一 个关系设为R。t∈R表示t是R的一个元组。 t[Ai]则表示元组t中相应于属性Ai的一个分 量。 –若 A={Ai1 , Ai2 , … , Aik} , 其 中 Ail , Ai2,…,Aik是A1,A2,…,An中的一部分, 则A称为属性列或域列
《数据厍设计与开发》讲义 1.2.2专门的关系运算 R为n目关系,S为m目关系 tr∈R,ts∈S,trts称为元组的连接。它是 n+m列的元组,前n个分量为R中的一个n元 组,后m个分量为S中的一个m元组。 给定一个关系R(X,Z),X和Z为属性组。定 义t[Ⅺ]=x时,x在R中的象集( Images set)为: Zx=tiTer, t[X]=X) 它表示R中属性组X上值为x的诸元组在Z上分 量的集合。 家邮电大学物你学院 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 1.2.2 专门的关系运算 –R 为 n 目 关 系 , S 为 m 目 关 系 。 tr∈R,ts∈S,trts称为元组的连接。它是一 个n+m列的元组,前n个分量为R中的一个n元 组,后m个分量为S中的一个m元组。 –给定一个关系R(X,Z),X和Z为属性组。定 义t[X]=x时,x在R中的象集(Images Set)为: Zx={t[Z]︱t∈R,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z上分 量的集合
《数据厍设计与开发》讲义 学生一课程数据库 S学生表 SC学生选课表 学号 姓名性别年龄所在系学号课程号成绩 no Sname Ssex Sage Sdept Sno Cno Grade 2000101张明男1 200101 92 2000102李华女20IS 200101 2000103王强男18MA 200101 12323 85 88 2000104秦永男19CS 200102 90 C课程表 200102 80 课程号课程名学分 Cno Cname Ccredit 数据库3 1234 数学 4 信息系统3 操作系统3 的电次学软优笔晚 部明80080
北京邮电大学软件学院 郭文明 2003.06 《数据库设计与开发》讲义 学生-课程数据库 S 学生表 学号 姓名 性别 年龄 所在系 Sno Sname Ssex Sage Sdept 2000101 张明 男 19 CS 2000102 李华 女 20 IS 2000103 王强 男 18 MA 2000104 秦永 男 19 CS C 课程表 课程号 课程名 学分 Cno Cname Ccredit 1 数据库 3 2 数学 4 3 信息系统 3 4 操作系统 3 SC 学生选课表 学号课 程号 成绩 Sno Cno Grade 200101 1 92 200101 2 85 200101 3 88 200102 2 90 200102 3 80