1、第三章 关系数据库第一节 关系数据库相关概念一、关系模型(一)关系数据结构和基本术语 1.域 域(domain)是指属性的取值范围。2.关系(1)笛卡尔积的定义 给定一组域D1,D2,Dn,这些域中可以有相同的部分,则D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)diDi,i=1,2,n(2)关系(relation)的定义 D1D2Dn的子集称为在域D1,D2,Dn上的关系,表示为R(Dl,D2,Dn)。3.元组 关系表中的每一横行称为一个元组。4.属性 关系中的每一列称为一个属性(attribute)。5.候选关键字和主关键字(1)候选关键字:若关系中的某一属性组(或单个属
2、性)的值能唯一标识一个元组,则称该属性组(或属性)为候选关键字(candidate key),也称候选码。(2)主关键字:为数据管理方便,当一个关系有多个候选关键字时,应选定其中的一个候选关键字为主关键字(primary key)。6.主属性和非主属性 候选码中的属性称为主属性;不包含在任何候选码中的属性称为非主属性。7.关系模式 对关系的描述称为关系模式,通常用关系名及其属性名集合描述关系模式。8.关系数据库 在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。1.关系操作的内容 关系操作的基本内容包括数据查询、数据维护和数据控制三大功能。2.关系操作的特点 关
3、系操作具有以下3个特点:(1)关系操作语言操作一体化。(2)关系操作采用一次一集合的方式。(3)关系操作语言是高度非过程化的语言(二)关系数据操作 关系数据库中的关系可以分为基本表、视图表和查询表3种类型。(一)基本表 基本表是关系数据库中实际存在的表,是实际存储数据的逻辑表示。(二)视图表 视图表是由基本表或其他视图表导出的表。(三)查询表 查询表是指查询结果表或查询中生成的临时表。二、数据库中关系的类型 关系数据库中的基本表具有以下6个性质。1.同一属性的数据具有同质性。2.同一关系的属性名具有不能重复性。3.关系中的列位置具有顺序无关性。4.关系具有元组无冗余性。5.关系中的元组位置具有
4、顺序无关性。6.关系中每一个分量都必须是不可分的数据项。三、关系的性质第二节 关系代数一、关系代数概述(一)关系代数运算的三要素(一)关系代数运算的三要素 运算对象、运算符、运算结果是关系代数元素的三大要素。(二)运算符(二)运算符 关系代数所使用的运算符包括4类:集合运算符、专门的关系运算符、算术比较运算符和逻辑运算符。(一)并运算(一)并运算 关系R与关系S的并运算(union)表示为RS=t|tRtS(二)交运算(二)交运算 关系R与关系S的交运算(intersection)表示为RS=t|tRtS(三)差运算(三)差运算 关系R与关系S的差运算(difference)表示为RS=t|t
5、RtS二、传统的集合运算(四)广义笛卡儿积运算 设两个分别为n目和m目的关系R和S,它们的广义笛卡儿积是一个(n十m)目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。R和S的笛卡儿积表示为RS=trts|trRtsS(一)选择运算 选择运算(selection)是一种针对一个运算对象的关系操作,按给定的选择条件选出符合条件的元组。选择运算记为F(R)=t|tRF(t)=真(二)投影运算 投影(projection)也是一种针对一个运算对象的关系操作,投影操作是从关系R中选取某些属性组成新的关系,投影运算记为 A(R)=tA|t R 三、专门的关系运算(三)连接运算 连接
6、运算(join)是针对两个关系的操作,建立在笛卡尔积的基础上,是从两个关系的笛卡儿积中选取属性间满足一定条件的元组,记为三、专门的关系运算R S=trts|trR tsS trAtsB=连接条件(RS)(四)除法运算 除法运算是针对两个关系的操作,设有关系R(X,Y)和S(Y),其中X、Y可以是单个属性或属性集,R中的Y和S中的Y可以有不同的属性,但必须来自相同的域。R与S的除运算得到一个新关系P(X),P是R中X属性列上的投影,并且要求满足这样的条件:X属性值在Y上的像集包含S中的Y上的投影,则除法运算定义为RS=tr X|tr RY(S)YX 三、专门的关系运算(四)除法运算 除法运算是针
7、对两个关系的操作,设有关系R(X,Y)和S(Y),其中X、Y可以是单个属性或属性集,R中的Y和S中的Y可以有不同的属性,但必须来自相同的域。R与S的除运算得到一个新关系P(X),P是R中X属性列上的投影,并且要求满足这样的条件:X属性值在Y上的像集包含S中的Y上的投影,则除法运算定义为RS=tr X|tr RY(S)YX 三、专门的关系运算【例1】求订购了图书号为“ts10002”图书的客户号。【例2】求订购了图书号“9787040195835”图书的客户号、客户名、联系电话。【例3】求既订购图书号为“ts10001”又订购了图书号为“ts10002”的客户号。【例4】求全部客户都订购了的图书
8、名。四、关系运算实例分析四、关系运算实例分析 第三节 关系的完整性规则一、域完整性规则 域完整性规则:关系中的属性值必须取自对应值域中的值,一个属性值能不能为空值,由实际的语义决定。域完整性是在关系数据模型定义时,由用户对属性列值的数据类型、长度、单位、精度、格式、值域范围、是否允许为“空值”等进行限定。二、实体完整性规则 关系的实体完整性的规则为:关系中的主关键字的值必须是唯一的,且任何组成部分都不能是空值。实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主关键字整体不能取空值。三、参照完整性规则 参照完整性规则(referential integrity)是对关系中外关键字的值的约束。(一)外关键字(一)外关键字 外关键字(foreign key)概念:设F是基本关系R的一个或一组属性,但F不是R的主关键字(或候选关键字),如果F与基本关系S的主关键字K相对应,则称F是R的外关键字或外码。(二)参照完整性规则(二)参照完整性规则 参照完整性规则为:关系(参照关系)的外关键字必须是另一关系中(被参照关系)主关键字的有效值或者空值。