
数据库设计基础--关系运算.ppt
43页关系代数关系代数v 概述概述v 传统的集合运算传统的集合运算v 专门的关系运算专门的关系运算An Introduction to Database System集合运算符∪-∩×并差交笛卡尔积比较运算符>≥<≤= <> 大于大于等于小于小于等于等于不等于运算符含义运算符含义关系代数运算符关系代数运算符 An Introduction to Database System专门的关系运算符σπ ÷ 选择投影连接除逻辑运算符∧∨ 非与或运算符含义运算符含义关系代数运算符(续)关系代数运算符(续) An Introduction to Database System1. 并(并(Union))vR和S§具有相同的目n(即两个关系都有n个属性)§相应的属性取自同一个域vR∪S §仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t R∨t S }An Introduction to Database System并并(续续)An Introduction to Database System2. 差(差(Difference))vR和S§具有相同的目n§相应的属性取自同一个域vR - S §仍为n目关系,由属于R而不属于S的所有元组组成 R -S = { t|tR∧tS }An Introduction to Database System差差(续续)An Introduction to Database System3. 交(交(Intersection))vR和S§具有相同的目n§相应的属性取自同一个域vR∩S§仍为n目关系,由既属于R又属于S的元组组成 R∩S = { t|t R∧t S } R∩S = R –(R-S)An Introduction to Database System交交 (续续)An Introduction to Database System4. 笛卡尔积(笛卡尔积(Cartesian Product))v严格地讲应该是广义的笛卡尔积(Extended Cartesian Product) vR: n目关系,k1个元组vS: m目关系,k2个元组vR×S §列:(n+m)列元组的集合•元组的前n列是关系R的一个元组•后m列是关系S的一个元组§行:k1×k2个元组•R×S = {tr ts |tr R ∧ tsS }An Introduction to Database System笛卡尔积笛卡尔积 (续续)An Introduction to Database System专门的关系运算专门的关系运算v选择v投影v连接v除An Introduction to Database System专门的关系运算专门的关系运算(续续)(a) Student学生-课程数据库: 学生关系Student、课程关系Course和选修关系SC学号学号Sno姓名姓名Sname性别性别Ssex年龄年龄Sage所在系所在系Sdept200215121李勇李勇男男20CS200215122刘晨刘晨女女19IS200215123王敏王敏女女18MA200215125张立张立男男19ISAn Introduction to Database System专门的关系运算专门的关系运算(续续)课程号课程号Cno课程名课程名Cname先行课先行课Cpno学分学分Ccredit1数据库数据库542数学数学23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理27PASCAL语言语言64Course(b)An Introduction to Database System专门的关系运算专门的关系运算(续续) (c)SC学号学号Sno课程号课程号Cno成绩成绩Grade200215121192200215121285200215121388200215122290200215122380An Introduction to Database System1. 选择(选择(Selection)) v1) 选择又称为限制(Restriction)v2) 选择运算符的含义§在关系R中选择满足给定条件的诸元组 σF(R) = {t|tR∧F(t)= '真'}§F:选择条件,是一个逻辑表达式,基本形式为: X1θY1An Introduction to Database System选择选择((续)续)v3) 选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算σAn Introduction to Database System选择(续)选择(续)[例1] 查询信息系(IS系)全体学生 σSdept = 'IS' (Student)或 σ5 ='IS' (Student) 结果: SnoSnameSsexSageSdept200215122刘晨女19IS200215125张立男19ISAn Introduction to Database System选择(续)选择(续)[例2] 查询年龄小于20岁的学生 σSage < 20(Student) 或 σ4 < 20(Student)结果: SnoSnameSsexSageSdept200215122刘晨女19IS200215123王敏女18MA200215125张立男19ISAn Introduction to Database System2. 投影(投影(Projection)) v1)投影运算符的含义§从R中选择出若干属性列组成新的关系 πA(R) = { t[A] | t R }A:R中的属性列 An Introduction to Database System2. 投影(投影(Projection)) v2)投影操作主要是从列的角度进行运算§但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)πAn Introduction to Database System投影投影((续)续)v[例3] 查询学生的姓名和所在系即求Student关系上学生姓名和所在系两个属性上的投影 πSname,Sdept(Student)或 π2,5(Student)结果:An Introduction to Database System投影投影((续)续)SnameSdept李勇CS刘晨IS王敏MA张立ISAn Introduction to Database System投影投影((续)续)[例4] 查询学生关系Student中都有哪些系 πSdept(Student)结果:SdeptCSISMAAn Introduction to Database System3. 连接(连接(Join)) v1)连接也称为θ连接v2)连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S = { | tr R∧ts S∧tr[A]θts[B] }ØA和B:分别为R和S上度数相等且可比的属性组Øθ:比较运算符 §连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组 AθBtr tsAn Introduction to Database System 连接连接(续续) v3)两类常用连接运算§等值连接(equijoin) Ø什么是等值连接θ为“=”的连接运算称为等值连接 Ø等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = { | tr R∧ts S∧tr[A] = ts[B] } A=Btr tsAn Introduction to Database System 连接连接(续续) §自然连接(Natural join) •自然连接是一种特殊的等值连接Ø两个关系中进行比较的分量必须是相同的属性组Ø在结果中把重复的属性列去掉•自然连接的含义R和S具有相同的属性组B R S = { | tr R∧ts S∧tr[B] = ts[B] } tr tsAn Introduction to Database System连接连接(续续)v4)一般的连接操作是从行的角度进行运算。
自然连接还需要取消重复列,所以是同时从行和列的角度进行运算 AθBRSAn Introduction to Database System连接连接(续续)v[例5]关系R和关系S 如下所示:An Introduction to Database System连接连接(续续)一般连接 R S的结果如下: C<EAn Introduction to Database System连接连接(续续) 等值连接 R S 的结果如下:R.B=S.B An Introduction to Database System连接连接(续续) 自然连接 R S的结果如下: An Introduction to Database System4. 除(除(Division)) 给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集R与S的除运算得到一个新的关系P(X)P(X),P是R R中满足下列条件的元组在中满足下列条件的元组在 X 属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作: R÷S = {tr [X] | tr R∧πY (S) Yx } Yx:x在R中的象集,x = tr[X]An Introduction to Database System除除(续续)v2)除操作是同时从行和列角度进行运算 ÷RSAn Introduction to Database System除除(续续)[例6]设关系R、S分别为下图的(a)和(b),R÷S的结果为图(c) An Introduction to Database System分析分析v在关系R中,A可以取四个值{a1,a2,a3,a4} a1的象集为 {(b1,c2),(b2,c3),(b2,c1)} a2的象集为 {(b3,c7),(b2,c3)} a3的象集为 {(b4,c6)} a4的象集为 {(b6,c6)}vS在(B,C)上的投影为 {(b1,c2),(b2,c1),(b2,c3) }v只有a1的象集包含了S在(B,C)属性组上的投影 所以 R÷S ={a1} An Introduction to Database System象集Zx 给定一个关系R(X,Z),X和Z为属性组。
当t[X]=x时,x在R中的象集象集(Images Set)为: Zx={t[Z]|t R,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z上分量的集合 An Introduction to Database Systemvx1在R中的象集 Zx1 ={Z1,Z2,Z3},vx2在R中的象集 Zx2 ={Z2,Z3},vx3在R中的象集 Zx3={Z1,Z3}象集举例 An Introduction to Database System5.综合举例.综合举例 以学生以学生-课程数据库为例课程数据库为例[例7] 查询至少选修1号课程和3号课程的学生号码 首先建立一个临时关系K: 然后求:πSno,Cno(SC)÷K Cno 1 3An Introduction to Database System综合举例综合举例(续续)v例例 7续续 πSno,Cno(SC)200215121象集象集{1,,2,,3}200215122象集象集{2,,3} K={1,,3} 于是:πSno,Cno(SC)÷K={200215121}SnoCno20021512112002151212200215121320021512222002151223An Introduction to Database System综合举例综合举例(续续)[例 8] 查询选修了2号课程的学生的学号。
πSno(σCno='2'(SC))={ 200215121,200215122} An Introduction to Database System综合举例综合举例(续续)[例9] 查询至少选修了一门其直接先行课为5号课程的 的学生姓名 πSname(σCpno='5'(Course SC Student))或 πSname(σCpno='5'(Course) SC πSno,Sname(Student))或 πSname (πSno (σCpno='5' (Course) SC) πSno,Sname (Student)) An Introduction to Database System综合举例综合举例(续续)[例10] 查询选修了全部课程的学生号码和姓名 πSno,Cno(SC)÷πCno(Course) πSno,Sname(Student) An Introduction to Database System。












