版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章关系数据库第二章关系数据库主要内容:1、关系数据结构及形式定义 数据结构 关系、关系模式、关系数据库2、关系的完整性 完整性约束3、关系代数 集合运算和关系运算操作集合4、关系演算 元组关系演算语言ALPHA给出规范性定义第2页/共109页第1页/共109页2.1关系数据结构及形式化定义问题:问题:给出给出3个集合个集合A=a,b,c,B=3,4,5, C=a1a,b2b,c6c,问问从每个集合中任取一个非空元素,从每个集合中任取一个非空元素,组合成集合组合成集合D的一个元素的一个元素,若若不考虑顺序性和零元素不考虑顺序性和零元素,问集合问集合D有多少个元素?有多少个元素?27333将问
2、题上升到一般情况,若有将问题上升到一般情况,若有n个个有限集合有限集合,每个有,每个有k1,k2,kn个非个非空元素,问从每个集合中任取一个元素组成第空元素,问从每个集合中任取一个元素组成第n+1个集合,若不考个集合,若不考虑顺序性,第虑顺序性,第n+1个集合有多少个非空元素。个集合有多少个非空元素。第3页/共109页第2页/共109页 从数学的角度讲,什么是域?基于严格的数学基础一组具有相同数据类型的值的集合(取值范围)。什么是笛卡尔积(Cartesian Product)给定一组域D1,D2,Dn。它们的笛卡尔积:, 2 , 1,| ),(2121niDddddDDDiinn第4页/共10
3、9页第3页/共109页可用一个二维表表示,每一个(d1,d2,dn)叫做一个n元组或元组。元组中的每一个值di叫做一个分量。d11d21dn1d12d22dn6d18d29dn3d14d25dn7第5页/共109页第4页/共109页若Di(i=1,2,n)为有限集,其基数为mi(i=1,2,n),则的基数M为:nDDD21niimM1含义是什么?第6页/共109页第5页/共109页【例】 给定两个相容性关系R和S, 计算 RS的结果。 解: 依据运算的定义, 可得到如图所示的结果。第7页/共109页第6页/共109页下面给出下面给出关系的定关系的定义义第8页/共109页第7页/共109页 关系
4、的定义 ),(21nDDDRnDDD21的子集叫做在域D1,D2,Dn上的关系,表示为其中,R表示关系的名字,n是关系的目或度(Degree)。关系中的每个元素是关系中的元组,用t表示。第9页/共109页第8页/共109页n=1时,该关系为单元关系。n=2时,该关系为二元关系。关系是笛卡尔积的有限子集,也是一个二维表。行对应元组,列对应一个域,称为属性。回想第1章的相关内容,什么是主码?问题第10页/共109页第9页/共109页问题:指出下列关系的哪些属性可以作主码?指出下列关系的哪些属性可以作主码?1学生学生(学号,姓名,性别学号,姓名,性别)3选课选课(学号,课程号,成绩学号,课程号,成绩
5、)2学生学生(学号,姓名,性别,身份证学号,姓名,性别,身份证)4学生学生(姓名,性别,年龄,班级,宿舍姓名,性别,年龄,班级,宿舍)在该例中若取学号和身份证号的组合为主码可以吗?学号学号或身份证学号和课程号的组合所有属性的组合术语第11页/共109页第10页/共109页候选码主码主属性非码属性全码若关系中的若关系中的某一属性组的值某一属性组的值能能唯一地标识一个元组唯一地标识一个元组,则称该属性组为则称该属性组为候选码候选码。若一个关系若一个关系有多个候选码有多个候选码,则选定其中一个为,则选定其中一个为主码主码。组成主码组成主码的诸属性称为主属性。的诸属性称为主属性。不包含在任何候选码中的
6、不包含在任何候选码中的属性称为非码属性属性称为非码属性所有属性形成的组合所有属性形成的组合才是候选码,称为全码。才是候选码,称为全码。第12页/共109页第11页/共109页问题:给出关系如下:职员(编号,姓名,性别,职务,部门,密码口令),在用户端程序中:2、某个查询要求仅仅需要列出是、某个查询要求仅仅需要列出是某个职务的职员编号和姓名某个职务的职员编号和姓名,不,不能显示出密码口令能显示出密码口令。1、某个查询仅仅需要列出满足、某个查询仅仅需要列出满足某个编号条件某个编号条件的职员姓名,职务和的职员姓名,职务和部门,不能显示出密码口令。部门,不能显示出密码口令。问:问:1两个查询结果是什么
7、,形式是怎样的?两个查询结果是什么,形式是怎样的?1职员职员|编号编号=x(姓名,部门姓名,部门);2 职员职员|职务职务=x(编号,姓名编号,姓名)问:问:2如何做到用户不能看到职员的密码,且不能修改职务?如何做到用户不能看到职员的密码,且不能修改职务?法法1:直接使用该关系,不显示密码,限制修改职务的功能;:直接使用该关系,不显示密码,限制修改职务的功能;容易受到攻击,安全性不高。容易受到攻击,安全性不高。第13页/共109页第12页/共109页法法2:先查询得到职员:先查询得到职员(编号,姓名,部门,职务编号,姓名,部门,职务),然后再从然后再从“结果结果” 中查询职员。中查询职员。为了
8、避免用户可以在应用程序中直接从结果中修改,得到为了避免用户可以在应用程序中直接从结果中修改,得到 “结果结果”的查询不出现在应用程序中,而是保存在数据库中,此时的查询不出现在应用程序中,而是保存在数据库中,此时“结果结果”是作为一个是作为一个关系关系 保存保存视图视图。此时关系可以有三种类型:基本关系;查询表;查询结果。视图。第14页/共109页第13页/共109页按定义关系可以是一个无限集合。由于笛卡尔积不满足交换律,即),(),(1221nndddddd在关系数据模型中,做如下限定和扩充:无限关系在数据库系统中是无意义的,即关系必须是有限集合。给每一个列添加一个属性名,并取消关系元组的有序
9、性。到此,可以归结基本关系的性质如下:第15页/共109页第14页/共109页基本关系具有以下6条性质 列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。 列的顺序可以任意交换。 任意两个元组不能完全相同。 行的次序可以任意交换。 分量必须取原子值,是不可再分的数据项(范式)。第16页/共109页第15页/共109页看下面问题:看下面问题:学生学生(学号,姓名,性别学号,姓名,性别)学生学生|张三张三(10000102,张三,男,张三,男)两者有什么区别?两者有什么区别?前者描
10、述了学生实体的整体概况,后者则是描述了一个确切的学生张三。这样就把前者叫作这个关系的模式,后者作为这个关系的一个值。第17页/共109页第16页/共109页在关系数据库中,关系模式是型,关系是值。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合。首先,关系模式须指出这个元组集合的结构。属性、属性的域,以及属性与域之间的映象关系。其次,元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡尔积中的元素的全体就构成了该关系模式的关系。现实事实要求关系模式应当刻划出这些完整性约束条件关系模式如何形式化的描述?关系模式如何形式化的描述?第18页/共109
11、页第17页/共109页关系模式的定义 关系的描述称为关系模式(Relation Schema)。 形式化表示为:),(FdomDURR为为关系名关系名,U为该关系的为该关系的属性名集合属性名集合,D为属性组为属性组U中中属属性所来自的域性所来自的域,dom为属性为属性向域的映象集合向域的映象集合,F为属性间为属性间数据的依赖关系集合数据的依赖关系集合。例如:例如:dom(教师)教师)=dom(学生学生)=人人关系是关系模式在某一时刻的状态或内容。关系是关系模式在某一时刻的状态或内容。关系模式是关系模式是静静态的、稳定的态的、稳定的,而关系是,而关系是动态的、随时间不断变化的动态的、随时间不断变
12、化的。在。在实际中,实际中,关系模式关系模式和和关系关系统称为统称为关系关系。第19页/共109页第18页/共109页 在关系模型中,实体以及实体间的联系都是用关系来表示的。 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。 关系数据库有型和值之分。 型是关系数据库模式,是对关系数据库的描述,包括若干域的定义以及在这些域上定义的若干关系模式。 值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。第20页/共109页第19页/共109页2.2关系的完整性 问题:什么是候选码,什么是主码,主码属性又是什么?现在假设创建了一个关系:现在假设创建了一个关系:
13、学生学生(学号,姓名,性别学号,姓名,性别),在给关系,在给关系添加值的时候,添加值的时候,学号的作用是什么,可以不可以有重复学号的作用是什么,可以不可以有重复?有没有有没有某个或某些学生没有学号的情况?这说明了什么问题?某个或某些学生没有学号的情况?这说明了什么问题?100131张三男李四男李四男100131张三男第21页/共109页第20页/共109页规则2.1 实体完整性规则 若属性A是基本关系R的主属性,则属性A不能取空值。说明:是针对基本关系而言的,基本表通常对应现实世界的一是针对基本关系而言的,基本表通常对应现实世界的一个实体集个实体集。现实世界中的实体是可区分的,它们具有某种唯一
14、性标现实世界中的实体是可区分的,它们具有某种唯一性标识。识。关系模型中以关系模型中以主码作为唯一性标识主码作为唯一性标识。主码中的属性及主属性不能取空值主码中的属性及主属性不能取空值。空值就是。空值就是“不知道不知道”或或“无意义无意义”。1、实体完整性(Entity Integrity)第22页/共109页第21页/共109页问题 1、现有两个关系学生,专业,如下:学号姓名专业编号100233 张三j001100234 李四s001100454 玛利g002100226 王五专业编号 专业名称j001计算机s001数学问:学号问:学号100454的专业是什么,学号的专业是什么,学号10022
15、6的专业为空是什么含的专业为空是什么含义?义?还没有分专业。编号为g002的专业不存在第23页/共109页第22页/共109页问在学生表中,专业编号是否为码,它的作用是什么?首先,专业编号不是学生表的码,作用看演示操作student结论:在学生表中的专业编号不是码,但是它可以控制学生所学的专业必须存在,防止出现一个不存在的专业。另外,专业编号在专业表中是码。因此,称学生表中的专业编号为外码,它与专业表中的专业编号建立对应关系参照完整性。第24页/共109页第23页/共109页2、现有学生、课程两个关系如下、学生与课程之间的多对多联系应该如何表示?学生(学号,姓名,性别,专业号,年龄)课程(课程
16、号,课程名,学分)分析:分析:1、这种联系需要用表(S_C)来表示,;2、该表含有哪些字段? 学号课程号成绩3、谁作主码?学号和学号和课程号的组合因此:S_C(学号,课程号,成绩)第25页/共109页第24页/共109页问在S_C中在哪些属性上可以建立与其他表的联系?学号和课程号参照完整性的一般化描述第26页/共109页第25页/共109页设F(如:专业编号)是基本关系R(如:学生)的一个或一组属性,但不是关系R的码。如果F与基本关系S(如:专业)的主码Ks (专业编号)相对应,则称F是基本关系R的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relatio
17、n),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)。2、参照完整性(Referential Integrity)术语:第27页/共109页第26页/共109页注意:关系R和S不一定是不同的关系,例如。公民公民(身份证号,姓名,年龄,性别,身份证号,姓名,年龄,性别,配偶身份证号配偶身份证号)课程课程(课程号,课程名,课程号,课程名,先行课程号先行课程号,学分,学分)问在学生,课程和S_C中,谁是参照关系,谁是被参照关系?S_C是参照关系学生和课程是被参照关系有了参照和被参照关系后,参照规则应该是怎样的?第28页/共109页第27页
18、/共109页若属性(属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F(是属性组)的每个属性值均为空值); 或者等于S中某个元组的主码值。规则2.2 参照完整性规则 问:在前面学生和专业关系中,学生表中的专业编号可以取哪些值?第29页/共109页第28页/共109页问题 有下述关系:成绩(学号,课程号,成绩)如何限制学生的成绩在如何限制学生的成绩在0100之间?之间?3、用户定义的完整性(User-defined Integrity)作用是对某些属性的约束,限制等,作用是对某些属性的约束,限制等
19、,由数据库系统统一来实现由数据库系统统一来实现,而不是由应用程序来承担。而不是由应用程序来承担。各种完整性实例见数据库student的演示。第30页/共109页第29页/共109页形式化定义和完整性小结 术语:关系,候选码,全码,关系数据库 关系和关系模式 实体完整性 参照完整性 用户自定义完整性关系数据库的操作又是怎样的?第31页/共109页第30页/共109页问题: 在关系模型中,关系有哪些主要操作?查询、插入、删除和修改查询、插入、删除和修改这些操作如何形式化表示?第32页/共109页第31页/共109页2.3关系代数 任何运算都包括哪些要素?运算对象,运算符和运算结果三大要素。关系数据
20、库的操作对象是什么,结果又是什么?集合集合关系关系因此第33页/共109页第32页/共109页 关系代数的运算对象是关系,结果也是关系。 基本运算包括:选择,投影,并,集合差,笛卡尔积。各自的含义是什么? 其他运算包括:集合交,连接,除。各自的含义是什么?选择,投影和更名运算只涉及到一个操作对象,称为一元运算,其他为二元运算。第34页/共109页第33页/共109页1选择:选择:问题:现有关系问题:现有关系student(学号,姓名,性别,年龄,班级,专业)如下:如下:学号姓名性别年龄班级专业300005张三男220301计算机300061李四男210302数学300004玛丽女200301管
21、理问题:1查询姓名为李四的详细记录。2查询男同学的详细记录。用关系代数如何做到?第35页/共109页第34页/共109页)(student李四姓名1:学号姓名性别年龄班级专业300061李四男210302数学女男男性别管理030120玛丽300004数学030221李四300061计算机030122张三300005专业班级年龄姓名学号原始数据:第36页/共109页第35页/共109页)(student男性别2:注意:查询结果是多个元组。学号姓名性别年龄班级专业300005张三男220301计算机300061李四男210302数学女男男性别管理030120玛丽300004数学030221李四30
22、0061计算机030122张三300005专业班级年龄姓名学号原始数据:第37页/共109页第36页/共109页结论表示选择姓名=李四和性别=男为选择条件(student)表示选择操作作用的关系。选择操作的一般形式: )(|)(真tFRttRF各个符号说明如下:各个符号说明如下:第38页/共109页第37页/共109页其中F表示选择条件,是一个逻辑表达式,取逻辑值“真”或“假”。逻辑表达式由逻辑运算符)(),(),(orandnot11YX表示比较运算符,可以是连接各算术表达式组成。算术表达式的基本形式为:其中, , , , 或第39页/共109页第38页/共109页思考:1,从前面stude
23、nt关系中,查询小于25岁的男同学的详细记录。2,从student关系中,查询小于25岁的或者是男同学的详细记录。3,从前面student关系中,查询不是男同学的详细记录。)(25student男性别年龄)(25student男性别年龄)() (student男性别第40页/共109页第39页/共109页2投影:投影:问题:现有关系问题:现有关系student(学号,姓名,性别,年龄,班级,专业)如下:如下:学号姓名性别年龄班级专业300005张三男220301计算机300061李四男210302数学300062王武男260301数学300004玛丽女200301管理1,查询所有学生姓名和所在
24、的专业。2,查询关系student中都有哪些专业。第41页/共109页第40页/共109页1:)()(62studentstudent,姓名,专业或姓名专业张三计算机李四数学王武数学玛丽管理数学030126男王武300062女男男性别管理030120玛丽300004数学030221李四300061计算机030122张三300005专业班级年龄姓名学号原始数据:第42页/共109页第41页/共109页2:)()(6studentstudent或专业专业计算机数学管理数学030126男王武300062女男男性别管理030120玛丽300004数学030221李四300061计算机030122张三3
25、00005专业班级年龄姓名学号原始数据:第43页/共109页第42页/共109页结论表示投影姓名姓名和和专业专业 为在哪个属性上面的投影为在哪个属性上面的投影(student)表示投影操作作用的关系。投影操作的一般形式:其中A为R中的属性列。| )(RtAtRA第44页/共109页第43页/共109页3组合运算:组合运算:问题:现有关系问题:现有关系student(学号,姓名,性别,年龄,班级,专业)如下:如下:学号姓名性别年龄班级专业300005张三男220301计算机300061李四男210302数学300062王武男260301数学300004玛丽女200301管理1,查询出数学专业的所
26、有学生的姓名和所在的班级。2,查询关系student中年龄大于25的学生的姓名和专业。第45页/共109页第44页/共109页1:)(,student数学专业班级姓名注意层次关系选择操作的结果最终的结果数学030126男王武300062数学030221男李四300061专业班级年龄性别姓名学号步骤1:0301王武0302李四班级姓名步骤2:第46页/共109页第45页/共109页2:)(25,student年龄专业姓名姓名专业王武数学说出下列关系代数式表示的意义;说出下列关系代数式表示的意义;)(25,student年龄专业姓名王武姓名该关系代数式与下面哪个等价:该关系代数式与下面哪个等价:)
27、(25,student年龄王武姓名专业姓名)(,25student王武姓名专业姓名年龄关系代数可以像算术运算一样进行不同的组合运算。第47页/共109页第46页/共109页4并运算:并运算:现有三个关系student,course,sc如下:学号姓名性别年龄班级95001张三男22030195002李四男21030295003王武男26030395004玛丽女200304课程号课程名先行课程号学分1数据库242数据结构443信息系统144C语言4第48页/共109页第47页/共109页学号课程号 成绩950013899500229095003380要查询0302班学生的学号或选修了课程号为3的
28、学生的学号,应该如何操作?先查询0302班学生的学号)(0302student班级学号再查询选修了课程号为3的学生的学号)(3sc课程号学号以上两步分别得到一个集合,如何将两个集合合并成一个,并满足查询条件?第49页/共109页第48页/共109页)()(30302scstudent课程号学号班级学号并运算,结果是什么?并运算结论第50页/共109页第49页/共109页并运算小结:表示并运算一般形式:|StRttSR第51页/共109页第50页/共109页问:要查询选修了3号课程且不是0301班的学生学号,该如何用关系代数表示?首先,查询出选修了3号课程的所有学生的学号。)(3sc课程号学号然
29、后,查询出0301班所有学生的学号。)(0301student班级学号如何从第1步的结果中去掉那些存在于第2步的结果中的学号?第52页/共109页第51页/共109页)()(03013studentsc班级学号课程号学号|StRttSR5差运算:第53页/共109页第52页/共109页练习:查询出所有没有学生选修的课程号。)()(sccourse课程号课程号查询出所有没有选课的学生学号。)()(scstudent学号学号练习第54页/共109页第53页/共109页问题 除了前面的student,course,sc关系外,再添加一个关系reward(奖励),如下:记录号学号级别时间1950021
30、2003.7.1229500322004.1.12其他关系如下:第55页/共109页第54页/共109页学号姓名性别年龄班级95001张三男22030195002李四男21030295003王武男26030395004玛丽女200304课程号课程名先行课程号学分1数据库242数据结构43信息系统14学号课程号 成绩950013899500429095003380问:要查询既选了课,又有奖励记录的学生学号,应该怎样用关系代数实现?第56页/共109页第55页/共109页法1:用差运算:)()()(rewardscsc学号学号学号法2:步1:学号课程号 成绩 记录号 学号级别 时间95001389
31、19500212003.7.129500138929500322004.1.129500429019500212003.7.129500429029500322004.1.129500338019500212003.7.129500338029500322004.1.12第57页/共109页第56页/共109页步2:从步1的结果中找出两个学号相同的记录,就符合条件。步1的运算表示为:步2的运算表示为: rewardsc)(.rewardscrewardsc学号学号学号广义笛卡尔积运算第58页/共109页第57页/共109页法3:)()(rewardsc学号学号交运算总结第59页/共109页第5
32、8页/共109页|StRtttSRsrsr6 6广义笛卡尔积运算:7 7交运算:|StRttSR第60页/共109页第59页/共109页思考: 在上一个例子中,方法2使用了广义笛卡尔积运算,产生的结果如下:学号课程号 成绩 记录号 学号级别 时间9500138919500212003.7.129500138929500322004.1.129500429019500212003.7.129500429029500322004.1.129500338019500212003.7.129500338029500322004.1.12第61页/共109页第60页/共109页问:该结果中共有几条记录,
33、这些记录由几条记录产生的,有几条是需要的?63,21当由两个不同的学号形成结果中的一条记录时,如结果中的前5条记录,什么时候能用到?好像用到的机会很少。因此,为了减少结果中无用的记录数目,提高后面运算的效率,使用了自然连接运算。第62页/共109页第61页/共109页上次课内容回顾 选择运算 投影运算 选择投影的组合 并运算 差运算 广义笛卡尔积运算 交第63页/共109页第62页/共109页在查询既选了课,又有奖励记录的学生学号,用关系代数实现如下:)(.rewardscrewardsc学号学号学号结果有什么特点?百里挑一。第64页/共109页第63页/共109页8自然连接运算:如果能将上例
34、步1的结果变为:学号课程号 成绩 记录号 级别 时间95003380222004.1.12运算规则:1、两个操作对象中必须至少有一个相同的属性A;2、两个操作对象中A的值相同的记录才能形成结果中的一条记录。3、运算结果中去掉重复的A,如上例的学号。第65页/共109页第64页/共109页练习: 现有关系student,sc如下:学号姓名班级200501张三0301200402李四0301200503王武0402学号课程号成绩200501278200402189200501390200402398200503278根据刚才的规则,运算结果是什么?第66页/共109页第65页/共109页学号姓名班
35、级课程号成绩200501张三0301278200501张三0301390200402李四0301189200402李四0301398200503王武0402278该操作就是自然连接第67页/共109页第66页/共109页|BtBtStRtt tSRsrsrsr运算符号:一般形式:其中,B为R和S相同的属性组。问题讨论上例可以写成:scstudent 第68页/共109页第67页/共109页自然连接的运算规则:1、两个操作对象中必须至少有一个相同的属性A;2、两个操作对象中A的值相同的记录才能形成结果中的一条记录。3、运算结果中去掉重复的A。若去掉第3条规则,前面的结果会怎样?学号姓名班级学号课
36、程号成绩200501张三0301200501278200501张三0301200501390200402李四0301200402189200402李四0301200402398200503王武0402200503278等值连接第69页/共109页第68页/共109页9等值连接运算:运算符号:BA|BtAtStRtt tSRsrsrsrBA一般形式:注意A和B的意义。继续讨论Go on上例可写成:scstudentscstudent学号学号.第70页/共109页第69页/共109页自然连接的运算规则:1、两个操作对象中必须至少有一个相同的属性A;2、两个操作对象中A的值相同的记录才能形成结果中的
37、一条记录。3、运算结果中去掉重复的A。若去掉第3条规则,同时将第2条规则修改如下:两个操作对象中A的值满足一定的条件(,=,)才能形成结果中的一条记录,第1条规则放松为有相同域的属性,又会怎样?见下例:见下例:Go onGo on第71页/共109页第70页/共109页Company数据库: 有两个关系employee,department如下:Em_noEm_name Em_home Dep_no23452markBeijingd123456Jerkhenand234567rosetianjind1Dep_noDep_namelocationd1ResearchShanghaid2Accou
38、ntingShanghaiD3MarketingBeijing第72页/共109页第71页/共109页对于居住地址在字母排序上早于部门地址的所有职员,获取其职员信息与部门信息的所有组合。分析:1、Employee中的元组与department的元组进行组合;2、组合条件是职员的居住地址在字母排序上要早于部门地址。结果如下:第73页/共109页第72页/共109页Em_noEm_nameEm_homeDep_noDep_no Dep_namelocation23452markBeijingd1d1ResearchShanghai23452markBeijingd1d2AccountShangha
39、i23456Jerkhenand2d1ResearchShanghai23456Jerkhenand2d2AccountShanghai用关系代数表示为:departmentemployeelocationdepartmenteEmemployee.hom_.称为 连接一般形式:第74页/共109页第73页/共109页|BtAtStRtsrSRsrsrBAtt10连接或 连接可以是,=,在前面三种连接的例子中,结果集中包含的行仅仅是一张表中的行,这些行在另一张表中拥有与之相应的行。有没有其他情况?第75页/共109页第74页/共109页有时候不仅需要取得匹配的行,还有必要从另一张表中取得不匹配
40、的行,如下例:对于作为职员居住地的所有城市,或者即是居住地又是工作地点的所有城市,返回所有职员详细信息及其工作部门的详细信息。结果如下:Em_noEm_nameEm_homeDep_noDep_no Dep_namelocation23452markBeijingd1NULLNULLNULL23456Jerkhenand2d2Accountinghenan34567rosetianjind1NULLNULLNULLBeijingMarketingd3henanAccountingd2ShanghaiResearchd1locationDep_nameDep_no其中,department关系如
41、下:该运算为左外连接第76页/共109页第75页/共109页11左外连接上例运算的表达式:对于作为部门所在地的所有城市,或者即是居住地又是工作地点的所有城市,返回所有部门详细信息及其职员的详细信息。结果如下:第77页/共109页第76页/共109页Em_noEm_nameEm_homeDep_noDep_no Dep_namelocationNULLNULLNULLNULLd1ResearchShanghai23456Jerkhenand2d2AccountinghenanNULLNULLNULLNULLd3MarketingBeijing该运算为右外连接12右外连接第78页/共109页第77
42、页/共109页连接运算小结 自然连接 等值连接 连接 左外连接 右外连接第79页/共109页第78页/共109页问题:现有三个关系student,course,sc如下:学号姓名性别年龄班级95001张三男22030195002李四男21030295003王武男26030395004玛丽女200304课程号课程名先行课程号学分1数据库242数据结构443信息系统144C语言4第80页/共109页第79页/共109页学号课程号 成绩950013899500229095001289950011919500149095003380要查询选修了全部课程的学生号码和姓名,该如何写出关系代数式?考察2个集
43、合的关系第81页/共109页第80页/共109页例例 R S Aa1SR令为:c2c7c6c3c6c3c1b1b3b4b2b6b2b2a1a2a3a1a4a2a1CBAd1d1d2c2c1c3b1b2b2DCB前面问题第82页/共109页第81页/共109页)()()(studentcoursesc学号,姓名课程号学号,课程号13除运算:OK第83页/共109页第82页/共109页关系代数小结 选择 投影 并 差 广义迪卡尔积运算 交 连接,等值连接,自然连接,左/右外连接 除练习第84页/共109页第83页/共109页查询选修了2号课程的学生的学号。查询至少选修了一门其直接先行课为4号课程的
44、学生姓名。)(2 SC课程号学号)()(, 4 StudentSCCourse姓名学号先行课程号姓名)()(,4 StudentSCCourse姓名学号先行课程号学号姓名或查询至少选修了1号和3号课程的学生号码。)()(31coursesc课程号课程号课程号学号,课程号第85页/共109页第84页/共109页2.4关系演算 关系代数用关系的运算来表达查询。 关系演算以谓词演算为基础,以元组变量为谓词变元的基本对象。以元组关系演算语言ALPHA为例。第86页/共109页第85页/共109页元组关系演算语言ALPHA基本语句格式:操作语句工作空间(表达式) :操作条件以student,course
45、,sc为例数据只有被读到该空间中,才可以被操作处理,或存放结果。第87页/共109页第86页/共109页SnoSnameSsexSagesdept95001张三男22IS95002李四男21CS95003王武男26MA95004玛丽女20ISCnoCnoCpnoCredit1数据库242数据结构443信息系统144C语言4第88页/共109页第87页/共109页SnoCnoMark9500138995002290950012899500119195001490950033801、检索操作、检索操作 用用GET语句实现语句实现(1) 简单检索简单检索查询所有被选修的课程号码查询所有被选修的课程号
46、码查询所有学生的数据查询所有学生的数据GET W (SC.Cno)GET W (Student)与关系代数中的投影和选择运算比较记忆第89页/共109页第88页/共109页(2) 限定的检索限定的检索查询信息系查询信息系(IS)中年龄小于中年龄小于20岁的学生的学号和年龄。岁的学生的学号和年龄。GET W (Student.Sno, Student.Sage):Student.Sdept=ISStudent.Sage20与关系代数中的投影选择组合比较记忆。练习:练习:查询信息系查询信息系(CS)中年龄大于中年龄大于20岁的学生的学号,姓名和岁的学生的学号,姓名和年龄。年龄。第90页/共109页
47、第89页/共109页(3)带排序的检索查询CS系学生的学号、年龄、结果按年龄降序排列。GET W (Student.Sno,Student.Sage):Student.Sdept=CS DOWN Student.Sage(4)带定额的检索带定额的检索 取出一个信息系学生的学号取出一个信息系学生的学号GET W (1) (Student.Sno):Student.Sdept=IS问:语句 GET W(3) (Student.Sno,Student.Sage):Student.Sdept=IS DOWN Student.Sage的含义。第91页/共109页第90页/共109页(5) 用元组变量的检
48、索用元组变量的检索 查询信息系学生的名字查询信息系学生的名字RANGE Student XGET W (X.Sname):X.Sdept=IS(6) 用存在量词的检索用存在量词的检索 查询选修查询选修2号课程的学生名字。号课程的学生名字。为真的元组。中使条件关系QXQX)(RANGE SC XGET W (Student.Sname): X(X.Sno=Student.Sno X.Cno=2)第92页/共109页第91页/共109页查询至少选修一门其先行课为查询至少选修一门其先行课为6号课程的学生名字号课程的学生名字RANGE Course CX SC SCX) ) 6 .(.(: ).(Pc
49、noCXCnoSCXCnoCXCXSnoStudentSnoSCXSCXSnameStudentWGET或:或:) 6 .(: ).(PcnoCXCnoSCXCnoCXSnoStudentSnoSCXCXSCXSnameStudentWGET第93页/共109页第92页/共109页(7)带有多个关系的表达式的检索带有多个关系的表达式的检索查询成绩为查询成绩为90分以上的学生名字与课程名字分以上的学生名字与课程名字RANGE SC SCX).90.(: ).,.(CnoSCXCnoCourseSnoStudentSnoSCXGradeSCXSCXCnameCourseSnameStudentWGET第94页/共109页第93页/共109页(8)用全称量词的检索用全称量词的检索 查询不选查询不选1号课程的学生名字号课程的学生名字RANGE SC SCX) 1 .(:).(CnoSCXSnoStudentSnoSCXSCXSnameStudentWGET为真的所有元组中使条件关系QXQX)() 1 .(: ).(CnoSCXSnoStudentSnoSCXSCXSnameStuden
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年甘肃省武威市九师联盟高考地理模拟试卷(5月份)
- 2026垃圾分类考核台账制度
- 湖南文旅岗2026面试模拟练习配套答题思路
- 河北文旅岗事业单位2026面试自测卷含答案
- 构建以工艺交出和能量隔离为核心的作业许可管控流程课件
- 湖南计算机岗事业单位2026面试模拟练习习题汇编
- 山东文旅岗2026事业编面试模拟练习含答案
- 黄斑变性的叶黄素补充
- 细菌性脑膜炎的紧急处理
- 1+X证书电子商务数据分析(初级)题库题目
- 2026年沈阳鼓风机集团股份有限公司人员招聘笔试参考题库及详细答案解析
- 防止返贫动态监测帮扶培训
- 2026年质量员之设备安装质量专业管理实务能力测试试题带答案
- 2026 劳动争议调解仲裁法测试试题及答案
- (2.1)-第二章 绦虫的结构预防兽医学实验
- 2026秋新教材人教版六年级上册美术全册教案
- 2026年秋季小学道德与法治三年级上册(新教材)教学计划含教学进度表
- 2026年秋季学期人教版(新教材)初中生物学八年级上册教学计划及进度表
- 2026年大学钻探技术(钻探施工技术)试题及答案
- 《自我保护免受伤害》教学课件 - 2026-2027 学年统编版(新教材)小学道德与法治四年级上册
- 2026年天津中考英语试题【含答案】
评论
0/150
提交评论