《数据库原理及应用第三章.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用第三章.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1要 点n数据库系统概述数据库系统概述n数据模型数据模型n关系数据库关系数据库 n关系的规范化关系的规范化n数据库设计数据库设计一、数据库基础理论一、数据库基础理论 2第三章第三章 关系数据库关系数据库n3.1 3.1 基本概念基本概念n3.2 3.2 关系的数学定义关系的数学定义n3.3 3.3 关系代数关系代数教学要求n理解基本概念理解基本概念n掌握关系的完整性规则掌握关系的完整性规则n掌握关系代数的运算掌握关系代数的运算3关系关系关系关系 即一张二维表,表名即关系名。即一张二维表,表名即关系名。3.1 基本概念属性属性属性属性即关系中的列,每一列都有一个属性名。即关系中的列,每一列都有一
2、个属性名。关系模式关系模式关系模式关系模式对关系的描述。对关系的描述。如关系名(属性名如关系名(属性名1,1,属性名属性名n n).元组元组元组元组 即关系中的一行记录。即关系中的一行记录。关系模型中的一些关系模型中的一些概念概念:域域域域属性的取值范围。属性的取值范围。关系模型术语关系模型术语二维表格术语二维表格术语属性属性列列元组元组行行关系关系二维表二维表关系模式关系模式二维表框架二维表框架4码码码码(Key(Key(Key(Key)惟一标识一个元组的属性集称为码。可以惟一标识一个元组的属性集称为码。可以是一个属性或几个属性的组合。是一个属性或几个属性的组合。例如,学号是学生关系的码。例
3、如,学号是学生关系的码。3.1 基本概念主码主码主码主码(Primary(Primary(Primary(Primary Key)Key)Key)Key)从所有候选码中选取其中一个作为用户使用的码。从所有候选码中选取其中一个作为用户使用的码。外码外码外码外码(Foreign Key)(Foreign Key)(Foreign Key)(Foreign Key)当一个关系(当一个关系(A A)的诸属性中,某一属性虽非)的诸属性中,某一属性虽非该实体的主码,却是另一个关系(该实体的主码,却是另一个关系(B B)中的主码时,)中的主码时,则称则称A A中的该属性为外码。中的该属性为外码。候选码候选码
4、候选码候选码(Candidate(Candidate(Candidate(Candidate Key)Key)Key)Key)关系中可能有若干码,它们称为该关系的候选码。关系中可能有若干码,它们称为该关系的候选码。班级班级班级编号班级编号班级名称班级名称专业专业系编号系编号10102101020101工商工商工商管理工商管理10110110101101010000工商工商工商管理工商管理10110110201102010101经济经济经济学经济学10110110202102020101会计会计经济学经济学10110120101201019999电力电力电力系统自动化电力系统自动化102102
5、学生学生关关系系模模型型的的示示例例图图学号学号姓名姓名性别性别出生年月出生年月班级编号班级编号012134012134李长江李长江男男82/04/0582/04/051010210102012133012133江利利江利利女女81/03/0981/03/091010210102012136012136何光明何光明女女82/02/1982/02/191020110201002321002321方虹方虹男男81/11/1281/11/121010110101011111011111毛中华毛中华男男80/06/2580/06/251020110201 外码外码主码主码主码主码利用公共属性利用公共属
6、性实现表与表之实现表与表之间的联系间的联系63.1 基本概念关系数据库关系数据库表1表2姓名民族性别年龄学号学号成绩1成绩2.数据库数据库数据表数据表字段字段0001 91 62.0002 81 82.0003 73 93.记录记录关系数据库关系数据库(relation database)relation database)是依照是依照关系模型关系模型设计设计的、若干个数据表文件的集合。也可以说,关系数据库是由若的、若干个数据表文件的集合。也可以说,关系数据库是由若干张二维表组成的。干张二维表组成的。7关系模型与关系数据库术语对照关系模型与关系数据库术语对照在关系模型理论中在关系模型理论中 在
7、关系数据库中在关系数据库中 关系关系 数据表数据表 元组元组 记录记录 属性属性 字段字段 属性值属性值(分量分量)数据项数据项主码主码主键主键外码外码外键外键3.1 基本概念8三三个个世世界界的的术术语语联联系系3.1 基本概念9常用的关系数据库常用的关系数据库常用的关系数据库常用的关系数据库OracleOracle:流行的数据库平台流行的数据库平台,优势优势在于安全性和海量数据处在于安全性和海量数据处理理能力能力,可运行在可运行在UNIXUNIX、WINDOWSWINDOWS和和LinuxLinux等多种操作系统。等多种操作系统。MySQLMySQL:多用户、多线程的数据库服务器,是一个:
8、多用户、多线程的数据库服务器,是一个自由软自由软件,编码和各编译版本完全开放件,编码和各编译版本完全开放,而且能与,而且能与LinuxLinux和和PHPPHP紧紧密结合密结合InformixInformix:具有多种数据库引擎,:具有多种数据库引擎,适合不同的应用适合不同的应用SybaseSybase:是一个采用通常手段解决各种问题的真正的通用:是一个采用通常手段解决各种问题的真正的通用数据库系统。核心产品数据库系统。核心产品采用开放性结构采用开放性结构,便于扩展。,便于扩展。Microsoft SQL ServerMicrosoft SQL Server:是一个能与任何支持大规模和高:是一
9、个能与任何支持大规模和高复杂应用程序的数据库系统相媲美的数据库系统。支持复杂应用程序的数据库系统相媲美的数据库系统。支持XMLXML功能,运行于多种平台,与功能,运行于多种平台,与微软产品结合紧密微软产品结合紧密。3.1 基本概念101.1.关系的定义关系的定义3.2 关系的数学定义一组具有相同类型的值的集合称为一组具有相同类型的值的集合称为域域。设设D1,D2,Dn是一组域,则是一组域,则D1,D2,Dn 的的笛笛卡尔积卡尔积定义为:定义为:D D1 1DD2 2DDn n=(d d1 1,d,d2 2,d,dn n)|d|di iDDi i,i=1i=1,2 2,nn其中每一个元素(其中每
10、一个元素(d1,d2,dn)叫作)叫作n元组或简称元组。元组或简称元组。元素中的每个值元素中的每个值di(i=1,2,n)叫作一个分量。)叫作一个分量。如:如:D1=0D1=0,11,D2=a,b,c,D2=a,b,c,则则:D1D2=(0D1D2=(0,a)a),(0(0,b)b),(0(0,c)c),(1(1,a)a),(1(1,b)b),(1(1,c)c)笛卡儿积笛卡儿积D1D2DnD1D2Dn的任意一个子集称为的任意一个子集称为D1D1,D2D2,DnDn上的上的一个一个n n元关系元关系,记为:,记为:R R(D1D1,D2D2,DnDn)这里这里R R表示关系的名字,表示关系的名字
11、,n n是关系的目或度。是关系的目或度。关系是一张二维表,性质与关系模型的特点类似。关系是一张二维表,性质与关系模型的特点类似。112.2.关系的完整性关系的完整性 3.2 关系的数学定义完整性规则:是用于保证数据的正确性、有效性和相完整性规则:是用于保证数据的正确性、有效性和相容性的约束条件。容性的约束条件。正确性正确性:现实月份的数据属于数值型数据,若在数据:现实月份的数据属于数值型数据,若在数据中出现字母或符号,显然是不正确的。中出现字母或符号,显然是不正确的。有效性有效性:若月份数据是:若月份数据是1515,则是无效数据。,则是无效数据。相容性相容性:若一个人的出生年月,在一个文件里是
12、:若一个人的出生年月,在一个文件里是3 3月,在另月,在另一个文件里是一个文件里是5 5月,这就是不相容(不一致)。月,这就是不相容(不一致)。根据约束根据约束内容不同内容不同可分三种可分三种实体完整性实体完整性参照完整性参照完整性自定义完整性自定义完整性12实体完整性实体完整性班级编号班级编号班级名称班级名称专业专业系编号系编号10102101020101工商工商工商管理工商管理10110110101101010000工商工商工商管理工商管理101101NullNull0101经济经济经济学经济学10110110202102020101会计会计经济学经济学101101201012010199
13、99电力电力电力系统自电力系统自动化动化102102 表中的班级表中的班级编号字段编号字段不能为不能为NullNull3.2 关系的数学定义对关系中的记录唯一性对关系中的记录唯一性,即对主键的约束。即对主键的约束。主码中的属性值不能为空。主码中的属性值不能为空。13参照完整性参照完整性对建立关联关系的数据表间对建立关联关系的数据表间数据参照引用数据参照引用的约束,即的约束,即外键的约束。外键须是另一关系主键有效值外键的约束。外键须是另一关系主键有效值,或空值。或空值。3.2 关系的数学定义班班级级利用公共属性实现表与表之间的联系班级编号班级编号班级名称班级名称专业专业系编号系编号1010210
14、1020101工商工商工商管理工商管理10110110101101010000工商工商工商管理工商管理10110110201102010101经济经济经济学经济学10110110202102020101会计会计经济学经济学10110120101201019999电力电力电力系统自动化电力系统自动化102102学学生生学号学号姓名姓名性别性别出生年月出生年月班级编号班级编号012134012134李长江李长江男男82/04/0582/04/051010210102012133012133江利利江利利女女81/03/0981/03/09班班12341234012136012136何光明何光明女女8
15、2/02/1982/02/191020110201002321002321方虹方虹男男81/11/1281/11/121010110101011111011111毛中华毛中华男男80/06/2580/06/251020110201外码主码主码班级编班级编号不能号不能为无效为无效值值14自定义完整性自定义完整性也叫域完整性,对表中某些具体数据的约束,如字也叫域完整性,对表中某些具体数据的约束,如字段的域值段的域值,类型及字段的有效规则等。类型及字段的有效规则等。学号学号姓名姓名性别性别出生年月出生年月班级编号班级编号012134012134李长江李长江NullNull82/04/0582/04/
16、051010210102012133012133江利利江利利女女81/03/0981/03/091010210102012136012136何光明何光明女女82/02/1982/02/191020110201002321002321方虹方虹nullnull81/11/1281/11/121010110101011111011111毛中华毛中华男男80/06/2580/06/251020110201表中的性别表中的性别字段不字段不能为能为NullNull3.2 关系的数学定义通过使用完整性约束,用户就不必在应用程序中重复增加通过使用完整性约束,用户就不必在应用程序中重复增加检查数据完整性的程序代
17、码,极大地减轻程序员的工作量。检查数据完整性的程序代码,极大地减轻程序员的工作量。数据库完整性约束是数据库设计的主要内容数据库完整性约束是数据库设计的主要内容,而一个而一个DBMSDBMS是否支持完整性约束是评价关系是否支持完整性约束是评价关系DBMSDBMS的一个重要指标。的一个重要指标。前两个由前两个由DBMS自动支持,第三个须用户写出相关定义,自动支持,第三个须用户写出相关定义,由系统承担检验与纠错工作。由系统承担检验与纠错工作。153.3 关系代数关系代数是施加于关系上的一组集合代数运算,每关系代数是施加于关系上的一组集合代数运算,每个运算都以一个或多个关系作为运算对象,并生成另外一个
18、运算都以一个或多个关系作为运算对象,并生成另外一个关系作为关系运算的结果。个关系作为关系运算的结果。包括传统的包括传统的集合运算集合运算和专门的和专门的关系运算关系运算两类。两类。包括并、差、交和笛卡尔积。包括并、差、交和笛卡尔积。1.1.集合运算集合运算并并并并(UNION)(UNION)(UNION)(UNION)运算运算运算运算同类同类同类同类关系关系关系关系R R R R和和和和S S S S,则它们的并记为,则它们的并记为,则它们的并记为,则它们的并记为RSRSRSRS,仍然是,仍然是,仍然是,仍然是R R R R和和和和S S S S的同类关系,由属于的同类关系,由属于的同类关系,
19、由属于的同类关系,由属于R R R R或属于或属于或属于或属于S S S S的元组组成,同时的元组组成,同时的元组组成,同时的元组组成,同时删去重删去重删去重删去重复元组复元组复元组复元组。RS=t|tRS=t|tRS=t|tRS=t|tR tS R tS R tS R tS 16并运算如:并运算如:并运算如:并运算如:班级编班级编班级编班级编号号号号班级名班级名班级名班级名称称称称专业专业专业专业系编系编系编系编号号号号0010010101工商工商工商工商工商管工商管工商管工商管理理理理1011010020020202工商工商工商工商工商管工商管工商管工商管理理理理1011010030030
20、303经济经济经济经济经济学经济学经济学经济学101101班级编班级编班级编班级编号号号号班级名班级名班级名班级名称称称称专业专业专业专业系编系编系编系编号号号号0030030303经济经济经济经济经济学经济学经济学经济学1011010040040101会计会计会计会计经济学经济学经济学经济学1011010050059999电力电力电力电力电力系电力系电力系电力系统统统统102102R RS SR RS S 或或或或 R+SR+S班级编班级编班级编班级编号号号号班级名班级名班级名班级名称称称称专业专业专业专业系编系编系编系编号号号号0010010101工商工商工商工商工商管工商管工商管工商管理
21、理理理1011010020020000工商工商工商工商工商管工商管工商管工商管理理理理1011010030030303经济经济经济经济经济学经济学经济学经济学1011010040040101会计会计会计会计经济学经济学经济学经济学1011010050059999电力电力电力电力电力系电力系电力系电力系统统统统102102=0030030303经济经济经济经济经济学经济学经济学经济学1011010030030303经济经济经济经济经济学经济学经济学经济学1011010030030303经济经济经济经济经济学经济学经济学经济学1011013.3 关系代数17差差差差(DIFFERENCE)(DIF
22、FERENCE)(DIFFERENCE)(DIFFERENCE)运算运算运算运算同类同类同类同类关系关系关系关系R R R R和和和和S S S S,则它们的差记为,则它们的差记为,则它们的差记为,则它们的差记为R R R R S S S S,仍然是,仍然是,仍然是,仍然是R R R R和和和和S S S S的同类关系,由属于的同类关系,由属于的同类关系,由属于的同类关系,由属于R R R R但不属于但不属于但不属于但不属于S S S S的元组组成,即从的元组组成,即从的元组组成,即从的元组组成,即从R R R R中删中删中删中删去与去与去与去与S S S S相同的元组。相同的元组。相同的元组
23、。相同的元组。R R R R S=t|tR tS S=t|tR tS S=t|tR tS S=t|tR tS 3.3 关系代数班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称专业专业专业专业系编号系编号系编号系编号0010010101工商工商工商工商工商管理工商管理工商管理工商管理1011010020020000工商工商工商工商工商管理工商管理工商管理工商管理1011010060060202经济经济经济经济经济学经济学经济学经济学101101班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称专业专业专业专业系编号系编号系编号系编号0030030101经济经济经济经
24、济经济学经济学经济学经济学1011010040040101会计会计会计会计经济学经济学经济学经济学1011010050059999电力电力电力电力电力系统电力系统电力系统电力系统102102R RS S班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称专业专业专业专业系编号系编号系编号系编号0010010101工商工商工商工商工商管理工商管理工商管理工商管理1011010020020000工商工商工商工商工商管理工商管理工商管理工商管理1011010030030101经济经济经济经济经济学经济学经济学经济学1011010040040101会计会计会计会计经济学经济学经济学经济学1
25、011010050059999电力电力电力电力电力系统电力系统电力系统电力系统102102=-RSRS0010010101工商工商工商工商工商管理工商管理工商管理工商管理1011010010010101工商工商工商工商工商管理工商管理工商管理工商管理1011010020020000工商工商工商工商工商管工商管工商管工商管理理理理1011010020020000工商工商工商工商工商管理工商管理工商管理工商管理1011010060060202经济经济经济经济经济学经济学经济学经济学10110118交交交交(INTERSECTION)(INTERSECTION)(INTERSECTION)(INTE
26、RSECTION)运算运算运算运算同类同类同类同类关系关系关系关系R R R R和和和和S S S S,则它们的交记为,则它们的交记为,则它们的交记为,则它们的交记为RSRSRSRS,仍然是,仍然是,仍然是,仍然是R R R R和和和和S S S S的同类关系,由既属于的同类关系,由既属于的同类关系,由既属于的同类关系,由既属于R R R R又属于又属于又属于又属于S S S S的元组组成。交运算可的元组组成。交运算可的元组组成。交运算可的元组组成。交运算可以用两次差运算所取代,即以用两次差运算所取代,即以用两次差运算所取代,即以用两次差运算所取代,即RS=R RS=R RS=R RS=R (
27、R(R(R(R S)S)S)S)RS=t|tRtSRS=t|tRtSRS=t|tRtSRS=t|tRtS3.3 关系代数班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称专业专业专业专业系编号系编号系编号系编号0020020000工商工商工商工商工商管理工商管理工商管理工商管理1011010060069999工商工商工商工商工商管理工商管理工商管理工商管理1011010030030101经济经济经济经济经济学经济学经济学经济学101101R RS S班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称专业专业专业专业系编号系编号系编号系编号0010010101工商工商
28、工商工商工商管理工商管理工商管理工商管理1011010020020000工商工商工商工商工商管理工商管理工商管理工商管理1011010030030101经济经济经济经济经济学经济学经济学经济学1011010040040101会计会计会计会计经济学经济学经济学经济学1011010050059999电力电力电力电力电力系统电力系统电力系统电力系统102102=班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称专业专业专业专业系编号系编号系编号系编号RSRS0020020000工商工商工商工商工商管工商管工商管工商管理理理理1011010020020000工商工商工商工商工商管理工商管
29、理工商管理工商管理1011010030030101经济经济经济经济经济学经济学经济学经济学1011010030030101经济经济经济经济经济学经济学经济学经济学1011010020020000工商工商工商工商工商管理工商管理工商管理工商管理1011010030030101经济经济经济经济经济学经济学经济学经济学1011010010010101工商工商工商工商工商管工商管工商管工商管理理理理10110119笛卡尔积(笛卡尔积(笛卡尔积(笛卡尔积(Cartesian Cartesian Cartesian Cartesian ProductProductProductProduct)设设设设R
30、R R R为为为为m m m m元元元元关系,关系,关系,关系,S S S S为为为为n n n n元元元元关系,则关系,则关系,则关系,则R R R R和和和和S S S S的笛卡儿的笛卡儿的笛卡儿的笛卡儿乘积乘积乘积乘积RSRSRSRS是一个是一个是一个是一个(m+n)(m+n)(m+n)(m+n)元关系,其中元关系,其中元关系,其中元关系,其中任一元组的前任一元组的前任一元组的前任一元组的前m m m m个个个个分量是分量是分量是分量是R R R R的一个元组,后的一个元组,后的一个元组,后的一个元组,后n n n n个分量是个分量是个分量是个分量是S S S S的一个元组的一个元组的一
31、个元组的一个元组。RSRSRSRS是所有具备这种条件的元组的集合。是所有具备这种条件的元组的集合。是所有具备这种条件的元组的集合。是所有具备这种条件的元组的集合。RS=tRS=tRS=tRS=tr r r rtttts s s s|t|t|t|tr r r rR tR tR tR ts s s sSSSS3.3 关系代数实际进行组合时,从实际进行组合时,从实际进行组合时,从实际进行组合时,从R R R R的第一个元组开始,依次的第一个元组开始,依次的第一个元组开始,依次的第一个元组开始,依次与与与与S S S S的所有元组组合,然后对的所有元组组合,然后对的所有元组组合,然后对的所有元组组合,
32、然后对R R R R的其它元组进行同样的的其它元组进行同样的的其它元组进行同样的的其它元组进行同样的操作,即可得到操作,即可得到操作,即可得到操作,即可得到RSRSRSRS的全部元组。的全部元组。的全部元组。的全部元组。20例如:例如:学号学号学号学号姓名姓名姓名姓名001001李长江李长江李长江李长江002002江利利江利利江利利江利利课号课号课号课号课程名课程名课程名课程名学分学分学分学分C11C11数据库数据库数据库数据库4 4C12C12英语英语英语英语5 5C13C13会计学会计学会计学会计学3 3R RS S学号学号学号学号姓名姓名姓名姓名课号课号课号课号课程名课程名课程名课程名学
33、分学分学分学分=RSRS001001李长江李长江李长江李长江C11C11数据库数据库数据库数据库4 4001001李长江李长江李长江李长江C11C11数据库数据库数据库数据库4 4001001李长江李长江李长江李长江C12C12英语英语英语英语5 5001001李长江李长江李长江李长江C13C13会计学会计学会计学会计学3 3002002江利利江利利江利利江利利C11C11数据库数据库数据库数据库4 4002002江利利江利利江利利江利利C12C12英语英语英语英语5 5002002江利利江利利江利利江利利C13C13会计学会计学会计学会计学3 3C12C12英语英语英语英语5 5C13C13
34、会计学会计学会计学会计学3 33.3 关系代数21选择(选择(选择(选择(SelectionSelectionSelectionSelection)运算运算运算运算是单目运算,是根据一定的条件在给定的关系是单目运算,是根据一定的条件在给定的关系是单目运算,是根据一定的条件在给定的关系是单目运算,是根据一定的条件在给定的关系R R R R中选取若干个元组,组成一个新关系,是从中选取若干个元组,组成一个新关系,是从中选取若干个元组,组成一个新关系,是从中选取若干个元组,组成一个新关系,是从行的角度行的角度行的角度行的角度进行的运算。进行的运算。进行的运算。进行的运算。其中,其中,其中,其中,为选取
35、运算符,为选取运算符,为选取运算符,为选取运算符,F F F F为选取的条件,它由为选取的条件,它由为选取的条件,它由为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运运算对象(属性名、常数、简单函数)、算术比较运运算对象(属性名、常数、简单函数)、算术比较运运算对象(属性名、常数、简单函数)、算术比较运算符(算符(算符(算符(,=,)和逻辑运算符()和逻辑运算符()和逻辑运算符()和逻辑运算符()连接起来的逻辑表达式,结果为逻辑值)连接起来的逻辑表达式,结果为逻辑值)连接起来的逻辑表达式,结果为逻辑值)连接起来的逻辑表达式,结果为逻辑值“真真真真”或或或或“假假假假”。F F
36、F F(R)=t|tRF(t)=(R)=t|tRF(t)=(R)=t|tRF(t)=(R)=t|tRF(t)=真真真真3.3 关系代数包括选择、投影、连接等。包括选择、投影、连接等。2.2.关系运算关系运算22例如:学生例如:学生例如:学生例如:学生-课程数据库结构如下:课程数据库结构如下:课程数据库结构如下:课程数据库结构如下:3.3 关系代数23例:查询信息系例:查询信息系例:查询信息系例:查询信息系(IS(IS(IS(IS系系系系)全体学生。全体学生。全体学生。全体学生。表达式:表达式:表达式:表达式:sdeptsdept=IS=IS(Student)(Student)或或 5=IS 5
37、=IS(Student)(Student)3.3 关系代数24例:查询年龄小于例:查询年龄小于例:查询年龄小于例:查询年龄小于20202020岁的学生。岁的学生。岁的学生。岁的学生。表达式:表达式:表达式:表达式:s sage20(Student)age20(Student)或或 420(Student)4 、等。其中等。其中等。其中等。其中为为为为“=”“=”“=”“=”时,称之为时,称之为时,称之为时,称之为等值连接等值连接等值连接等值连接。293.3 关系代数A AB BC C4 45 57 73 36 68 85 57 79 9RA AD DE E5 54 41 16 65 57 74
38、 46 63 3SBEA AB BC CS.AS.AD DE E4 45 57 76 65 57 73 36 68 86 65 57 7B=EA AB BC CS.AS.AD DE E5 57 79 96 65 57 7如已知如已知R、S如下,求如下,求 与与 。BEB=E303.3 关系代数F F F F连接连接连接连接从从从从R R R R和和和和S S S S的笛卡尔积中选取属性值满足的笛卡尔积中选取属性值满足的笛卡尔积中选取属性值满足的笛卡尔积中选取属性值满足某一个条某一个条某一个条某一个条件公式件公式件公式件公式(即多个条件即多个条件即多个条件即多个条件)的元组,记为的元组,记为的元
39、组,记为的元组,记为 。其中其中其中其中F F F F为为为为F F F F1 1 1 1FFFF2 2 2 2FFFFn n n n的公式,每个的公式,每个的公式,每个的公式,每个F F F Fp p p p是形为是形为是形为是形为“ij”ij”ij”ij”的式子。的式子。的式子。的式子。F自然连接自然连接自然连接自然连接指满足以下两个条件的连接:指满足以下两个条件的连接:指满足以下两个条件的连接:指满足以下两个条件的连接:1 1 1 1)两个关系之间有公共属性;)两个关系之间有公共属性;)两个关系之间有公共属性;)两个关系之间有公共属性;2 2 2 2)通过公共属性进行等值连接。)通过公共
40、属性进行等值连接。)通过公共属性进行等值连接。)通过公共属性进行等值连接。如如如如R R R R与与与与S S S S的自然连接结果如下所示,记为的自然连接结果如下所示,记为的自然连接结果如下所示,记为的自然连接结果如下所示,记为A AB BC CD DE E4 45 57 76 63 35 57 79 94 41 131例:将班级关系例:将班级关系例:将班级关系例:将班级关系R1R1R1R1与学生关系与学生关系与学生关系与学生关系R2R2R2R2进行自然连接运算。进行自然连接运算。进行自然连接运算。进行自然连接运算。R1R1R2R2学号学号学号学号姓名姓名姓名姓名班级编号班级编号班级编号班级
41、编号001001001001李长江李长江李长江李长江001001001001002002002002江利利江利利江利利江利利001001001001003003003003何光明何光明何光明何光明003003003003004004004004方虹方虹方虹方虹002002002002班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称00100100100101010101工商工商工商工商00200200200200000000工商工商工商工商00300300300301010101经济经济经济经济R3R3班级编号班级编号班级编号班级编号班级名称班级名称班级名称班级名称学号学号学号
42、学号姓名姓名姓名姓名00100100100101010101工商工商工商工商001001001001李长江李长江李长江李长江00100100100101010101工商工商工商工商002002002002江利利江利利江利利江利利00200200200200000000工商工商工商工商004004004004方虹方虹方虹方虹00300300300301010101经济经济经济经济003003003003何光明何光明何光明何光明无重复列无重复列无重复列无重复列问题:如果问题:如果问题:如果问题:如果R1R1中存在不匹配的中存在不匹配的中存在不匹配的中存在不匹配的记录呢?记录呢?记录呢?记录呢?3.
43、3 关系代数32左外连接左外连接(left outer join)(left outer join)新表中包括公共属性相等的记录和左表中其它新表中包括公共属性相等的记录和左表中其它新表中包括公共属性相等的记录和左表中其它新表中包括公共属性相等的记录和左表中其它记录,记录,记录,记录,左表中不匹配的保留左表中不匹配的保留左表中不匹配的保留左表中不匹配的保留。例:将班级关系例:将班级关系例:将班级关系例:将班级关系R1R1R1R1与学生关系与学生关系与学生关系与学生关系R2R2R2R2进行左外连接运算。进行左外连接运算。进行左外连接运算。进行左外连接运算。R2R200400400300300200
44、2001001学号学号学号学号004004李芳李芳李芳李芳003003何光明何光明何光明何光明001001江利利江利利江利利江利利001001李长江李长江李长江李长江班级编号班级编号班级编号班级编号姓名姓名姓名姓名R1R10101经济经济经济经济0030030000工商工商工商工商0020020101工商工商工商工商001001班级名称班级名称班级名称班级名称班级编号班级编号班级编号班级编号R3R3003003nullnull001001001001班级编号班级编号班级编号班级编号何光明何光明何光明何光明nullnull江利利江利利江利利江利利李长江李长江李长江李长江姓名姓名姓名姓名nulln
45、ull0000工商工商工商工商002002003003001001001001班级编号班级编号班级编号班级编号0101经济经济经济经济0101工商工商工商工商0101工商工商工商工商班级名称班级名称班级名称班级名称003003002002001001学号学号学号学号左表中不匹左表中不匹左表中不匹左表中不匹配的保留配的保留配的保留配的保留不匹配不匹配不匹配不匹配记录记录记录记录右表中不匹右表中不匹右表中不匹右表中不匹配的舍去配的舍去配的舍去配的舍去如何保留该如何保留该如何保留该如何保留该记录呢?记录呢?记录呢?记录呢?3.3 关系代数33右外连接右外连接(right outer join)(ri
46、ght outer join)新表中包括公共属性相等的记录和右表中其它新表中包括公共属性相等的记录和右表中其它新表中包括公共属性相等的记录和右表中其它新表中包括公共属性相等的记录和右表中其它记录,记录,记录,记录,右表中不匹配的保留右表中不匹配的保留右表中不匹配的保留右表中不匹配的保留。例:将班级关系例:将班级关系例:将班级关系例:将班级关系R1R1R1R1与学生关系与学生关系与学生关系与学生关系R2R2R2R2进行右外连接运算。进行右外连接运算。进行右外连接运算。进行右外连接运算。R2R2004004003003002002001001学号学号学号学号004004李芳李芳李芳李芳003003
47、何光明何光明何光明何光明001001江利利江利利江利利江利利001001李长江李长江李长江李长江班级编号班级编号班级编号班级编号姓名姓名姓名姓名R1R10101经济经济经济经济0030030000工商工商工商工商0020020101工商工商工商工商001001班级名称班级名称班级名称班级名称班级编号班级编号班级编号班级编号R3R3003003004004001001001001班级编号班级编号班级编号班级编号何光明何光明何光明何光明李芳李芳李芳李芳江利利江利利江利利江利利李长江李长江李长江李长江姓名姓名姓名姓名004004nullnullnullnull003003001001001001班级
48、编号班级编号班级编号班级编号0101经济经济经济经济0101工商工商工商工商0101工商工商工商工商班级名称班级名称班级名称班级名称003003002002001001学号学号学号学号左表中不匹左表中不匹左表中不匹左表中不匹配的舍去配的舍去配的舍去配的舍去不匹配不匹配不匹配不匹配记录记录记录记录右表中不匹右表中不匹右表中不匹右表中不匹配的保留配的保留配的保留配的保留如何保留如何保留如何保留如何保留R1R1和和和和R2R2中不匹中不匹中不匹中不匹配的记录?配的记录?配的记录?配的记录?3.3 关系代数34全外连接全外连接(full outer join)(full outer join)左外与右
49、外连接的全集。左外与右外连接的全集。左外与右外连接的全集。左外与右外连接的全集。例:将班级关系例:将班级关系例:将班级关系例:将班级关系R1R1R1R1与学生关系与学生关系与学生关系与学生关系R2R2R2R2进行全外连接运算。进行全外连接运算。进行全外连接运算。进行全外连接运算。R2R2004004003003002002001001学号学号学号学号004004李芳李芳李芳李芳003003何光明何光明何光明何光明001001江利利江利利江利利江利利001001李长江李长江李长江李长江班级编号班级编号班级编号班级编号姓名姓名姓名姓名R1R10101经济经济经济经济0030030000工商工商工商
50、工商0020020101工商工商工商工商001001班级名称班级名称班级名称班级名称班级编号班级编号班级编号班级编号左表中不匹左表中不匹左表中不匹左表中不匹配的保留配的保留配的保留配的保留R3R3003003004004001001001001班级编号班级编号班级编号班级编号何光明何光明何光明何光明李芳李芳李芳李芳江利利江利利江利利江利利李长江李长江李长江李长江姓名姓名姓名姓名004004nullnullnullnull003003001001001001班级编号班级编号班级编号班级编号0101经济经济经济经济0101工商工商工商工商0101工商工商工商工商班级名称班级名称班级名称班级名称00