第3章 关系运算.ppt
《第3章 关系运算.ppt》由会员分享,可在线阅读,更多相关《第3章 关系运算.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章概论本章概论 关系数据库系统是当今普遍应用的数据库系统,关系数据库系统是当今普遍应用的数据库系统,它是通过关系数据模型建立起来的。关系运算是关它是通过关系数据模型建立起来的。关系运算是关系数据模型的理论基础。学好关系运算的理论知识系数据模型的理论基础。学好关系运算的理论知识会对以后关系型数据库设计和正确操作带来很大的会对以后关系型数据库设计和正确操作带来很大的帮助。本章主要介绍关系数据模型的基本定义和完帮助。本章主要介绍关系数据模型的基本定义和完整性规则、关系运算中关系代数的基本操作和如何整性规则、关系运算中关系代数的基本操作和如何优化关系表达式运算的问题。优化关系表达式运算的问题。本章本
2、章目录目录3.1 关系数据模型3.2 关系运算3.3 关系代数表达式的查询优化3.4本章小结习 题3.1 关系数据模型关系数据模型 关系数据库之所以能获得当今世界的普关系数据库之所以能获得当今世界的普遍应用,关键在于关系数据库有一个严密的、遍应用,关键在于关系数据库有一个严密的、经得起数学推导的、又容易被人们理解的、经得起数学推导的、又容易被人们理解的、在实践中证明是正确的关系数据模型。本节在实践中证明是正确的关系数据模型。本节从关系数据模型的定义、关键码和数据库表从关系数据模型的定义、关键码和数据库表之间的联系、关系模式概念和关系模型完整之间的联系、关系模式概念和关系模型完整性规则性规则4个
3、方面来介绍关系数据模型的理论知个方面来介绍关系数据模型的理论知识。识。3.1关系数据模型目录关系数据模型目录3.1.1 关系数据模型的定义关系数据模型的定义3.1.2 关键码和表之间的联系3.1.3 关系模式关系模式3.1.4 关系模型的完整性规则 域(域(Domain)定义定义 域是一组具有相同数据类型的值的集合。又称为值域(用D表示)。域中所包含的值的个数称为域的基数(用m表示)。在关系中就是用域来表示属性取值范围的。例如,学生性别的域是男,女,大学生入学年龄的域可以定为:16-19岁,姓名的域可以定为:4-8个字符等。如果用D1表示姓名,D2表示性别,D3表示年龄,则关于域基数的含义如下
4、:D1=张林,李以荣,欧阳正荣 D1的基数m1为3 D2=男,女 D2的基数m2为2 D3=16,17,18,19 D3的基数m3为4笛卡尔积(笛卡尔积(Cartesian Product)定义)定义 给定一组域D1、D2、Dn(这些域中可以包含相同的元素,也可以完全不同(即可以部分或全部相同),D1、D2、Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n 由定义可以看出,笛卡尔积也是一个集合由定义可以看出,笛卡尔积也是一个集合。笛卡尔积笛卡尔积 定义说明定义说明(1)其中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple),或简称为元组(Tuple)。但元组
5、不是di的集合,元组由di按序排列而成。(2)元素中的每一个值di叫作一个分量(Component)。分量来自相应的域(diDi)。(3)若Di(i1,2,n)为有限集,其基数(Cardinal number)为mi(i1,2,n),则D1D2Dn的基数为n个域的基数累乘之积,即笛卡尔积可以表示为:mi=n1n2nn(n1,n2,nn分别表示分别表示D1,D2,Dn的的基数的个数)。基数的个数)。(4)笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。笛卡尔积笛卡尔积 定义举例定义举例 D1D2=(张林,男),(张林,女),(李以荣,男),(李以荣,女),(欧阳正荣,男
6、),(欧阳正荣,女)。可以表示成二维表,如下表3.1所示:表表3.1 笛卡尔积笛卡尔积D1D2姓名性别姓名性别张林男张林女李以荣男李以荣女欧阳正荣姓名性别姓名性别张林男张林女李以荣男李以荣女欧阳正荣男欧阳正荣女男欧阳正荣女 由此可以看出,由此可以看出,D1与与D2的笛卡尔积实质上的笛卡尔积实质上每一个域中各分量组合的集合,总元组数为:每一个域中各分量组合的集合,总元组数为:M=32=6关系(关系(Relation)定义定义D1D2Dn的任一子集叫作在域的任一子集叫作在域D1,D2,Dn上上的关系,用的关系,用 R(D1,D2,Dn)表示。如上例中表示。如上例中D1D2笛卡尔积的子集可以构成关系
7、笛卡尔积的子集可以构成关系T1,关系,关系T1是笛卡尔积的一部分是笛卡尔积的一部分,如下表如下表3.3所示:所示:R表示关系的名字,以后若关系没有确定的名字,表示关系的名字,以后若关系没有确定的名字,则关系名均用则关系名均用R表示,表示,n是关系的目或度是关系的目或度(Degree)。)。关关系举例系举例表3.3 D1D2笛卡尔积的子集(关系T1)姓名性别张林女李以荣男欧阳正荣男当n=1时,称为单元关系。当n=2时,称为二元关系。当n=m时,称为m元关系。一个一个典型的关系表典型的关系表(教师表教师表)教师编号姓名系别性别年龄身份证号1011程虹民计算机男3030102198112091581
8、1032刘良顺电子男4030101970091213832010王彩凤自动化女4530101965110414802131李同军数学女3630101965061115833011周林外文男213010199007281581关系性质关系性质(1)列是同质的:每一列中的分量是同一类型的数据,来自同一域)列是同质的:每一列中的分量是同一类型的数据,来自同一域(2)不同列可来自同一个域:不同列)不同列可来自同一个域:不同列(属性属性)要给予不同的属性名。要给予不同的属性名。(3)列的顺序无所谓:列的次序可以任意交换。)列的顺序无所谓:列的次序可以任意交换。(4)任意两个元组不能完全相同:这是由笛卡尔
9、积的性质决定的。)任意两个元组不能完全相同:这是由笛卡尔积的性质决定的。(5)行的顺序无所谓:行的次序可以任意交换。)行的顺序无所谓:行的次序可以任意交换。(6)分量必须取原子值:每一个分量都必须是不可分的数据项。)分量必须取原子值:每一个分量都必须是不可分的数据项。关键码和表之间的联系关键码和表之间的联系(1)1 超键超键 在在一个一个关系中,能唯一标识元组的属性或属性集称为关系的超键。表关系中,能唯一标识元组的属性或属性集称为关系的超键。表3.4关系中,设属性集关系中,设属性集K(教师编号,系别)能唯一识别元组,可以认为(教师编号,系别)能唯一识别元组,可以认为教师编号和系别的属性集是教师
10、关系的一个超键。教师编号和系别的属性集是教师关系的一个超键。2候选键候选键(Candidate key)若若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。表键。表3.4关系中,属性集教师编号和身份证号都能唯一标识一个元组,关系中,属性集教师编号和身份证号都能唯一标识一个元组,所以说,属性集教师编号和身份证号是教师关系的候选键。所以说,属性集教师编号和身份证号是教师关系的候选键。关键码和表之间的联系关键码和表之间的联系(2)3全键全键(All-key)若候选键包含了关系模式的所有属性,则称该候选键为全键。例有一关系若候
11、选键包含了关系模式的所有属性,则称该候选键为全键。例有一关系TCS(T,C,S),属性),属性T表示老师,表示老师,C表示课程,表示课程,S表示学生。老师、课程和学生之表示学生。老师、课程和学生之间都存在着多对多的关系,没有其中一个属性或两个属性的组合能唯一标识关系间都存在着多对多的关系,没有其中一个属性或两个属性的组合能唯一标识关系TCS,只有,只有T、C、S属性合起来才能唯一标识关系属性合起来才能唯一标识关系TCS,所以说所以说T、C、S属性属性集是候选键,也称为全键(或称为全码)。集是候选键,也称为全键(或称为全码)。4主键主键(Primary key)若一个关系有多个候选键,则选定其中
12、的一个就称为主键,包含在任何一个候选若一个关系有多个候选键,则选定其中的一个就称为主键,包含在任何一个候选键中的属性称为主属性,不包含在任何侯选键中的属性称为非主属性或非键属性。键中的属性称为主属性,不包含在任何侯选键中的属性称为非主属性或非键属性。在表在表3.4关系中,可以选教师编号属性为主键,也可选身份证号属性为主键,教关系中,可以选教师编号属性为主键,也可选身份证号属性为主键,教师编号和身份证号属性都是主属性,姓名、系别、性别、年龄各属性是非主属性。师编号和身份证号属性都是主属性,姓名、系别、性别、年龄各属性是非主属性。关键码和表之间的联系关键码和表之间的联系(3)5外键(外键(Fore
13、ign key)若一个关系若一个关系R中包含有另一个关系中包含有另一个关系S的主键所对应的属性组的主键所对应的属性组F,则称,则称F为为R的外键。并的外键。并称关系称关系S为参照关系,关系为参照关系,关系R为依赖关系。为依赖关系。例如职工关系和部门关系分别为:例如职工关系和部门关系分别为:教师(教师(教师编号教师编号,姓名,姓名,系别编号系别编号,性别,年龄,身份证号),性别,年龄,身份证号)系别(系别(系别编号系别编号,系别名称,系主任),系别名称,系主任)这里教师关系是这里教师关系是R关系,系别关系是关系,系别关系是S关系,教师关系的主键是教师编号,系别关系关系,教师关系的主键是教师编号,
14、系别关系的主键是系别编号。在教师关系中,系别编号是系别关系中的主键,因此说教师关的主键是系别编号。在教师关系中,系别编号是系别关系中的主键,因此说教师关系中系别编号属性是教师关系中的外键。称系中系别编号属性是教师关系中的外键。称S为参照关系为参照关系(或称主表或称主表),称称R为被参照为被参照关系关系(或称副表或称副表)。这两个关系中,就是靠公共属性系别编号这个外键来联系的,这。这两个关系中,就是靠公共属性系别编号这个外键来联系的,这在关系数据库中很重要。我们约定,在主键的属性下面加下划线,在外键属性下面在关系数据库中很重要。我们约定,在主键的属性下面加下划线,在外键属性下面加波浪线。加波浪线
15、。关系模式的概念关系模式的概念 在数据库中要区分型和值两方面。关系数据库在数据库中要区分型和值两方面。关系数据库中,关系模式是型,关系是值。关系模式是对关系中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面呢的描述,那么一个关系需要描述哪些方面呢?(1)关系模式名称关系模式名称(2)属性集属性集(3)属性域属性域(4)属性和域之间的映像属性和域之间的映像(5)属性之间的依赖关系属性之间的依赖关系关系模式的形式化表示关系模式的形式化表示 关系的描述称为关系模式(关系的描述称为关系模式(Relation Schema)。一个关系模)。一个关系模式应当是一个五元组。它可
16、以形式化地表示为:式应当是一个五元组。它可以形式化地表示为:R(U,D,dom,F)。其中)。其中R为关系名,为关系名,U为组成该关系的属性名集合,为组成该关系的属性名集合,D为属性组为属性组U中属性所来自的域的集合,中属性所来自的域的集合,dom为属性间域的映象集合,为属性间域的映象集合,F为属为属性间数据的依赖关系集合。性间数据的依赖关系集合。关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系实际上就是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是值。关系模式是静态的、稳定的,而关系关系模式是型,关系是值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的
17、(因为关系操作在不断地更新着数是动态的、随时间不断变化的(因为关系操作在不断地更新着数据库中的数据)。据库中的数据)。关系数据库概念关系数据库概念在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生实在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生实体、课程实体、学生与课程之间的多对多选课联系都可以分别用一个关体、课程实体、学生与课程之间的多对多选课联系都可以分别用一个关系(或二维表)来表示。在一个给定的现实世界领域中,所有实体及实系(或二维表)来表示。在一个给定的现实世界领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库。体之间的联系的关系的集合构成一个关系数
18、据库。关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关是对关系数据库的描述,是关系模式的集合。关系数据库的值也称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库,是关系的集合。关系数据库模式与关系数据库通常统称为关系数据库。实际上把前面讲的关系模式和关系合起来就是关系数据库。系数据库。实际上把前面讲的关系模式和关系合起来就是关系数据库。关系模型的完整性规则关系模型的完整性规则(1)1实体完整性规则实体完整性规则:关系中元组的主键值不
19、能为空。系别关系中元组的主键值不能为空。系别表中的主键:系别编号不为空,教师表的表中的主键:系别编号不为空,教师表的主键:教师编号不为空,所以这两个表都主键:教师编号不为空,所以这两个表都满足实体完整性规则。满足实体完整性规则。关系模型的完整性规则关系模型的完整性规则(2)2参照完整性规则参照完整性规则参照完整性规则的形式定义如下参照完整性规则的形式定义如下:如果属性集如果属性集K是关系模式是关系模式R1的主键,的主键,K是关系模式是关系模式R2的外键,那么在的外键,那么在R2的关系中,的关系中,K的取值只允许两的取值只允许两种可能,或者为空值,或者等于种可能,或者为空值,或者等于R1关系中某
20、个主键关系中某个主键值。值。关系模型的完整性规则关系模型的完整性规则(3)参照完整性规则在具体使用时要注意以下参照完整性规则在具体使用时要注意以下3点:点:(1)外键和相应的主健可以不同名,只要定义在相同值域上即可。例如在图外键和相应的主健可以不同名,只要定义在相同值域上即可。例如在图3.2中外键名可以不叫系别编号,定义别的名称,但定义的这个名称的类型中外键名可以不叫系别编号,定义别的名称,但定义的这个名称的类型和值域一定要与图和值域一定要与图3.1中系别编号相同。中系别编号相同。(2)R1和和R2也可以是同一个关系模式,表示了同一个不同元组之间的联系。也可以是同一个关系模式,表示了同一个不同
21、元组之间的联系。例如表示所学课程与这一课程的先修课程之间的联系模式:例如表示所学课程与这一课程的先修课程之间的联系模式:R(课程号课程号,课,课程名,先修课程号),程名,先修课程号),R的主键是课程号,而先修课程号是外键,则先修课的主键是课程号,而先修课程号是外键,则先修课程号的值一定是程号的值一定是R中课程号存在的值或是中课程号存在的值或是“空值空值”。(3)外键值是否允许空,应视具体问题而定。在模式中,若外键是该模式主外键值是否允许空,应视具体问题而定。在模式中,若外键是该模式主键中的成份时,则外键值不允许空,否则允许空。例如,一个学生表的模式键中的成份时,则外键值不允许空,否则允许空。例
22、如,一个学生表的模式是:学生(是:学生(学号学号,姓名,性别,所学专业),一个学生成绩表的模式:成绩,姓名,性别,所学专业),一个学生成绩表的模式:成绩(学号学号,数学,外语,计算机),以上两个表的属性,数学,外语,计算机),以上两个表的属性“学号学号”都是主键,都都是主键,都可以认为是另一个关系的外键,都不允许为空值。可以认为是另一个关系的外键,都不允许为空值。上述两类完整性规则是关系模型必须满足的规则,由该系统自动支持。上述两类完整性规则是关系模型必须满足的规则,由该系统自动支持。关系模型的完整性规则关系模型的完整性规则(4)3用户定义的完整性规则用户定义的完整性规则这一规则是对某一具体数
23、据的约束条件,由应用环境决定,它反映某一这一规则是对某一具体数据的约束条件,由应用环境决定,它反映某一具体应用所涉及的数据必须满足的语义要求。它实质就是指域完整性规具体应用所涉及的数据必须满足的语义要求。它实质就是指域完整性规则。关系模型应提供定义和检验这类完整性的机制,以便使用统一的系则。关系模型应提供定义和检验这类完整性的机制,以便使用统一的系统方法来处理,而不需要应用程序来承担这一制约功能。例如,一般普统方法来处理,而不需要应用程序来承担这一制约功能。例如,一般普通大学学生入学的年龄不超过通大学学生入学的年龄不超过30岁,学生成绩、年龄、工资、奖学金不岁,学生成绩、年龄、工资、奖学金不能
24、为负数等,当这些规则在数据表相关结构中设定后,一旦有不符合这能为负数等,当这些规则在数据表相关结构中设定后,一旦有不符合这种设定的数据输入时,系统会自动弹出对话框,提示你输入数据错误。种设定的数据输入时,系统会自动弹出对话框,提示你输入数据错误。3.2 关系运算关系运算 关系数据模型由关系数据结构、关系操关系数据模型由关系数据结构、关系操作集合和关系完整性约束三部分组成,这作集合和关系完整性约束三部分组成,这是关系数据模型的形式定义,也称为关系是关系数据模型的形式定义,也称为关系数据模型的三要素。关系数据结构和关系数据模型的三要素。关系数据结构和关系完整性约束二部分已经论述过,关系运算完整性约
25、束二部分已经论述过,关系运算就是讨论关系操作集合的问题。就是讨论关系操作集合的问题。关系查询语言和关系运算关系查询语言和关系运算 1查询语言分类查询语言分类关系数据库的数据操纵语言(关系数据库的数据操纵语言(Data Manipulation Language 简称:简称:DML)的的语句可以分成查询语句和更新语句两大类。查询语句用于描述用户的各种检语句可以分成查询语句和更新语句两大类。查询语句用于描述用户的各种检索要求;更新语句用于描述用户的插入、修改和删除等操作。索要求;更新语句用于描述用户的插入、修改和删除等操作。关系查询语言根据其理论基础的不同分为两大类。关系查询语言根据其理论基础的不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 关系运算 关系 运算
限制150内