11.传统的集合运算传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1.并(Union)关系R与关系S的并由属于R或属于S的元组组成。其结果关系仍为n目关系。记作:R∪S={t|t∈R∨t∈S}RS2ABC367257723443RABC345723SABC367257723443345R∪S32.差(Difference)关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:R-S={t|t∈R∧tS}RS4ABC367257723443RABC345723SABC367257443R-SABC367S-R5⒊交(IntersectionReferentialintegrity)关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:R∩S={t|t∈R∧t∈S}交运算可以通过差运算来重写:R∩S=R-(R-S)RS6ABC367257723443RABC345723SABC723R∩S7⒋广义笛卡尔积(Extendedcartesianproduct)两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。记作:RS={t|t=﹤tr,ts﹥∧trRtsS}8AB12RCD10102010EaabbSAB11112222CD1019201010102010EaabbaabbRxS92.专门的关系运算专门的关系运算包括选择、投影、连接、除等。几个记号:1.设关系模式为R(A1,A2,...,An)。它的一个关系设为R。t∈R表示t是R的一个元组。t[Ai]则表示元组t中相应于属性Ai的一个分量。2.若A={Ai1,Ai2,...,Aik},其中Ai1,Ai2,...,Aik是A1,A2,...,An中的一部分,则A称为属性列或域列。フA则表示{A1,A2,...,An}中去掉{Ai1,Ai2,...,Aik}后剩余的属性组。t[A]=(t[Ai1],t[Ai2],...,t[Aik])表示元组t在属性列A上诸分量的集合。103.R为n目关系,S为m目关系。trR,tsS,trts称为元组的连接(Concatenation)。它是一个(n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。⒋给定一个关系R(X,Z),X和Z为属性组。我们定义,当t[X]=x时,x在R中的象集(ImagesSet)为:Zx={t[Z]|t∈R,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合。XZ张军同学所选修的全部课程x=张军Zx姓名课程张军物理王红数学张军数学课程数学物理11更名运算(了解)定义给一个关系表达式赋予名字x(E)返回表达式E的结果,并把名字x赋给Ex(A1,A2,,An)(E)返回表达式E的结果,并把名字x赋给E,同时将各属性更名为A1,A2,,An关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助121.选择(Selection)选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组,记作:σF(R)={t|t∈R∧F(t)=‘真’}其中F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。选择是从行的角度进行的运算。13ABC367257723443RA5(R)ABC367257443A5C=7(R)ABC36725714例1查询信息系(IS系)全体学生σSdept=‘IS’(Student)或σ5='IS'(Student)例2查询年龄小于20岁的元组σSage20(Student)或σ420(Student)补充:查询年龄不小于20岁的男生AGE≥20∧SEX=‘男’(S)152.投影(Projection)关系R上的投影是从R中选择出若干属性列组成新的关系。记作:ΠA(R)={t[A]|t∈R}其中A为R中的属性列。投影操作是从列的角度进行的运算。注意:投影结果中要去掉相同的行cbcfedcbaCBABCbcefRB,C(R)16例3查询学生关系Student在学生姓名和所在系两个属性上的投影ΠSname,Sdept(Student)或Π2,5(Student)例4查询学生关系Student中都有哪些系,即查询学生关系Student在所在系属性上的投影ΠSdept(Student)补充:Sname,Sage(S)Cno(Sno=95001(SC))给出所有学生的姓名和年龄找001号学生所选修的课程号17广义投影(了解)定义在投影列表中使用算术表达式来对投影进行扩展F1,F2,…,Fn(E)F1,F2,…,Fn是算术表达式示例求教工应缴纳的所得税P#,SAL*5/100(PROF)183.连接(Join)连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。RS={trts|trR∧tsS∧tr[A]θts[B]}AθBRS=r[A]S[B](R×S)AB19连接运算中有两种最为重要也最为常用的连接:一种是等值连接(equi-join);另一种是自然连接(Naturaljoin)θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:RS={trts|trR∧tsS∧tr[A]=ts[B]}A=B20987654321CBADE3162ABCDE123311236245662RSBDRS21自然连接(Naturaljoin)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运算。当R与S无相同属性时,RS=R×SRS={trts|trR∧tsS∧tr[B]=ts[B]}22AB12412CDaababrB13123DaaabbEs11112aaaabABCDErs23987654321CBACD3162ABCD12314562RSRS244.除(Division)给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:其中,Yx为x在R中的象集,x=tr[X]除操作是同时从行和列的角度进行运算。R÷S={tr[X]|trR∧ΠY(S)Yx}RS=X(R)X(X(R)Y(S)R)25ABCDabcdabefabdebcefedcdedefCDcdefABabedABabbcedABCDabcdabefbccdbcefedcdedefAB(R)AB(R)CD(S)AB(R)CD(S)-RABCDbccdRS=ABabbcedABbc-=RS26例6设关系R,S分别为图2-9中的(a)和(b),求R÷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,c3),(b2,c1)}显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,所以R÷S={a1}27课程数学物理=姓名课程成绩张军物理93王红数学86张军数学93王红物理92课程数学物理姓名课程张军物理王红数学张军数学王红物理姓名张军王红=姓名成绩张军93选修了全部课程并且成绩都相同的学生选修了全部课程的学生28习题1.求选修了1号或2号课程的学生号∏Sno(Cno=1∨Cno=2(SC))∏Sno(Cno=1(SC))∪∏Sno(Cno=2(SC))方案1:方案2:292.求选修了1号而没有选2号课程的学生号∏Sno(Cno=1(SC))-∏Sno(Cno=2(SC))303.求同时选修了1号和2号课程的学生号∏Sno(Cno=1Cno=2(SC))∏Sno(Cno=1(SC))∩∏Sno(Cno=2(SC))×√∏Sno,Cno(SC)Cno=1Cno=2(C)∏Sno(SCCno=1Cno=2(C))×√314.求未选修1号课程的学生号方案1:∏Sno(S)-∏Sno(Cno=1(SC))方案2:∏Sno(Cno≠1(SC))哪一个正确?SnoCnoGs1c190s2c195s1c296SnoSNAGEs1……s2……s3……√325.求仅选修了1号课程的学生号选修1号课程的学生-仅选1号课程之外的学生∏S#(C#=1(SC))-∏S#(SC-C#=1(SC))∏S#(SC)-∏S#(C#1(SC))所有选课的学生-仅选1号课程之外的学生33S#C#SCOREP01C0196P02C0190P03C0288P01C0392S#C#SCOREP01C0196P02C0190S#C#SCOREP03C0288P01C0392S#P01P02S#P01P03S#P0234外连接(了解内容)外连接为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接外连接=自然连接+失配的元组外连接的形式:左外连接、右外连接、全外连接左外连接=自然连接+左侧表中失配的元组右外连接=自然连接+右侧表中失配的元组全外连接=自然连接+两侧表中失配的元组35外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#所有老师的信息P03孙立600nullnull36外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#所有课程的信息nullnullnullC03化学37外连接500李三P04600700800SAL孙立P03钱广P02赵明P01PNP#化学C03数学C02物理C01CNC#P04C02P02C02P01C01P#C#数学C02500李三P04数学C02700钱广P02物理C01800赵明P01CNC#SALPNP#所有老师和课程的信息P03孙立600nullnullnullnullnullC03化学38半连接FRSRSF=A()A是R中所有属性的集合39赋值运算(了解)定义为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量