《第3章 关系数据库基本理论PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第3章 关系数据库基本理论PPT讲稿.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 关系数据库基本理论第1页,共34页,编辑于2022年,星期一1.1.关系的数学定义关系的数学定义关系的数学定义关系的数学定义1)1)域(域(域(域(DomainDomain)的定义:对应于实体中的属性,是一组具有相同数据类型的)的定义:对应于实体中的属性,是一组具有相同数据类型的)的定义:对应于实体中的属性,是一组具有相同数据类型的)的定义:对应于实体中的属性,是一组具有相同数据类型的值的集合。值的集合。值的集合。值的集合。2)2)笛卡儿积(笛卡儿积(笛卡儿积(笛卡儿积(Cartesian ProductCartesian Product)的定义:给定一组域)的定义:给定一组域)的定义
2、:给定一组域)的定义:给定一组域D D1 1,D D2 2,D Dn n,这些域,这些域,这些域,这些域中可以有相同的部分,中可以有相同的部分,中可以有相同的部分,中可以有相同的部分,则笛卡儿积为:则笛卡儿积为:则笛卡儿积为:则笛卡儿积为:D D1 1DD2 2DDn n=(d d1 1,d d2 2,d dn n)d di i D Di i,i i1 1,2 2,n.n.其中每一个元素(其中每一个元素(其中每一个元素(其中每一个元素(d d1 1,d d2 2,d dn n )称为一个)称为一个)称为一个)称为一个n n元组(元组(元组(元组(n-Tuplen-Tuple),简称元组),简称
3、元组),简称元组),简称元组(TupleTuple)。元素中的每一个值)。元素中的每一个值)。元素中的每一个值)。元素中的每一个值 d di i 称作一个分量(称作一个分量(称作一个分量(称作一个分量(ComponentComponent)。)。)。)。3.1 3.1 关系的定义关系的定义关系的定义关系的定义 3.1.1 3.1.1 关系数据结构关系数据结构关系数据结构关系数据结构第2页,共34页,编辑于2022年,星期一即,每列对应一个域。例如给出三个域:即,每列对应一个域。例如给出三个域:即,每列对应一个域。例如给出三个域:即,每列对应一个域。例如给出三个域:D1=D1=姓名姓名姓名姓名=
4、王平,李丽,张晓刚王平,李丽,张晓刚王平,李丽,张晓刚王平,李丽,张晓刚;D2=D2=性别性别性别性别=男,女男,女男,女男,女;D3=D3=年龄年龄年龄年龄=19=19,20.20.3)3)关关关关系系系系(RelationRelation)的的的的定定定定义义义义:D D1 1 DD2 2 DDn n的的的的子子子子集集集集称称称称作作作作在在在在域域域域D D1 1,D D2 2,D Dn n上的关系,表示为:上的关系,表示为:上的关系,表示为:上的关系,表示为:R R(D D1 1,D D2 2,D Dn n).这里:这里:这里:这里:R R表示关系的名字,表示关系的名字,表示关系的名
5、字,表示关系的名字,n n是关系的目或度(是关系的目或度(是关系的目或度(是关系的目或度(DegreeDegree)。)。)。)。第3页,共34页,编辑于2022年,星期一4)关键字关键字关键字关键字:用来标识某个记录的用来标识某个记录的一个或一组属性一个或一组属性。候选关键字候选关键字:能作为关键字的属性可能不止一个,这些属性称为候选关键字:能作为关键字的属性可能不止一个,这些属性称为候选关键字:学生(学生(学号学号,姓名,性别,年龄);,姓名,性别,年龄);借书(借书(学号,书号学号,书号,日期);,日期);学生选课(学生选课(学号,课程学号,课程).主关键字:能唯一标识某个记录主关键字:
6、能唯一标识某个记录(元组元组)的候选关键字。的候选关键字。次关键字:能识别多个记录的属性则称为次关键字次关键字:能识别多个记录的属性则称为次关键字。主属性:关系中,候选关键字中的属性称为主属性。主属性:关系中,候选关键字中的属性称为主属性。非主属性:不包含在任何候选关键字中的属性称为非主属性。非主属性:不包含在任何候选关键字中的属性称为非主属性。第4页,共34页,编辑于2022年,星期一 3.1.2 3.1.2 关系的性质关系的性质关系的性质关系的性质1.数据库中基本关系的性质数据库中基本关系的性质1)空关系:不包含元空关系:不包含元组组的表。的表。2)N度度关系:关系中有关系:关系中有N 个
7、属性。个属性。3)属性取)属性取值值:相同属性具相同域,即:相同的属性具相同的数据:相同属性具相同域,即:相同的属性具相同的数据类类型。型。4)关系中的列位置具有顺序无关性。关系中的列位置具有顺序无关性。5)关系中的元组位置具有顺序无关性。同一关系中不应有相同的元组。关系中的元组位置具有顺序无关性。同一关系中不应有相同的元组。6)关系中每一个分量都必须是不可分的数据项。关系中每一个分量都必须是不可分的数据项。7)关系是随着操作动态变化。关系是随着操作动态变化。8)关系相等与关系的命名和属性的顺序无关。)关系相等与关系的命名和属性的顺序无关。第5页,共34页,编辑于2022年,星期一2.2.关系
8、模式(关系模式(关系模式(关系模式(Relation SchemaRelation Schema)的定义)的定义)的定义)的定义关系模式通常可以简单记为:关系模式通常可以简单记为:关系模式通常可以简单记为:关系模式通常可以简单记为:R R(U U)或)或)或)或 R R(A1A1,A2A2,AnAn).其中:其中:其中:其中:R R为关系名,为关系名,为关系名,为关系名,A1A1,A2A2,AnAn为属性名。为属性名。为属性名。为属性名。3.3.关系数据库关系数据库关系数据库关系数据库在在在在某某某某一一一一应应应应用用用用领领领领域域域域中中中中,所所所所有有有有实实实实体体体体集集集集及及
9、及及实实实实体体体体之之之之间间间间联联联联系系系系所所所所形形形形成成成成关关关关系系系系的的的的集集集集合合合合就就就就构构构构成成成成了了了了一一一一个关系数据库。个关系数据库。个关系数据库。个关系数据库。第6页,共34页,编辑于2022年,星期一1)1)集集集集合合合合运运运运算算算算符符符符:(并并并并运运运运算算算算),(差差差差运运运运算算算算),(交交交交运运运运算算算算),(广广广广义义义义笛笛笛笛卡卡卡卡儿儿儿儿积积积积)。2)2)专门的关系运算符:专门的关系运算符:专门的关系运算符:专门的关系运算符:(选择),(选择),(选择),(选择),(投影),(连接),(投影),(
10、连接),(投影),(连接),(投影),(连接),(除)。(除)。(除)。(除)。3)3)比比比比较较较较运运运运算算算算符符符符:(大大大大于于于于),(大大大大于于于于等等等等于于于于),(小小小小于于于于),(小小小小于于于于等等等等于于于于),(等等等等于),于),于),于),(不等于)。(不等于)。(不等于)。(不等于)。4)4)逻辑运算符:逻辑运算符:逻辑运算符:逻辑运算符:(非),(非),(非),(非),(与),(与),(与),(与),(或)。(或)。(或)。(或)。3.2.1 3.2.1 传统的集合运算传统的集合运算传统的集合运算传统的集合运算设设设设关关关关系系系系R R和和和
11、和S S具具具具有有有有相相相相同同同同的的的的目目目目n n(即即即即两两两两个个个个关关关关系系系系都都都都有有有有n n个个个个属属属属性性性性),且且且且相相相相应应应应的的的的属属属属性性性性取取取取自自自自同一个域。同一个域。同一个域。同一个域。1.1.并(并(并(并(UnionUnion)运算)运算)运算)运算R RS=t|t S=t|t R R t t S.S.R R和和和和S S并的结果仍为并的结果仍为并的结果仍为并的结果仍为n n目关系,其数据由属于目关系,其数据由属于目关系,其数据由属于目关系,其数据由属于R R或属于或属于或属于或属于S S的元组组成。的元组组成。的元组
12、组成。的元组组成。3.2 3.2 关系代数关系代数关系代数关系代数第7页,共34页,编辑于2022年,星期一2.2.差(差(差(差(DifferenceDifference)运算)运算)运算)运算R S=t|t R S=t|t R R t t S.S.R R和和和和S S差差差差运运运运算算算算的的的的结结结结果果果果关关关关系系系系仍仍仍仍为为为为n n目目目目关关关关系系系系,其其其其数数数数据据据据由由由由属属属属于于于于R R而而而而不不不不属属属属于于于于S S的的的的所有元组组成。所有元组组成。所有元组组成。所有元组组成。3.3.交(交(交(交(IntersectionInters
13、ection)运算)运算)运算)运算RS=t|tRS=t|t R R t t S.S.R R和和和和S S交运算的结果关系仍为交运算的结果关系仍为交运算的结果关系仍为交运算的结果关系仍为n n目关系,其数据由既属于目关系,其数据由既属于目关系,其数据由既属于目关系,其数据由既属于R R同时又属于同时又属于同时又属于同时又属于S S的元组组成。的元组组成。的元组组成。的元组组成。关系的交可以用差来表示,即:关系的交可以用差来表示,即:关系的交可以用差来表示,即:关系的交可以用差来表示,即:RS=R(RS).RS=R(RS).4.4.广义笛卡儿积(广义笛卡儿积(广义笛卡儿积(广义笛卡儿积(Exte
14、nded Cartesian ProductExtended Cartesian Product)运算)运算)运算)运算2.2.差(差(差(差(DifferenceDifference)运算)运算)运算)运算R S=t|t R S=t|t R R t t S.S.R R和和和和S S差差差差运运运运算算算算的的的的结结结结果果果果关关关关系系系系仍仍仍仍为为为为n n目目目目关关关关系系系系,其其其其数数数数据据据据由由由由属属属属于于于于R R而而而而不不不不属属属属于于于于S S的的的的所所所所有有有有元组组成。元组组成。元组组成。元组组成。3.3.交(交(交(交(Intersection
15、Intersection)运算)运算)运算)运算RS=t|tRS=t|t R R t t S.S.R R和和和和S S交交交交运运运运算算算算的的的的结结结结果果果果关关关关系系系系仍仍仍仍为为为为n n目目目目关关关关系系系系,其其其其数数数数据据据据由由由由既既既既属属属属于于于于R R同同同同时时时时又又又又属属属属于于于于S S的的的的元组组成。元组组成。元组组成。元组组成。关系的交可以用差来表示,即:关系的交可以用差来表示,即:关系的交可以用差来表示,即:关系的交可以用差来表示,即:RS=R(RS).RS=R(RS).4.4.广义笛卡儿积(广义笛卡儿积(广义笛卡儿积(广义笛卡儿积(E
16、xtended Cartesian ProductExtended Cartesian Product)运算)运算)运算)运算第8页,共34页,编辑于2022年,星期一第9页,共34页,编辑于2022年,星期一关系运算运算不仅涉及关系的行也涉及列,有时需要比较与逻辑运算来辅助进行操作。1.关系运算的定义关系运算的定义(1)选择(选择(Selection)运算)运算 选择运算指在关系选择运算指在关系R中选择满足给定条件的元组,中选择满足给定条件的元组,记作:记作:F(R)=t|t R F(t)=真真.其中:其中:F表示选择条件,它是一个逻辑表达式,取值为表示选择条件,它是一个逻辑表达式,取值为“
17、真真”或或“假假”。F由逻辑运算由逻辑运算符(非)、符(非)、(与)和(与)和(或)连接各条件表达式组成。(或)连接各条件表达式组成。条件表达式的基本形式为:条件表达式的基本形式为:X1Y1.其中:其中:是比较运算符,它可以是、是比较运算符,它可以是、中的一种;中的一种;X1和和Y1是属性名、常量或简单函数;属性名也可以用它的序号来代替。是属性名、常量或简单函数;属性名也可以用它的序号来代替。3.2.2 3.2.2 基本的关系运算基本的关系运算基本的关系运算基本的关系运算第10页,共34页,编辑于2022年,星期一选择运算是从行的角度进行的运算选择运算是从行的角度进行的运算n举举例例:R为为0
18、1级级学学生生登登记记表表,从从01级级学学生生登登记记表表中选出中选出01级软件专业学生。级软件专业学生。n F(R)=t|t R 专业专业=软件软件.n专业专业=软件软件(R)表示:表示:n专业专业=软件软件(R)表示:表示:第11页,共34页,编辑于2022年,星期一设学生课程数据库,其关系模式为:设学生课程数据库,其关系模式为:学生(学生,姓名,年龄,所在系);学生(学生,姓名,年龄,所在系);课程(课程号,课程名,学分);课程(课程号,课程名,学分);选课(学号,课程号,成绩)选课(学号,课程号,成绩).【例例3-1】用用关关系系代代数数表表示示在在学学生生课课程程数数据据库库中中查
19、查询询计计算算机机系系的的全全体体学学生生的的操操作。作。所在系所在系=计算机系计算机系(学生)(学生)【例【例3-2】用关系代数表示在学生课程数据库中查询年龄小于】用关系代数表示在学生课程数据库中查询年龄小于20岁的学生的操作。岁的学生的操作。年龄年龄20(学生)(学生)第12页,共34页,编辑于2022年,星期一(2)投影投影(Projection)运算运算关系关系R上的投影操作是从关系上的投影操作是从关系R中选择出若干属性列,组成新的关系。中选择出若干属性列,组成新的关系。设设R为一个为一个n元关系,元关系,R的投影操作定义为:的投影操作定义为:A(R)=tA|tR,其中其中:A为为R属
20、性集的子集,属性集的子集,tA表示元组表示元组t中对应属性子集中对应属性子集A的分量。的分量。n投影操作主要是从列的角度进行运算投影操作主要是从列的角度进行运算但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)(避免重复行)第13页,共34页,编辑于2022年,星期一【例【例3-3】在学生课程数据库中,查询学生的姓名和所在系。】在学生课程数据库中,查询学生的姓名和所在系。表示为:表示为:姓名,所在系姓名,所在系(学生)(学生)例、例、查询学生关系查询学生关系S中学生都来自哪些系中学生都来自哪些系 系名系名(S)
21、:系名系名CSISMA第14页,共34页,编辑于2022年,星期一(3)连接(连接(Join)运算。)运算。连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:R S=tr ts|tr R ts S tr Ats B.AB其其中中:t为为属属性性集集,A和和B分分别别为为R和和S上上度度数数相相等等且且可可比比的的属属性性组组,是是比比较较运运算符。算符。连连接接运运算算从从R和和S的的广广义义笛笛卡卡儿儿积积RS中中,选选取取符符合合AB条条件件的的元元组组,即即选选择择在在R关关系系中中A属属性性组组上上的的值值与
22、与在在S关关系系中中B属属性性组组上上的的值值满满足足比比较较操操作作的的元元组。组。等值连接表示为:等值连接表示为:R S=tr ts|tr R ts S tr A=ts B.第15页,共34页,编辑于2022年,星期一AB124578CD3162ABCD123112624531456278317862ABCD123112624562则属性则属性B,C称为连接属性,称为连接属性,BC为连接条件为连接条件如如 R S:RS:R BC S:RS=tr ts|tr Rts StrBtsC.第16页,共34页,编辑于2022年,星期一A B自然连接是一种特殊的等值连接,它要求两个关系中进行自然连接是
23、一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。若属性列去掉。若R和和S具有相同的属性组,则它们的自然连具有相同的属性组,则它们的自然连接可表示为:接可表示为:R S=tr ts|tr R ts S tr Ats B.第17页,共34页,编辑于2022年,星期一n一般的连接操作是从行的角度进行运算。一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。ABRS第18页,共34页,编辑于202
24、2年,星期一ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS第19页,共34页,编辑于2022年,星期一AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 R S CE第20页,共34页,编辑于2022年,星期一AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32 等值连接等值连接 R S R.B=S.B 第21页,共34页,编辑于2022年,星期一ABCEa1b153a1b267a2b3810a2b382 自然连接自然连接 R S 第22页,共34页,编辑于2022年
25、,星期一【例例3-4】设设学学生生和和选选课课关关系系中中的的数数据据如如下下,学学生生与与选选课课之之间间的的笛笛卡儿积、等值连接和自然连接的结果如表所示。卡儿积、等值连接和自然连接的结果如表所示。第23页,共34页,编辑于2022年,星期一第24页,共34页,编辑于2022年,星期一(4)除(除(Division)运算)运算给给定定关关系系R(X,Y)和和S(Y,Z),其其中中X,Y,Z为为属属性性组组。R中中的的Y与与S中中的的Y可可以有不同的属性名,但必须出自相同的域集。以有不同的属性名,但必须出自相同的域集。T=RST的的属属性性由由R中中不不出出现现在在S的的属属性性组组成成,其其
26、元元组组由由S中中所所有有元元组组在在R中中对对应值相同的元组组成。应值相同的元组组成。除操作是同时从行和列角度进行运算除操作是同时从行和列角度进行运算RS第25页,共34页,编辑于2022年,星期一ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1RS第26页,共34页,编辑于2022年,星期一在关系在关系R中,中,A可以取四个值可以取四个值a1,a2,a3,a4l a1的象集为的象集为(b1,c2),(b2,c3),(b2,c1)la2的象集为的象集为(b3,c7),(b2,c3)la3的象集为的象
27、集为(b4,c6)la4的象集为的象集为(b6,c6)S在在(B,C)上的投影为上的投影为 (b1,c2),(b2,c1),(b2,c3)只有只有a1的象集包含了的象集包含了S在在(B,C)属性组上的投影属性组上的投影所以 RS=a1 第27页,共34页,编辑于2022年,星期一【例【例3-5】给出选课、选修课和必修课】给出选课、选修课和必修课3个关系,它们的关系模式为:个关系,它们的关系模式为:选课选课(学号,课号,成绩学号,课号,成绩);选修课;选修课(课号,课名课号,课名);必修课;必修课(课号,课名课号,课名).第28页,共34页,编辑于2022年,星期一注注:表表中中,选选课课表表左
28、左边边大大括括号号和和数数码码为为按按“选选课课必必修修课课”运运算算对对选选课表的元组进行分组及编码的结果;选课表右边大括号和数码课表的元组进行分组及编码的结果;选课表右边大括号和数码为按为按 学号,课号学号,课号(选课)(选课)必修课必修课第29页,共34页,编辑于2022年,星期一学生选课库的关系模式为:学生选课库的关系模式为:学生(学号,姓名,性别,年龄,所在系);学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);课程(课程号,课程名,先行课);选课(学号,课程号,成绩)选课(学号,课程号,成绩).【例【例3-6】求选修了课程号为】求选修了课程号为“C2”课程的学
29、生学号。课程的学生学号。【例【例3-7】求选修了课程号为】求选修了课程号为“C2”课的学生学号和姓名。课的学生学号和姓名。【例【例3-8】求没有选修课程号为】求没有选修课程号为“C2”课程的学生学号。课程的学生学号。3.2.3 3.2.3 用关系代数表示检索的例子用关系代数表示检索的例子用关系代数表示检索的例子用关系代数表示检索的例子学号(学号(课程号课程号=C2(选课)(选课)学号,姓名(学号,姓名(课程号课程号=C2(选课学生)(选课学生)学号(学生)学号(学生)-学号(学号(课程号课程号=C2(选课)(选课)本题不能写为:本题不能写为:学号(学号(课程号课程号 C2(选课)(选课)第30
30、页,共34页,编辑于2022年,星期一【例【例3-93-9】求既选修】求既选修“C2C2”课程,又选修课程,又选修“C3C3”课程的学生学号。课程的学生学号。【例【例3-103-10】求选修课程号为】求选修课程号为“C2C2”或或“C3C3”课程的学生学号。课程的学生学号。【例【例3-11】求选修了全部课程的学生学号。】求选修了全部课程的学生学号。【例例3-12】一一个个学学号号为为“98002”的的学学生生所所学学过过的的所所有有课课程程可可能能也也被被其其他他学学生生选选修修,求求这些学生的学号和姓名。这些学生的学号和姓名。学号(学号(课程号课程号=C2 选课)选课)学号(学号(课程号课程
31、号=C3(选课)(选课)该题不能写为:该题不能写为:学号(学号(课程号课程号=C2 课程号课程号=C3(选课)(选课)学号(学号(课程号课程号=C2(选课)(选课)学号(学号(课程号课程号=C3(选课)(选课)或或 学号(学号(课程号课程号=C2 课程号课程号=C3(选课)(选课)(学号,课程号学号,课程号 选课选课)课程)课程)学号,姓名(学号,姓名(学号,课程号(选课)学号,课程号(选课)课程号(课程号(学号学号=98002(选课)(学生)(选课)(学生)第31页,共34页,编辑于2022年,星期一 E-RE-R图图 1 1、设有商店和顾客两个实体型,、设有商店和顾客两个实体型,“商店商店
32、”有属性商店编号、商店名、地址、电话有属性商店编号、商店名、地址、电话;“顾客顾客”有属性顾客编号、姓名、地址、年龄、性别。有属性顾客编号、姓名、地址、年龄、性别。假设假设:一个商店有多个顾客购物,一个商店有多个顾客购物,一个顾客可以到多个商店购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。客在每个商店里每天最多消费一次。试画出试画出E-RE-R图,并注明属性和联系类型。图,并注明属性和联系类型。习题习题第32页,共34页,编辑于2022年,星期一2 2、某医院病房计算
33、机管理中需要如下信息:、某医院病房计算机管理中需要如下信息:科室:科名,科地址,科电话科室:科名,科地址,科电话病房:病房号,床位数病房:病房号,床位数医生:姓名,职称,年龄,工作证号医生:姓名,职称,年龄,工作证号病人:病历号,姓名,性别,病人:病历号,姓名,性别,其其中中,一一个个科科室室有有多多个个病病房房、多多个个医医生生,一一个个病病房房只只能能属属于于一一个个科科室室,一一个个医医生生只只属属于于一一个个科科室室,但但可可负负责责多多个个病病人人的的诊诊治治,一一个个病病人人的的主主管管医医生生只只有有一一个个,一一个个病病房房可可以以住住多多个个病病人。人。试设计该计算机管理系统的试设计该计算机管理系统的E-RE-R图。图。第33页,共34页,编辑于2022年,星期一二二.选择题选择题 3.设设关关系系R(A,B,C)和和S(B,C,D),下下列列各各关关系系代代数数表表达达式式不不成成立立的是(的是()B)C)A)第34页,共34页,编辑于2022年,星期一