《数据库原理与应用教程(第3版)第3章关系数据库.ppt》由会员分享,可在线阅读,更多相关《数据库原理与应用教程(第3版)第3章关系数据库.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章关系数据库3.1 3.1 关系模型概述关系模型概述 3.2 3.2 关系数据模型的基本术语与形式化关系数据模型的基本术语与形式化 定义定义3.3 3.3 关系模型的完整性约束关系模型的完整性约束 3.4 3.4 关系代数关系代数 3.1 关系数据模型概述关系数据结构关系数据结构 关系操作关系操作 数据完整性约束数据完整性约束 3.1 3.1 关系数据结构关系数据结构关系数据模型源于数学。关系数据模型源于数学。用用二二维维表表来来组组织织数数据据,这这个个二二维维表表在在关关系系数数据库中就称为关系。据库中就称为关系。关系数据库就是表或者说是关系的集合。关系数据库就是表或者说是关系的集合。
2、关系系统要求让用户所感觉的数据库就是一关系系统要求让用户所感觉的数据库就是一张张表。张张表。在关系系统中,表是逻辑结构而不是物理结在关系系统中,表是逻辑结构而不是物理结构构。关系操作关系操作传统的关系运算:并(Union)交(Intersection)差(Difference)广义笛卡尔乘积(Extended Cartesian Product)专门的关系运算:选择(Select)投影(Project)连接(Join)除(Divide)关系模型的数据操作主要包括:查询、插入、删除和修改数主要包括:查询、插入、删除和修改数据。据。是基于集合的操作,操作对象和操作结是基于集合的操作,操作对象和操作
3、结果都是集合(或关系)。果都是集合(或关系)。是非过程化的。是非过程化的。数据完整性约束 数据完整性是指数据库中存储的数据是有数据完整性是指数据库中存储的数据是有意义的或正确的。意义的或正确的。主要包括三大类:主要包括三大类:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性关系数据模型的基本术语关系数据模型的基本术语关系关系 :关系就是二维表。并满足如下性质:关系就是二维表。并满足如下性质:关系表中的每一列都是不可再分的基本属关系表中的每一列都是不可再分的基本属性;性;表中的行、列次序并不重要。表中的行、列次序并不重要。属性属性 :表中的每一列是一个属性值集,列可:表中
4、的每一列是一个属性值集,列可以命名,称为属性名。以命名,称为属性名。值域值域:属性的取值范围:属性的取值范围 。如,性别只能是。如,性别只能是男男和和女女两个值。两个值。关系数据模型的基本术语(续)关系数据模型的基本术语(续)元组元组:表中的每一行称作是一个元组,它相:表中的每一行称作是一个元组,它相当于一个记录值。当于一个记录值。分量分量:元组中的每一个属性值称为元组的一元组中的每一个属性值称为元组的一个分量,个分量,n元关系的每个元组有元关系的每个元组有n个分量。个分量。关系模式关系模式:关系模式是关系的:关系模式是关系的“型型”或元组或元组的结构共性的描述。关系模式实际上对应关的结构共性
5、的描述。关系模式实际上对应关系表的表头。系表的表头。设关系名为设关系名为R R,属性分别为属性分别为A A1 1,A A2 2,A An n,则关系模式可以表示为:,则关系模式可以表示为:R(A1,A2,An)关系数据模型的基本术语(续)关系数据模型的基本术语(续)关系数据库关系数据库:对应于一个关系模型的所有关:对应于一个关系模型的所有关系的集合称为关系数据库。系的集合称为关系数据库。候选码候选码:能够惟一标识关系中的一个元组的能够惟一标识关系中的一个元组的一个属性或最小属性组。一个属性或最小属性组。主码主码:指定候选码中的一个作为主码。:指定候选码中的一个作为主码。关系数据模型的基本术语(
6、续)关系数据模型的基本术语(续)主属性主属性:包含在任一候选码中的属性称为是:包含在任一候选码中的属性称为是主属性。主属性。非主属性非主属性:不包含在任一候选码中的属性称:不包含在任一候选码中的属性称为是非主属性。为是非主属性。外码外码:如果某个属性不一定是所在关系的码,:如果某个属性不一定是所在关系的码,但是其他关系的码,则称该属性为外码。但是其他关系的码,则称该属性为外码。关系数据结构及其形式化定义关系数据结构及其形式化定义1关系的形式化定义 笛卡尔积:笛卡尔积:设D1,D2,Dn为任意集合,定义笛卡尔积D1,D2,Dn为:D1D2 Dn(d1,d2,dn)|di Di,i1,2,n 其中
7、每一个元素(d1,d2,dn)称为一个n元组,简称元组。元组中每一个di称为是一个分量。笛卡儿乘积示例设:D1计算机专业,信息科学专业 D2张珊,李海,王宏 D3男,女则则D1D2D3笛卡尔积为:笛卡尔积为:D1D2D3(计算机软件专业,张珊,男),(计算机软件专业,张珊,女),(计算机软件专业,李海,男),(计算机软件专业,李海,女),(计算机软件专业,王宏,男),(计算机软件专业,王宏,女),(信息科学专业,张珊,男),(信息科学专业,张珊,女),(信息科学专业,李海,男),(信息科学专业,李海,女),(信息科学专业,王宏,男),(信息科学专业,王宏,女)笛卡尔积实际上就是一个二维表笛卡尔
8、积D1,D2,Dn的任意一个子集称为D1,D2,Dn上的一个n元关系。形式化的关系定义同样可以把关系看成二维表,给表的每个列取一个名字,称为属性。n元关系有n个属性,一个关系中的属性的名字必须是唯一的。属性Di的取值范围(i1,2,n)称为该属性的值域(domain)。从集合论的观点也可以将关系定义为:关系是一个有K个属性的元组的集合。2对关系的限定关系中的每个分量都必须是不可再分的最小数据项。表中列的数据类型是固定的,即每个列中的分量是同类项的数据,来自相同的值域。不同的列的数据可以取自相同的值域,每个列称为一个属性,每个属性有不同的属性名。关系表中行、列的顺序不重要。同一个关系中元组不能重
9、复。3.3 关系模型的完整性关系模型的完整性约束束3.3.1 实体完整性体完整性 3.3.2 参照完整性参照完整性3.3.3 用用户定定义的完整性的完整性 实体完整性体完整性实实体体完完整整性性是是保保证证关关系系中中的的每每个个元元组组都是可识别的和惟一的。都是可识别的和惟一的。而且表中不允许存在如下的记录:而且表中不允许存在如下的记录:无主无主码值的的记录主主码值相同的相同的记录参照完整性参照完整性参照完整性一般是指多个实体(表)之间的参照完整性一般是指多个实体(表)之间的关联关系。用于描述实体之间的联系。关联关系。用于描述实体之间的联系。一般用外码实现。一般用外码实现。外码外码:取作本表
10、(子表)属性之一的外表:取作本表(子表)属性之一的外表(父表,主表)主码。(父表,主表)主码。主码值先在主表中生成,后在子表中引用主码值先在主表中生成,后在子表中引用外码引用例1学生班属于(学号学号,姓名姓名,班号班号,)(班号班号,专业,人数,专业,人数,)外码引用例2学生课程修课(学号学号,姓名,姓名,)(课程号课程号,课程名,课程名,)(学号学号,课程号课程号,成绩成绩,)外码引用例3职工职工(职工号,姓名,性别,直接领导)参照完整性规则参照完整性规则就是定义外码与主码之间的引用规则。对于外码,一般应符合如下要求:或者值为空;或者等于其所应用的关系中的某个元组的主码值。用用户定定义的完整
11、性的完整性按应用语义,属性数据有:类型与长度限制:方便计算机操作:方便计算机操作取值范围限制:防止属性值与应用语义:防止属性值与应用语义矛盾矛盾语义许可取值范围约束例:成绩取n0.100n优、良、中、及格、不及格 3.4 关系代数关系代数关系模型源于数学,关系是由元组构成的集合,可以通过关系的运算来表达查询要求,关系代数是关系操作语言的一种传统的表示方式,它是一种抽象的查询语言。关系代数的运算可分为两大类:传统的集合运算:广义笛卡尔积运算、并、交和差运算。专门的关系运算:选择、投影、连接和除运算。关系运算符运算符运算符含义含义传统的集合运算传统的集合运算并并交交差差广义笛卡尔积广义笛卡尔积专门
12、的关系运算专门的关系运算选择选择投影投影连接连接除除关系运算符(续)运算符运算符含义含义比较运算符比较运算符大于大于小于小于=等于等于不等于不等于小于等于小于等于大于等于大于等于逻辑运算符逻辑运算符 非非与与或或3.4.1 传统的集合运算传统的集合运算是二目运算,设关系 R 和 S 均是n元关系,且相应的属性值取自同一个值域,则可以定义三种运算:并运算()交运算()差运算()1并运算关系R与关系S的并记为:R St|t R t S 其结果仍是n目关系,由属于R或属于S的元组组成。顾客号顾客号姓名姓名性别性别年龄年龄S01张宏男45S02李丽女34S03王敏女28顾客号顾客号姓名姓名性别性别年龄
13、年龄S02李丽女34S04钱景男50S06王平女24顾客号顾客号姓名姓名性别性别年龄年龄S01张宏男45S02李丽女34S03王敏女28S04钱景男50S06王平女242交运算关系关系R与关系与关系S的交记为:的交记为:RSt|t R t S 其结果仍是其结果仍是n目关系,由属于目关系,由属于R并且也属于并且也属于S的元组组成。的元组组成。顾客号顾客号姓名姓名性别性别年龄年龄S01张宏男45S02李丽女34S03王敏女28顾客号顾客号姓名姓名性别性别年龄年龄S02李丽女34S04钱景男50S06王平女24顾客号顾客号姓名姓名性别性别年龄年龄S02李丽女343差运算关系关系R与关系与关系S的差记
14、为:的差记为:RSt|t R t S 其结果仍是其结果仍是n目关系,由属于目关系,由属于R并且也属于并且也属于S的元组组成。的元组组成。顾客号顾客号姓名姓名性别性别年龄年龄S01张宏男45S02李丽女34S03王敏女28顾客号顾客号姓名姓名性别性别年龄年龄S02李丽女34S04钱景男50S06王平女24顾客号顾客号姓名姓名性别性别年龄年龄S01张宏男45S03王敏女284广义笛卡尔积两个分别为两个分别为n n目和目和m m目的关系目的关系 R R 和关系和关系 S S 的广义的广义笛卡尔积是一个(笛卡尔积是一个(n nm m)列的元组的集合。)列的元组的集合。元组的前元组的前n n个列是关系个
15、列是关系R R的一个元组,后的一个元组,后m m个列是关个列是关系系S S的一个元组。的一个元组。若若R R有有K K1 1个元组,个元组,S S有有K K2 2个元组,则关系个元组,则关系R R和关系和关系S S的的广义笛卡尔积有广义笛卡尔积有K K1 1KK2 2个元组,记做:个元组,记做:RSRStrts|tr trts|tr R ts R ts S S trtstrts表示由两个元组表示由两个元组trtr和和tsts前后有序连接而成的前后有序连接而成的一个元组。一个元组。广义笛卡尔积示例A AB Ba1a1b1b1a2a2b2b2C CD DE Ec1c1d1d1e1e1c2c2d2d
16、2e2e2c3c3d3d3e3e3A AB BC CD DE Ea1a1b1b1c1c1d1d1e1e1a1a1b1b1c2c2d2d2e2e2a1a1b1b1c3c3d3d3e3e3a2a2b2b2c1c1d1d1e1e1a2a2b2b2c2c2d2d2e2e2a2a2b2b2c3c3d3d3e3e33.4.2 专门的关系运算 专门的关系运算包括:投影、选择、连接和除等操作。选择投影连接 除二元二元一元一元学生信息管理系统snosnosnamesnamessexssexsagesagesdeptsdept95121019512101李勇李勇男男1919计算机系计算机系951210295121
17、02刘晨刘晨男男2020计算机系计算机系95120139512013王敏王敏女女2020计算机系计算机系95211019521101张立张立男男2222信息系信息系95211029521102吴宾吴宾女女2121信息系信息系95211039521103张海张海男男2020信息系信息系95311019531101钱小平钱小平女女1818数学系数学系95311029531102王大力王大力男男1919数学系数学系Studentcnocnocnamecnamecreditcreditsemestersemesterc01c01计算机文化学计算机文化学3 31 1c02c02VB VB 2 22 2c
18、03c03计算机网络计算机网络4 46 6c04c04数据库基础数据库基础6 66 6c05c05高等数学高等数学8 82 2c06c06数据结构数据结构5 54 4Coursesnosnocnocnogradegrade95121019512101c01c01909095121019512101c02c02868695121029512102c02c02787895121029512102c04c04666695211029521102c01c01828295211029521102c02c02757595211029521102c04c04929295211029521102c05c055
19、050SC1选择(Selection)F F(R)(R)r|rR F(t)r|rR F(t)真真 其中:其中:是选择运算符,是选择运算符,R R是关系名,是关系名,r r是元组,是元组,F F是逻辑表是逻辑表达式,取逻辑达式,取逻辑“真真”值或值或“假假”值。值。例,选择系为计算机系的学生信息:例,选择系为计算机系的学生信息:SdeptSdept计算机系计算机系(StudentStudent)snosnosnamesnamessexssexsagesagesdeptsdept95121019512101李勇李勇男男1919计算机系计算机系95121029512102刘晨刘晨男男2020计算机系
20、计算机系95120139512013王敏王敏女女2020计算机系计算机系2投影(Projection)A A(R R)r.A|rR r.A|rR 其中:其中:是投影运算符,是投影运算符,R R是关系名,是关系名,A A是被投影的属性或属性组。是被投影的属性或属性组。r.Ar.A表示表示r r这个元组中相应于属性(集)这个元组中相应于属性(集)A A的分量,的分量,也可以表示为也可以表示为rArA。2投影(Projection)例如,选择例如,选择snamesname,sdeptsdept两个列构成新关系:两个列构成新关系:sname,sdeptsname,sdept(StudentStuden
21、t)snamesnamesdeptsdept李勇李勇计算机系计算机系刘晨刘晨计算机系计算机系王敏王敏计算机系计算机系张立张立信息系信息系吴宾吴宾信息系信息系张海张海信息系信息系钱小平钱小平数学系数学系王大力王大力数学系数学系3连接其中:其中:A A和和B B分别是关系分别是关系R R和和S S上可比的属性组,上可比的属性组,是比较运算符,是比较运算符,连接运算从连接运算从R R和和S S的广义笛卡尔积的广义笛卡尔积RSRS中选择中选择(R R关系)在关系)在A A属性组上的值与(属性组上的值与(S S关系)在关系)在B B属属性组上值满足比较运算符性组上值满足比较运算符的元组。的元组。ABRS
22、 trts|trRtsStrAtsB等值连接当当为为“”时的连接为等值连接,时的连接为等值连接,是从关系是从关系R R与关系与关系S S的广义笛卡尔积中选取的广义笛卡尔积中选取A A,B B属性值相等的那些元组。属性值相等的那些元组。A=BRS trts|trRtsStrAtsBStudent SCStudent.sno=SC.snosnosnosnamesnamessexssexsagesagesdeptsdeptsnosnocnocnogradegrade95121019512101李勇李勇男男1919计算机系计算机系95121019512101c01c019090951210195121
23、01李勇李勇男男1919计算机系计算机系95121019512101c02c02868695121029512102刘晨刘晨男男2020计算机系计算机系95121029512102c02c02787895121029512102刘晨刘晨男男2020计算机系计算机系95121029512102c04c04666695211029521102吴宾吴宾女女2121信息系信息系95211029521102c01c01828295211029521102吴宾吴宾女女2121信息系信息系95211029521102c02c02757595211029521102吴宾吴宾女女2121信息系信息系952110
24、29521102c04c04929295211029521102吴宾吴宾女女2121信息系信息系95211029521102c05c055050自然连接自然连接去掉结果中的重复列。自然连接去掉结果中的重复列。自然连接与等值连接的差别为:自然连接与等值连接的差别为:自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;自然连接要求把重复的属性名去掉,等值连接却不这样做。RS trts|trRtsStrAtsBStudent SCsnosnosnamesnamessexssexsagesagesdeptsdeptcnocnogradegrade95121019512101李勇李勇男男1919
25、计算机系计算机系c01c01909095121019512101李勇李勇男男1919计算机系计算机系c02c02868695121029512102刘晨刘晨男男2020计算机系计算机系c02c02787895121029512102刘晨刘晨男男2020计算机系计算机系c04c04666695211029521102吴宾吴宾女女2121信息系信息系c01c01828295211029521102吴宾吴宾女女2121信息系信息系c02c02757595211029521102吴宾吴宾女女2121信息系信息系c04c04929295211029521102吴宾吴宾女女2121信息系信息系c05c05
26、50504除(Division)除法的一般形式除法的一般形式 设有关系设有关系R(X,Y)R(X,Y)和和S(Y,Z)S(Y,Z),其中,其中X X、Y Y、Z Z为关系的属性组,则:为关系的属性组,则:R(X,Y)S(Y,Z)R(X,Y)S(Y,Z)R(X,Y)R(X,Y)Y Y(S)(S)除(续)象集象集:给定一个关系:给定一个关系R R(X X,Y Y),),X X和和Y Y为属为属性组。定义,当性组。定义,当tXtXx x时,时,x x在在R R中的象集中的象集为:为:Y Yx x=tY|t=tY|tR tX=x R tX=x 上式中:上式中:tY tY 和和 tXtX分别表示分别表示
27、R R中的中的元组元组 t t 在属性组在属性组 Y Y 和和 X X 上的分量的集上的分量的集合。合。R S RSR S RS (a)(b)(c)补充例题ABCDa1b2c3d5a1b2c4d6a2b4c1d3a3b5c2d8CDEc3d5e3c4d6e4ABa1b2其中,元组在其中,元组在X X上各个分量值的象集分别为:上各个分量值的象集分别为:(a1,b2)(a1,b2)的象集为的象集为(c3,d5),(c4,d6)(c3,d5),(c4,d6)(a2,b4)(a2,b4)的象集为的象集为(c1,d3)(c1,d3)(a3,b5)(a3,b5)的象集为的象集为(c2,d8)(c2,d8)
28、S S在在Y Y上的投影为上的投影为 (c3,d5),(c4,d6)(c3,d5),(c4,d6)5除(续)除法的一般形式:除法的一般形式:设有关系设有关系 R(XR(X,Y)Y)和和 S(YS(Y,Z)Z),其中,其中X X、Y Y、Z Z为关系的属性组,则:为关系的属性组,则:RSRSt tr rX|tX|tr r R R Y Y(S)(S)包含于包含于 Yx 在关系在关系R中,中,A属性可以取属性可以取a1,a2,a3,a4。其中。其中a1的象集的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集的象集为(b3,c7),(b2,c3)a3的象集的象集为(b4,c6)a4的象集
29、的象集为(b6,c6)ABCa1a2a3a1a4a2a1b1b3b4b2b6b2b2c2c7c6c3c6c3c1BCDb1b2b2c2c1c3d1d1d2关关系系R关关系系S R S RSR S RS (a)(b)(c)补充例题ABCDa1b2c3d5a1b2c4d6a2b4c1d3a3b5c2d8CDEc3d5e3c4d6e4ABa1b2已知关系已知关系R R和和S,S,如图如图(a)(b)(a)(b)所示所示,则则RSRS如图如图(c)(c)所示。所示。本题中本题中X X=A,BA,B=(a1,b2),(a2,b4),(a3,b5)(a1,b2),(a2,b4),(a3,b5),Y=Y=C
30、,D C,D,Z=,Z=E E 其中,元组在其中,元组在X X上各个分量值的象集分别为:上各个分量值的象集分别为:(a1,b2)(a1,b2)的象集为的象集为(c3,d5),(c4,d6)(c3,d5),(c4,d6)(a2,b4)(a2,b4)的象集为的象集为(c1,d3)(c1,d3)(a3,b5)(a3,b5)的象集为的象集为(c2,d8)(c2,d8)S S在在Y Y上的投影为上的投影为 (c3,d5),(c4,d6)(c3,d5),(c4,d6)显然只有显然只有(a1,b2)(a1,b2)的象集包含的象集包含S S在在Y Y上的投影,所以上的投影,所以 RS=(a1,b2)RS=(a
31、1,b2)示例l查询修查询修c02c02号课程的学生的学号和成绩。号课程的学生的学号和成绩。l查询计算机系修查询计算机系修c02c02号课程的学生的姓名和成绩。号课程的学生的姓名和成绩。l查询修了第查询修了第2 2学期课程的学生的姓名和所在系。学期课程的学生的姓名和所在系。关系除法运算分下面4步进行:1)将被除关系的属性分将被除关系的属性分为象集属性和象集属性和结果属性:果属性:与除关系相同的属性属于象集属性,不相同的与除关系相同的属性属于象集属性,不相同的属性属于属性属于结果属性。果属性。2)在除关系中,在除关系中,对与被除关系相同的属性(象与被除关系相同的属性(象集属性)集属性)进行投影,
32、得到除目行投影,得到除目标数据集。数据集。3)将被除关系分将被除关系分组,原,原则是,是,结果属性果属性值一一样的元的元组分分为一一组。4)逐一考察每个逐一考察每个组,如果它的象集属性,如果它的象集属性值中包中包括除目括除目标数据集,数据集,则对应的的结果属性果属性值应属于属于该除法运算除法运算结果集。果集。4步进行【例4-5】给出选课、选修课和必修课3个关系,它们的关系模式为:选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名).学号学号课号号成成绩 课号号课名名S1S1C1C1A AC2C2计算机算机图形形学学S1S1C2C2B B必修必修课S1S1C3C3B BS2S2C
33、1C1A A课号号课名名S2S2C3C3B BC1C1数数据据结构构S3S3C1C1B BC3C3操作系操作系统S3S3C3C3B B选课选修修课S4S4C1C1A AS4S4C2C2A A学号学号成成绩S5S5C2C2B BS1S1B BS5S5C3C3B BS4S4A AS5S5C1C1A AS5S5B B学号学号成成绩 学号学号S3S3B BS1S1 S2S2S3S3S5S5选课必修必修课 学号学号,课号号(选课)必修必修课 除法解析例题除法解析例题在关系在关系R中,中,A属性可以取属性可以取a1,a2,a3,a4。其中。其中a1的象集的象集为(b1,c2),(b2,c3),(b2,c1
34、)a2的象集的象集为(b3,c7),(b2,c3)a3的象集的象集为(b4,c6)a4的象集的象集为(b6,c6)S在在(B,C)上的投影上的投影为:(b1,c2),(b2,c3),(b2,c1)显然,只有然,只有a1的象集的象集(B,C)a1包包含了含了S在在(B,C)属性属性组上的投影,上的投影,所以所以RS=a1 ABCa1a2a3a1a4a2a1b1b3b4b2b6b2b2c2c7c6c3c6c3c1BCDb1b2b2c2c1c3d1d1d2关关系系R关关系系SAa1RS除法解析例题除法解析例题在关系在关系R中,中,A属性可以取属性可以取a1,a2,a3,a4。其中。其中a1的象集的象
35、集为(b1,c2),(b2,c3),(b2,c1)a2的象集的象集为(b3,c7),(b2,c3)a3的象集的象集为(b4,c6)a4的象集的象集为(b6,c6)S在在(B,C)上的投影上的投影为:(b1,c2),(b2,c3),(b2,c1)显然,只有然,只有a1的象集的象集(B,C)a1包包含了含了S在在(B,C)属性属性组上的投影,上的投影,所以所以RS=a1 ABCa1a2a3a1a4a2a1b1b3b4b2b6b2b2c2c7c6c3c6c3c1BCDb1b2b2c2c1c3d1d1d2关关系系R关关系系SAa1RS4.2.3 用关系代数表示检索的例子学生学生选课库的关系模式的关系模
36、式为:学生(学号,姓名,性学生(学号,姓名,性别,年,年龄,所在系);,所在系);课程(程(课程号,程号,课程名,先行程名,先行课););选课(学号,(学号,课程号,成程号,成绩).【例4-6】求选修了课程号为“C2”课程的学生学号。学号(课程号=C2(选课)【例4-7】求选修了课程号为“C2”课的学生学号和姓名。学号,姓名(课程号=C2(选课学生)【例4-8】求没有选修课程号为“C2”课程的学生学号。学号(学生)-学号(课程号=C2(选课)本题不能写为:学号(课程号 C2(选课)用关系代数表示检索的例子【例4-9】求既选修“C2”课程,又选修“C3”课程的学生学号。学号(课程号=C2 选课)
37、学号(课程号=C3(选课)该题不能写为:学号(课程号=C2 课程号=C3(选课)【例4-10】求选修课程号为“C2”或“C3”课程的学生学号。学号(课程号=C2(选课)学号(课程号=C3(选课)或 学号(课程号=C2 课程号=C3(选课)【例4-11】求选修了全部课程的学生学号。学号,课程号(选课课程)【例4-12】一个学号为“98002”的学生所学过的所有课程可能也被其他学生选修,求这些学生的学号和姓名。学号,姓名(学号,课程号(选课)课程号(学号=98002(选课)(学生)除(续)2)除操作是同时从行和列角度进行运算3)举例例6 (p62)R RS S除(续)A AB BC Ca a1 1
38、b b1 1c c2 2a a2 2b b3 3c c7 7a a3 3b b4 4c c6 6a a1 1b b2 2c c3 3a a4 4b b6 6c c6 6a a2 2b b2 2c c3 3a a1 1b b2 2c c1 1B BC CD Db b1 1c c2 2d d1 1b b2 2c c1 1d d1 1b b2 2c c3 3d d2 2R RS SA Aa a1 1R RS S除(续)A AB BC Ca a1 1b b1 1c c2 2a a2 2b b3 3c c7 7a a3 3b b4 4c c6 6a a1 1b b2 2c c3 3a a4 4b b6
39、6c c6 6a a2 2b b2 2c c3 3a a1 1b b2 2c c1 1B BC Cb b1 1c c2 2b b2 2c c1 1b b2 2c c3 3R RS SA Aa a1 1R RS S分析:在关系在关系R中,中,A可以取四个可以取四个值a1,a2,a3,a4 a1的象集的象集为(b1,c2),(b2,c3),(b2,c1)a2的象集的象集为(b3,c7),(b2,c3)a3的象集的象集为(b4,c6)a4的象集的象集为(b6,c6)S在在(B,C)上的投影上的投影为(b1,c2),(b2,c1),(b2,c3)只有只有a1的象集包含了的象集包含了S在在(B,C)属性
40、属性组上的投影上的投影所以RS=a1 SNOSNAMECNOCNAMES1BAOC1DBS1BAOC2OSS1BAOC3DSS1BAOC4MISS2GUC1DBS2GUC2OSS3ANC2OSS4LIC2OSS4LIC4MISCNOCNAMEC2OSCNOCNAMEC2OSC4MISCNOCNAMEC1DBC2OSC4MISS1S2S3RRS 1SNOSNAMES1BAOS2GUS3ANS4LISNOSNAMES1BAOS4LISNOSNAMES1BAORS 2RS 3S1、S2、S3表示表示课程情程情况况R表示表示选修修课程程?ABCDabcdabefabhkbdefbddlcKcdckef
41、RCDcdefRSABabckS举例:学学 号号SnoSno姓姓 名名SnameSname性性 别SsexSsex年年 龄SageSage所所 在在 系系SdeptSdept9500195001李勇李勇男男2020CSCS9500295002刘刘晨晨女女1919ISIS9500395003王敏王敏女女1818MAMA9500495004张立立男男1919ISIS Student StudentCourseCourse课程程号号课程名程名先行先行课学学分分CnoCnoCnameCnameCpnoCpnoCcreditCcredit1 1数数据据库5 54 42 2数学数学 2 23 3信息系信息
42、系统1 14 44 4操作系操作系统6 63 35 5数数据据结构构7 74 46 6数数据据处理理 2 27 7PASCALPASCAL语言言6 64 4 SCSC学学 号号课 程程 号号成成 绩SnoSnoCnoCnoGradGrade e950095001 11 19292950095001 12 28585950095001 13 38888950095002 22 29090950095002 23 380805综合举例 以学生以学生-课程数据程数据库为例例(P.59)例7 查询至少选修1号课程和3号课程的学生号码首先建立一个临时关系K:然后求:Sno.Cno(SC)K Cno 1
43、3综合举例(续)例7续Sno.Cno(SC)95001象集象集1,2,395002象集象集2,3 Cno(K)=1,3 于是:Sno.Cno(SC)K=95001SnoSnoCnoCno950095001 11 1950095001 12 2950095001 13 3950095002 22 2950095002 23 3综合举例(续)例8 查询选修了2号课程的学生的学号。Sno(Cno=2(SC)95001,95002综合举例(续)例9 查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。Sname(Cpno=5(Course SC Student)或Sname(Cpno=5(Cou
44、rse)SC Sno,Sname(Student)或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student)综合举例(续)例10 查询选修了全部课程的学生号码和姓名。Sno,Cno(SC)Cno(Course)Sno,Sname(Student)l查询修查询修c02号课程的学生的学号和成绩。号课程的学生的学号和成绩。sno,grade(cno=c02(SC)l查询计算机系修查询计算机系修c02号课程的学生的姓名和成绩。号课程的学生的姓名和成绩。sname,grade(cno=c02 sdept=计算机系计算机系(SC Student)或或sname,grade(cno=c02(SC)sdept=计算机系计算机系(Student)l查询修了第查询修了第2学期课程的学生的姓名和所在系。学期课程的学生的姓名和所在系。sname,sdept(semester=2(Course)SC Student)l查询修了全部课程的学生的学号和姓名。查询修了全部课程的学生的学号和姓名。sno,sname(Student (sno,cno(SC)cno(Course)例题作作业P39 习题3,4