




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关系数据库系统是支持关系模型的数据库系统关系模型的组成关系数据结构关系操作集合关系完整性约束2.3关系操作关系操作集合①常用的关系操作②关系操作的特点③关系数据语言的分类④关系数据语言的特点①常用的关系操作关系模型中常用的关系操作的分类数据查询操作(DataQuery)选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、差(Except)、交(Intersection)、笛卡尔积等。数据更新操作(DataChange)插入(Insert)、删除(Delete)、修改(Update)基本操作:选择、投影、并、差、笛卡尔积是5种基本操作,其他操作是可以用基本操作来定义和导出的。②关系操作的特点集合操作方式,即操作的对象和结果都是集合“以集合为中心”,“一个集合,施加一个操作得到另一个集合,依次施加关系代数操作,进而得到所需结果”非关系数据模型的数据操作方式:一次一记录文件系统的数据操作方式:按文件名访问,按记录进行存取③关系数据语言的分类关系代数语言(relationalalgebra)用对关系的运算来表达查询要求典型代表:ISBL关系演算语言(relationalcalculus)用谓词来表达查询要求元组关系演算语言谓词变元的基本对象是元组变量典型代表:APLHA、QUEL域关系演算语言
谓词变元的基本对象是域变量典型代表:QBE具有关系代数和关系演算双重特点的语言典型代表:SQL(StructuredQueryLanguage)关系数据语言的分类关系数据语言的简介ISBL语言(InformationSystemBaseLanguage)
IBM公司英格兰底特律科学中心1979年研制的用在一个实验系统PRTV(PeterleeRelationalTestVehicle)上ISBL语言与关系代数非常接近,每个查询语言都近似于一个关系代数表达式QUEL语言(QueryLanguage)是美国伯克利加州大学研制的关系数据库系统INGRES的查询语言1975年投入运行,并由美国关系技术公司研制成商品推向市场QUEL语言是一种基于元组关系演算的并具有完整性的数据定义、检索、更新等功能的数据语言关系数据语言的简介(续)QBE语言(QueryByExample,按例查询)
QBE语言是一种特殊的屏幕编辑语言QBE语言是M.M.Zloof提出的,在约克镇IBM高级研究实验室为图形显示终端用户设计的一种域演算语言1978年在IBM370上实现QBE使用起来很方便,属于人机交互语言,用户可以是缺乏计算机知识和数学基础的非程序用户QBE的思想已经渗入到许多DBMS中SQL语言(StructuredQueryLanguage)SQL语言是介于关系代数和元组演算之间的一种查询语言现已成为关系数据库的标准语言④关系数据语言的特点关系语言是一种高度非过程化的语言存取路径的选择由RDBMS的优化机制来完成用户不必用循环结构就可以完成数据操作能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价概述关系代数是一种抽象的查询语言用对关系的运算来表达查询关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类关系代数运算符2.4关系代数
四类关系代数运算符集合运算符将关系看成元组的集合运算是从关系的“水平”方向即行的角度来进行专门的关系运算符不仅涉及行而且涉及列比较运算符辅助专门的关系运算符进行操作的逻辑运算符辅助专门的关系运算符进行操作的关系代数(续)
四类关系代数运算符(续)集合运算符:∪(并)、-(差)、∩(交)、×(广义笛卡尔积)专门的关系运算符:σ(选择)、∏(投影)、(连接)、÷(除)比较运算符:>(大于)、≥(大于等于)、<(小于)、≤(小于等于)、=(等于)、≠(不等于)逻辑运算符:∧(与)、∨(或)、┐(非)关系代数(续)
关系运算的分类:分为传统的集合运算和专门的关系运算传统的集合运算是二目运算,是在两个关系中进行的。但是并不是任意的两个关系都能进行这种集合运算,而是要在两个满足一定条件的关系中进行运算。那么,对关系有什么要求呢?设给定两个关系R、S,若满足:(1)具有相同的目n(即两个关系都有n个属性);(2)R中第i个属性和S中第i个属性必须来自同一个域。则说关系R、S是相容的。除笛卡尔积外,要求参与集合运算的关系必须满足上述的相容性定义。传统的集合运算1.并(Union)—基本运算R∪S
仍为n目关系,由属于R或属于S的元组组成记作:R∪S={t|t
R∨t
S}传统的集合运算(续)
关系中元组的插入2.差(Difference)—基本运算R-S
仍为n目关系,由属于R而不属于S的元组组成记作:R-S={t|t
R∧t
S}传统的集合运算(续)
关系中元组的删除3.交(Intersection)—非基本运算R∩S仍为n目关系,由既属于R又属于S的元组组成记作:R∩S={t|t
R∧t
S}交运算可以用差运算来表示
R∩S=R
-(R-S)=S
-(S-R)传统的集合运算(续)分别求出关系R与关系S的并、差、交运算。ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSABCa1b1c1a1b2c2a1b3c2a2b2c1R∪S
ABCa1b1c1R-S
ABCa1b2c2a2b2c1R∩S
4.广义笛卡尔积(ExtendedCartesianProduct)—基本运算两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1*k2个元组。记作:R×S={
|tr
R∧ts
S}广义笛卡尔积可用于两关系的连接操作。传统的集合运算(续)trts
两个关系的归并ABCa1b1c1a1b2c2a2b2c1R.AR.BR.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S
S.AS.BS.Ca1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1求出关系R与关系S的广义笛卡尔积。广义笛卡尔积实例讲解表示记号(1)
R,t
R,t[Ai]
设关系模式为R(A1,A2,…,An),它的一个关系设为R。
t
R表示t是R的一个元组;
t[Ai]则表示元组t中相应于属性Ai的一个分量。专门的关系运算表示记号(续)(2)A,t[A],A
若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,则A称为属性列或域列。
t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元组t在属性列A上诸分量的集合。
A则表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}后剩余的属性组。专门的关系运算(续)表示记号(续)(3)trtsR为n目关系,S为m目关系。
tr
R,ts
S,trts称为元组的连接或元组的串接。它是一个n+m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。
专门的关系运算(续)学号姓名年龄例:t[学号]--R中学号上的值
t[学号,姓名]--R中学号,姓名上的值
t表示记号(续)(4)象集Zx给定一个关系R(X,Z),X和Z为属性组。当t[X]=x时,x在R中的象集(ImagesSet)定义为:
Zx={t[Z]|t
R,t[X]=x}它表示R中属性组X上值为x的诸元组在Z上分量的集合。专门的关系运算(续)XZx1z1x1z2x1z3x2z2x2z3x3z1x3z3Rx1在R
中的象集Zx1={z1,z2,z3},x2在R
中的象集Zx2={z2,z3},x3在R
中的象集Zx3={z1,z3}象集举例专门的关系运算(续)像集具体求解过程:从R
中选出在X上取值为x的元组;然后再在Z上投影形成的结果集合。1.选择(Selection)—基本运算①是行上的选择,即水平方向抽取元组,产生同类关系。②选择运算符的含义在关系R中选择满足给定条件F的诸元组,记作:
σF(R)={t|t
R∧F(t)='真'}F:选择条件,由属性名(值)、比较运算符、逻辑运算符组成。专门的关系运算(续)σ【举例】设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept95001李勇男20CS95002刘晨女19IS95003王敏女18MA95004张立男19IS(a)学生关系
Student例1例2例4例3例9例10(b)课程关系Course例9例10课程号Cno课程名Cname先行课Cpno学分Ccredit1数据库542数学23信息系统144操作系统635数据结构746数据处理27PASCAL语言64
(c)选修关系SC例7例9例8例10学号Sno课程号Cno成绩Grade9500119295001285950013889500229095002380
σSdept
='IS'(Student)
或σ5='IS'(Student)SnoSnameSsexSageSdept95002刘晨女19IS95004张立男19IS[例1]查询信息系(IS系)全体学生。
σSage<20(Student)
或σ4<20(Student)SnoSnameSsexSageSdept95002刘晨女19IS95003王敏女18MA95004张立男19IS
[例2]查询年龄小于20岁的学生。2.投影(Projection)—基本运算①是列上的选择,相当于对关系进行垂直分解,产生不同类关系。②投影运算符的含义从R中选择出若干属性列组成新的关系。记作:
πA(R)={t[A]|t
R}其中A为R中的一组属性名或属性序号组,并要消除重复元组。专门的关系运算(续)ππSname,Sdept(Student)
或π2,5(Student)[例3]查询学生的姓名和所在系。SnameSdept李勇CS刘晨IS王敏MA张立IS
πSdept(Student)SdeptCSISMA[例4]查询学生关系中都有哪些系。3.连接(Join)—非基本运算①
连接也称为θ连接,涉及多个表之间的操作时使用②连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定连接条件的元组。记作:
RS={|tr
R∧ts
S∧tr[A]θts[B]}A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符
从R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组。
AθBtrts专门的关系运算(续)是笛卡尔积、选择和投影操作的组合③
两类常用连接运算等值连接(Equijoin)
θ为“=”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
RS={|tr
R∧ts
S∧tr[A]=ts[B]}A=Btrts专门的关系运算(续)自然连接(Naturaljoin)
是一种特殊的等值连接,连接条件默认为两个关系的同名属性的值相等,并且在结果中去掉同名属性。自然连接的含义R和S具有相同的属性组B,则自然连接记作:
R
S={|tr
R∧ts
S∧tr[B]=ts[B]}
trts专门的关系运算(续)
AθBRS专门的关系运算(续)④
一般的连接操作是从行的角度进行运算。但自然连接还需要去掉重复列,所以是同时从行和列的角度进行运算。
【例5】已知关系R和关系S,分别求出下列的连接运算。ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS
C<E
R
S
、
等值连接
R
S、R.B=S.B
自然连接
R
S
R
S
AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310
C<E
等值连接
R
SR.B=S.B
AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32ABCEa1b153a1b267a2b3810a2b382
自然连接
R
S
等值连接与自然连接的区别:
(1)自然连接一定是等值连接,但等值连接不一定是自然连接。因为自然连接要求相等的分量必须是公共属性,而等值连接相等的分量不一定是公共属性。(2)等值连接不把重复的属性去掉,而自然连接要把重复属性去掉。注意若R、S无公共属性,R⋈S=?专门的关系运算(续)需要引入“外连接”!外连接(Outerjoin)
在做自然连接时,如果把舍弃的元组保存在结果关系中,而在其他属性上填空值(Null),那么这种连接就叫做外连接。与自然连接的区别是保留被运算量的关系中在另一关系中找不到匹配元组的元组,其空缺的另一关系属性的值用空值NULL填充。专门的关系运算(续)外连接的分类
如果只把左边关系R中要舍弃的元组保留就叫做左外连接,即保留R中的所有元组。
记为:R*S如果只把右边关系S中要舍弃的元组保留就叫做右外连接,即保留S中的所有元组。记为:R*S全外连接:左外连接∪右外连接专门的关系运算(续)
已知关系R和关系S,分别求出关系R和关系S的外连接、左外连接及右外连接运算。ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS全外连接R**S左外连接R*S右外连接R*S
全外连接R**S
ABCEa1b153a1b267a2b3810a2b382a2b412NULLNULLb5NULL2ABCEa1b153a1b267a2b3810a2b382a2b412NULLABCEa1b153a1b267a2b3810a2b382NULLb5NULL2左外连接R*S
右外连接R*S
专门的关系运算(续)专门的关系运算(续)左外连接:查询所有老师的任课情况专门的关系运算(续)右外连接:查询所有课程的任课老师情况4.除运算(Division)—非基本运算①除运算的含义:给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:
R÷S={tr[X]|tr
R∧πY(S)
Yx}Yx:x在R中的象集,x=tr[X]把R按X的值分组,若某一组中属性组Y的值包含S在Y上投影的全部元组,则该X的值作为商关系的一个元组。专门的关系运算(续)②除操作是同时从行和列角度进行运算。÷RS专门的关系运算(续)专门的关系运算(续)
R÷S={tr[X]|tr
R∧πY(S)
Yx}
①ΠX(R)
②
Yx为x在R中的象集:
对于每个值x,x∈ΠX(R),
求:Πy
(σX=x(R))③结果为:象集Yx包含了ΠY(S)的x。RSS’除法运算的步骤1)将被除关系的属性分为象集属性和结果属性两部分:与除关系相同的属性属于象集属性,不相同的属性属于结果属性。2)在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。3)将被除关系分组,分组原则是,结果属性值一样的元组为一组,求每个结果属性值的象集。4)逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。例题(除法解析)在关系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的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以R÷S={a1}ABCa1a2a3a1a4a2a1b1b3b4b2b6b2b2c2c7c6c3c6c3c1BCDb1b2b2c2c1c3d1d1d2关系R关系SAa1R÷S结果属性象集属性除法运算的步骤设关系R(X,Y),S(Y,Z),X、Y、Z为属性集R÷S的计算过程如下:①T=ΠX(R) ②W=(T×ΠY(S))–R(计算T×S中不在R出现的元组)③V=ΠX(W)④R÷S=T–V即R÷S=ΠX(R)–ΠX((ΠX(R)×ΠY(S))–R)综合举例:以学生-课程数据库为例首先建立一个临时关系K:
kCno
1
3[例7]查询至少选修1号课程和3号课程的学生学号。
然后求:πSno,Cno(SC)÷K结果为{95001}Sno95001分析:先对关系SC在{Sno,Cno}属性上投影πSno,Cno(SC),然后逐一求出每一个学生(Sno)的象集,并依次检查这些象集是否包含k。95001象集{1,2,3}95002象集{2,3}πCno(K)={1,3}
于是:πSno.Cno(SC)÷K={95001}SnoCno950011950012950013950022950023πSno,Cno(SC)πSno(σCno='2'(SC))={95001,95002}
[例8]查询选修了2号课程的学生的学号。
Sno9500195002
πSname(σCpno='5'(CourseSCStudent))
[例9]查询至少选修了一门其直接先行课为5号课程的学生姓名。CnoCnameCpnoCcreditSnoCnoGrade1数据库54950011922数学
2950012853信息系学
2950022903信息系统1495002380CnoCnameCpnoCcreditSnoGradeSnoSnameSsexSageSdept1数据库54950019295001李勇男20CS2数学
2950018595001李勇男20CS3信息系统14950018895001李勇男20CS2数学
3950029095002刘晨女19IS3信息系统14950028095002刘晨女19ISCourseSCStudentCourseSC
Sname李勇
πSname(σCpno='5'(CourseSCStudent))或
πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)
πSno,Sname(Student))
[例9]查询至少选修了一门其直接先行课为5号课程的学生姓名。
πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)
[例10]查询选修了全部课程的学生学号和姓名。思考题:查询选修了学号95001学生所学全部课程的同学的学号和姓名。
πS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学生法制安全教育知识
- 小吃店蛋糕房创业计划
- 婴儿哭闹原因识别育婴师试题及答案
- 教学常规检查与反馈机制计划
- 公共演讲社团提升方案计划
- 小班多元智能的发展路径计划
- 建立联结学校社团网络计划
- 2024行业趋势及育婴师试题及答案
- Excel在账务处理中的应用
- 投资咨询在风险控制中的角色:2024年试题及答案
- 农贸市场应急预案
- 肥胖患者麻醉管理专家共识2023年版中国麻醉学指南与专家共识
- 中药饮片处方点评表-副本(文档良心出品)
- DL-T 5605-2021太阳能热发电厂蒸汽发生系统设计规范-PDF解密
- 学校双重预防体系建设指导书
- 螺蛳粉出口贸易的现状及策略分析
- 2024年江苏省苏州市中考数学一模练习卷
- 米什金货币金融学英文版习题答案chapter1英文习题
- 家政聘用合同模板
- 防汛应急预案培训课件
- 桩基施工安全培训课件
评论
0/150
提交评论