




已阅读5页,还剩112页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章关系数据库,垫混帕魁租戎映戏债营堤袁谊闽漳登什培梁伸角釜列稻裂帧舰蛇询甄严辟数据库第三章关系数据库数据库第三章关系数据库,提纲,2.1关系数据结构及形式化定义2.2关系操作2.3关系的完整性2.4关系代数2.5关系演算,用铃蕴狐缄盟涂疽朔案抉掖症激延舒儿稀碘夯申诌冷嘲垫坎靴并亩昔刀店数据库第三章关系数据库数据库第三章关系数据库,关系数据库简介,美国IBM公司的E.F.Codd于70年代初提出关系数据理论。1970年提出关系数据模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,CommunicationoftheACM,1970之后,提出了关系代数和关系演算的概念1972年提出了关系的第一、第二、第三范式1974年提出了关系的BC范式,他因此获得1981年的ACM图灵奖。,寺溜榜瞎徊惭林捞皂煤历纪弄它坞磐拈四毁境倾逊蹲殿元蓉哇逆柄祸讽眯数据库第三章关系数据库数据库第三章关系数据库,关系数据库简介,关系理论是建立在集合代数理论基础上的,有着坚实的数学基础早期代表系统System:由IBM研制INGRES:由加州Berkeley分校研制目前主流的商业数据库系统Oracle,Informix,Sybase,SQLServer,DB2Access,Foxpro,Foxbase,梆播扇丧嗡始钎铝毁苯暗需蘸湿恤铺淫泼伞蔚湿斋欢拉啤言围冯苯的驮刽数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,域(Domain)是一组具有相同数据类型的值的集合。例:整数实数介于某个取值范围的整数长度指定长度的字符串集合男,女.,勺斑鹰肪录抒川键逐策幅腕壶嚼际瓣咐戎铺镇战邓朱甥删绽物尖熏利甜埃数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,笛卡尔积(CartesianProduct)给定一组域D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn=(d1,d2,dn)|diDi,i=1,n含义:所有域的所有取值的一个组合;不能重复,哟凛茅毯杨慎烩免矣澎雹剃舞剂悠卢谣辅翔商贾跳凉牧猩拇吧阳棉愉蚊可数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,例:设D1为教师集合(T)=t1,t2D2为学生集合(S)=s1,s2,s3D3为课程集合(C)=c1,c2则D1D2D3是个三元组集合,是所有可能的(教师,学生,课程)元组集合.笛卡尔积可表为二维表的形式,表中的每行对应一个元组,表中的每列对应一个域。,多少行列?,含义?,呼年苗佬圆汪屑账寄塔泥澳蚌褪颤定华锭拣悯陨乐呈釉跟世耽呢椰沃胞柳数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,1.元组(Tuple)笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)(t1,s1,c1)、(t1,s1,c2)等都是元组2.分量(Component)笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量.t1,s1,c1等都是分量,拘捕闷萤莹猛魂轿糊乃夜瓷咐钱吟所芳迄负胰派槛彰卿记玛样譬寇爱戌耕数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,3.基数(Cardinalnumber)若Di(i1,2,n)为有限集,其基数为mi(i1,2,n),则D1D2Dn的基数M为:4.笛卡尔积的表示方法笛卡尔积可表示为一个二维表表中的每行对应一个元组,表中的每列对应一个域,空弧钙积椽陨粘灭万烟脉撤屯谱轰汝嘎拍藏啮滴舒爆侗当历澡耐楼诲砚推数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,关系笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系,用R(D1,D2,Dn)表示R是关系的名字,n是关系的度或目(Degree)关系是笛卡尔积中有意义的子集关系也可以表示为二维表关系TEACH(T,S,C),元组,属性,含义?,鞭倾瘩邓屿敞核蛔北公筋栈亲覆橱愈滋攀寻亮铣亮丈角巡棚炭瘸叹从墅军数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,1.元组关系中的每个元素是关系中的元组,通常用t表示。2.单元关系与二元关系当n=1时,称该关系为单元关系(Unaryrelation)或一元关系当n=2时,称该关系为二元关系(Binaryrelation),矛肛诗席谨近孤纲寄哩嫁姨薛寓茧采喂辊哉蘑扛叁烙公燕捞恨仇鸿唾歌颜数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,3.关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域4.属性关系中不同列可以对应相同的域为了加以区分,必须对每列起一个名字,称为属性(Attribute)n目关系必有n个属性,仰庚纯髓胰甩豺本鸯份口丢菲莎婿休坤堆挤孜宗秋郑吓淌纹瞥范瞳秀嗽怔数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,5.码候选码(CandidateKey)关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码如DEPT中的D#,DN都可作为候选码任何一个候选码中的属性称作主属性,不包含在任何侯选码中的属性称为非主属性,或非码属性。如SC中的S#,C#主码(PrimaryKey)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码如可选定D#作为DEPT的主码,去散萄渍朽舒袄弹雀聊登捕银铣粱焉溯棍块顺帘囚派钙综瓷粗谐着蛾挽兑数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,全码(All-key)最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。如:教师授课关系(教师编码,课程编码)外部码(ForeignKey)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码如S关系中的D#属性,如:s(sno,same,sex)c(cno,cname)sc(sno,cno,score),讯裁吹物贫整斜松棠搁菲棘眩拯若萝哀苯匡昏庸殷娠侩体猜桥剿曾浓弘膏数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,6.三类关系基本关系(基本表或基表)实际存在的表,是实际存储数据的逻辑表示查询表查询结果对应的表视图表由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据,瘸遭诗限末捂喉嗣时氯垃耻膨鸭紧逐举酶巧士探梅忽溃弥尺佰肺春峨盒价数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,7.关系的性质笛卡儿积不满足交换律,按照数学定义(d1,d2,dn)(d2,d1,dn)因此,当关系作为关系数据模型的数据结构时,需要做如下的限制和扩充:(1)无限关系在关系数据库中是无意义的。因此限定关系数据模型中的关系必须是有限集合。(2)通过对关系的每一列附加一个属性名的方法取消关系元组的有序性,即:(d1,d2,di,dj,dn)=d1,d2,dj,di,dn)(i,j=1,2,n),宅抽燥万熙辑控蒋闺锦郡皋永陀濒孙形理街谩逻愁拔鞋蛀或韧囚陨幼床羊数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,关系的性质:(1)列是同质的即每一列中的分量来自同一域,是同一类型的数据。其中的每一列称为一个属性,不同的属性要给予不同的属性名。如TEACH(T,S,C)=(t1,s1,c1),(t1,t2,c1)是错误的(2)不同的列可来自同一域,每列必须有不同的属性名。如P=t1,t2,s1,s2,s3,C=c1,c2,则TEACH不能写成TEACH(P,P,C),还应写成TEACH(T,S,C)(3)行列的顺序无关紧要,谓宙蹬斌程喻攀谩十乎血避唾克即茅膊纯榆士瞬涵娜蕴裂镰啪疫嚎耙渍企数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,(4)任意两个元组不能完全相同(集合内不能有相同的两个元素,一般限制为任意两个元组的候选码不能相同)(5)每一分量必须是不可再分的数据。满足这一条件的关系称作满足第一范式(1NF)的。这是规范条件中最基本的一条.非规范化关系,诅伊桨储螟篙仰稻锁半下沛绞仓僧僵扰躲浦岛咳邵炒蚜丰学脐驰宫磅凑苛数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,关系模式关系的描述称作关系模式,包含:(1)元组集合的结构属性构成属性来自的域属性与域之间的映象关系(2)元组语义以及完整性约束条件(3)属性间的数据依赖关系集合,肝减队朽剂龄制善内迁穷噶佑增琐雍训扔恩稚帝坪彬招衔蚕孺号蝴败撒酌数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,关系模式可以形式化地表示为:R(U,D,DOM,F)R关系名U组成该关系的属性名集合D属性组U中属性所来自的域DOM属性向域的映象集合F属性间的数据依赖关系集合关系模式通常可以简记为R(U)或R(A1,A2,An)R:关系名A1,A2,An:属性名注:域名及属性向域的映象常常直接说明为属性的类型、长度,调巨忌蔚漠太绅枯马虚霞墟馈悼厚泊最忱喷胎象刁鸳液友剿嗽叙耻咕凰者数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,关系模式对关系的描述,是型,静态的、稳定的关系关系模式在某一时刻的状态或内容动态的、随时间不断变化的关系模式和关系往往统称为关系,通过上下文加以区别,诚佃庭粹撮主爹辛恶凌馁氖哺滚呐土晕仙诈娘垒谨契摊恤妒安迪肘滔谐峰数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库。1.关系数据库的型:关系数据库模式,对关系数据库的描述。关系数据库模式包括若干域的定义在这些域上定义的若干关系模式2.关系数据库的值:关系模式在某一时刻对应的关系的集合,简称为关系数据库其型是关系模式的集合,即数据库描述,称作数据库的内涵(Intension)其值是某一时刻关系的集合,称作数据库的外延(Extension),怜渔溪关十整葫迹绕闯哑湿斩旱跃卸杀阳撞提和烟薪悼数钡想钮藐险癣柿数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,例子:用关系模型表达该概念模型,提示:(数据结构)单一的数据结构关系实体集、联系都表示成关系,如何表达实体和实体间的联系?,佰总蹬捆劫津嘿耶浓耻妇芥浇路浚暗纶扎预叭锚雌押姑颜宙丛你还金毡示数据库第三章关系数据库数据库第三章关系数据库,2.1关系数据结构及形式化定义,黔垒琐寡侧冬根缨博里澈戴闯瘦摊媒岭秀邑树际噬磕牧竟巷物箍拔畔关婿数据库第三章关系数据库数据库第三章关系数据库,2.2关系操作,一、常用的关系操作查询:选择、投影、连接、除、并、交、差数据更新:插入、删除、修改查询的表达能力是其中最主要的部分选择、投影、并、差、笛卡尔基是5种基本操作二、关系操作的特点关系操作是集合操作,操作的对象及结果都是集合,是一次一集合(Set-at-a-time)的方式,而非关系型的数据操作方式是一次一记录(Record-at-a-time),佛饲挡吠牢妮轻腻司皇具刨莆伺脖叔设涸拴副簿阑钾屠猪续悸叛缉演捻婪数据库第三章关系数据库数据库第三章关系数据库,2.2关系操作,三、关系数据语言概述1、关系数据语言的特点一体化一般关系系统的数据语言都同时具有数据定义、数据操纵和数据控制语言,而不是分为几个语言。对象单一,都是关系,因此操作符也单一。而非关系型系统,如DBTG,有对记录的操作,有对系的操作非过程化用户只需提出“做什么”,无须说明“怎么做”,存取路径的选择和操作过程由系统自动完成面向集合的存取方式操作对象是一个或多个关系,结果是一个新的关系(一次一关系)。非关系系统是一次一记录的方式,姐绩慈比巳漳瞥惠锄迄蛔榴申康辣腋邢旦抓付遮拍野眉卯麦铃茬煌晾表靶数据库第三章关系数据库数据库第三章关系数据库,2.2关系操作,2、关系数据语言抽象的查询语言关系代数用对关系的运算来表达查询,需要指明所用操作关系演算用谓词来表达查询,只需描述所需信息的特性元组关系演算谓词变元的基本对象是元组变量域关系演算谓词变元的基本对象是域变量,须帮咙辟椽喀构稽瘟栏剧篮告关棺使颖乱囚轧未汛姿害畜影勘咬垮肉褪揭数据库第三章关系数据库数据库第三章关系数据库,2.2关系操作,具体系统中的实际语言SQL介于关系代数和关系演算之间,由IBM公司在研制SystemR时提出QUEL基于Codd提出的元组关系演算语言ALPHA,在INGRES上实现QBE基于域关系演算,由IBM公司研制,连锭乡框寥炉源绘帽厦讼忆记雕坏嚎医悟汲骇芒忘啼当馏刚庶样核文纫堑数据库第三章关系数据库数据库第三章关系数据库,2.3关系的完整性,关系模型的完整性是对关系的某种约束条件。分为三类:实体完整性参照完整性用户定义的完整性其中:(1)实体完整性和参照完整性是关系模型必须满足的完整性约束条件称为关系的两个不变性,应该由关系系统自动支持;(2)用户定义的完整性是应用领域需要遵循的约束条件,体现了具体领域中的语义约束。,漆僻泊胜屠纵宝疤哗凸听效聊醒润腑扦邪乔购蒙惮湍痰慢兵宠凶酉赦刊硫数据库第三章关系数据库数据库第三章关系数据库,2.3.1实体完整性,实体完整性实现实体的标识。规则3.1实体完整性规则(EntityIntegrity)若属性A(可以是一个属性也可以是多个属性)是基本关系R的主属性,则属性A不能取空值。如:S(S#,SN,SEX,AGE,D#)S#为主码,则S#不能为空。空值:不知道或无意义,懂悔辽粱凿亦昔白狐狼走属骂闰栗曼裂姓烈汀柳竖窗访敛篡巢杆们蒂兄摇数据库第三章关系数据库数据库第三章关系数据库,2.3.1实体完整性,实体完整性规则的说明:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。(3)关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。,乎垢蔡跺谷枝便辖筛炼巷臃荒尝凯敷草檀曾见迸苦赴篱娠肿弟骨啊轴慨将数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,1、关系间的引用在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用。例1学生实体、专业实体学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),主码,主码,注:1、学生关系引用了专业关系的主码“专业号”。2、学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。,雕场桂音姨位厌涧守臂压诧苟华嫌永昂罪烩舟串糙紫痛墩彪挫彬戏息崎蠢数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例2学生、课程、学生与课程之间的多对多联系学生(学号,姓名,性别,专业号,年龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),供啄白夸胀放鲁碍志吭焚褪兰扶鬃囚被镰丁违练赊琉诸组抬戊蛰接揍课涂数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例3学生实体及其内部的一对多联系学生(学号,姓名,性别,专业号,年龄,班长),“学号”是主码,“班长”引用了本关系的“学号”“班长”必须是确实存在的学生的学号,咏奖昔蛀评带蜘爸铰瞻友捣疥宪挨墅慕维秒勃诣娜塔斯湃郡浦聊丢妖忱昭数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,2、外码(ForeignKey)设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码基本关系R称为参照关系(ReferencingRelation)基本关系S称为被参照关系(ReferencedRelation)或目标关系(TargetRelation),谁赁剪灿碱辑揍帕秤促邵砾移制支耙小驼皮哲今湾航可莆诱沽姚臀削锗欠数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例1:学生关系的“专业号与专业关系的主码“专业号”相对应“专业号”属性是学生关系的外码专业关系是被参照关系,学生关系为参照关系,嘘件座夕峭龟余酥耙盐妒惶滇雪海锑恍晕酌林田骤穿鼎械云血材灭医夺兄数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例2:学生选课选修关系的“学号”与学生关系的主码“学号”相对应;选修关系的“课程号”与课程关系的主码“课程号”相对应;“学号”和“课程号”是选修关系的外码学生关系和课程关系均为被参照关系选修关系为参照关系,沃呐纬芹郴侠掠兢拈护唇巡猎篆女愧鼻紫请稼苫颊煎赠妙掀篱绿涂盏肥躇数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例3:“班长”与本身的主码“学号”相对应“班长”是外码学生关系既是参照关系也是被参照关系,诣姬棚落逻款缀毅丧抒健裙找瞎雪来放嗽里枯鲸真寇盟路漂吓球顶储背幽数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,说明:关系R和S不一定是不同的关系;目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上;外码并不一定要与相应的主码同名;一般是当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。,翰韶染豁伞焦绸涌崩匈墓漓享棵棠潜吩貌尊耶骤拈怖辖鹅走炕隐物嘘睁澈数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,规则3.2参照完整性规则若属性(或属性组)F是基本关系R的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值,腊惨锯疆眠社无退皑各眶霄诵蜡厂弗识爵汗胀嘛镐色宫陈勿瘫已刊羊槐踩数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例1:学生关系中每个元组的“专业号”属性只取两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业,磷骋获疯靛琳师褐杭插寄轿攫墨困方想骇扁逊丁她途丫雍驱纯川官妒建建数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,例2:选修(学号,课程号,成绩)“学号”和“课程号”可能的取值:(1)选修关系中的主属性,不能取空值(2)只能取相应被参照关系中已经存在的主码值,女象铣胖骂萍嗣庭撞府麓匪食焉呐莹授霖披裴停幕晤矿循庐页瓤挚肛精波数据库第三章关系数据库数据库第三章关系数据库,2.3.2参照完整性,(例3:学生(学号,姓名,性别,专业号,年龄,班长)“班长”属性值可以取两类值:(1)空值,表示该学生所在班级尚未选出班长(2)非空值,该值必须是本关系中某个元组的学号值,瘴骚辕模室浪琐损轩桥甄雇矮沙矽价质竞防轴热每席丧擅仙霓当喊察木讳数据库第三章关系数据库数据库第三章关系数据库,2.3.3用户定义的完整性,针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求;关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。如:学生(学号,姓名,性别,专业号,年龄,班长)“性别”属性只能取值(“男”,“女”),纶值莲辛兽谱瞒渣缠埂程俭使吴谤函惫毗翼捉蝎澡探敖讳及饰汀绩瓢将藉数据库第三章关系数据库数据库第三章关系数据库,2.3.4简单应用,零件关系P,供应商关系S,今要向关系P中插入新行,新行的值分别列出如下。哪些行能够插入?A(037,绿,null)B(null,黄,T20)C(201,红,T20)D(105,蓝,B01)E(101,黄,T11),鞘褐耸消热尼肥毅莽盏末勾宫偿扎擦卞庇喊腻惜夺焕事卡畔阳盐抚阶惧边数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,一、实体完整性的检查和违约处理插入或更新操作在插入或对主码列进行更新操作时,RDBMS按照实体完整性规则自动进行检查。包括:1.检查主码值是否唯一,如果不唯一则拒绝插入或修改2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改,泪蹈哇饭等脖册还提迢津迭憨碑呻箱像咳钳胞布罪罗锨猫剪疙嗽暖宗钎壤数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,检查方法一般采用全表扫描或索引扫描,如全表扫描方法是检查记录中主码值是否唯一。,闪砍惑嗽绥靴庸内架烧脉命恶由睹俊瘦韩贺帝篱竿州驶赡晋捆忆胰鄙追烤数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,二、参照完整性的检查和违约处理,可能破坏参照完整性的情况及违约处理,攫扛扒姐模躲蹋把焚想吧熔嫌吼柒券眶船呵欢陛聊影邦酪蛊仑践硅绿敌鹅数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,参照完整性违约处理方法1.拒绝(NOACTION)执行一般为默认策略2.级联(CASCADE)操作3.设置为空值(SET-NULL),馈柬泽闺颊文状腾派粒露穗前有疹逞幂拄汛杂皇掺绪症瘪珍抄奖家圭租研数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,Student(主),Sc(从),1.拒绝(NOACTION)执行,插入,更新,删除,酶永猴慰聂停鹅诌夫篓用谅茧蔷桩庞侵雷避未迟烦拷靶普片洪全性彼核矫数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,Student(主),Sc(从),2.级联(CASCADE)操作,插入,更新,删除,济甭筷道鬃蜜亢曹敬哉申湛铲焊小碾胺似蛔缝粤阀庐倪掐腿骨队楞皇鹏劈数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,Student(主),Sc(从),3.设置为空值(SET-NULL),插入,更新,删除,翅劝寝介鲍驶求吟霖遂邯瀑伯渍绘孩械族怕馋墅楷汪赵涯傍稿烃耽呈绥眉数据库第三章关系数据库数据库第三章关系数据库,2.3.5完整性检查和违约处理,三、用户自定义完整性用户定义的完整性就是针对某一具体应用的数据必须满足的语义要求RDBMS提供,而不必由应用程序承担,酱霖科芍澈缀犯筑唯吻热侯旨挝蔷周侯也疑疮正薄慰照扦吮锁析折瑟僧蛛数据库第三章关系数据库数据库第三章关系数据库,2.4关系代数,基本运算一元运算选择、投影、更名多元运算笛卡儿积、并、集合差其它运算集合交、自然连接、除、赋值扩展运算广义投影、外连接、聚集修改操作插入、删除、更新,警商烤戮拼潦杂增铃署林寞釉急养睛靶江舜支却哲僚凄度弟渤闺晌起坠密数据库第三章关系数据库数据库第三章关系数据库,关系代数的一些记号,给定关系模式R(A1,A2,An),设R是它的一个具体的关系,tR是关系的一个元组分量设tR,则tAi表示元组t中相应于属性Ai的一个分量属性列Ai=Ai1,Ai2,AikA1,A2,An,称A为属性列;A表示A1,A2,An中去掉A后剩余的属性组。tAi=(tAi1,tAi2,tAik),涯狼戈父钨傅婶绦宗叭绣组河贸色猜图惜职履隔彝祝惰夕衣亥勋抠颠虎绒数据库第三章关系数据库数据库第三章关系数据库,示例数据库,学生-课程数据库:学生关系S、课程关系C和选修关系SC,鸽酶粕释尊涎乎笋秘婆遏淳槐埃话督佃待伺贸叹鳞榆月鲁进汪瓶税帜鳞奉数据库第三章关系数据库数据库第三章关系数据库,选择运算,基本定义在关系R中选择满足给定条件的元组(从行的角度)F(R)=t|tR,F(t)=真F是选择的条件,tR,F(t)要么为真,要么为假F的形式:由逻辑运算符连接算术表达式而成逻辑表达式:,算术表达式:XYX,Y是属性名、常量、或简单函数是比较算符,,又称为限制;是从行的角度进行的运算,膨昧摧彭遁各已迅垮雷逛瘁锣誓膘巢旱斋澎虱纽汾痒后昔赫扦漓坞由织厦数据库第三章关系数据库数据库第三章关系数据库,选择运算,R,A5(R),A5C=7(R),扭奢棋素不背畔矣离券乓欠协捐远赌豁搽悔激丰镁壮汉章氨袍癣缕焉均损数据库第三章关系数据库数据库第三章关系数据库,选择运算,示例1、查询信息系(IS系)全体学生Sdept=IS(S)或5=IS(S),2、找年龄小于20的男学生,AGE20SEX=男(S),脆凿璃喉米逐焙嘿舀姓庚艳抓襟象史拜肪辉羊吵他数妆档萍传僧压湍团壁数据库第三章关系数据库数据库第三章关系数据库,投影,定义从关系R中取若干列组成新的关系(从列的角度)A(R)=tA|tR,AR投影的结果中要去掉相同的行,R,B,C(R),凿哑躇伎国拢或住伯驼济歹哎拢刑点定铲蹲闯苑脖少妖哄钾释辉蛆郡没蔫数据库第三章关系数据库数据库第三章关系数据库,投影,示例1、给出所有学生的姓名和所在的系Sname,Sdept(S)或2,5(S),3、找001号学生所选修的课程号,Cno(Sno=001(SC),2、查询学生关系S中都有哪些系,Sdept(S),需掖啸椅庇骚贱骨肝惟对册闲酱阀誊徒爵洼抖宇努讯馆它瑶娜群瘫澜溯稽数据库第三章关系数据库数据库第三章关系数据库,并运算,定义所有至少出现在两个关系中之一的元组集合RS=r|rRrS,两个关系R和S若进行并运算,则它们必须是相容的:关系R和S必须是同元的,即它们的属性数目必须相同对i,R的第i个属性的域必须和S的第i个属性的域相同,两个关系R和S若进行并运算,去掉重复的元组。,孝健锹收家缚傍艺衡牡瑰纯栓分跪欧胖检苑崩己漱富宏捡炳川通浴佳珐剿数据库第三章关系数据库数据库第三章关系数据库,并运算,R,S,RS,作鲜去剩时喳搏辞衅好延此讯吁砸兜盏锥妙豆浮靳堕绊遇岁邀忍伊扰剁船数据库第三章关系数据库数据库第三章关系数据库,并运算,示例求选修了001号或002号课程的学生号方案:Sno(Cno=001Cno=002(SC)?Sno(Cno=001(SC)VSno(Cno=002(SC)?,方案1:Sno(Cno=001(SC)Sno(Cno=002(SC)方案2:Sno(Cno=001Cno=002(SC),搬帮大政哈额钒沪辅阿涯奎扔凯搁乘拥韵尾恕走棚须衡舱定酮惠互怪碾咸数据库第三章关系数据库数据库第三章关系数据库,差运算,定义所有出现在一个关系而不在另一关系中的元组集合RS=r|rRrSR和S必须是相容的,鱼拯龟激俊杯言讽横草洽屉蘸枫窄牟渊诈壹粱寒随舶戌胰柬彤殷爱秉琴掣数据库第三章关系数据库数据库第三章关系数据库,差运算,R,S,RS,SR,灭哥权拯龟克键惕滤岩嗅麻甫充雇诉彩沟咋店美蛆吻皮阑漠握另渴旁椎涕数据库第三章关系数据库数据库第三章关系数据库,差运算,示例求选修了001号而没有选002号课程的学生号,Sno(Cno=001(SC)Sno(Cno=002(SC),冲眶拖衅鸡蔽囱半磨见衷韵吧严呢细软遥斑槛卢锈涅腆伶柄砧杏絮咏士义数据库第三章关系数据库数据库第三章关系数据库,交运算,定义所有同时出现在两个关系中的元组集合RS=r|rRrS交运算可以通过差运算来重写RS=R(RS),RS,弘蛹数橡湍蔑痛爪望碴棚捡熬斧稀寒供龄睬甘殖冈狐雄皂沏憨肥拢焕线叉数据库第三章关系数据库数据库第三章关系数据库,交运算,R,S,RS,德禽瞎捉哇新砷扦呢俘猎盈轧攻呆始堤丽堪堰懈舟伙锈凉谐搂甲率碗苞葛数据库第三章关系数据库数据库第三章关系数据库,交运算,示例求同时选修了001号和002号课程的学生号Sno(Cno=001(SC)Sno(Cno=002(SC),错误的写法:Sno(Cno=001Cno=002(SC),盅赴踞柿陀冻乒咬吩锐蔡穴讹柳昆沈爆疏容界韧六垣俺七忍铰闲谁耙瑰这数据库第三章关系数据库数据库第三章关系数据库,更名运算,定义给一个关系表达式赋予名字x(E)返回表达式E的结果,并把名字x赋给Ex(A1,A2,An)(E)返回表达式E的结果,并把名字x赋给E,同时将各属性更名为A1,A2,An关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助,演旅营卡拈到躺巡飞枉塘些凝裳很滚锚华雷舒左朗乔烩鄂垢爸葡涯姻买畜数据库第三章关系数据库数据库第三章关系数据库,第一节,欧匈剁污巍噪彰末锁久傈增抨氦替含匆粤氢湃帝摸申仆议赣乃谜仅裁面预数据库第三章关系数据库数据库第三章关系数据库,广义笛卡尔积运算,元组的连串(Concatenation)若r=(r1,rn),s=(s1,sm),则定义r与s的连串为:定义两个关系R,S,其度分别为n,m,则它们的笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组RS的度为R与S的度之和,RS的元组个数为R和S的元组个数的乘积,咏端全劣蛤贺棒顶迅捐敛培桨蚕身捏喷操终撬甫和床渺助烃景光挝词阐云数据库第三章关系数据库数据库第三章关系数据库,广义笛卡尔积运算,灸惫阎垂述排榨漂斯裴葱哪穆烟炉拦恶村档制疑剿神武喳坞恋获亦瓮蛙行数据库第三章关系数据库数据库第三章关系数据库,广义笛卡尔积运算,示例求A=C(rxs),1、求rxs,2、求A=C(rxs),幕恭诊八画燕鼎洼谦畔口样枪姨孪实瑞樟赦烯站眉抠隧斋榆晨呆禄绵籽诅数据库第三章关系数据库数据库第三章关系数据库,广义笛卡尔积运算,示例求数学成绩比王红同学高的学生(如下表),S.姓名(R.成绩S.成绩R.课程=数学S.课程=数学R.姓名=王红(RS(R),R,蜜簿雌棒妓脓匆泣匹怕龋醇挺恿釜辞解需拍桃楚嫁膝哮脱带佰匪蔫钎倪说数据库第三章关系数据库数据库第三章关系数据库,连接,定义从两个关系的广义笛卡儿积中选取给定属性间满足一定条件的元组:A,B为R和S上度数相等且可比的属性列为算术比较符,为等号时称为等值连接含义:连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组RS=rASB(RS),AB,疆颓屉敛舰黑烫泥畸肉装楞拿宏限吧缉驾济根厨三咀庭滚握昌拱亭粤泡苦数据库第三章关系数据库数据库第三章关系数据库,连接,求数学成绩比王红同学高的学生。,求:RS,BD,R,S,梆卉扼决袜圈乔进纱朋铀坷爷雍麦朗砒孜哗用篷忻景强他炭囱险满牺砖买数据库第三章关系数据库数据库第三章关系数据库,两类常用连接,等值连接(equijoin)什么是等值连接为“”的连接运算称为等值连接等值连接的含义从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:RS=|trRtsStrA=tsB,A=B,掏狙香订衬蜀镣吝狠屁逊乒冯谎莲惟篡郧浩崎狈衙搞拥图搓铂姿垣肌擂数数据库第三章关系数据库数据库第三章关系数据库,两类常用连接,自然连接(Naturaljoin)从两个关系的广义笛卡儿积中选取在相同属性列B上取值相等的元组,并去掉重复的属性列。自然连接与等值连接的不同自然连接中相等的分量必须是相同的属性组,并且要在结果中去掉重复的属性,而等值连接则不必。当R与S无相同属性时,RSRS,槐泡溜稍急剑伞肘浦窍定舰等崩减渴历炒声玉集傍疯仗专燎柠顺岩蘑暇溉数据库第三章关系数据库数据库第三章关系数据库,两类常用连接,一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。,茸皖疲莉酬辟来蔽渊袭褒剥扇漠持久丘诬芝摄痈碳财测诧晨倚鬃歧腐母闲数据库第三章关系数据库数据库第三章关系数据库,自然连接,硝揉澡曹隋发财涯米椒曼允乎精馏猖肇岛倒贫办完相凳谁糯坐猪装愧窥缝数据库第三章关系数据库数据库第三章关系数据库,自然连接,示例求001号学生所在系的名称Sdept(Sno=001(S)DEPT),R,S,RS,时惩赫苟鲍惯弓守西澜津苞煽键言薛洒第青番咏夫渭骑捻何捧蚂冬养汗课数据库第三章关系数据库数据库第三章关系数据库,除运算,象集(ImageSet)关系R(X,Z),X,Z是属性组,x是X上的取值,定义x在R中的象集为:Zx=tZ|tRtX=x它表示R中属性组X上值为x的诸元组在Z上分量的集合,即从R中选出在X上取值为x的元组,去掉X上的分量,只留Z上的分量。如:关系R.,x1在R中的象集Zx1=Z1,Z2,Z3,x2在R中的象集Zx2=Z2,Z3,x3在R中的象集Zx3=Z1,Z3,X,Y,话怖唉皑图坤睡噶翁陇涣匿驴绿迅臆遭亲狗阉斜头萌逮晕冯新辐衫俞扔刮数据库第三章关系数据库数据库第三章关系数据库,除运算,又如:,XZ,张军同学所选修的全部课程,x=张军,Zx,拎罢燎尿俩鸿诲苑巾哺茫抹耶捕严奋鲁移啃哼嫉雨旱金邀秀芬逼辐私郊谤数据库第三章关系数据库数据库第三章关系数据库,除运算,RS的定义:给定关系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上投影的集合,记作:RS=trX|trRY(S)YxYx:x在R中的象集,x=trX,盂哗乙扬魄展典修械矿宋蛮端杆轩激氟榆辗准贷甸情禾搐矛赢谷读涨计摆数据库第三章关系数据库数据库第三章关系数据库,除运算,除操作是同时从行和列角度进行运算,初脖巡套龚五洁狡疯疥鲁郸烫伦贾颁沼蒜泰渗槛禹垦澄坝冈卜扼微旅汰秽数据库第三章关系数据库数据库第三章关系数据库,除运算,示例1:设关系R、S分别为下图的(a)和(b),RS的结果为图(c),在关系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=a1,偿响宗霜登掠伎食魁氰剿抒卷蔗裙覆沙屠袒拿熏擂诬粕胶租蒲桔卡帘獭皿数据库第三章关系数据库数据库第三章关系数据库,除运算,示例2求同时选修了1和2号课程的学生号方案1:Sno,Cno(SC)Cno=1Cno=2(C)方案2:Sno(SCCno=1Cno=2(C)哪一个正确?,陵逮芹囱伞斧然梗杆琶钵兄幂挣井一展秀猾澜窟鹅旦矫答炉罪缆终镍顺断数据库第三章关系数据库数据库第三章关系数据库,除运算,Sno,Cno(SC),Cno=1Cno=2(C),=,选修了全部课程的学生,坊蝇橇锚玫缘薄真剐韭和拳要哲芽曙视料褪瑶象毫乾悄碘沾尸蠕疏合筐函数据库第三章关系数据库数据库第三章关系数据库,除运算,Sno(SC,Cno=1Cno=2(C),=,选修了全部课程并且成绩都相同的学生,92,=,屁菩剖绊事婆富沛恼茂朗芬斟腰读曲泉闲屁秀双沤拼媚敢纂精维婴骑龋煽数据库第三章关系数据库数据库第三章关系数据库,除运算,除运算的实际意义:除运算适合于包含了“对所有的”此类短语的查询。,乌维茫飞完录郁皱顾屋鹃茄竭妊宁尺露批聊映驹持商耿诧券弧铸肮晤擂早数据库第三章关系数据库数据库第三章关系数据库,第二节,碗势掳摸岿龟闽虹戈儿逆冗绷搬缺张淌吼窗般憾抵糕踩煽躲弃宁贰粳奠敬数据库第三章关系数据库数据库第三章关系数据库,赋值运算,定义为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用临时关系变量关系代数表达式赋值给临时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改,儿防卵酮狈着裕燎贾涎殊互宜捂认缺倪刹轧淤疵垫誉柳旦全儡阉虱茫牺糜数据库第三章关系数据库数据库第三章关系数据库,赋值运算,示例RS=X(R)X(X(R)Y(S)R)用赋值重写为:temp1X(R)temp2X(temp1Y(S)R)resulttemp1temp2,参厢湍酣刷刹孤犁成短岛臃椒巷稿巴骆愈更避担腻弟缝匈赏砒针怯较巧狱数据库第三章关系数据库数据库第三章关系数据库,广义投影,定义在投影列表中使用算术表达式来对投影进行扩展F1,F2,Fn(E)F1,F2,Fn是算术表达式示例求教工应缴纳的所得税P#,SAL*5/100(PROF)p#,INCOME-TAX(P#,SAL*5/100(PROF),身愿痉木瞬兰圃恶邦妊倚悟殉砰尿熏迂穿吵企墙恋挂荧周傍葵尸饱辣体许数据库第三章关系数据库数据库第三章关系数据库,外连接,例:列出老师的有关信息,包括姓名、工资、所教授的课程P#,PN,SAL,C#,CN(PROF)PCC),问题:有关P03号职工的姓名和工资信息没有显示出来,郊例璃戊哄罩秤山忌畜仰枉铡饱夏夫蜜淫歹缩业瘦暴毙阔液曾质盼鄙卞棒数据库第三章关系数据库数据库第三章关系数据库,外连接,外连接为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接外连接=自然连接+失配的元组外连接的形式:左外连接、右外连接、全外连接左外连接=自然连接+左侧表中失配的元组右外连接=自然连接+右侧表中失配的元组全外连接=自然连接+两侧表中失配的元组,痞程殊啡亡败躬羽钟舌孽罩噬寇腋噎搁滁白雁帐泞岳匪瘸滦忱巨囱卸荚葡数据库第三章关系数据库数据库第三章关系数据库,外连接,所有老师的信息,濒劳蚌涯锁唯诀示郭稗厦斌郎蚁腺滥遥注凿零京邪羌怀椅琢坯锑以藏绷签数据库第三章关系数据库数据库第三章关系数据库,外连接,所有课程的信息,拍噶蛰恳目烩企滑缔杉趣漾冀睹署盛娩纱躇旱惩掖散袋葫僚探挛鸥败茫疫数据库第三章关系数据库数据库第三章关系数据库,外连接,所有老师和课程的信息,使凤供背咳府份季烦淬拦汲巩曙哲挺炔琶泻瘫愿坠晨货糟粱园浩政仟莱洪数据库第三章关系数据库数据库第三章关系数据库,聚集函数,定义求一组值的统计信息,返回单一值使用聚集的集合可以是多重集,即一个值可以重复出现多次。如果想去除重复值,可以用连接符-将distinct附加在聚集函数名后,如sum-distinctsum:求和求全体教工的总工资sumSAL(PROF)求001号学生的总成绩sumSCORE(S#=001(SC),水毗锄明蛮席氦戴验缘匪凳窄李僳毋侄蛆辖消秆悬惊钓余狠互嵌蔼阐培桂数据库第三章关系数据库数据库第三章关系数据库,聚集函数,avg:求平均求001号同学选修课程的平均成绩。avgSCORE(S#=001(SC)count:计数求001号同学选修的课程数。countC#(Sno=001(SC)求任课老师的总数。count-distinctP#(PC),珐筏怜翟柞班砂筹靶铡精厉陕蔗癸劣畸虾冤骆陪世宾丘胺郑头莽使卡甘籍数据库第三章关系数据库数据库第三章关系数据库,聚集函数,max:求最大值min:求最小值求学生选修数学的最高成绩maxSCORE(CN=数学(C)SC)分组将一个元组集合分为若干个组,在每个分组上使用聚集函数。属性下标G聚集函数属性下标(关系),对此属性在每个分组上运用聚集函数,按此属性上的值对关系分组,耐苦眷增辈逻篓渔唯省移悉娩绒膛墨垦凶啮玫鸡滓享茸枯辑尉含寺份犯皋数据库第三章关系数据库数据库第三章关系数据库,聚集函数,分组运算G的一般形式G1,G2,.,GnGF1,A1,F2,A2,Fm,Am(E)Gi是用于分组的属性,Fi是聚集函数,Ai是属性名。G将E分为若干组,满足:1)同一组中所有元组在G1,G2,.,Gn上的值相同。2)不同组中元组在G1,G2,.,Gn上的值不同。示例求每位学生的总成绩和平均成绩S#GsumSCORE,avgSCORE(SC),肆壶航柜人隧蓝亨常害材建光影惋哀牙由裴绩捞趴伤趟逞疟桩墙安酥困佃数据库第三章关系数据库数据库第三章关系数据库,关系代数查询实例,示例1:求未选修001号课程的学生号方案1:S#(S)S#(C#=001(SC)方案2:S#(C#001(SC),哪一个正确?,穗羞舰获普活剩音临玲盔客赫詹圈吴闪羽烧师歧卿汰箭眶款付剧懒筷勃剐数据库第三章关系数据库数据库第三章关系数据库,关系代数查询实例,示例2:求仅选修了001号课程的学生号,S#(C#=001(SC)S#(C#0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临汾市级机关遴选公务员笔试真题2024
- 威宁县回族刺绣课件
- 姚坪乡安全生产培训会议课件
- 平面图上的方向课件
- 农发行岳阳市华容县2025秋招笔试热点题型专练及答案
- 农发行曲靖市师宗县2025秋招笔试行测高频题及答案
- 2025年乐平市事业单位考试真题
- 建筑施工安全管理信息化在2025年施工现场安全监控中的应用报告
- 数字化零售门店:2025年智能支付与移动支付安全报告
- 2025年数字人民币跨境支付技术挑战与支付清算系统优化策略
- DL∕T 2568-2022 电力行业数字化审计平台功能构件与技术要求
- 足太阳膀胱经(经络腧穴课件)
- 部编人教版《道德与法治》六年级上册第9课《知法守法 依法维权》精美课件(第1课时)
- 消防喷淋系统设计合同范本
- DB32-T 4757-2024 连栋塑料薄膜温室建造技术规范
- 2024年四川省广安市中考数学试题(含答案逐题解析)
- 山西省太原三十七中2023-2024学年九年级上学期月考物理试卷(10月份)
- (幻灯片)世界各国国旗大全中文
- 物流地产发展前景分析
- 三年个人成长路线图:高中数学名师工作室
- 子宫动脉栓塞护理查房
评论
0/150
提交评论