数据库应用第2章RelationalAlgebra

上传人:新** 文档编号:568217876 上传时间:2024-07-23 格式:PPT 页数:100 大小:1.20MB
返回 下载 相关 举报
数据库应用第2章RelationalAlgebra_第1页
第1页 / 共100页
数据库应用第2章RelationalAlgebra_第2页
第2页 / 共100页
数据库应用第2章RelationalAlgebra_第3页
第3页 / 共100页
数据库应用第2章RelationalAlgebra_第4页
第4页 / 共100页
数据库应用第2章RelationalAlgebra_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《数据库应用第2章RelationalAlgebra》由会员分享,可在线阅读,更多相关《数据库应用第2章RelationalAlgebra(100页珍藏版)》请在金锄头文库上搜索。

1、RelationalModelRelationalModel粥萨址庐竣惕夯梗佐草弯呸函灿勿脆唆阐汹端降顽植醒俐桌幼懈蝶薯拂空数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra2.1关系数据模型2.2关系运算2主要内容豫趁富改馅佳祖抬皆撮诣溪岔旭樟呵驯仰词辑腺坪航郝贺萝雄睡糊慌铝辽数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra2.1关系数据模型数据结构完整性约束规则3关系数据模型仅遂针瞩糊赘费验铺橇虞鹊冕诗钓耸董彰忍劳日款缮宙堆瑶唯陪继几雕瘟数据库应用第2章RelationalAlgebra数

2、据库应用第2章RelationalAlgebra1970年E.F.Codd在美国计算机学会会刊CommunicationoftheACM上发表的题为“ARelationalModelofDataforSharedDataBanks”的论文,开创了数据库系统的新纪元。从此,人们开始了关系数据库系统的研究。4关系数据模型由来加偿翘订爆涂宏钎亡舟册拴堑帛蛋借肖莫仅滇剧哲径烈雍亩原黑摇履馈煮数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra单一的数据结构简单的二维表以关系的形式来描述现实世界实体(学生、课程)实体间的联系(学生选课表)5关系数据模型消牡

3、何添喂嚎庭吐斡候色亦析箍灵宦惜遗潭浩沏萝寅屿猾闰桐灌答铝古君数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系数据库,是建立在关系数据模型基础上的数据库系统。关系系统基于关系模型,关系模型又是基于数学方面的数据抽象理论。关系是一个数学概念。当把关系的概念引入到数据库系统作为数据模型的数据结构时,既有所限定和也有所扩充。关系数据结构的定义6关系数据模型基本概念昨培妨稍候践啥许笔怖度肉巡或硒侗轿竖链萨娄闰霞斌陛茧饯姓活选碴狭数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra域(Domain)域是

4、一组具有相同数据类型的值的集合,又称为值域值域。域可直接用D表示。关系模型要求域必须是原子数据原子数据的集合。例如整数、实数、字符串的集合。域中所包含的值的个数称为域的基数基数(用m表示)。关系中用域表示属性的取值范围。例如:D1=李力,王平,刘伟m1=3D2=男,女m2=2D3=47,28,30m3=3其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。域的值无排列次序,如D2=男,女=女,男7关系数据结构的定义态劝起款勋耀需栽肚熏饶呀施寿举俞还哆蓑汲何值躲陀曰逸洲屠唤耐逢碌数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebr

5、a笛卡儿积笛卡儿积(CartesianProduct)给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n8关系数据结构的定义钩颜欠壹窜椰累碟粳拴头哇蓬颗撅巴辩作硬蔗乐啪腺辙对处疵漫麓遍盐蘸数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra笛卡尔笛卡尔积的性质:积的性质:1.每一个元素(d1,d2,d3,dn)叫做一个n元组(ntuple),简称元组(Tuple)。元组不是di的集合,元组的每个分量(di)是存在顺序

6、的。如:(1,2,3)(2,3,1)(1,3,2)而集合中的元素无顺序的。(1,2,3)=(2,3,1)=(1,3,2)9关系数据结构的定义饶侈杀舶服时糖续渔鬼铁巨湖泥栋养晒巳暮包铭耀碳互开荧韩七笆哭势埃数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra笛卡尔笛卡尔积积的性质:的性质:2.元组中的每一个di叫做一个分量(Component),来自相应的域(diDi)其中:李力、王平、刘伟、男、女都是分量(李力,男),(李力,女)等是元组10关系数据结构的定义跺攀唐累透借掣贮趟沪诲艘耍困勇缉震贮勿近使傀响晴闷值锄腿薄歪琢湍数据库应用第2章Rela

7、tionalAlgebra数据库应用第2章RelationalAlgebra笛笛卡尔卡尔积积的性质:的性质:3.若Di(i=1,2,n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,n)表示,则笛卡尔积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累积,即11关系数据结构的定义辗懈稽格纯浚踞汪赁窍咯座吃甄齿准毗痹拙卵珐抽其裁厚估隙醉诡垫蔡瓮数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例给出三个域:D1=SUPERVISOR=张清玫,刘逸D2=SPECIALITY=计算机专业,交通专业D3=PO

8、STGRADUATE=李勇,刘晨,王敏D1,D2,D3的笛卡尔积为的基数为:223=12D1D2D3(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,交通专业,李勇),(张清玫,交通专业,刘晨),(张清玫,交通专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,交通专业,李勇),(刘逸,交通专业,刘晨),(刘逸,交通专业,王敏)12笛卡尔积涧寐刹荧阀冀状聊谜枚擂沤安话蜂落桔料广通汁典锗遥块合仔册挪剿渝胀数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAl

9、gebra笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。在上例中,12个元组可列成一张二维表13笛卡尔积的表示方法蓉茁嚣甸哑汉捻玖己先曼碗喷栅炕范膏戳讼顾认首弘峰玄帝盅败巡绚转空数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra14笛卡尔积的表示方法张清玫计算机专业李勇张清玫计算机专业刘晨张清玫计算机专业王敏张清玫信息专业李勇张清玫信息专业刘晨张清玫信息专业王敏刘逸计算机专业李勇刘逸计算机专业刘晨刘逸计算机专业王敏刘逸信息专业李勇刘逸信息专业刘晨刘逸信息专业王敏袱诧摔暑翱消集喷频概吨会释眯蚀卵穿径塘标浇溶胎尖狮麻印垒

10、文兜女俄数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为R(D1,D2,Dn)关系是笛卡儿积的子集,是一张二维表。表的每行对应一个元组。列对应一个域。15关系数据结构的定义一业辖倍肥瘪洲舟鹅邑外瑟隋铝俄钩惦紊藩粤狈鞘终霜涝叉蛔舶淑钮厌裁数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例:在上表的笛卡尔积中取出有实际意义的元组来构造关系关系:SAP(SUPERVISOR,SPECIALITY,OSTGRADUATE)关系名(属性名1

11、,属性名2,属性名n)假设:导师与专业:11,导师与研究生:1n于是:SAP关系可以包含三个元组16关系佛瘫佑隶有判床董裁折托哉挖鲜乞拿范邯研跪耽谊闭餐乔资问柔瞻梁锡茫数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。17关系SUPERVISORSPECIALTYOSTGRADUATE张清玫信息专业李勇张清玫信息专业刘晨刘逸计算机专业王敏装襟榨辉郸缅森陌啪询窑孺日多阐串棚像共旁此解蒸表苫淌悼耳曝耗于貌数据库应用第2章RelationalAlgebra数据库应用第2章Rela

12、tionalAlgebra关系数据模型对数学定义的限定和扩充限定:无限关系在数据库系统中是无意义的。因此限定关系数据模型中的关系必须是有限集合有限集合。扩充:通过为关系的每个域附加一个属性名的方法取消关系元组的有序性数学上:(交通流理论,张三)(张三,交通流理论)数据库上:(交通流理论,张三)=(张三,交通流理论)18关系章讽竭章霞鼻迢箱穆标惯壮曙惠园市之拓硕曼铰蜀荤罐显矣倾栈峻敌考邻数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra基本关系具有以下六条性质:列是同质的,即每一列中的分量是同一类型的数据;不同的列可出自同一个域,称其中的每一列为

13、一个属性,不同的属性必须给不同的属性名;列的顺序可任意交换;任意两个元组不能完全相同;行的顺序可任意交换;分量必须取原子值,即每一个分量都必须是不可分的数据项。19关系仍琳冻被缨馏篆曾擒涯辑展柑光雏钎驭规坚秘闹尚害欢泊枣力嘉炔俱挚拂数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系的属性(attribute)是为关系的域附加的名字,是表示现实世界中实体性质的抽象信息。通常,用A表示关系的属性。给定A1、A2、.、An是值域为D1、D2、.、Dn的n个属性,具有属性A1、A2、.、An的关系R是一个元组集合,其中,每个元组(tuple)是一个

14、映射集合A1D1,A2D2,.,AnDn。一个具有n个属性的关系称为n元关系。20关系的数据结构缕柱颖肾倒义萌桩丁审瘪邱顽船介瘸惧彬陈紧洽浅缸壮反披炭于歇樊残悄数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系模式是一个系统R(U,D,DOM,I,F),其中,R是关系名,U是R的属性集合A1、A2、.、An,D是U中属性的域集合D1、D2、.、Dn,DOM是U到D的映射,I是完整性约束集合,F是属性间的函数依赖关系。把属性集合为U=A1,A2,.,An的关系模式R记作R(A1,A2,.,An)。21关系的数据结构赊捐经岔隋护浩砂西宅罐氓焉猖

15、恫穴恋普狗薛跺稽别狡拢凯撬迭督赠拨氏数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例:Student(姓名,学生编号,年级,专业,系)Course(课程名,课程编号,学分,系)Course_teaching(年级,系,专业,课程编号,学期,年,教师)Prerequist(课程编号,前序课程编号)Grade(学生编号,课程编号,成绩)22关系的数据结构哟钎雪昭丑淄疽啊尺怒镶凝沧厉紧专搽差菇颇丑扁幂溶祸移乓坛腾止刷烦数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra23关系的数据结构郁磷鲁侮疮摈

16、伸娜珠扇必圃丑窜郊栓损胸福订定荒藐碰丛祸块都紧米抄骂数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系与关系模式是关系数据库中密切相关又有所不同的概念。关系模式关系模式是采用关系数据模型对数据的描述是“型”关系是相应关系模式的值(实例)是相应实体集在某一时刻的快照24关系的数据结构满轨昨根窃蝴急步即年祖琐艘豪咆祝忍杂喷詹搅碱某桩巡呼揉厌嚎此鼠馈数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系模式描述了关系的数据结构和语义约束,不是集合;而关系是一个数据集合。关系模式是相对稳定的;而关系

17、是随时间而变化的,是关系模式在某一时刻的“当前值”。有时等价地使用“关系”和“关系模式”这两个词。25关系的数据结构品金貉沃焕凛买牢弄昧将历啥坏赏奶站还噎涌玲群共古折灾喀适雅福褂侦数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra2.1关系数据模型数据结构完整性约束规则完整性约束规则26关系数据模型宣坍钱热副暂漠趟磅虎弃丑娠镣则初戊潞篓详拔境担蔗髓袄棍柜宇蔫摊美数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra基本概念码(键)若关系中的某一组属性的值能唯一地标识该关系中的一个元组,则称该属性组为

18、候选码。候选码之一可被选作主码(PrimaryKey,PK),或称为主键、关键字。主码是关系模型中的一个重要概念。每个关系必需选择一个主码,选定以后,不能随意改变。关系的元组不能重复,因此,每个关系必须有且仅有一个主码。至少关系的所有属性的组合可作为主码。极端情况下,关系的所有属性组是这个关系的候选码,称为全码(All-key)。27完整性约束规则尝逾耸左葱皑囚挖隅席宴深期枯扦仇祝船捣胺溪规辕糊臭饮玖美晶掸笨涧数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra完整性约束规则:28关系数据模型涟痴馅眠驮炬啮郧角柒番幂抨桅殆匪伪兼蹭竿砍疙昼刑靛蛙屋

19、咏怂啊胰旗数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra基本概念外部键:设X是关系模式R(U)的一个属性集合。如果X是另一个关系模式R(U)的主键,则称X是R(U)关于R(U)的外部键,或简称外键。29关系数据模型仅卓潜桔珐积脏孰旨阅刚双虎糙檀赛汕娄瓮饮惊拎决俊系敝牟顷阁沧存轧数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra实体完整性约束:如果A是关系模式R(U)的主属性,则A不能接受空值。保证主属性不空与关系模式用主键唯一识别元组是统一的。关联完整性约束设X是关系模式R(U)关于关系模式

20、R(U)的外部键。如果K是R(U)的关系实例的一个元组的外部键值,则R(U)实例中必存在一个元组T,T在X上的值为K。关联完整性约束说明,任何关系的一个元组只能通过外部键与另一个关系中存在的元组相关联。30完整性约束规则镁较岗蓖历蔼储文颧盐钉滤嗅阳阑臆匪筏砌斜分翟废蚀瘁芝允阉氧搜苇伯数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra特殊的约束条件与特定的应用相关例:课程(课程号,课程名,学分)非主属性“课程名”也不能取空值“学分”属性只能取值1,2,3,4NULL不知道、未提供、短缺不能简单地认为没有31用户定义的完整性趁脏袖秀恨毁喻嚎佰襄柬替

21、孺愤够捆摹马讫颗庸瞎抖器陕漠纠谢刹博暖谬数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra2.1关系数据模型2.2 关系运算关系运算第2章关系模型沟丑滤亭古薛碧破豆斌瞎贪繁杜战义想谤碘虏忍渣描共绒院蹿庚涅嘶幻带数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra属于关系操作的一种关系代数是一种抽象的查询语言通过对关系的运算来表达查询操作运算对象、结果均为关系运算集合运算、专门的关系运算、比较运算、逻辑运算33关系运算努欢淋和叙壕炬嗜政魏控劝扦敛安苑军聊芒妄克禄紧乳汗郊秋气墨善法纶数据库应用第2章R

22、elationalAlgebra数据库应用第2章RelationalAlgebra基于代数的定义:关系代数基本操作(5个):并、差、笛卡尔积、投影、选择附加操作:交、连接、商、附加操作可由基本操作的组合表示基于逻辑的定义:关系演算由于使用变量的不同,关系演算又分为元组关系演算和域关系演算。34关系运算眨峙患征宏御悼砚肋早掩梢佬颐纠暇嘴骄辗曼缴表众谐基仔躲峡可蛛林坯数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraR和S的并,RS,是在R或S或两者中的元素的集合一个元素在并集中只出现一次R和S必须同类型(属性集相同、次序相同,但属性名可以不同)3

23、5集合运算并Union()RSRS子蘸紫伪幅狼秋庆诉成焦逗并招横盆蝇信视歌讽酱幻陀爷酬毛棋类更歉孕数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra36集合运算并Union()姓名姓名年龄年龄性别性别张三29男张三37女李四37男姓名姓名年龄年龄性别性别张三37女王六50男李四37男姓名姓名年龄年龄性别性别张三29男张三37女李四37男王六50男R(教师教师)S(系主任系主任)RS肋奶安蛋晾褂赠走号尸氰婚譬筑椒而燥熊一倪傍疆遥刑讼顺顷暂挎曾腐汛数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraR

24、和S的差,R-S,是在R中而不在S中的元素的集合R和S必须同类型(属性集相同、次序相同,但属性名可以不同)37集合运算差Minus(-) R - SSR毒骚德妖隐催镰砸盒硷劈浆辕公控榴超滓犁祭摄截烁父涯抒瑶食中二存然数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra38集合运算差Minus(-)姓名姓名年龄年龄性别性别张三29男张三37女李四37男姓名姓名年龄年龄性别性别张三37女王六50男李四37男姓名姓名年龄年龄性别性别张三29男R(教师教师)S(系主任系主任)RS聘凭盗囱符凤社拎政箕斟蔼码囚抢滚触鄙琐次寒聂蓄哦参勃纶筋固衣味择数据库应用第

25、2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系R、S的笛卡儿积是两个关系的元组对的集合所组成的新关系RS:属性是R和S的组合(有重复)元组是R和S所有元组的可能组合是R、S的无条件连接,使任意两个关系的信息能组合在一起39集合运算笛卡儿积()秃唾獭祝与碗脯卉姑蝎画滦说范茬亭高兑代摩芒高艺全兜雌漓琴卸游需篆数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra40集合运算笛卡儿积()姓名姓名年龄年龄性别性别张三29男张三37女李四37男姓名姓名年龄年龄性别性别张三37女王六50男李四37男R(教师教师)S

26、(系主任系主任)姓名姓名年龄年龄性别性别姓名姓名年龄年龄性别性别张三29男张三37女张三29男王六50男张三29男李四37男张三37女张三37女张三37女王六50男张三37女李四37男李四37男张三37女李四37男王六50男李四37男李四37男RS层朴珠偶谚裙噪森醛诧衫汕吃腆菠烘抱劝拽蹬祟戚肪耍氰忆水腻舶寥厕鬼数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra从关系R中选择若干属性组成新的关系A1,A2,An(R),表示从R中选择属性集A1,A2,An组成新的关系列的运算投影运算的结果中,要去除重复元组。41关系运算投影()聂葛诽翟诌俄晓搁裔患

27、队滨企筹茹剑擎到答循瓤危纵吱锗颇窥牲揖航揪苑数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例:ssex,sage(student)42关系运算投影()浆工吟盛询曙巍贼寓御碟绍嘲码怯渭烙笋瘤涪霸哦豁葛磕柯咙衬泌这卖良数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra从关系R中选择符合条件的元组构成新的关系F(R),表示从R中选择满足条件(使逻辑表达式F为真)的元组行的运算43关系运算选择()磕炼鸡立象召廊净遮砍镀疑辆匡忠奴锤氧魁帕彰圃蔽枝哼万梅谍摹晓授补数据库应用第2章RelationalAl

28、gebra数据库应用第2章RelationalAlgebra例:ssex=男ANDsdept=IS(Student)44关系运算选择()斤茂撬欲菠宏芽葵娇萍厢闰答磕赣司冀赋组马侮纤致恫阮闪辫幂港卞惭我数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraR和S的交,RS,是在R和S中都存在的元素的集合一个元素在交集中只出现一次R和S必须同类型(属性集相同、次序相同,但属性名可以不同)45集合运算交Intersect()RS SR菌乱吵钟诣宁影予舜夏永赫炎琢捂胃肮常盂城耀没刮庭突别团嗓索萄纲潍数据库应用第2章RelationalAlgebra数据库应

29、用第2章RelationalAlgebra46集合运算交Intersect()姓名姓名年龄年龄性别性别张三29男张三37女李四37男姓名姓名年龄年龄性别性别张三37女王六50男李四37男R(教师教师)S(系主任系主任)姓名姓名年龄年龄性别性别张三37女李四37男RS昂周瞅莹得抨妖剂样晌迢妮丧禁灾犯侥畸墨竹利堂荫丰锹屎旨廓卫埃镊墩数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra从RS的结果集中,选取在指定的属性集上满足条件的元组,组成新的关系是一个关于属性集的逻辑表达式47关系运算条件连接()RS坊撂搪彦珠崇翻祥肄局峪害植繁殆轿邪纷厘锥霹怀高攒

30、品厄咆矢澳囊遁桑数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra48关系运算条件连接()姓名姓名职务职务任职时间任职时间张三教师5张三系主任6李四副院长8李四院长12职务职务工龄工龄教师3系主任7副院长10副院长2副校长2姓名姓名R.职务职务任职时间任职时间S.职务职务工龄工龄张三教师5系主任7张三教师5副院长10张三系主任6系主任7张三系主任6副院长10李四副院长8副院长10RSRS任职时间任职时间 工龄工龄霖眨沾浆虱丙骚呀徽神咸盏涅匹固搀己乌腆肆婴啡柒萨懦冠伴裹叔宁杉哟数据库应用第2章RelationalAlgebra数据库应用第2章Re

31、lationalAlgebra49关系运算条件连接()姓名姓名职务职务任职时间任职时间张三教师5张三系主任6李四副院长8李四院长12职务职务工龄工龄教师3系主任7副院长10副院长2副校长2RSRSR.职务职务S.职务职务姓名姓名R.职务职务任职时间任职时间S.职务职务工龄工龄张三教师5教师3张三系主任6系主任7李四副院长8副院长10李四副院长8副院长2帛擅级瞧一宙貉薯杰模杆矣半筑锯藤叠厩哺冉绅五行坍层省向字猾揭蛔卑数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra从RS的结果集中,选取在某些公共属性上具有相同值的元组,组成新的关系R、S的公共属

32、性属性集的交集(名称及类型相同)公共属性在结果中只出现一次50关系运算自然连接()锹呛陡唯按烂汰脱稠赞扁泻拌殆元哎胸邓陨组肿自论盈款撂誓掉趴浩淀扶数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra51关系运算条件连接()姓名姓名职务职务任职时间任职时间张三教师5张三系主任6李四副院长8李四院长12职务职务工龄工龄教师3系主任7副院长10副院长2副校长2RSRS姓名姓名职务职务任职时间任职时间工龄工龄张三教师53张三系主任67李四副院长810李四副院长82仿片坠绒蝎趟朔信饮屁收可赂载敦谁扩揩碴丢鸽稍肃方聂疟躬很撰叔劲梅数据库应用第2章Relati

33、onalAlgebra数据库应用第2章RelationalAlgebra52关系运算除()乐糙砚绩贤因燥伍操埠毖咏需爹瓷痛磺但韶骂铺娟蛊坍爵碎斩扶绥熄婆置数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra在关系R中,A可以取四个值a1,a2,a3,a4a1的象集为(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)属性组上的投影所以RS=a153分析:洼

34、菩梯堤蹈特但踩炳频嘻害傅馏信罕谩必汛龄偷赦刨握寺敝墟汝啃晃负淑数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例查询至少选修1号课程和3号课程的学生号码1.首先建立一个临时关系K:2.然后求:Sno,Cno(SC)K54以学生课程数据库为例Cno 1 3紫抄惩秋硼糜街袍硫匪锯剧扛缚怔耐企獭能么纬包酣马诌崩泊炕独皖汉载数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例续Sno,Cno(SC)95001象集1,2,395002象集2,3Cno(K)=1,3于是:Sno,Cno(SC)K=9500

35、155以学生课程数据库为例SnoCno950011950012950013950022950023健兹乙挫傀税势镁衅竟员柯蒙冶舆障簧筛础炙品吱欧辱咽榜暂睡熔稚树凿数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra56关系代数实例辈痈畏鸽迈锑缚迅些剿扫禽臀晌币宪挤绷久百沟愧闸占箱茸峭阐嵌幕清硒数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra查询选修了2号课程的学生的学号。课程号、学号SC表2号课程的选课情况:cno = 2(SC)57关系代数实例1川君晃邮冲干手体怕司猿别鼎铜义靶挛玉竖熬驯民狠唬

36、拈头笔镑毙卸顽敲数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra选修2号课程的学号。 sno(cno = 2(SC)58关系代数实例1蹄植损操久面滩怯武醛族拢蔓询甸譬黔嫡霜洁汰余只葛院拢滴菌锅弯蚌伦数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra列出选修数学课的学生的学号、姓名以及成绩。学号、姓名Student表课程名称Course表成绩SC表StudentSCCourse59关系代数实例2吓底玻疫绝狂与脖妄跪荚斋尾兼聚熟司又递硝狸实逞菜釉祝守悍陇序太荤数据库应用第2章RelationalA

37、lgebra数据库应用第2章RelationalAlgebraCname=数学(Course)60关系代数实例2贺分晕豹防劣愉胺打翌绍川草椽绪方闽盅叫排捏牙典芥弊勿雇篡漏墓均换数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra选修数学课的学习记录SC(Cname=数学(Course)选修数学的学生记录Student(SC(Cname=数学(Course)选修数学的学生的学号、姓名、成绩Sno,Sname,gradeStudent(SC(Cname=数学(Course)61关系代数实例2懂饼蜗在纪奸须绽荒哺独并欣卜缀爸窃服嗣仔十拈犊朽侗铸窑错尝啡

38、吝趣数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra62关系代数实例2骆豆腮树坑疲谢椅哪稠激陶谅赃氛场南既墩泊钮强篓绊垛鸳琼糖壁懈炳惋数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra查询至少选修了一门其直接先行课为5号课程的学生姓名。Sname(Cpno=5(CourseSCStudent)或Sname(Cpno=5(Course)SCSno,Sname(Student)或Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student)63关系代数实例3林目质贱俭还

39、聊绰京南桑菱析吭晚队艰吁凄忆菌外盘州奶愈梅非淀匹标感数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra查询选修了全部课程的学生号码和姓名。Sno,Cno(SC)Cno(Course)Sno,Sname(Student)64关系代数实例4嚏轴么厢龟粹绘督甄焙缘抱仆舞错守头祖幕稻舜蹄聪灯筛醇矽俏腆矗沥迫数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraR S65练习ABa1b1a2b2a1b3BCb2c1b3c2从证推羞蠕卿睦吱侥打棠央市槽冬逸杉茸农煞率耍津茁榨甩糟体睡糠急奈数据库应用第2章Rela

40、tionalAlgebra数据库应用第2章RelationalAlgebra在以下的四个关系代数表达式中有一个与其他三个是不等价的。这些表达式都是基于关系R(A,B)和S(B,C)的。请指出其中的哪一个与其他的不等价。1.A,B(RS)2.RB(S)3.R(A(R)xB(S)4.A,R.B(RxS)66练习漾炒兔鸥腕篮隧陵赔双另网求优糖院沾菲祥烧纳渐皇濒藤疼门堡巩锐卯瓶数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra基于代数的定义:关系代数基本操作(5个):并、差、笛卡尔积、投影、选择附加操作:交、连接、商、附加操作可由基本操作的组合表示基于

41、逻辑的定义:关系演算由于使用变量的不同,关系演算又分为元组关系演算和域关系演算。67关系运算汁酵丧卒箔叁箩僧选湿思嫌懂掇店趁英朝匙哼塞坡膝圃猛蓖盟赊届枷永然数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra关系演算是以数理逻辑中的谓词演算为基础的,通过谓词形式来表示查询表达式。根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。68关系演算狈刺俏哺汀缅褪潍欺多钨由可屑鸿虾净荚斋帧狸屯嘱增渤愿辐氖距朝绥坐数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra元组关系演算语言元组关系演算是以元

42、组变量作为谓词变元的基本对象。元组关系演算语言的典型代表是E.F.Codd提出的ALPHA语言和INGRES关系数据库上使用的QUEL语言。ALPHA没有实际实现,但较有名气。QUEL是在ALPHA语言的基础上研制的。69关系演算付舅党短十狐忧猛啮恭延成务饭膘竭乡轰盘勿八扦试迄焚砷啮滇爹嘶镑硫数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraALPHA语言ALPHA语言是以谓词公式来定义查询要求的。在谓词公式中存在客体变元,这里称为元组变量。元组变量是一个变量,其变化范围为某一个命名的关系。ALPHA语言的基本格式是:():操作符有GET,PU

43、T,HOLD,UPDATE,DELETE,DROP等几种。工作空间是指内存空间,可以用一个字母表示,通常用W表示,也可以用别的字母表示。工作空间是用户与系统的通信区。目标表用于指定操作(如查询、更新等)出来的结果,它可以是关系名或属性名,一答操作语句可以同时对多个关系或多个属性进行操作。70关系演算ALPHA胸翻惰榨灯逼榨未还踩墩扼茸瀑衔勋颁俯旧仙守色益酮肺足尧坦两淖防恨数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra操作条件是用谓词公式表示的逻辑表达式,只有满足此条件的元组才能进行操作,这是一个可选项,缺省时表示无条件执行操作符规定的操作。

44、除此之外,还可以在基本格式上加上排序要求,定额要求等。下面以教学数据库为例,说明ALPHA语言的使用。71关系演算ALPHA迄慷羞疡萝沃豫膀淹兰末湖苞师源估箭器拘谎涩坏寒侥晦弯渣堤伺蛤半展数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra1.数据查询简单查询例例查询所有学生的数据。GETW(S)GET语句的作用是把数据库中的数据读入内存空间W,目标表为学生关系S,代表查询出来的结果,即所有的学生。冒号后面的操作条件缺省,表示无条件查询。72关系演算ALPHA壳壶茅牧孵誓校万然喂乱懒血裹磺酿发疡尤映蹬牛奸赊事哄搬像遵衬矣查数据库应用第2章Rela

45、tionalAlgebra数据库应用第2章RelationalAlgebra例例查询所有被选修的课程号码。GETW(SC.CNO)目标表为选课关系SC中的属性CNO,代表所有被选修的课程号码,查询结果自动消去重复行。73关系演算-ALPHA宽胳敷撞孔川捌哀伦槛蛾盐庚引佳劫界尚起麻咖绞沏邑樱曰府荣奏瞥剥因数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra条件查询由冒号后面的逻辑表达式给出查询条件,在表达式中可以使用如下三类运算符:a.比较运算符:,1000目标表为教师关系T中的两个属性SN和SAL组成的属性列表。75关系演算ALPHA携狱否庞伶渭

46、义琴吟泊庚泌羹掌锚爵掷宜刹砾囊桨悬脚孜药钱身屎纬援笨数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra排序查询例例查询S3同学所选课程号及成绩,并按成绩降序排列。GETW(SC.CNO,SC.SCORE):SC.SNO=S3DOWNSC.SCOREDOWN表示降序,后面紧跟排序的属性名。升序排列时使用UP。76关系演算ALPHA框揭噎蔗默肃士系收傈构柬摔夏来泵摸销伸酿票铺蔓独迷怕抬超埔扬阶壕数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra定额查询所谓的定额查询就是通过在W后面的括号中加上定额数

47、量,限定查询出元组的个数。77关系演算ALPHA晨愤硼邱弊括损惧铀芋枢扇赞开粥宁怨经衔宪粥籍省零丢煮伺汕书汪挛用数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra定额查询所谓的定额查询就是通过在W后面的括号中加上定额数量,限定查询出元组的个数。例例查询一名男教师的教师号和姓名。GETW(1)(T.TNO,T.TN):T.SEX= 男这里(1)表示查询结果中男教师的个数,取出教师表中第一个男教师的教师号和姓名。78关系演算ALPHA踩渡枚峙使札拘西贯阵誊佳塞垄王吠销掣选郭嫡溉棉卑帮书啤缮崔行矽书数据库应用第2章RelationalAlgebra数

48、据库应用第2章RelationalAlgebra排序和定额查询可以一起使用。例例查询一名男教师的教师号和姓名,并使他的年龄最小。GETW(1)(T.TNO,T.TN):T.SEX= 男UPT.AGE此语句的执行过程为:先查询所有男教师的教师号和姓名,再按照年龄由小到大排序,然后找出第一位,也就是年龄最小的男教师。79关系演算ALPHA呈非佬车漫童栗柄约遵骨躁驾蛋蜂洞允饯螺托褪颊晃按锐俏甄培那抽诀卞数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra带元组变量的查询所谓的元组关系演算就是以元组变量作为谓词变元的基本对象,在关系演算的查询操作时,可以

49、在相应的关系上定义元组变量。元组变量代表关系中的元组,其取值是在所定义的关系范围内变化,所以也称作范围变量RangeVariable,一个关系可以设多个元组变量。80关系演算ALPHA幸裹掐煤畔峨陈娘渗爬掂喊赃摩泣淀镭顽攻邵究账擎前怨瞪酷钱憨蝉檬讨数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例例查询S3同学所选课程号。RANGESCXGETW(X.CNO):X.SNO=S3使用RANGE来说明元组变量,X为关系SC上的元组变量。如果关系的名字很长,使用起来不方便,这时可以设一个名字较短的元组变量来代替关系名,简化关系名,使操作更加方便。8

50、1关系演算ALPHA韭肯辱亲击阻挽潜陈都秀铃字卯足调饶扯鲸女手邓屉捞敏鞋蝗洼暂蘑凰怯数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra带存在量词的查询例例查询S3同学所选课程名。RANGESCXGETW(C.CN):X(C.CNO=X.CNOX.SNO=S3)注意:操作条件中使用量词时必须用元组变量。82关系演算ALPHA夕仿堂小孝筛讫俺发色眨刹伤间且业鬃宿钎苇稠己舷厨冉迅贤晴愧透暴粱数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例例查询至少选修一门其课时数为80的课程的学生的姓名。RANG

51、ECCXSCSCXGETW(S.SN):SCX(SCX.SNO=S.SNOCX(CX.CNO=SCX.CNOCX.CT=80)83关系演算ALPHA等胡济拳貉杯棠凯九澈粟佬傍棺枷除浚茨宫雀蒜缀撂堡蓉舆隘怯扮漳担虚数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra此查询涉及三个关系,需要对两个关系(C和SC)作用存在量词,所以用了两个元组变量。此语句的执行过程为:先查询课时数为80的课程号,再根据找到的课程号在关系SC中查询其对应的学号,然后根据为些学号在关系S中找到对应的学生姓名。例查询选修全部课程的学生姓名。RANGECCXSCSCXGETW

52、(S.SN):CXSCX(XSC.SNO=S.SNOCX.CNO=SCX.CNO)84关系演算ALPHA昆外孩愿物渠森苍哟皱壬椎霖疚犯催拥移塘腺塑园琴泽似明敞叠惭哼扇惭数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra库函数查询库函数也称集函数。用户在使用查询语言时,经常要作一些简单的运算。例如要统计某个关系中符合某一条件的元组数,或某些元组在某个属性上分量的和、平均值等等。在关系数据库语言中提供了有关这类运算的标准函数,增强了基本检索能力。常用的库函数下表所示85关系演算ALPHA函数名称AVGTOTALMAXMINCOUNT眺辞哼言懒饼彭娠

53、讼详纬庆豺匠超趾婆吝眯龋气腻舶赂疑桩苫脱骄角杰陆数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例例求学号为S1学生的平均分。GETW(AVG(SC.SCORE):S.SNO=S186关系演算ALPHA胯喇君奖予革笋亡卡捷奠苫渗桨冻锁鲁郊屠郁踌候馋型粕肮碱蹲串檬什扳数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例例求学校共有多少个系GETW(COUNT(S.DEPT)COUNT函数自动消去重复行,可计算字段”DEPT”不同值的数目。87关系演算ALPHA郴拘乃鼎肥评砰稿瘩擎飞绍辫敦焉辊现想

54、啪肢蝴豺猴甭臻届腔霓叔络恢歌数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra2.数据更新修改:UPDATEa.读数据:使用HOLD语句将要修改的元组从数据库中读到工作空间中;b.修改:利用宿主语言修改工作空间中元组的属性;c.送回:使用UPDATE语句将修改后的元组送回数据库中。这里HOLD语句是带上并发控制的GET语句。例把刘伟教师转到信息系。HOLDW(T.DEPT):T.TN=刘伟MOVE信息TOW.DEPTUPDATEW88关系演算ALPHA皋琵灼缝游碌捐境添失慈夹伯淀训锈图售互恳且元屑货竞蓖辕孰饯诊幻粥数据库应用第2章Relatio

55、nalAlgebra数据库应用第2章RelationalAlgebra在ALPHA语言中,不允许修改关系的主码,例如不能使用UPDATE语句修改教师表T中的教师号。如果要修改主码,应该先使用删除操作删除该元组,再插入一条具有新主码值的元组。89关系演算ALPHA赎莽存脏镰米亩涕曳磷仿县沈桓丛沟欠粒械羡韭标狮猾桨芝彰镁尊练锣捧数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra插入插入操作使用PUT语句实现,具体操作分为以下两步:a.建立新元组:利用宿主语言在工作空间中建立新元组;b.写数据:使用PUT语句将元组写入到指定的关系中。90关系演算AL

56、PHA庸赘相州另诡健哉潜喳瞥淮维宾显多协忧场歼房谦颠座最屎巫尖蛛泥丧阴数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例在SC表中插入一条选课记录(S6,C1,85)。MOVES6TOW.SNOMOVEC1TOW.CNOMOVE85TOW.SCOREPUTW(SC)PUT语句的作用是把工作空间W中的数据写到数据库中,此例即把已经在工作空间建立的一条选课记录写入到选课关系SC中。注意:PUT语句只能对一个关系进行操作,在插入操作时,拒绝接受主码相同的元组。91关系演算ALPHA稍俺葱米曳胃潜博丹睁怎远胁良幂爱骡仑呻游咖酪效畴躺炮代足呻盔膊车数据

57、库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra删除ALPHA语言中的删除操作不但可以删除关系中的一些元组,还可以删除一个关系。删除操作使用DELETE语句实现,具体操作分为以下两步:a.读数据:使用HOLD语句将要删除的元组从数据库中读到工作空间中;b.删除:使用DELETE语句删除该元组。92关系演算ALPHA港硝涛亮端念门梨侈僻辞靶体振历来妆汲怀撤撞锣涟焊哭亚娶挫腔伏咆粘数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra例删除学号为S6的学生的信息。HOLDW(S):S.SNO=S6DELE

58、TEW例删除全部学生的信息。HOLDW(S)DELETEW93关系演算ALPHA凹呀炒留瓶出至灿免络储屈诚取蔼膛汗石晋侗跟鸭粘腋惯娘挡场舔肛人犹数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraQUEL语言INGRES是加利福尼亚大学研制的关系数据库管理系统,QUEL语言是INGRES系统的查询语言,它以ALHPA语言为基础,具有较为完善的数据定义、数据查询、数据更新、数据控制等功能。QUEL语言既可以作为独立的语言进行交互式操作,也可以作为子语言嵌入到主语言中去。94关系演算QUEL柔殊缩秆呕漂方濒闪卫闰骇遁了椭歧材史虐瓶慢硷声亚牙止嗽诣镭钮

59、络消数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra1.数据定义QUEL语言可以使用CREATE语句定义一个新关系,CREATE语句的一般格式为:CREATE(,)例定义学生关系SCREATES(SNO=C8,SN=C20,AGE=I3,SEX=C2,DEPT=C20)关系定义后可以由定义者撤消,撤消关系使用语句DESTROY例如,撤消学生关系S可以写成:DESTROYS。95关系演算QUEL屉踌呻酵鲜盂粕恋啸善染逞啮喧裳逾咐碉窑悉姿枚史羹督骨的狡陶讳制压数据库应用第2章RelationalAlgebra数据库应用第2章RelationalA

60、lgebra2.数据查询一般格式为:RANGEOFt1ISR1RANGEOFt2ISR2RANGEOFtkISRkRETRIEVE(目标表)WHERE96关系演算QUEL撇蓝假娟贺喇佯一填侠煌祈揍醇违藏纱侍悬苏仗涤执乞獭爱刃砖荣棺搂暗数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra其中t1、t2、tk分别是定义在关系R1、R2、Rk上的元组变量。目标表为查询的目标属性。查询条件是一个逻辑表达式,在表达式中可以使用如下三类运算符:a.比较运算符:,=,;b.逻辑运算符:AND(与),OR(或),NOT(非)c.表示执行次序的括号:()其中,比较

61、运算符的优先级高于逻辑运算符,可以使用()改变它们的优先级。97关系演算QUEL念能放洛捣款剑殃豆晴摈赚怪训瞳丑流爱跳私呕懊窗呜嗡赖潞汾涯蕾欧祝数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra3.数据更新修改修改操作使用REPLACE语句实现。例把刘伟教师转到信息系。RANGEOFTXISTREPLACE(TX.DEPT=信息)WHERETX.TN=刘伟插入插入操作使用APPEND语句实现。例在SC表中插入一条选课记录(S6,C2,80)。APPENDTOSC(SNO=S6,CNO=C2,SCORE=80)98关系演算QUEL堆壳扳掣萍哥咱哀

62、懈录舔腊颓祭抹谓积纲瘟钎警刹采舜纠霞吴蓟炊寿跨涛数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraQBE由QUEL发展而来基于域演算SEQUELSQL前身介于关系代数与元组演算99其它关系演算语言捧瞒廊惶巳赵傅尘酞植煌刨束迷它售涟拾株哮笨嚷舞掺盗蛹嫌乏抉刮甄镶数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebraSQL语言(StructuredQueryLanguage)由SEQUEL发展而来介于关系代数与元组演算100SQL谓处气进护迭冶仰邑览趁氧仲犀啪谆坯翘伞即做租慷赋袄攘剿扰碌雏刀例数据库应用第2章RelationalAlgebra数据库应用第2章RelationalAlgebra

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号