word 关系代数中交运算与差运算的SQL语句实现.docx
- 文档编号:12258543
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:10
- 大小:19.45KB
word 关系代数中交运算与差运算的SQL语句实现.docx
《word 关系代数中交运算与差运算的SQL语句实现.docx》由会员分享,可在线阅读,更多相关《word 关系代数中交运算与差运算的SQL语句实现.docx(10页珍藏版)》请在冰豆网上搜索。
word关系代数中交运算与差运算的SQL语句实现
关系代数中交运算与差运算的SQL语句实现
178福建电脑2009年第11期
关系代数中交运算与差运算的SQL语句实现
李国雁.李奇
(河南商业高等专科学校计算机应用系河南郑州450045)
【摘要】:
关系代数是关系数据操纵语言的一种传统表达方式,是结构化查询语言SQL的重要理论基础.然而关系代
数8种常用运算中的交运算,差运算和除运算.在SQL中没有提供专门的运算符加以实现,不利于初学者更好的理解关系代
数和SQL之间的关系.本文针对这一现状,对交运算,差运算在SQL中的实现方法进行探讨.
【关键词】:
关系代数;交运算;差运算;SQL语句
1,引言
1970年E.F.Codd提出了关系模型的概念【JI.奠定了关系模
型的理论基础.为当今主流的关系数据库管理系统提供了坚实
的数学基础.1974年.E.F.Codd又联合RayBoyce,DonCham.
bedin等人里程碑式地提出了SOL(StrueturedQueryLanguage)it~
言.并在上世纪80年代提出了全关系系统的12条准则目.关系
数据库技术.经过近半个世纪的发展,形成了坚实的理论基础,
成熟的商业产品和广泛的应用领域
关系数据模型有三种等价的操纵语言:
关系代数,关系演算
和SQL,其中SOL是关系数据库的标准语言,关系代数和关系演
算是它的理论基础.关系代数是一种抽象的查询语言.用对关系
的运算来表达查询.作为研究关系数据语言的数学工具.大多商
用的DBMS先把用户提交的sgL查询转化成等价的扩展关系
代数表达式.在执行之前需要根据等价规则对其优化1”3141.因此更
好的理解二者之间的关系对于SOL语句的执行效率.乃至数据
库应用系统的运行效率有着重要帮助但是关系代数中的交运
算和差运算在大多DBMS中没有对应的运算符.用SQT.语句表
达包含这两种运算含义的查询对初学者而言成为了难题而目
前的文献跚也只是从某一角度介绍一种转换方法.无法使读者
从多角度深人思考二者之间的关系.本文将通过介绍交运算和
差运算的不同实现方法解决这一问题
2,交运算的sQr.语句实现
2.1交运算的定义:
关系R与关系S的交由既属于R又属于S的元组组成.其
结果关系仍为n目关系.记作:
RNS=ftft∈1tAtES}.
用sOL语句实现交运算的核心在于如何找到两个关系中
相同的元组(即两个关系均包含的元组),下面介绍4种方法:
2.2方法一:
利用交运算的定义
这种方法根据交运算的定义.通过直接比较两个关系中元
组各个属性值是否相同.判断这条元组是否同时出现在两个关
系中,SOL语句如下:
SekctR.A,R.BFromR.SWhereR.A=S.AandR.B=S.B(A.B
为属性集1
例1:
若关系R和S为如表1.1和表1.2所示的2元关系.
表1.1关系R表1.2关系s
则根据方法一,R和S求交集的SQL语句可写成如下形
式:
SelectR.A,R.BfromR.SWhereR.A=S.AandR.B=S.B
2.3方法二:
利用并运算
这种方法先对两个关系求并集.如果并的结果中出现两条
重复的元组,说明这条元组是两个关系均包含的.SQT.语句如
下:
Select?
from
(SelectfromR
Unionall
SelectfromS1
Groupby关键字
Havingeounl()=2
则根据方法二.例l中R和S求交集的SQL语句可写成如
下形式:
Selectfrom
(SelectfromR
Unionall
SelectfromS1
GroupbyA.B
Havingeotlnt(,=2
2.4方法三:
利用in谓词
这种方法利用嵌套查询的方式判断哪些元组两个关系均包
含.SQL语句如下:
SELECT
FROMR
WHEREB:
取值1andAIN
(SELECTA
FROMS
WHEREB=取值21
则根据方法三.例l中R和S求交集的sQL语句可写成如
下形式:
SELECT
FROblR
WHEREAIN
(SELECTA
ILIONS
WHERER.B---S.B)
2.5方法四:
使用EXI谓词
这种方法利用带有EXISTS谓词的嵌套查询.判断关系R
中的元组是否在关系S中也存在.SQL语句如下:
Sdect’FromRWhere
Exists(Sel~tFromSWhere
R.A--S.AandR.B=S.B,
则根据方法四.例1中R和S求交集的SQL语句可写成如
下形式:
Select?
fromRWhere’
Exists(Select’FromSWhere
R.A--S.AandR.B--S.B1
3,差运算的SQL语句实现
3.1差运算的定义:
关系R与关系S的差由属于R而不属于S的所有元组组
成,其结果关系仍为n目关系.记作:
R—S={tlt∈RAtSl.
用SQL语句实现交运算的核心在于如何找到那些只在一
个关系中出现的元组,下面介绍3种方法:
3.2方法一:
利用差运算定义
这种方法根据交运算的定义.利用嵌套判断哪些元组是R
中包含而S中没有的.SQt,语句如下:
SelectAfromRWhereANotinS(A为单属性1
例2:
若学生的选课信息如表2.1所示的2元关系.其中
Sno表示学生的学号.CnO表示学生所选择的课程号.查询选修
2009年第11期福建电脑179
课程1的学生集合与选修课程2的学生集合的差集.
SnoCno
表2.1关系SC
根据方法一.SQL语句可写成如下形式:
SELECTSno
f0MSC
WHERECno=lAND
SnoNOTIN
(SELECTSno
FROMSC
WHERECno:
21
3.3方法二:
使用<>ALL谓词
这种方法使用<>ALL谓词来选择R中的元组.这些元组不
可能和S中任一元组相同.SQL语句如下:
SelectAfromRWhereA<>ANY(SelectAfromS1fA为单
属性1
则根据方法二,例2中的SQL语句可写成如下形式:
SELECTSno
FROMSC
WHERECno=1AND
SnooALL
(SELECTSno
FROMSC
WHERECno=‘23
3.4方法三:
使用NOTEXISTS谓词
这种方法使用NOTEXISTS谓词来选择R中的一些元组.
这些元组不可能在S中也存在.SQL语句如下:
Select’FromRWhere
NotExists(SelectFromSWhere
R.A=S.AandR.B=S.B)
则根据方法三,例2中的SQL语句可写成如下形式:
SELECTSno
FR0MSCA
WHERECn0=lANDNOTEXISTS
(上接第193页)
(SELECTSno
FROMSCB
WHERECno=‘2ANDA.SNO=B.SNO)
需要指出的是,如果进行差运算的两个关系的属性个数大
于1个,则方法一和二就不再适合,此时只能使用方法三.例如.
对于例1中所示两个关系R和S进行差运算.根据方法三写出
的SQL语句如下:
Select’FromRWhere
NotExists(Select’FromSWhere
R.A=S.AandR.B=S.B1
4,总结及展望
SQL作为关系数据库通用的数据操纵语言.在当前的各种
数据库应用系统中发挥着重要作用:
而关系代数是SOL的重要
理论基础.理解二者之间的关系对于初学者甚至数据库开发人
员有着重要意义.本文对关系代数中交运算和差运算在SQL中
的实现方法进行了讨论,给出了两种运算的不同实现方法.有利
于更好的掌握SQL语句的书写技巧.今后将对这些方法进行横
向的效率比较.以期确定最优方法.并对除运算在SQL中的实
现方法进行探讨
参考文献
1.E.F.Codd.AR.eladonalModelofDataforLargeSharedDataBanks【C】.
CommunicationoftheACM,1970,一13(6):
377—387.
2.E.F.Codd.IsYourDBMSReallyRelational?
Ⅱ】.ComputerWorld,
1985-1O~14.
3.陈波,高秀娥,陈来杰.基于等价变换的分布式查询优化方法研究.计
算机工程与设计.2006—3.
4.粱志宏,靳延安,周华.等价关系代数查询优化方法的研究U】.山西师范
大学(自然科学版),2004—6—18
(2):
34—38.
5.李红日,宋俊兰.用SQL语句实现关系代数运算探讨Ⅱ】.科技信息(学术
版),2008—8.
6.王群芳.关系代数的相应运算在SQL中的实现Ⅱ】.安徽教育学院,
20o1-6.
7.李莹,代勤.关系代数运算与SQL查询的对应关系U].内蒙古农业大学
(自然科学版),2003—3
3,ht~:
//
参考文献:
htm
1,武法提《网络课程设计与开发》高等教育出版社2007.74,
2,网络课程设计与开发http:
//202.110.190.170/yuan/detail.aspx?
~x035020.htm
id347&page2
(上接第202页)
设计和编程综合三个部分.除了期末考试之外,在该课程的考核
中还应增加平时考核和课程设计考核的内容平时考核包括作
业和实践课内容.设计考核的重点是培养学生的自学能力和创
新能力.设计操作能力考核是既对各小组所做课题进行整体考
核,又对各小组成员所分担的任务进行考核,实践证明,这种考
核方式不仅成为评定学生学习成绩的手段.而且变成了学生把
所学知识,技能系统化.重组的过程,丰富了课堂教学.提高了学
生的学习积极性了.至于考核的各部分分值比例的关系.可以针
对不同的专业采取不同的比例.原则是计算机及其相关专业要
更加强调课程设计,淡化考试;而计算机专业.可以做适度调整.
6,结束语
实践证明.随着计算机技术的发展和多媒体教学软件的广
泛应用.在VB教学过程中,学生知识的获得,能力的培养,智力
的发展,不能只依靠传统,单一教学方法.必须充分利用先进的
技术和软件结合学生的实际情况,找到行之有效的教学方法.另
外.教师还应重视自身创新能力和将专业知识应用到社会实践
中的能力的培养.利用VB结合实际开发一些小型的应用程序系
统,使自己更好地掌握它.只有这样,教师在教学中才能更好地
进行课程设计的选编,设计和组织,探索出更适应学生的教学方
法.取得更好的教学效果.
参考文献:
1.麦青.阎文海VB课程教学模式的探索与实践福建:
福建电脑【J】.
2008年第4期
2.昊星.如何教好vb程序设计课.湖南:
电脑与信息技术【J】.2005,13
(6):
41242.
3.陈清华.关维娟.谈《Ⅶ程序设计)课程的教学方法安徽:
.电脑知识与
技术m.2O06,23:
1812182.
4.詹自胜.案例教学法在面向对象程序设计教学中的探索与实践【D】.浙
江:
浙江师范大学.2006
5.徐宝文,郑国粱,周晓宇.程序设计语言研究与发展[M】.北京:
电子工
业出版社.I998.20”21
6.王涛VB教学中案例的选取及应用举例长沙:
长沙通信职业技术学
院¨】.第7卷第4期
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- word 关系代数中交运算与差运算的SQL语句实现 关系 代数 运算 SQL 语句 实现