数据库关系代数表达式学习资料

合集下载

数据库关系代数

数据库关系代数

例题
• 设一个关系模式为R(A,B,C),对应的关系内容为 R={{1,10,50}, {2,10,60}, {3,20,72}, {4,30,60}}, 则ПB(δC<70(R))的运算结果中包含有________ 个元组,每个元组包含有________个分量。 设有以下关系模式 Student(sno,sname,sage,ssex,sdept) Course(cno,cname,ccredit,teacher) S-c(sno,cno,grade) • 检索程军老师所授课程的课号与课名 • 检索年龄大于21岁的男生学生的学号与姓名
连接(续)
等值连接 R
S 的结果如下:
R.B=S.B
自然连接 R
S的结果如下:
连接(续)
一般连接: R S的结果如下:
C<E
2.2关系代数
二、专门的关系运算
3。连接
例:Student(sno,sname,sex,sclass) SC(sno,cno,grade) Course(cno,cname,credit)

2.1 关系数据结构及形式化定义 5。关系数据库
–在一个给定的应用领域中,所有关系的集合构成一个 关系数据库
• 关系数据库的型与值
–关系数据库的型:关系数据库模式
对关系数据库的描述。
–关系数据库的值 : 关系模式在某一时刻对应的关系的

关系代数讲解与例题

关系代数讲解与例题

关系代数

关系代数是关系数据库系统查询语言的理论基础。

关系代数的9种操作:

并、交、差、乘、选择、投影、联接、除、自然联接运算。

五个基本操作:

选择(π) 

并(∪) 差(-)

笛卡尔积(×)投影(σ) 选择

四个组合操作:

交(∩) 联接(等值联接)自然联接(RS) 除法(÷) 

关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

关系代数(演算)要求掌握各种语句的应用,多做书中的例题可以帮助自己熟能生巧。

关系代数表达式举例

用关系代数表示数据查询的典型例子

[例]设教学数据库中有3个关系:

学生关系S(SNO,SNAME,AGE,SEX) 

学习关系SC(SNO,CNO,GRADE) 

课程关系C(CNO,CNAME,TEACHER) 

下面用关系代数表达式表达每个查询语句。

(1) 检索学习课程号为C2的学生学号与成绩。

πSNO,GRADE(σCNO='C2'(SC)) 

(2) 检索学习课程号为C2的学生学号与姓名

πSNO,SNAME(σCNO='C2'(SSC)) 

由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。

此查询亦可等价地写成:

πSNO,SNAME(S)(πSNO(σCNO='C2'(SC)))

这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化,执行起来要省时间,省空间。

(3)检索选修课程名为MATHS的学生学号与姓名。

关系代数表达式总结-数据库

关系代数表达式总结-数据库

关系代数表达式总结

一、并

例1 求选修了课程号为1或2的课程的学生学号。

分析:可以先求出选修了课程号为1的课程的学生学号,再求出选修了课程号为2的课程的学生学号,最后使用并运算的方法求出选修课程号为1或2的课程的学生学号.本例也可以使用或条件来表示。

πSno(σCno=’1’(SC))∪πSno(σCno='2’(SC))或πSno(σCno=’1'∨ Cno='2’(SC))

二、交

例2 检索至少选修课程号为2和3的课程的学生学号。

分析:

方法一:只涉及到一个表,但不能直接用∧(为什么?)

特别注意,本例不能写为:

πSno(σCno=’2’∧ Cno=’3’(SC))

因为选择运算为行运算,在同一行中Cno不可能既为2,又为3。

第一步:转换(SC×SC)

笛卡尔积将垂直的条件展开为水平的条件。

SC1 SC2

选修课程号为2和3的学生:

σ1=4∧2=’2’∧ 5=’3’(SC×SC)

最后取出学生的学号:

π1(σ1=4∧2=’2'∧ 5=’3'(SC×SC))

方法二:πSno(σCno=’2’(SC))∩πSno(σCno=’3’(SC))

三、差

例3 将学生信息(‘95001’,’李勇’,‘男’,20,‘CS’)从Student表删除。

分析:可以将这行数据看成由一个元组构成的表,将Student表与该表进行差运算。

因此,该删除操作可表示为:

Student-{‘95001’,’李勇',‘男’,20,‘CS’}

注意:但是当查询涉及到否定或全部值时,上述形式就不能表达了,就要用到差操作或除操作。

例4 求没有选修课程号为2的课程的学生学号。

关系数据库关系代数运算

关系数据库关系代数运算
任意两个元组不能完全相同,由笛卡尔积的性质 决定
但许多关系数据库产品没有遵循这一性质,例如 Oracle,FoxPro等都允许关系表中存在两个完全相同 的元组,除非用户特别定义了相应的约束条件
举例
行的顺序无所谓,行的次序可以任意交换
遵循这一性质的数据库产品(如ORACLE),插 入一个元组时永远插至最后一行
关系数据库的型称为关系数据库模式,是对关系数据 库的描述
• 若干域的定义 • 在这些域上定义的若干关系模式
关系数据库的值是这些关系模式在某一时刻对应的关 系的集合,通常简称为关系数据库
课堂思考
给出导师、学生、专业三个实体可能组成 的关系数据库及其概念模型(ER图)
2.3 关系的完整性
实体完整性
外码说明
关系R和S不一定是不同的关系 目标关系S的主码Ks 和参照关系的外码F必
须定义在同一个(或一组)域上 关于取名
外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往取
相同的名字,以便于识别
参照完整性举例
例1:学生实体与专业实体间的关系: 外码 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名)
请将例子表示为二维表
例2.已知三个域
D1=导师集合={张清正,刘逸} D2=专业集合={计算机,信息} D3=学生集合={李勇,刘晨,王敏}

数据库关系代数表达式学习

数据库关系代数表达式学习

数据库关系代数表达式学习

关系代数是关系数据库系统查询语言的理论基础

一、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:

并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:

交(∩)、联接(等值联接)、自然联接(R S)、除法(÷)

注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列) 注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有3个关系:

学生关系S(SNO, SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学生学号与成绩

------------------------------------

SELECT SNO,GRADE

FROM SC

WHERE CNO='C2'

------------------------------------

π SNO, GRADE (σ CNO='C2' (SC))

************************************

(2) 检索学习课程号为C2的学生学号与姓名

------------------------------------

用关系代数式表示查询语句

用关系代数式表示查询语句

用关系代数式表示查询语句

关系代数式用于表示数据库查询语句,以下是一些常见的关系代数式:

1. 选择(Select):σ<条件>(关系)表示从关系中选择符合条件的元组。

例如,σ年龄>18 (学生) 表示选择学生关系中年龄大于18的学生。

2. 投影(Project):π<属性列表>(关系)表示从关系中选择指定的属性。

例如,π姓名, 年龄 (学生) 表示选择学生关系中的姓名和年龄属性。

3. 连接(Join):ρ属性名1.属性名2(关系1 ⨝条件关系2)表示根据条件连接两个关系的元组。

例如,ρS.学号(E ⨝ S.学号=E.学号) 表示根据学号将学生和成绩关系连接起来,得到学生关系中每个学生的成绩。

4. 自然连接(Natural Join):ρ属性名(关系1 ⨝关系2)表示根据两个关系的公共属性自动连接。

例如,ρS(E ⨝ S) 表示根据学号连接学生和成绩关系,得到学生关系中每个学生的成绩。

5. 差集(Difference):关系1 - 关系2表示关系1中去除与关系2中相同元组的结果。

例如,学生 - 选课表示去除已选课学生的学生关系。

6. 笛卡尔积(Cartesian Product):关系1 ×关系2表示关系1和关系2的所有可能组合。

例如,学生 ×选课表示学生关系和选课关系的笛卡尔积。

这些关系代数式可以组合使用,构建复杂的查询语句。

数据库关系代数

数据库关系代数

数据库关系代数

关系代数是关系数据库系统查询语⾔的理论基础

⼀、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、⾃然联接等操作。

五个基本操作:

并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:

交(∩)、联接(等值联接)、⾃然联接(R S)、除法(÷)

注2:等值连接表⽰先做笛卡尔积(×)之后,对相应列进⾏选择或等值关联后的结果(仅筛选⾏、不筛选列)

注2:⾃然连接表⽰两个关系中若有相同名称的属性,则⾃动作为关联条件,且仅列出⼀列⼆、关系代数表达式:

由关系代数运算经有限次复合⽽成的式⼦称为关系代数表达式。这种表达式的运算结果仍然是⼀个关系。可以⽤关系代数表达式表⽰对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有3个关系:

学⽣关系S(SNO, SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学⽣学号与成绩

------------------------------------

SELECT SNO,GRADE

FROM SC

WHERE CNO='C2'

------------------------------------

π SNO, GRADE (σ CNO='C2' (SC))

************************************

(2) 检索学习课程号为C2的学⽣学号与姓名

------------------------------------

数据库关系代数运算例题

数据库关系代数运算例题

数据库关系代数运算例题

关系代数是一种用于操作关系数据库的形式化查询语言。它包

括一组基本运算符,如选择、投影、并、差、笛卡尔积和连接等,

通过这些运算符可以对关系进行操作和组合,从而实现复杂的查询。

下面我将给出一些关系代数运算的例题,以便更好地理解和应

用这些运算符。

1. 选择运算符(σ):

假设有一个关系表R,包含属性A、B和C,我们希望选择满足

条件A=1的元组。则选择运算可以表示为,σ(A=1)(R)。

2. 投影运算符(π):

假设有一个关系表R,包含属性A、B和C,我们希望只保留属

性A和B,可以使用投影运算符进行处理,π(A,B)(R)。

3. 并运算符(∪):

假设有两个关系表R和S,具有相同的属性集合,我们希望将

两个表中的元组合并成一个表,可以使用并运算符,R∪S。

4. 差运算符(-):

假设有两个关系表R和S,我们希望从R中删除与S中相同的

元组,可以使用差运算符,R-S。

5. 笛卡尔积运算符(×):

假设有两个关系表R和S,我们希望将两个表中的元组进行组合,生成一个新的表,可以使用笛卡尔积运算符,R×S。

6. 连接运算符(⋈):

假设有两个关系表R和S,具有一个共同的属性A,我们希望根

据属性A将两个表中的元组进行连接,可以使用连接运算符,R⋈S。

以上是关系代数的一些基本运算符和例题,通过这些运算符的

组合和应用,可以实现复杂的查询和操作。在实际应用中,还可以

使用更多的运算符和技巧来处理更复杂的问题。关系代数是数据库

领域重要的概念和工具,对于数据库的设计和查询优化都具有重要的意义。

关系代数知识点总结

关系代数知识点总结

关系代数知识点总结

一、基本概念

1. 关系

在关系代数中,关系是元素的集合。在数据库中,关系通常是二维表格,每一行代表一个

元组,每一列代表一个属性。例如,一个包含学生信息的关系可以包括学生的学号、姓名、年龄等属性。关系可以表示为R(A1, A2, …, An),其中R是关系的名称,A1, A2, …, An是关系的属性。

2. 元组

在关系中,元组是一个有序的元素序列,其中每个元素对应关系的一个属性。在对关系进

行操作时,我们通常需要操作整个元组或者选取符合特定条件的元组。

3. 属性

关系的每一列都是一个属性,用来描述元组的特定信息。属性可以有不同的数据类型,例

如整数、字符、日期等。在数据库中,属性通常用来对关系进行分类和索引。

4. 关系键

关系键是一组属性的集合,用来唯一确定关系中的元组。在数据库中,关系键通常用来在

关系中快速定位元组,以及对关系进行连接操作。

5. 关系模式

关系模式是关系的结构描述,它包括了关系的名称、属性以及属性的数据类型等信息。通

过关系模式,我们可以了解一个关系的结构和特性。

6. 域

在关系代数中,域指的是关系的属性值的集合。每个属性都有自己的域,例如整数属性的

域包括所有整数,而日期属性的域包括所有日期。

二、基本操作

在关系代数中,有一系列基本的操作,包括选择、投影、连接、并集、差集和笛卡尔积等。这些操作可以对关系进行组合和转换,从而实现对数据的查询和处理。

1. 选择

选择操作是从关系中选择满足特定条件的元组。例如,我们可以对一个包含学生信息的关

系进行选择操作,找出所有年龄大于20岁的学生。

数据库原理重点提示之关系代数

数据库原理重点提示之关系代数

数据库原理重点提示之关系代数

关系代数与关系数据库操作

关系代数是关系数据库系统查询语言的理论基础。

关系代数的9种操作:

并、交、差、乘、选择、投影、联接、除、自然联接运算。

五个基本操作:

并(∪) 差(-) 笛卡尔积(×)投影(σ) 选择(π)

四个组合操作:

交(∩) 联接(等值联接)自然联接(R S) 除法(÷)

关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

关系代数(演算)要求掌握各种语句的应用,多做书中的例题可以帮助自己熟能生巧。

关系代数表达式举例

用关系代数表示数据查询的典型例子

[例]设教学数据库中有3个关系:

学生关系S(SNO,SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

下面用关系代数表达式表达每个查询语句。

(1) 检索学习课程号为C2的学生学号与成绩。

πSNO,GRADE(σCNO='C2'(SC))

(2) 检索学习课程号为C2的学生学号与姓名

πSNO,SNAME(σCNO='C2'(S SC))

由于这个查询涉及到两个关系S和SC,因此先对这两个关系进行自然连接,同一位学生的有关的信息,然后再执行选择投影操作。

此查询亦可等价地写成:

πSNO,SNAME(S)(πSNO(σCNO='C2'(SC)))

这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化,执行起来要省时间,省空间。

数据库关系代数表达式学习

数据库关系代数表达式学习

数据库关系代数表达式学习

关系代数是关系数据库系统查询语言的理论基础

一、关系代数的9 种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:

并(u )、差(-)、笛卡尔积(为、投影(b、)选择(n )

四个组合操作:

交(Q)联接(等值联接)、自然联接(R S)、除法(予

注2:等值连接表示先做笛卡尔积(马之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列) 注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有 3 个关系:

学生关系S(SNO, SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2 的学生学号与成绩

SELECT SNO,GRADE

FROM SC

WHERE CNO='C2'

n SNO, GRADE ( b CN0='C2' (SC))

************************************

(2) 检索学习课程号为C2 的学生学号与姓名

SELECT SC.SNO,S.SNAME

FROM SC,S

WHERE SC.SNO=S.SNO

AND O='C2'

n SNO,SNAME ( a CN0='C2' (S SC))

数据库关系代数

数据库关系代数

数据库关系代数

关系运算及运算符

一、基本代数运算

1并

相同的合并成一列,不同的并起来成为RS

操作示意图:

2差

以R为基准,选择S没有的元组。S中R中没有的不算。操作示意图:

3笛卡尔

关系R为n列,k1元组、关系S为m列,k2元组。R中每个k1与S每个k2组成新的关系。

4投影

二、扩展代数运算

1交

选择R和S相同的值。操作示意图:

Θ相当与运算符,可以认为笛卡儿积是无条件连接,其他的是有条件连接。等值连接的条件就相当于θ=“=”

Θ连接逻辑上是table之间先做笛卡儿积,再做对应选择操作

2.1等值连接

2.2自然连接

特殊的等值连接,要求两个关系中进行比较的分量必须相同属性组,将重复属性(字段)去掉

3除

同时从关系的水平方向和垂直方向同时运算操作示意图:

4外连接

如果把舍弃的元组保存在结果关系中,而其他属性填空值(null)

4.1左外连接

把左边关系R中要舍弃的元组保留。先自然连接,成为ABCE。以左边的为基准,所以B列的b5没了。

4.2右外连接

把右边关系S中要舍弃的元组保留。先自然连接,以右边的S为基准,保留B列共同的值,R中的b4没有所以删除了。

4.3全外连接

不满足R.B=S.B的元组保留。

代数表达式

代数表达式

数据库关系代数表达式

关系代数是关系数据库系统查询语言的理论基础。很有必要学习一下,有些是用代数表达式很方便的东西,用SQL写出来还是挺麻烦的,并不是想象当中那么直接。

一、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:

并(∪)、差(-)、笛卡尔积(×)、投影(σ)[Where]、选择(π)[Select]

四个组合操作:

交(∩)、

联接(等值联接):等值连接表示(1)先做笛卡尔积(×)之后,(2)对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)

(仅筛选行、不筛选列):即只作用于行上不作用于列上。

如例子:(σ1=4∧2='C2’∧5=‘C4’(SC×SC)) 1.先(SC×SC)2.作用于列

σ1=4∧2='C2’∧5=‘C4’

自然联接(RcrossS):自然连接表示两个关系中若有相同名称的属性(列),则自动作为关联条件,且仅列出一列。

如例子:(σCNO=‘C2’(ScrossSC))中的(ScrossSC)

除法(÷)

通过下面的例子可以看出,(ScrossSCcrossC)(RcrossS),这样的写法,说明默认肯定了cross的定义为连接表有相同名称的属性(即列)

π列(σ(条件)(from后面的表))

∨[or]

π 1(σ1=4∧2='C2'∧5='C4'(SC×SC))

π SNO(σ CNO='C2'∨CNO='C4'(SC))

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

数据库关系代数表达式

数据库关系代数表达式

数据库关系代数表达式

数据库关系代数表达式是一种简单的数学表达式,它可以用来描述数据库表之间的关系,以及它们之间的操作。它可以被用来查询或更新数据库,并且能够让数据库变得容易管理和操作。

数据库关系代数表达式主要包括6种基本操作:选择(select),投影(project),交集(intersect),并(union),差(difference)和笛卡尔积(cartesian product)。

选择操作可以从数据库中提取满足特定条件的记录。投影操作可以从数据表中抽取特定的属性,以便只展示需要的信息。交集操作可以将两个表中的重复的记录提取出来。并操作可以将两个表中的内容进行合并,以查看它们的所有内容。差操作则可以排除两个表中的重复记录,以便分离出不同的记录。最后,笛卡尔积操作可以将两个表中的记录进行全部组合,以便更好地查看它们之间的关系。

数据库关系代数表达式的最大优势在于它的灵活性,它可以被用来实现各种各样的操作,并且能够被用来构建复杂的查询和更新数据库的功能。此外,它还可以被用来实现多表查询,以及查询结果的进一步操作,这使得它十分强大。

数据库关系代数表达式是一种十分实用的数据库操作工具,它可以帮助开发人员更轻松地管理数据库,而且能够实现多种复杂的操作。因此,它是数据库开发过程中非常重要的一部分,应该被充分利用。

数据库关系代数表达式学习

数据库关系代数表达式学习

数据库关系代数表达式学习

关系代数是关系数据库系统查询语言的理论基础

一、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:

并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:

交(∩)、联接(等值联接)、自然联接(R S)、除法(÷)

注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列) 注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有3个关系:

学生关系S(SNO, SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学生学号与成绩

------------------------------------

SELECT SNO,GRADE

FROM SC

WHERE CNO='C2'

------------------------------------

π SNO, GRADE (σ CNO='C2' (SC))

************************************

(2) 检索学习课程号为C2的学生学号与姓名

------------------------------------

数据库关系代数

数据库关系代数

并、差、笛卡儿积、投影、选择是关系代数的5种基本的运算,其他运算,即交、连接、除都可以通过基本的运算推导运算出。

1、并,设有两个关系R和S,它们具有相同的结构,R和S的并是由属于R或属于S的元组组成的集合;

2、差,R和S的差是由属于R但不属于S的元组组成的集合;

3、笛卡尔积,两个集合X和Y的笛卡尓积,又称直积,表示为X 与Y相乘,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员;

4、选择,从关系中找出满足给定条件的那些元组称为选择;其中的条件是以逻辑表达式给出的,值为真的元组将被选取;

5、投影,从关系模式中挑选若干属性组成新的关系称为投影。数据库系统(二)--关系型数据库之关系代数

关系型数据库-关系操作集合

1、基本的关系操作

关系模型中常用的关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操作两大部分。

查询操作分为:选择、投影、连接、除、并、差、交、笛卡尔积等;

五种基本操作:选择、投影、并、差、笛卡尔积;

关系操作的特点是集合操作方式,即操作的对象和结果都是集合、这种操作方式也称为一次一集合的方式。

2、关系数据语言的分类

关系操作是通过关系语言来实现的。关系语言的特点是高度非过程化,即:

(1)用户不必请求数据库管理员为其建立特殊的存取路径,存取路径的选择由 DBMS 的优化机制来完成;

(2)用户也不必求助于循环和递归来完成数据的重复操作。

关系操作的能力可以用两种方式来表示:代数方式和逻辑方式。关系代数、元组关系演算和域关系演算均是抽象的查询语言。结构化查询语言SQL充分体现了关系数据语言的特点和优点,是关于数据库的标准语言。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库关系代数表达式学习

关系代数是关系数据库系统查询语言的理论基础

一、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:

并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:

交(∩)、联接(等值联接)、自然联接(R S)、除法(÷)

注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)

注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有3个关系:

学生关系S(SNO, SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学生学号与成绩

------------------------------------

SELECT SNO,GRADE

FROM SC

WHERE CNO='C2'

------------------------------------

π SNO, GRADE (σ CNO='C2' (SC))

************************************

(2) 检索学习课程号为C2的学生学号与姓名

------------------------------------

SELECT SC.SNO,S.SNAME

FROM SC,S

WHERE SC.SNO=S.SNO

AND O='C2'

------------------------------------

π SNO,SNAME (σ CNO='C2' (S SC))

此查询涉及S和SC,先进行自然连接,然后再执行选择投影操作。----

π SNO,SNAME (S)(π SNO (σ CNO='C2' (SC)))

自然连接的右分量为"学了C2课的学生学号的集合"。

此表达式比前一个表达式优化,执行起来要省时间、省空间。

************************************

(3) 检索选修课程名为MATHS的学生学号与姓名

------------------------------------

SELECT SC.SNO,S.SNAME

FROM SC,S,C

WHERE SC.SNO=S.SNO

AND O=O

AND AME='MATHS'

------------------------------------

π SNO, SANME (σ CNAME='MATHS' (S SC C))

************************************

(4) 检索选修课程号为C2或C4的学生学号

------------------------------------

SELECT SNO

FROM SC

WHERE CNO='C2'

OR CNO='C4'

------------------------------------

π SNO (σ CNO='C2'∨CNO='C4' (SC))

************************************

(5) 检索至少选修课程号为C2或C4的学生学号

------------------------------------

SELECT SA.SNO

FROM SC AS SA,SC AS SB

WHERE SA.SNO=SB.SNO

AND O='C2'

AND O='C4'

------------------------------------

π 1 (σ 1=4∧2='C2'∧5='C4' (SC×SC))

************************************

(6) 检索不学C2课的学生姓名与年龄

------------------------------------

SELECT SNAME,AGE

FROM S

MINUS

SELECT S.SNAME,S.AGE

FROM SC,S

WHERE SC.SNO=S.SNO

AND O='C2'

(Oracle)

------------------------------------

π SNAME, AGE (S)-π SNAME, AGE (σ CNO='C2' (S SC)) ************************************

(7) 检索学习全部课程的学生姓名

------------------------------------

这个定义用SQL表示比较麻烦,略过

------------------------------------

π SNO, CNO (SC)÷π CNO (C)

先用除法取出选取所有课程的SNO集(除法可以理解为一个Filter) π SNAME (S(π SNO,CNO (SC)÷π CNO (C)))

再关联S表取出SNAME

************************************

(8) 检索所学课程包含S3所学课程的学生学号

------------------------------------

这个定义用SQL表示比较麻烦,略过

------------------------------------

π SNO,CNO (SC)÷ π CNO (σ SNO='S3' (SC))

同样运用了除法的特性

************************************

(9) 将新课程元组( 'C10','PHYSICS','YU') 插入到关系C中

------------------------------------

INSERT INTO C VALUES('C10','PHYSICS','YU')

------------------------------------

(C∪('C10','PHYSICS','YU'))

相关文档
最新文档