第三章 数据库中的关系代数学_第1页
第三章 数据库中的关系代数学_第2页
第三章 数据库中的关系代数学_第3页
第三章 数据库中的关系代数学_第4页
第三章 数据库中的关系代数学_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章第三章 数据库中的关系代数学数据库中的关系代数学引言引言 电子商务离不开商务数据的处理;商务数据利用电子商务离不开商务数据的处理;商务数据利用数据库系统管理;现代数据库大多数为关系型。数据库系统管理;现代数据库大多数为关系型。 关系代数学本质是对数据的一种建模,即关系数关系代数学本质是对数据的一种建模,即关系数据模型。据模型。 应如何对数据进行建模?应如何对数据进行建模?主要内容主要内容 关系代数概论关系代数概论 关系代数运算关系代数运算 集合运算集合运算 关系运算关系运算 关系代数表达式关系代数表达式第一节第一节 关系代数概论关系代数概论 关系代数学的一些基本定义关系代数学的一些基本定

2、义 (1)域:具有相同数据类型的值的集合(整数、实数的)域:具有相同数据类型的值的集合(整数、实数的集合);域中表示值的个数为域的集合);域中表示值的个数为域的基数基数(用(用m表示);关表示);关系中用域表示属性的取值范围。系中用域表示属性的取值范围。 (2)笛卡尔积:两个集合)笛卡尔积:两个集合X和和Y的笛卡儿积(的笛卡儿积(Cartesian product),),又称直积又称直积,表示为,表示为X Y,第一个对象是,第一个对象是X的成的成员,而第二个对象是员,而第二个对象是Y的一个成员的所有可能的有序对(的一个成员的所有可能的有序对(x,y)叫做叫做n元组,或元组元组,或元组。元素中的

3、每一个值叫做。元素中的每一个值叫做一个分量一个分量。第一节第一节 关系代数概论关系代数概论 关系代数学的一些基本定义关系代数学的一些基本定义 (3)关系:)关系: D1 D2 Dn的子集叫做在域的子集叫做在域D1 D2 Dn的的关系关系。用。用R( D1 D2 Dn )表示。)表示。 R表示表示关系的名字关系的名字; n是关系的是关系的目或度目或度,也称,也称元数元数。 关系中的每一列称为关系中的每一列称为属性,属性,列名为列名为属性名属性名。第二节第二节 关系代数运算关系代数运算 一、传统的集合运算一、传统的集合运算 设关系设关系R和和S具有相同的目具有相同的目n(即两个关系都有(即两个关系

4、都有n个属性),个属性),且相应的属性取自同一个域。且相应的属性取自同一个域。 1、并、并 RS=t| t R t S. R和和S并的结果仍为并的结果仍为n目关系,目关系, 其数据由属于其数据由属于R或属于或属于S的元组组成。的元组组成。学号学号 姓名姓名 性别性别06002657 王远征王远征 男男06002782 李守财李守财 男男06002792 张小冬张小冬 男男05001234 韩龙妹韩龙妹 女女05001343 窦旭香窦旭香 女女学号学号 姓名姓名 性别性别07005437 宁建春宁建春 女女07004321 曲春霞曲春霞 女女07003352 雷金凤雷金凤 女女07003482

5、武利君武利君 男男学号学号 姓名姓名 性别性别06002657 王远征王远征 男男06002782 李守财李守财 男男06002792 张小冬张小冬 男男05001234 韩龙妹韩龙妹 女女05001343 窦旭香窦旭香 女女07005437 宁建春宁建春 女女07004321 曲春霞曲春霞 女女07003352 雷金凤雷金凤 女女07003482 武利君武利君 男男关系关系R:选修数据库的学生选修数据库的学生RS:选修数据库或选修多媒体选修数据库或选修多媒体的学生的学生关系关系S:选修多媒体的学生选修多媒体的学生第二节第二节 关系代数运算关系代数运算 一、传统的集合运算一、传统的集合运算2.

6、 差(差(Difference)运算)运算 R S = t | t R t S. R和和S差运算的结果关系仍为差运算的结果关系仍为n目关系,其数据由属于目关系,其数据由属于R而不属于而不属于S的所有元组组成。将的所有元组组成。将R中与中与S中相同的元组去掉。中相同的元组去掉。RSR-SR-S学号学号 姓名姓名06002657王远征王远征06002782李守财李守财06002792张小冬张小冬05001234韩龙妹韩龙妹05001343窦旭香窦旭香学号学号 姓名姓名05001234韩龙妹韩龙妹05001343窦旭香窦旭香学号学号姓名姓名06002657王远征王远征06002782李守财李守财06

7、002792张小冬张小冬RSR-SR-S关系关系R:选修数据库的学生选修数据库的学生关系关系S:选修多媒体的学生选修多媒体的学生R-S:选修了数据库而没选多选修了数据库而没选多媒体的学生媒体的学生第二节第二节 关系代数运算关系代数运算 一、传统的集合运算一、传统的集合运算 3. 交(交(Intersection)运算)运算 RS = t | tR t S . 运算的结果关系仍为n目关系,其数据由既属于R同时又属于S的元组组成。交可用差来表示: RS = R(RS) .R-SR-SSR R S SR学号学号 姓名姓名06002657王远征王远征05001343窦旭香窦旭香学号学号 姓名姓名060

8、02657王远征王远征06002782李守财李守财05001234韩龙妹韩龙妹05001343窦旭香窦旭香学号学号 姓名姓名06002657王远征王远征05001343窦旭香窦旭香SR R S SRRS:同时选修数据库和多媒体同时选修数据库和多媒体的学生的学生关系关系R:选修数据库的学生选修数据库的学生关系关系S:选修多媒体的学生选修多媒体的学生第二节第二节 关系代数运算关系代数运算 一、传统的集合运算一、传统的集合运算4. 4. 笛卡儿积运算笛卡儿积运算 设n目和m目的关系R和S,它们的笛卡儿积是一个(n+m)目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1

9、个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有k1k2个元组。R和S的笛卡儿积表示为: RS = tr ts | tr R ts S .学号学号 姓名姓名06002657王远征王远征06002792张小冬张小冬课程课程课程名课程名 学分学分C23数据库数据库 4C24英语英语 5C25数理统计数理统计 3学号学号 姓名姓名课号课号课程名课程名 学分学分06002657王远征王远征 C23数据库数据库 406002657王远征王远征 C24英语英语 506002657王远征王远征 C25数理统计数理统计 306002792张小冬张小冬 C23数据库数据库 406002792张小冬张

10、小冬 C24英语英语 506002792张小冬张小冬 C25数理统计数理统计 3关系关系R关系关系SRS第二节第二节 关系代数运算关系代数运算 二、专门的关系运算二、专门的关系运算 (1) 选择(选择(Selection)运算)运算选择运算又称为限制运算。选择运算指在关系R中选择满足给定条件的元组,记作: F(R)= t | t R F(t)= 真真 .其中:F表示选择条件,是一个逻辑表达式,取值为“真”或“假”。F由逻辑运算符(非)、(与)和(或)连接各条件表达式组成。 条件表达式的基本形式为:条件表达式的基本形式为:X1 Y1. 其中:其中:是比较运算符,它可以是、是比较运算符,它可以是、

11、中的一种;中的一种; X1和和Y1是属性名、常量或简单函数;是属性名、常量或简单函数; 属性名也可以用它的序号来代替。属性名也可以用它的序号来代替。【例1】用关系代数表示在学生课程数据库中查询计算机系的全体学生的操作。所在系所在系= 计算机系计算机系 (学生)(学生) 或者5= 计算机系计算机系 (学生)(学生)学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系98010张三张三男男20计算机系计算机系99001张敏张敏女女20数学系数学系99002刘丰刘丰男男21信息系信息系99003王翔王翔男男19计算机系计算机系99004陆逸陆逸女女18信息系信息系99006陈敏陈敏女女18数学系数学

12、系99007扬阳扬阳女女18计算机系计算机系99008谷正谷正男男17数学系数学系学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系98010张三张三男男20计算机系计算机系99001张敏张敏女女20数学系数学系99002刘丰刘丰男男21信息系信息系99003王翔王翔男男19计算机系计算机系99004陆逸陆逸女女18信息系信息系99006陈敏陈敏女女18数学系数学系99007扬阳扬阳女女18计算机系计算机系99008谷正谷正男男17数学系数学系计算机系18女扬阳扬阳99007计算机系20男张三张三98010计算机系19男王翔王翔99003所在系所在系= 计算机系计算机系 (学生)(学生)【例

13、2】用关系代数表示在学生课程数据库中查询年龄小于20岁的学生的操作。 年龄年龄20(学生)(学生) 420(学生)(学生) 学生学生学号学号姓名姓名性别性别年龄年龄所在系所在系98010张三张三男男20计算机系计算机系99001张敏张敏女女20数学系数学系99002刘丰刘丰男男21信息系信息系99003王翔王翔男男19计算机系计算机系99004陆逸陆逸女女18信息系信息系99006陈敏陈敏女女18数学系数学系99007扬阳扬阳女女18计算机系计算机系99008谷正谷正男男17数学系数学系99003王翔王翔男男19计算机计算机系系99004陆逸陆逸女女18信息系信息系99006陈敏陈敏女女18数

14、学系数学系99007扬阳扬阳女女18计算机计算机系系99008谷正谷正男男17数学系数学系年龄年龄20(学生)(学生)如何查询所有男同学的信息如何查询所有男同学的信息?第二节第二节 关系代数运算关系代数运算 二、专门的关系运算二、专门的关系运算 (2)投影投影(Projection)运算运算 关系关系R上的投影是从上的投影是从R中选择出若干属性列组成新的中选择出若干属性列组成新的关系,记作:关系,记作: A(R)= t A | t R .【例3】在学生课程数据库中,查询学生的姓名和所在系。在学生课程数据库中,查询学生的姓名和所在系。 姓名,所在系姓名,所在系(学生)(学生)学生学生学号学号姓名

15、姓名性别性别年龄年龄所在系所在系98010张三张三男男20计算机系计算机系99001张敏张敏女女20数学系数学系99002刘丰刘丰男男21信息系信息系99003王翔王翔男男19计算机系计算机系99004陆逸陆逸女女18信息系信息系99006陈敏陈敏女女18数学系数学系99007扬阳扬阳女女18计算机系计算机系99008谷正谷正男男17数学系数学系姓名姓名张三张三张敏张敏刘丰刘丰王翔王翔陆逸陆逸陈敏陈敏扬阳扬阳谷正谷正所在系所在系计算机系计算机系数学系数学系信息系信息系计算机系计算机系信息系信息系数学系数学系计算机系计算机系数学系数学系姓名,所在系姓名,所在系(学生)(学生)如何查询学生的姓名、

16、年龄信如何查询学生的姓名、年龄信息息?第二节第二节 关系代数运算关系代数运算 二、专门的关系运算二、专门的关系运算 (3)连接运算连接运算 连接是从两个关系的笛卡儿积中选取属性间满足一定条件连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:的元组。记作: R S|AB=tr ts| trR tsS tr A ts B. 其中:其中:A和和B分别为分别为R和和S上度数相等且可比的属性组,上度数相等且可比的属性组,是比较运算符。是比较运算符。 等值连接表示为:等值连接表示为: R S|A =B=tr ts| tr R ts S tr A ts B. 从关系从关系R和和S的广义笛卡儿积

17、中选取的广义笛卡儿积中选取A和和B属性值属性值相等的那些元组。仅值相等,属性名可相同,也可相等的那些元组。仅值相等,属性名可相同,也可不同不同. 自然连接是一种特殊的等值连接:要求两个关系中自然连接是一种特殊的等值连接:要求两个关系中进行比较的分量必须是相同的属性组。必须是同名进行比较的分量必须是相同的属性组。必须是同名同值。重复的属性列应该去掉。同值。重复的属性列应该去掉。 R S=tr ts| tr R ts S tr A ts B 【例4】设学生和选课关系中的数据如下,学生与选课之间的笛卡设学生和选课关系中的数据如下,学生与选课之间的笛卡儿积、等值连接和自然连接的结果如表所示。儿积、等值

18、连接和自然连接的结果如表所示。 学号姓名年龄所在系 学号课程名成绩98001张三20计算机系98001数据库6298005李四21数学系98001数据结构73 98005微积分80学生.学号姓名年龄所在系选课.学号课名成绩980019800198001980059800598005张三张三张三李四李四李四202020212121计算机系计算机系计算机系数学系数学系数学系980019800198005980019800198005数据库数据结构微积分数据库数据结构微积分627380627380学生学生 选课选课 学生学生选课选课 笛卡儿积笛卡儿积学生.学号姓名年龄所在系选课.学号课名成绩9800

19、19800198005张三张三李四202021计算机系计算机系数学系980019800198005数据库数据结构微积分627380学生.学号姓名年龄所在系课名成绩980019800198005张三张三李四202021计算机系计算机系数学系数据库数据结构微积分627380 学生学生 选课选课 学生学生.学号学号=选课选课.学号学号等值连接等值连接学生学生 选课选课 自然连接自然连接 外连接外连接 如果把舍弃的元组也保存在结果关系中,而在其他属如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值性上填空值(Null),这种连接就叫做外连接(,这种连接就叫做外连接(OUTER JOIN)。)。

20、左外连接左外连接 如果只把左边关系如果只把左边关系R中要舍弃的元组保留就叫做左外连中要舍弃的元组保留就叫做左外连接接(LEFT OUTER JOIN或或LEFT JOIN) 右外连接右外连接 如果只把右边关系如果只把右边关系S中要舍弃的元组保留就叫做右外连中要舍弃的元组保留就叫做右外连接接(RIGHT OUTER JOIN或或RIGHT JOIN)。 第二节第二节 关系代数运算关系代数运算 二、专门的关系运算二、专门的关系运算 (4)除法除法 给定关系给定关系R(X,Y)和和S(Y,Z),其中其中X, Y, Z为属性组。为属性组。R中的中的Y与与S中的中的Y可以有不同的属性名,但必须出自相同的

21、域集。可以有不同的属性名,但必须出自相同的域集。 R与与S的除运算得到一个新的关系的除运算得到一个新的关系P(X)。 该该P中只包含中只包含R中投影下来的的中投影下来的的X属性组,且该属性组,且该X属性组应属性组应满足:满足:R(Y)=S(Y)。【例5】给出选课、选修课和必给出选课、选修课和必修课修课3个关系个关系:课号课号课名课名C2计算机图形学计算机图形学学号学号课号课号成绩成绩S1C1AS1C2BS1C3BS2C1AS2C3BS3C1BS3C3BS4C1AS4C2AS5C2BS5C3BS5C1A选课选修课课号课号科名科名C1数据结构数据结构C3操作系统操作系统必修课在选课表中查找已修过所

22、有必修课在选课表中查找已修过所有必修课的学生学号的学生学号学号学号,课程号课程号(选课(选课)必修课必修课关系除法运算分下面关系除法运算分下面4步进行:步进行:1) 将被除关系的属性分为象集属性和结果属性:与除将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结关系相同的属性属于象集属性,不相同的属性属于结果属性。果属性。2) 在除关系中,对与被除关系相同的属性(象集属性)在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。进行投影,得到除目标数据集。3) 将被除关系分组,原则是,结果属性值一样的元组将被除关系分组,原则是,结果属性值

23、一样的元组分为一组。分为一组。4) 逐一考察每个组,如果它的象集属性值中包括除目逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结标数据集,则对应的结果属性值应属于该除法运算结果集。果集。学号,课号学号,课号(选课)(选课)必修课必修课 学号学号课号课号成绩成绩S1C1AS1C2BS1C3BS2C1AS2C3BS3C1BS3C3BS4C1AS4C2AS5C2BS5C3BS5C1A学号学号课号课号S1C1S1C2S1C3S2C1S2C3S3C1S3C3S4C1S4C2S5C2S5C3S5C1投影学号学号课号课号S1C1S1C2S1C3S2C1S2C3S3C

24、1S3C3S4C1S4C2S5C2S5C3S5C1学号S1S2S3S5课号课号科名科名C1数据结构数据结构C3操作系统操作系统必修课 在选课表中查找已修所有必修课学生的学号在选课表中查找已修所有必修课学生的学号象集属性象集属性:课号课号结果属性结果属性:学号学号目标数据集目标数据集: 课号(必修课)课号(必修课)=C1,C3学号相同的为一组学号相同的为一组包括目标数据集的学包括目标数据集的学号放到结果中号放到结果中学生选课库的关系模式为:学生选课库的关系模式为: 学生(学号,姓名,性别,年龄,所在系);学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课);课程(课程号,课程

25、名,先行课); 选课(学号,课程号,成绩)选课(学号,课程号,成绩).【例例6】求选修了课程号为求选修了课程号为“C2”课程的学生学号。课程的学生学号。 学号学号(课程号课程号= C2(选课)(选课) 【例例7】求选修了课程号为求选修了课程号为“C2”课的学生学号、姓名、成绩。课的学生学号、姓名、成绩。学号,姓名,成绩学号,姓名,成绩(课程号课程号= C2(选课(选课 学生)学生)如何查询各学生选修课程的课程名、成绩?如何查询各学生选修课程的课程名、成绩?要显示出学生学号、姓名、课程名、成绩。要显示出学生学号、姓名、课程名、成绩。学号,姓名,课程名,成绩(选课学号,姓名,课程名,成绩(选课 学

26、生学生 课程)课程)学生选课库的关系模式为:学生选课库的关系模式为: 学生(学号,姓名,性别,年龄,所在系);学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课);课程(课程号,课程名,先行课); 选课(学号,课程号,成绩)选课(学号,课程号,成绩).【例8】求没有选修课程号为“C2”课程的学生学号。学号(学生)学号(学生)-学号(学号(课程号课程号= C2(选课)(选课)本题能否写为:本题能否写为: 学号(学号(课程号课程号 C2(选课)?(选课)?学号课程号成绩000001c280000002c290000001c375000003c360选课选课学号学号(课程号课程号 C2(选课)(选课)学号学号(学生)(学生)-学号学号(课程号课程号= C2(选课)(选课)【例9】求既选修“C2”课程,又选修“C3”课程的学生学号和成绩。学号课程号成绩000001c280000002c290000001c375000003c360学号,成绩学号,成绩(课程号课程号= C2 (选课

温馨提示

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

评论

0/150

提交评论