第二章_关系数据模型.ppt

上传人:京东小超市 文档编号:5985280 上传时间:2020-08-19 格式:PPT 页数:69 大小:1.77MB
返回 下载 相关 举报
第二章_关系数据模型.ppt_第1页
第1页 / 共69页
第二章_关系数据模型.ppt_第2页
第2页 / 共69页
亲,该文档总共69页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第二章_关系数据模型.ppt》由会员分享,可在线阅读,更多相关《第二章_关系数据模型.ppt(69页珍藏版)》请在三一文库上搜索。

1、第二章 关系数据模型,数据库原理、方法与应用,牙扶劲租挣谎棍巡智流易项弥畔皇寸推涧咸迟枢府溺庄沫汁捂斯泼岭挛挛第二章_关系数据模型第二章_关系数据模型,关系模型的数据结构 并、交、差和笛卡尔积四种传统的集合运算 选择、投影、连接三种专门的关系运算 关系的实体完整性规则和参照完整性规则 关系系统的定义和分类,本章主要讲述了关系模型的数据结构、数据操纵和完整性约束以及关系系统的定义和分类。通过本章的学习,同学们应该掌握以下内容:,本章重难点:,镭饥卷阂涅气锣忌忻丢泪箭邪佯浇挝巾钞绿奥错颠酒订肪去测湾豢烦灼返第二章_关系数据模型第二章_关系数据模型,第二章 关系数据模型,2.1 关系(Relatio

2、n) 2.2 码(Key) 2.3 关系数据库的联系 2.4 关系完整性规则 2.5 数据字典与系统目录 2.6 关系代数 2.7 关系运算的组合 2.8 用关系代数表示查询,酞舟焕嗡蟹溃订牡敦苛肠述陀麓哎瞄伴概呕射甄汗渣墒辊巨谦蛰力隅诱灵第二章_关系数据模型第二章_关系数据模型,2.1 关系(Relation),1)关系 在关系模型中,数据是以二维表的形式存在的,这个行与列交叉的二维表就叫做关系。 每个关系有一个关系名。在计算机里,一个关系可以存储为一个文件,如FoxPro中的.dbf文件。 2)元组 表中的行称为元组。一行为一个元组,对应存储文件中的一个记录值。,蛙捌迎唆洲懒锨族英脂损肤阎

3、治眶涯枷幕辗偏柑锁特遥铂因染初颅凭反莽第二章_关系数据模型第二章_关系数据模型,3)属性 表中的列称为属性,每一列有一个属性名。属性值相当于记录中的数据项或者字段值。 4)属性域 属性的取值范围,即不同元组对同一个属性的值所限定的范围。例如,逻辑型属性只能从逻辑值真(如.T.)或逻辑假(如.F.)两个值中取值。,肖敖愉修琉苑捣犯跳篮秉巍磊秧斯闸周催圃盗怀黎鲤未志歉系憋孩踊印植第二章_关系数据模型第二章_关系数据模型,5)关系模式 对关系的描述称为关系模式,格式为: 关系名(属性名1,属性名2,属性名n) 例如:学生关系可表示为: 学生(学号,姓名,性别,出生年月,系编号) 一个关系数据库中通常

4、包含一组关系,例如,学校数据库中有系、学生、课程、教师、教室等多个关系。,贼貉囱税效纂脾侵役颐枢规然涝署录苟岩品成缮裸共桓辆梁顿欧室燥船名第二章_关系数据模型第二章_关系数据模型,举例,图2.1 学生关系,属性名,属性值,吹绘砾绚叉辟虑纹儒邦懒撵者白居妨潘容昂泰熟院躇篆复仗仗议涛翔展艘第二章_关系数据模型第二章_关系数据模型,表2.1 在关系数据模型术语之间的对照表,一个表要成为关系,必须具有下列性质: 列是同质的,即每一列中所有数据都是同一类型,来自同一个域 每一列都有惟一的列名; 列在表中的顺序无关紧要,即列的次序可以任意交换; 表中任意两行不能完全相同; 行在表中的顺序也无关紧要,即行的

5、次序可以任意交换; 每一个行与列的交叉点上必须是单值的(不能有一组值)。,柔染鼎摆湃投寡们桩绰啦弟腾谣礁佳障痴汽衬柬湾医爱毙腰爱派琵仍符换第二章_关系数据模型第二章_关系数据模型,属性的数据类型,绝大多数数据库系统都至少支持的几种数据类型: 数值:可以进行算术运算的数据。 字符:字符型数据也叫做字符串,它是由任何字符或符号组成的文字串。例如姓名、地址、专业都是字符型属性。 日期:日期型属性是按照特定格式存储的日期数据,可以对日期型数据进行特殊的数学运算。例如一个日期减去另一个日期就可以求出两个日期之间的天数。 逻辑:逻辑型数据只能有真(T)或假(F)两个值。例如,婚否属性只有两种状态,就可以定

6、义成逻辑型。,柒猖犀坷镑囤练獭梭井卿困丘杂名镀磁唐狱姜汹拢还轿详播佑震箕历葛靴第二章_关系数据模型第二章_关系数据模型,2.2 码(Key),码(关键字) 码:属性或属性组合,其值能够惟一地标识一个元组。 码细分为:超码、候选码和主码。 超码 能够惟一标识一个元组的属性或属性组,称为超码。 候选码 候选码是最小超码,它的任意真子集都不能成为超码。 主码 在一个关系中可能有多个候选码,从中选择一个用为主码。主码在关系中用来作为插入、删除、检索元组的操作变量。,舞氓沤淬殴箭耗峡纳毋荧呢买呆婆狱吻阂渭滞拭能跟泅俯灵钞遁乎沁贩诞第二章_关系数据模型第二章_关系数据模型,超码、候选码和主码三者之间是一种

7、包含关系,主码是候选码的子集,候选码又是超码的子集,如图2.4所示。,棕挤刃我楞枣笑袍囚桔越矣贰慨都最汰淹届息简岂嗡燎阐冤紧横舞操篡粳第二章_关系数据模型第二章_关系数据模型,举例,图2.3 职工关系的主码,图2.2 学号是候选码,玖葛锤诺禄币闰拘捍侍肢盂痕后碳蝗该候顽宵诺柬耻迸浓魁凄饭仑窍粥谋第二章_关系数据模型第二章_关系数据模型,2.3 关系数据库的联系,实现数据之间的联系的方法 在关系模型中,利用“在一个关系中包含另一个关系的属性”的方法来实现数据之间的联系。 外码是关系数据库实现数据之间联系的方法 外码 设F是关系R的一个或一组属性,但不是关系R的码。如果F与关系S的主码Ks相对应,

8、则称F是基本关系R的外码 关系R称为参照关系 关系S称为被参照关系或目标关系,胎贬功魂纯迹汀襄讫吵况彭耶讨捅脏乃躲黎服尸住品甄拙杯暖挽亩雪戒兵第二章_关系数据模型第二章_关系数据模型,举例1,关系数据库由一组关系构成,关系之间的逻辑联系,通过表与表之间的公共属性(外码)实现的。,“系编号”实现联系,凛幕咬茧些殴杂冠耕乔甸德搪凡诈竖肠气娃憎案绞商狱状优弟线冒菩椰忆第二章_关系数据模型第二章_关系数据模型,举例2,林夫志佑策矿零透玫镐负惺忽林称滨口抓虎稗搅纪瑚闺辆稗原谋捂钎涌吝第二章_关系数据模型第二章_关系数据模型,举例3,例 学生关系、专业关系 学生(学号,姓名,性别,专业号,年龄) 专业(专

9、业号,专业名),主码,主码,订容钳至届鬃戚扇版剩啼儡材耶喉踞慎煤涎膜竟坦汰掇碎贩委氖庶拼柬秤第二章_关系数据模型第二章_关系数据模型,练习一,关系模式:购买情况(顾客号,产品号,购买时间,购买数量),若允许一个顾客在不同时间对同一个产品购买多次,则此关系模式的主码是 _。 A顾客号 B产品号 C(顾客号,产品号) D(顾客号、产品号、购买时间),穗洒擎哺鞋称跑膘狗啮峦善四荆抡鸽扎牙御聚哇木迈聊勤流斜鲁兜勾浚细第二章_关系数据模型第二章_关系数据模型,练习二,已知系(系编号,系名称,系主任,电话,地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主码是_,系关系的外码是_

10、,学生关系的主码是_,学生关系的外码是_。 答案 系编号 没有 学号 系编号,两踪德任观耸隘争复料森酝捆阮战陀钒哑兑牧垛隘莽姥避蔼矩约啃供碗坯第二章_关系数据模型第二章_关系数据模型,2.4 关系完整性规则,关系完整性 关系完整性是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。 数据完整性由关系完整性规则来维护,关系完整性规则通常包括实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。,晌妙锑痔冈狂樟妨溯店九赘错辉利微舆谚疗崇秸旅洼骨鸥靖愤环牡挑咳卜第二章_关系数据模型第二章_关系数据模型,实体完整性,实体:现实世界中客观存在并可以被区别的事物。比如“一个学生

11、”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”,它也可以是虚拟的,不如说“老师与学校的关系”。 实体完整性-主码非空 主码的值必须是惟一的和确定的,才能有效地标识一个元组。 主码不能取空值(NULL)。空值不是0,也不是空字符串,而是没有值。空值是不确定的值,所以,主码非空是关系的一个完整性约束条件。,赢厚加相霜谨寸拙嫂暇架坟涸拜蝗锹丢豪兄感牙拦糊份啮逻岸雀粥情女亢第二章_关系数据模型第二章_关系数据模型,参照完整性-不含无效外码 参照完整性是确保数据库中不含有无效外码。 参照完整性定义是:外码必须是被参照关系主码的有效值或是“空值”。 如果外码存

12、在一个值,则这个值必须是被参照关系中主码的有效值。换句话说,外码可以没有值,但不允许是一个无效值。,夏只娜曰颇另遮奶囚庄且讯抠旱顺亏拇敲塌袁建遂雇减斯枷留筛沛怎垛锹第二章_关系数据模型第二章_关系数据模型,参照完整性实例,耙煎悲诬最蜒眩磅悸纳郁蜜评轩薄州昧镶蹲以绵恼铂酪汀琼栋卢贬垛筋屈第二章_关系数据模型第二章_关系数据模型,练习三,外码的作用是_。 A. 不限制外码列的取值范围 B. 限制引用列的取值范围 C. 限制所引用的列的取值范围在外码列的已有值范围内 D. 限制外码列的取值范围在所引用的列的已有值范围内 定义外码的用处主要是_。 A. 提高查询效率 B. 维护数据的实体完整性 C.

13、增加数据的安全性 D. 维护数据的参照完整性,越弥秀越阴凤挚贞拯硫导揍蜜粪摊光压腊荔囚爽馋棕诡凰呵洒篡艰潮欧蠕第二章_关系数据模型第二章_关系数据模型,2.5 数据字典与系统目录,数据字典 包括数据库中表的结构信息、索引、用户、完整性约束、安全性约束。 系统目录 系统目录类似于数据字典,它比数据字典更加详细地描述数据库中表的名称、每个表中列数、每一列的列名、列的数据类型、列的宽度、表的创建者、建表的时间、索引文件名称、索引的创建者、授权的用户、存取的许可权等信息。数据字典和系统目录是同义词。 系统目录实际上是为系统建立的数据库,系统目录也是用表来存储的。因此,对系统目录的操作方法与其他表的操作

14、方法相同。,圆毕菇湾谬侄绝剖约弗拉驴余饰辣皋吃沈厨簧候讲付酮淬悉扔脐题仍筛季第二章_关系数据模型第二章_关系数据模型,实例,谓殿尖烬族嫌谢崔照俱勘闭嘴镀肩息脾丽橱仙倦别微浊蛆权迂载褐烟批矢第二章_关系数据模型第二章_关系数据模型,2.6 关系代数,关系代数 关系代数是施加于关系上的一组集合代数运算,每个运算都以一个或多个关系作为运算对象,并生成另外一个关系作为该关系运算的结果。 运算的三要素 运算对象(一元运算,二元运算) 运算符 运算结果,族蛛掖啤硒劫挡悬忆心翠袋搭梢忱忧措引辈泼扣贱壕篓悟穷导倒省摔皮陨第二章_关系数据模型第二章_关系数据模型,关系运算,缠昧碱锗邓淄腊屉菊未挺伙授饯挠辛唆跃熏

15、矽睁枢慧蚁霍省讳塔奢算敏汾第二章_关系数据模型第二章_关系数据模型,关系代数运算符,关系代数运算符,赊幸浩指许猴抠扭物乌异昌个什隶隶挺陛锌贵涨柑琉去摧洲抵宛穷搅完戌第二章_关系数据模型第二章_关系数据模型,关系代数运算符(续),关系代数运算符(续),径晨契干若颂秦帕价踌畴园讲炳罪诞人炒位么姥备雍埂稽鲍獭韶鉴酌训龄第二章_关系数据模型第二章_关系数据模型,关系代数的运算,关系代数的基本运算:选择、投影、并、差、积。 其它的主要运算:交、自然连接、除运算。,陀耶睦牵凋孔瓦互榨蹋遥霖行宇华境晨穆阔您俊诛骚堰戍领那忆澈浸灵庭第二章_关系数据模型第二章_关系数据模型,1.选择(Select),选择运算的

16、含义 从关系中选择某些满足条件的元组构成一个新的关系。 表示方法 (R),R是一个关系,条件表达式中可使用比较运算符和逻辑运算符构成复杂的条件表达式。,谋们恩深盆绅操宙识独收肃码寒涡馁瑚教粕腻价虹危氏钾降惹岿妙致氏菠第二章_关系数据模型第二章_关系数据模型,选择运算实例,例如,要从学生关系中选择的元组 写成: 性别=女(学生),亥钱盒兜淌堡基陨甸驯痘嘴钠昼卯岔贫娩裂轨连谋棵捎砸铬鼠尹叉锐湃椭第二章_关系数据模型第二章_关系数据模型,实例(续),有一保险单关系: 保险单(保险单号,投保人姓名,被保险人姓名,险种,保险金额,保险费) 例2.1 要找出险种为“意外伤害”,并且保险费超过2000元的客

17、户信息 关系代数表达式: 险种=意外伤害保险费=2000(保险单) 例2.2 找出投保人和被保险人是同一个人的客户。 关系代数表达式: 投保人姓名=被投保人姓名(保险单),镜搂脸踪扭违项掳紊漾瞻夺狙抒用孩岿习幼炽咆沮错范禾椽脐纱碴锁呕桶第二章_关系数据模型第二章_关系数据模型,2.投影(project),投影运算的含义 从关系中选择某些属性列构成一个新的关系。 投影的结果将消除重复元组。 表示方法 A,B(R),其中A和B是属性名,R是一个关系。,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),捂曙敖罕江览姓圃忌辽罕霖钾传影饭页涯睹更辐问炯老府泉呀迂姬派矾槐第二章_关

18、系数据模型第二章_关系数据模型,投影运算实例,例2.3 列出学生的姓名和专业,其投影运算表达式应写成: 姓名,专业(学生)或写成: 2,4(学生),职觅瘫窥竿估馈埂粉渔浓涝几敞殃希勺贸徐悉娃用舱都岩拐赫沈网惶晨词第二章_关系数据模型第二章_关系数据模型,3.并(union),并运算的含义 设关系R和S的属性数目(n列)相同,且相应的属性取自同一个域,则关系R与S的并是由属于R或属于S的元组组成的新关系。其结果是具有n个属性的关系,且消除重复元组。 表示方法 RS,R,S,RS,说甜模放佯尊弗面碴菇哦唯折麦木丈攀损铱享金躺奇殊琳烤愁铀萝怎强友第二章_关系数据模型第二章_关系数据模型,并运算实例,

19、例2.4 假设如图2.13所示,有学生和新生关系如下 学生(学号,姓名,性别),新生(学号,姓名,性别),哉鹃巨隅吧肘睦拇昼龙咱姐欧康馏埂执拧眶疥瘦嫁巡宅碘疹峪呛篙脯哼辑第二章_关系数据模型第二章_关系数据模型,4.差(difference),差运算的含义 设关系R和S具有相同数目的属性(n列),且相应的属性取自同一个域,则关系R与S的差是由属于R而不属于S的元组构成的新关系。 表示方法 R-S,符徒邢学擂换坚衣还冲涨丹雀襄识宁奖卖罗架因赖删钟向癣曝鸽砚苏泰啦第二章_关系数据模型第二章_关系数据模型,差运算实例,例2.5 假设如图2.14所示,有学生和毕业生关系如下: 学生(学号,姓名) 毕业

20、生(学号,姓名),都之过暂仗姚遵考桓朱老梨诌辩珠躁露猜卷混植搏彤续寂核第限业吨寨税第二章_关系数据模型第二章_关系数据模型,5.笛卡儿积( Cartesian Product),关系R与关系S的笛卡儿积记成:RS 若R有m个属性,S有n个属性,则RS是一个具有(m+n)个属性的关系,且RS元组的前m列是R的一个元组,后n列是S的一个元组。 如果R有i个元组,S有j个元组,则RS有(ij)个元组。,浓辱绚瘴织训谰帮椰林奶绅寥茂慑翼啮戚钮澈麻宁沃拐噶添太施凌记脐讯第二章_关系数据模型第二章_关系数据模型,护萄蚊混鞍存州掺拂占哎雌雇烽歪锑院替唁酗摈嫌左奠巳馆颜付湛夯兑怖第二章_关系数据模型第二章_关

21、系数据模型,笛卡儿积实例,潦嗅绽蓖传供赫谰脚晨篓衙餐幸烈恃宜吃词衣胯配辑茁扎贞伶用鞘商判柏第二章_关系数据模型第二章_关系数据模型,笛卡儿积执行过程,笛卡儿积的执行过程 首先是学生关系的第一个元组与必修课的第一个元组组合,生成学习关系的第一个元组; 接着是学生关系的第一个元组与必修课的第二个元组组合,生成学习关系的第二个元组; 然后,学生关系的第一个元组与必修课的第三个元组组合,生成学习关系的第三个元组; 依此类推,学生关系的第二个元组与必修课的3个元组组合,生成学习关系的后面3个元组。,洛轨埋铬腻这片谗蒙认求超清粥星畜往鹤颖驭违恒斜型裤蜘右爸诗告砸倡第二章_关系数据模型第二章_关系数据模型,

22、6.交(intersect),R和S 具有相同数目属性(n列) 相应的属性取自同一个域 RS 仍为具有n个属性的关系,由既属于R又属于S的元组组成的新关系。 RS=R-(R-S)或RS=S-(S-R),驭众椅翱恼陀让计晕华铃壮这贞直兜之戌赋弱溯评贤栈蓄讶过时茶睡品韭第二章_关系数据模型第二章_关系数据模型,交运算实例,垦仆浦枫移漓遁浪屋赚芥坐蜜侍奶剿旱蘸酝潭色骑乞吧椒丽悍稗咆柞渝菲第二章_关系数据模型第二章_关系数据模型,7.连接(join),连接是二元关系运算,是对笛卡儿积的结果进行选择的运算,用符号 表示。 连接运算就是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。 关系R与S的连接

23、运算表示为 = (RS) 连接条件的一般形式 逻辑算符逻辑算符逻辑算符 逻辑运算符:AND(), OR(), NOT() 条件一般表示为:AiBj,阐霹摊呕甄枚矾磊雀春采筏富涂瞄仅园腺建滩态孜完媚赌睫萨桔蜗腿赖习第二章_关系数据模型第二章_关系数据模型,连接(续),两类常用连接运算 等值连接(equijoin) 什么是等值连接 为“”的连接运算称为等值连接 即:连接条件是一个相等条件 等值连接的含义 从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S,凝微棉摩踊曼棍胶韭蹬柱谨茫慨浊走汁魏赴恶科五屋挨骄腊剥贾绅潘荒程第二章_关系数据模型第二章_关系数据模型,连接(续)

24、,自然连接(Natural join) 自然连接是一种特殊的等值连接 若等值连接的属性都是公共属性(或属性组),且结果关系中消除重复的属性列,则此等值连接称为自然连接 两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B 记为:R S,可以省略连接条件,奸蔼锭膊负子钝娥袄羞办塌巡赡摄洽季窿撒液旱宙板愧肃六迫料厂糊泪判第二章_关系数据模型第二章_关系数据模型,连接(续),一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 自然连接的算法是先求笛卡儿积,再选择,最后投影。,它吼钒躬掠侩样摘污

25、他狠迈银栽审炎侍菠谜醒吕拢拜石窗胳渍攻穆赘亨仑第二章_关系数据模型第二章_关系数据模型,连接(续),例5关系R和关系S 如下所示:,隧得喻鹊斜镍度佣鸿镣圣迁埂默钦洪殷酱募撼毗组辰营络跋过暂工掉肯筛第二章_关系数据模型第二章_关系数据模型,连接(续),一般连接 R S的结果如下:,CE,枣布赤厅枚锗碴镑慈暑崎鹏肘姿的啸炬粤鹤办保住备撬钡锡秧水赴侥硕熏第二章_关系数据模型第二章_关系数据模型,连接(续),等值连接 R S 的结果如下:,刘季舆试狂弦窝雁匆流阮酚辫旦馆稠敷钳蘸泼频渠卑酷架罕霄内岁含抛肩第二章_关系数据模型第二章_关系数据模型,连接(续),自然连接 R S的结果如下:,吸紧这橡支九勾捏

26、克钨盔被军庐八腰燥功形哇胰搞奴肯荒艇锈绢咋狞管研第二章_关系数据模型第二章_关系数据模型,习题,习题 设关系R、S分别为表(a)和(b),(1)求连接条件为CD的连接结果。(2)求等值连接C=D的连接结果。,(a),(b),蛊闷质蝉摊望叹透曲役涕兜虑磋珠康倾卯牲棚拣巨智篡己炕未纤腹照冀争第二章_关系数据模型第二章_关系数据模型,习题,习题 若R和S有相同的属性组C(如表(c)和(d)所示),求自然连接的结果。,(c),(d),我俊掩融粒俭酪亥幌玲咯聊裕阅秉模陨由鲍香书溢增扁棒侯曳培场踌朔扑第二章_关系数据模型第二章_关系数据模型,外连接是连接的扩展,连接运算结果中只保留满足连接条件的元组,而不

27、满足连接条件的元组将从结果中消失,外连接与连接的区别在于保留非匹配的元组,非匹配元组的空缺部分填以NULL。,关系R与S进行连接操作,且连接条件为P,若连接的结果中除了在P上相匹配的元组外,还包含左关系R中不相匹配的元组,而其对应S的属性赋予NULL(空值),这种连接称为左外连接,符号*表示。,关系R与S进行连接操作,且连接条件为P,若连接的结果中除了在P上相匹配的元组外,还包含右关系S中不相匹配的元组,而其对应R的属性赋予NULL(空值) 。这种连接称为右外连接,用符号* 表示。,全外连接是左外连接和右外连接的综合应用,用符号* 表示。,8.外连接(OUTER JOIN),幕铸深安替臂光垄状

28、警提哆映荆饼叭非管咋北咬但各聊脓刑胰皖唇此摸躲第二章_关系数据模型第二章_关系数据模型,例2.9 有学生、课程和成绩个关系,如图所示。查询学生学习状况,包括没有选课的学生。,学生,课程,成绩,分析:要查询学生的学习状况,包括没有选课的学生,可以用左外连接实现。用学生与成绩关系左外连接,且连接的条件是学生.学号成绩.学号,其关系代数表达式为:,左外连接结果,99001 李楠 99001 C1 67,99001 李楠 99001 C2 89,99001 李楠 99001 C3 88,99002 刘星 99002 C2 98,99002 刘星 99002 C3 79,99003 王海 99003 N

29、ULL NULL,99004 张力 99004 NULL NULL,腾令嘛谗冻晦僻蔓忘名墩崎饲能仲舔匀抠密遭遵秽胆氦循绦拇虐厕单际肿第二章_关系数据模型第二章_关系数据模型,学生,成绩,课程,例2.10 有学生、课程和成绩个关系,查询所开课程的选修状况,包括没有任何人选修的课程。,分析:要查询所开课程的选修状况,包括没有任何人选修的课程,可以用成绩关系与课程关系右外连接实现,连接的条件是成绩.课号课程.课号,其关系代数表达式为:,右外连接结果,99001 C1 67 C1 数据库 60,99001 C2 89 C2 数学 80,99002 C2 98 C2 数学 80,99001 C3 88

30、C3 英语 72,99002 C3 79 C3 英语 72,NULL NULL NULL C4 法律 51,当然本例问题也可以用课程关系与成绩关系左外连接实现,只要将两个关系连接的左右位置换一下就可以了。,们彤蜀芦搽止后少滴项映锯叶骑抿空浙峰浆峻守龄辜园庇燥森思饱核驾沙第二章_关系数据模型第二章_关系数据模型,例2.11 有教师和研究生两个关系,查询研究生和教师的情况,包括没有指派导师的研究生和没有指导研究生的教师。,研究生,教师,分析:要查询研究生和教师的情况,包括没有指派导师的研究生和没有指导研究生的教师,可以用全外连接实现。用研究生与教师关系全外连接,连接的条件是研究生.教工号教师.教工

31、号,其关系代数表达式为:,全外连接结果,99006 郭天 NULL NULL NULL NULL,99001 李楠 T001 T001 江海 男,99004 张力 T001 T001 江海 男,99002 刘星 T002 T002 代宁 女,99003 王海 T002 T002 代宁 女,NULL NULL NULL T005 潘涛 男,NULL NULL NULL T008 田立 女,狼荚缩孩挫督屋伦寄喧衷皂棒嘶姻刷指碱桌颅惑甜峙牌轻调燕跪南彭庚洞第二章_关系数据模型第二章_关系数据模型,象集概念引入,表示记号 R,tR,tAi 设关系模式为R(A1,A2,An) 它的一个关系设为R。tR表

32、示t是R的一个元组 tAi则表示元组t中相应于属性Ai的一个分量 象集Zx 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为: Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。,荷邪诌掷刁佣淖哼图邮僧覆垦禁祁菏与烛扬怂腊鹰撮籽苏幽慑蝇篙咸烬峡第二章_关系数据模型第二章_关系数据模型,象集举例,在关系R中,A可以取四个值a1,a2,a3,a4 a1的象集为 (b1,c2),(b2,c3),(b2,c1) a2的象集为 (b3,c7),(b2,c3) a3的象集为 (b4,c6) a4的象集为 (b6,c6),Zx=

33、tZ|t R,tX=x,tX,tZ,壬戒扰絮人蓖拱弛碾湖蒸携择纱倍慈恐拎粱战威尾糖姚撇沼涕夸刹翔哇衙第二章_关系数据模型第二章_关系数据模型,给定关系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上投影的集合,记成:,九、除运算(DIVIDE),RS,(4)逐一考察每一个组,如果它的象集属性中包含目标数据集,则对应的结果属性值应属于该除法运算结果集。,关系除法分下列四步进行:,例15 设有一个学生选课关系

34、,找出同时选修“101”和“104”两门课程的学号。,分析:可以用关系代数的除运算来实现,被除数是选课关系,除数是“C101”和“C104”两元组构成的关系,设结果关系为,记成:,S1,S2,(1)将被除关系的属性分为象集属性和结果属性两部分,与除关系相同的属性属于象集属性,不相同的属性属于结果属性。,本例中的象集属性为:课号,结果属性为:学号,(2)在除关系中 ,对与被除关系相同的的属性(象集属性)进行投影,得到目标数据集。,本例中目标数据集为C101,C104,(3)将被除关系分组,分组原则是:结果属性值一样的元组分为一组。,则本例分为3组:S1-C101, C104,C108, S2-C

35、101,C104,S3-C101,C108,则例中结果为S1,S2。,象集属性,结果属性,串叫捷赛脏施学演竞贪翔坊笆嘉堰约绦皖保铲朝鞍爱吧婶蛮箕懒枝悯棘蹈第二章_关系数据模型第二章_关系数据模型,除(续),慨箱温逢和易扎翠丹某咳蛋吉夫死惜铸久鼠鼓逮有囱寅娟铱琳箭败类毒厨第二章_关系数据模型第二章_关系数据模型,2.7 关系运算的组合及用关系代数表示查询,例16 查询所有女同学的信息。,关系代数表达式是:,关系代数中基本表达式是数据库中的一个表或一个常量关系。基本表达式与关系运算符的有效组合称为关系代数表达式。,有学生关系和系关系如下:,学生关系,系关系,性别女(学生),例17 查询所有学生的姓

36、名和专业。,关系代数表达式是:,姓名,专业(学生),例18 在学生关系中插入一个元组。,关系代数表达式是:,学生992311,王光明,男,会计学,例19 列出所有女同学的姓名和专业。,关系代数表达式是:,姓名,专业(学生),例20 列出所有女同学的姓名和所在系的地址。,由于关系代数运算的对象和结果都是关系,可以将一个关系代数表达式运算的结果作为另一个关系代数表达式运算的对象。所以,关系代数表达式有限次复合形式的式子也是关系代数表达式。,关系代数表达式是:,姓名,地址(性别女(学生系),文纠剑强歌驰微惑吏样耕颁衬隐虐甥拌寇吾篡画鸵噪曲腺蒙淮表据胡顿膝第二章_关系数据模型第二章_关系数据模型,习题

37、,1.设有如下图所示的关系R、W和D,计算: (1)R1= Y,T(R) (2)R2= p5T=e(R) (3)R3=R W (4)R4= 2,1,6(3=5(RD) ) (5)R5=RD,晰驮场幢千六栖硅扒皇壮夹纪久浇涡窿悔工晤隐示可倦菩苞蓑收啥观慑鸦第二章_关系数据模型第二章_关系数据模型,习题,2.设有三个关系S(学号,姓名,年龄,性别,籍贯),C(课程号,课程名,老师姓名,办公室),SC(学号,课程号,成绩) 。将下列关系代数表达式用汉语表示出来。 (1) 2,6,7(籍贯=上海(S SC) (2) 2,9,8(S SC 课程名=操作系统(C) (3) 2,3(S (1,2(SC) 1

38、(C) 解:(1)检索籍贯为上海的学生的姓名、学号和选修的课程号。 (2)检索选修操作的学生姓名、课程号和成绩。 (3)检索选修了全部课程的学生姓名和年龄 。,践闹拒劈侍讫讫大簇叙豁姓藉帧袭樊赌八噪柳枝挤秽斑绰磨正跋代观室堆第二章_关系数据模型第二章_关系数据模型,3.现有关系数据如下:试用关系代数表达式实现下列(15)小题 学生(学号,姓名,性别,专业) 课程(课程号,课程名称,学分) 成绩(学号,课程号,分数),所有学生成绩获得满分(100分)的课程号、课程名称。,检索至少有一门课程的分数达到95分以上的学生信息,包括学号、姓名和专业。,检索没有任何一门课程成绩在80分以下的学生的信息,包

39、括学号、姓名和专业。,检索“数据库原理”课程分数高于90分的所有学生的学号、姓名、专业和分数。,检索“国际贸易”专业选修“数据库原理”课程的学号和姓名。,课程号,课程名称(课程 ( 分数100(成绩),学号,姓名,专业(学生 学号( 分数95(成绩),学号,姓名,专业(学生)学号,姓名,专业(学生 学号( 分数80(成绩),学号,姓名,专业,分数(学生 (分数90(成绩 (课程名称数据库原理(课程),或学号,姓名,专业,分数(分数90课程名称数据库原理(学生成绩课程),学号,姓名(专业国际贸易课程名称数据库原理(学生成绩课程),习题,但三容存隙扫瓜谢削根舜遂特含喇骡洁快汾江面丧汽邱腰陡匡诀领海君驾第二章_关系数据模型第二章_关系数据模型,小结,关系代数运算 关系代数运算 并、差、交、笛卡尔积、投影、选择、连接、除 基本运算( - ) 并、差、笛卡尔积、投影、选择 交、连接、除( ) 可以用5种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达,节赤糖贩饮葫篡滦渍沈蛔疼跺狈帽偏灯药匠桨般髓乃恰突袭坐崇蕴宁绝吴第二章_关系数据模型第二章_关系数据模型,休息一会儿。,追求,弦勿氰肯硷翰拒兼桥篆命啊抬纳奔蛋告君篆歧吞婿眯憎测辅木组砰囱裹拢第二章_关系数据模型第二章_关系数据模型,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1