




免费预览已结束,剩余111页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 关系模型和关系运算理论,2,本章目录,2.1 关系数据结构 2.2 关系的完整性约束 2.3 关系操作 2.4 关系代数 2.5 关系演算,3,学习目标,理解关系的笛卡尔积定义; 掌握关系模式的定义及相关概念; 理解关系的完整性约束定义; 熟练掌握关系代数中的基本运算、组合运算、 扩充运算; 了解关系演算的含义及演算规则。,4,2.1 关系数据结构,2.1.1 关系的笛卡尔积定义 2.1.2 关系的二维表格描述 2.1.3 关系模式 2.1.4 键,5,2.1.1 关系的笛卡尔积定义, 域(domain) 2. 笛卡尔积(cartesian product) 3. 关系(relation),6, 域(domain),域是一组具有相同数据类型的值的集合。例: 整数 实数 介于某个取值范围的整数 长度指定长度的字符串集合 男,女,7,2. 笛卡尔积(cartesian product),笛卡尔积 给定一组域d1,d2,dn,这些域中可以有相同的。 d1,d2,dn的笛卡尔积为: d1d2dn (d1,d2,dn)didi,i1,2,n 所有域的所有取值的一个组合 不能重复,8,笛卡尔积(续),元组(tuple) 笛卡尔积中每一个元素(d1,d2,dn)叫作一个n元组(n-tuple)或简称元组(tuple) 分量(component) 笛卡尔积元素(d1,d2,dn)中的每一个值di叫作一个分量,9,笛卡尔积(续),基数(cardinal number) 若di(i1,2,n)为有限集,其基数为mi(i1,2,n),则d1d2dn的基数m为 笛卡尔积的表示方法 笛卡尔积可表示为一个二维表 表中的每行对应一个元组,表中的每列对应一个域,10,3. 关系(relation),1) 关系 d1d2dn的子集叫作在域d1,d2,dn上的关系,表示为 r(d1,d2,dn) r:关系名 n:关系的目或度(degree),11,2.1.2 关系的二维表格描述,1关系与一般表格的术语对比 2关系表的规范化限定 3关系表的三种类型,12,1. 关系与一般表格的术语对比,13,2. 关系表的规范化限定,关系表规范化限定: (1)列值同质性:关系表中同一列的列值是同一类型的数据,来自同一个域。 (2)异列同域性:关系表中不同的列可以来自同一个域。 (3)列名唯一性:关系表必须对每列起一个不相同的名字,14,2. 关系表的规范化限定,(4)列的无序性:关系表中列的次序可以任意交换 (5)行的无序性:关系表中行的次序可以任意交换 (6)行值相异性:关系表任意两行不能完全相同 (7)列值原子性:关系表中不允许“表中有表” (8)行值有义性:关系表中每一行是对某一实体或 实体间联系的抽象描述,具有特定的语义。,15,3. 关系表的三种类型,在关系数据模型中,关系表可以有三种类型: (1)基本表:通常又称为基表或基本关系,它是实际存在的表,是实际存储数据的逻辑表示。 (2)查询表:是对一个或多个基本表进行查询所得结果对应的表。 (3)视图表:是由基本表或者其它视图导出的表,是虚表,不对应实际存储的数据。,16,2.1.3 关系模式,关系模式是对关系的逻辑结构和属性的描述,是关系的型;关系是关系模式的实例,是其关系模式的属性名到具体属性值的映射的集合。 1. 关系模式 2. 关系与关系模式的联系与区别,17,1关系模式,关系模式(relation schema)是型 关系是值 关系模式是对关系的描述,(1)什么是关系模式,18,(2)定义关系模式,关系模式可以形式化地表示为: r(u,d,dom,f) r 关系名 u 组成该关系的属性名集合 d 属性组u中属性所来自的域 dom 属性向域的映象集合 f 属性间的数据依赖关系集合,19,(2)定义关系模式 (续),导师和研究生出自同一个域人, 取不同的属性名,并在模式中定义属性向域 的映象,即说明它们分别出自哪个域: dom(supervisor-person) = dom(postgraduate-person) =person,20,定义关系模式 (续),关系模式通常可以简记为 r (u) 或 r (a1,a2,an) r: 关系名 a1,a2,an : 属性名 注:域名及属性向域的映象常常直接说明为 属性的类型、长度,21,2. 关系与关系模式的联系与区别,关系模式 对关系的描述 静态的、稳定的 关系 关系模式在某一时刻的状态或内容 动态的、随时间不断变化的 关系模式和关系往往统称为关系 通过上下文加以区别,22,2.1.4 键,键(key):也称为码,是关系数据结构中的一个重要概念。 键又可分 超键 候选键 主键 外键,23,1超键(super key) 在关系中能够唯一标识元组的属性或属性组称为关系模式的超键。 例如属性子集学号,籍贯是学生关系模式的超键。,24,2.1.4 键,2候选键(candidate key) 不含有多余属性的超键称为关系模式的候选键。 例如 学号,籍贯是超键但不是候选键 全码(all-key) 关系模式的所有属性组是这个关系模式的候选码 称为全码(all-key) 例:supply(供应商,零件名,项目名),25,3主键(primary key) 用户选作元组标识的候选键称为关系模式的 主键 主键的值可以用来识别和区分元组 每个元组的主键的值不能相同。 在关系模式中,主键用下划线来标识。 在实际应用中,如果不加说明,键通常是指主键。,26,3主键(primary key),主属性 候选码的诸属性称为主属性(prime attribute) 非主属性 不包含在任何侯选码中的属性称为非主属性(non-prime attribute)或非码属性(non-key attribute),27,2.1.4 键,4外键(foreign key) 设关系模式r的一个属性或属性组f ,与关系模式s的主键ks相对应,但不是关系r的超键。则称f是基本关系r的外键或外码,28,例 学生实体、专业实体 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),主码,主码,29,4外键(foreign key),说明: 关系r和s不一定是不同的关系 目标关系s的主码ks 和参照关系的外码f必须定义在同一个(或一组)域上 外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别,30,提 问,1、什么是主键、外键? 2、什么主属性、非主属性?,31,例 学生实体、专业实体 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名),主码,主码,32,2.2 关系的完整性约束,2.2.1 实体完整性 2.2.2 参照完整性 2.2.3 用户自定义的完整性,33,2.2.1 关系的三类完整性约束,实体完整性和参照完整性: 关系模型必须满足的完整性约束条件 称为关系的两个不变性,应该由关系系统自动支持 用户定义的完整性: 应用领域需要遵循的约束条件,体现了具体领域中的语义约束,34,2.2.2 实体完整性,规则2-1 实体完整性规则(entity integrity) 若属性a是基本关系r的主属性,则属性a不能取空值 例:关系模式存放(零件号,仓库号,数量)的主键为零件号,仓库号,这两个属性的任一个在该关系的任一元组中都不能取空值。,35,实体完整性(续),实体完整性规则的说明: (1) 实体完整性规则是针对基本关系而言的。 (2) 现实世界中的实体是可区分的,即它们具有某种唯一性标识。 (3) 关系模型中以主码作为唯一性标识。 (4) 主码中的属性即主属性不能取空值。,36,2.2.2 参照完整性,1. 关系间的属性引用类型 2. 参照完整性规则,37,关系间的引用类型有三种情况: (1)两个关系间的属性引用 例2-3 设学生实体型和专业实体型可用如下两个关系模式表示,其中主键用下划线标识,外键用波浪线标识: 学生(学号,姓名,出生年月,籍贯,专业号) 专业(专业号,专业名),主码,主码,38,1. 关系间的属性引用类型,(2)两个以上关系间的属性引用 例2-4 设学生实体型、课程实体型及它们之间联系选修可以用如下三个关系模式表示: 学生(学号,姓名,年龄,籍贯,专业号) 课程(课程号,课程名) 选修(学号,课程号,成绩),39,1. 关系间的属性引用类型,(3)同一关系内部属性间的引用 例2-5 设课程之间有先修、后修联系,用关系模式可表示为:课程(课程号,课程名,先修课程号)。,40,2. 参照完整性规则,规则2-2 参照完整性规则 若属性(或属性组)f是基本关系r的外码它与基本关系s的主码ks相对应,则对于r中每个元组在f上的值必须为: 或者取空值(f的每个属性值均为空值) 或者等于s中某个元组的主码值,41,基本关系r称为参照关系(referencing relation) 基本关系s称为被参照关系(referenced relation) 或目标关系(target relation),2. 参照完整性规则,42,参照完整性规则(续),例1: 学生关系中每个元组的“专业号”属性只取两类值: (1)空值,表示尚未给该学生分配专业 (2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业,43,参照完整性规则(续),例2 : 选修(学号,课程号,成绩) “学号”和“课程号”可能的取值 : (1)选修关系中的主属性,不能取空值 (2)只能取相应被参照关系中已经存在的主码值,44,2.2.3 用户自定义的完整性,用户自定义的完整性约束是用户针对某一关系数据库所设置的约束条件,它反映了某一具体应用领域中的数据所应满足的特定语义要求。 例如,一个人的年龄取值应在0到150之间,学生的成绩取值应在0到100之间。,45,2.3 关系操作,2.3.1 关系操作的类型 2.3.2 关系运算,46,2.3.1 关系操作的类型,关系操作主要包括关系查询和关系更新两种类型,其中: 关系查询是最常用的一类关系操作,是关系操作的核心。关系查询可进一步分为关系内的查询和多个关系间的查询。 关系更新包括插入、删除和修改三种操作,47,2.3.2 关系运算,从数学角度来看,关系操作实际上就是关系的运算,其操作过程可以通过代数方式和逻辑方式来表示,分别称为关系代数(relational algebra)和关系演算(relational calculus)。 关系代数、元组关系演算和域关系演算三者可以相互转换,它们在关系操作的表达能力上是等价的。,48,2.3.2 关系运算,关系数据语言的三种类型,49,2.4 关系代数,2.4.1 关系代数概述 2.4.2 关系代数的基本运算 2.4.3 关系代数的组合运算 2.4.4 关系代数的扩充运算,50,2.4.1 关系代数概述,51,2.4.1 关系代数概述,按运算符的不同可分为 传统的集合运算包括并、差、交、笛卡尔积四种运算,从关系的“水平”方向即行的角度进行。 专门的关系运算包括选择、投影、连接、除等运算。,52,关系代数的基本运算:并、差、笛卡尔积、选择和投影是最基本的五种运算,称为关系代数的基本运算。 组合运算:交、连接、除等均可用五种基本运算来表达,它们并不增加关系代数的语言表达能力,但可以简化表达,这些运算称为关系代数的组合运算。,2.4.1 关系代数概述,53,2.4.1 传统的集合运算,特点: 除乘积外,关系r和关系s具有相同的目n,且相应的属性取自同一个域,属性名可不同。 二目运算 。 是从关系的水平方向进行的运算。,并、差、交、笛卡尔积,54,1.关系并运算 rs:由r与s中所有的元组组成,去 掉重复元组。形式化定义: r s=t|trt s 2.关系交运算 rs:由r与s中都有的元组组成。形式化定义: rs=t|trt s 3.关系差运算 rs:由r中有而s中没有的元组组成; rs= t|trt s rs rs rs,2.4.1 传统的集合运算,55,【例】现有在职职工和离退休职工两个表,若需要所有职工的表,,在职职工表,离退休职工表s,可以利用并运算实现。,56,新关系s,2.4.1 传统的集合运算(续),57,r s rs,2.4.1 传统的集合运算(续),58,【例】某商店有本店商品表,接到不合格商品表后,需要将本店中的不合格商品去掉。,本店商品表,传统的集合运算(续),可以利用差运算实现。,不合格商品表,59,新关系,2.4.1 传统的集合运算(续),60,【例】找出本店内不合格的商品,,新关系,2.4.1 传统的集合运算(续),可以用交运算实现。,61,广义笛卡尔积,4.关系的笛卡儿积 : 由 r 中的每一个元组与 s 中的每一个元组两两相连,把r和s的元组以所有可能的方式组合起来,合并为 rs 的元组。形式化定义如下:,62,例:现有学生表、必修课程表,每个学生必须学习所有必修课程,要求形成选课表。可以 。,学生表,广义笛卡尔积 (续),利用关系乘运算实现,63,必修课程表,广义笛卡尔积 (续),64,新关系,65,专门的关系运算(续),选择 投影 连接 除,66,关系r的选择运算是从关系r中选择满足指定条件(用f表示)的元组构成的新关系。换言之,选择运算的结果是一个表的水平方向的子集。 关系r的选择运算记为:,1.选择运算,f(r),形式化定义如下:,67,选择运算(续),student,68,选择运算(续),例 查询信息系(is系)全体学生 结果:,sdept = is (student) 或 5 =is (student),选择运算(续),69,职工表e,例 求所有在职男职工信息。,性别=男状态=1( e),70,投影:关系r的投影运算是从r中选择某些属性的所有值组成的新关系。换言之,投影运算的结果是一个表的垂直方向的子集。 关系r的投影运算记为:i1,i2ik(r)。,2.投影运算,投影的结果将消除重复的元组。,投影的形式化定义: i1,i2ik(r)=u|u=(ti1,ti2,tik)(t1,t2,,tn) r,71,职工表e,投影运算(续),【例】从职工表中列出所有职工的名单,可以通过投影运算实现,72,姓名(e),投影运算(续),注意:姓名(e)运算的结果将同名的两个“王红”去掉重复,只保留一个。,73,【例列出职工姓名及其任职状态,可以通过投影运算实现。,姓名,状态(e),74,关系r与关系s的连接运算是从两个关系的广义笛卡尔积中选取属性间满足一定条件的元组形成一个新关系。记作:,3.连接运算:,其中:a为包含r中的属性的表达式 b为包含s中属性的表达式 通常为关系比较符。,形式化定义:,75,等值连接: 为“”的连接运算称为等值连接。关系r和s的等值连接是从r和s的广义笛卡尔积rs中选取a与b等值的那些元组形成的关系。,自然连接 关系r和s的自然连接是一种特殊的等值连接,它要求关系r和s中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉(只保留一个)。 自然连接记为:,常用连接运算(续),76,连接(续),举例,r,s,77,连接(续),r s,78,连接(续),等值连接 r s,79,连接(续),自然连接 r s,80,【例】设有图书借阅信息表和图书信息表,求各读者借阅图书的信息。,借阅信息表borrowinf,81,图书信息表books,82,求各读者借阅图书的信息,可通过等值连接实现: borrowinf books 图书编号 = 编号 结果为:,连接(续),83,连接(续),84,给定关系r(x,y)和s(y,z),其中x,y,z为属性组 除运算是同时从行和列角度进行运算,在进行运算 时,将被除关系r的属性分成两部分:与除关系相同 的部分y和不同的部分x。在被除关系r中,按x的值分组,即相同值的元组分为一组。除法的运算是求 包括除关系中全部y值的组,这些组中的x值将作为 除结果的元组,记为rs,4.除运算,85,例:表示满足课程成绩条件(离散数学为优和数据结构为优)的学生情况关系,学生学习sc,课程成绩条件cg,sccg,86,除(续),例设关系r、s分别为下图的(a)和(b),rs的结果为,87,应用实例,设教学数据库中有三个关系 学生关系(学号,姓名,性别,年龄,所在系,专业) 课程关系(课程号,课程名,学时数) 选课关系(学号,课程号,成绩),88,1、检索学习课程号为c201的学生的学号与成绩 2、检索学习课程号为c142的学生的学号与姓名,学号,成绩(课程号=c201(选课),学号,姓名(课程号=c142(学生选课),应用实例,89,(3)检索不学课程代号为c345的学生的姓名与年龄,姓名,年龄(学生)- 姓名,年龄( 课程号=c345 (学生选课)),(4)检索学习全部课程的学生学号,学号,课程号(选课) 课程号(课程),应用实例,90,检索年龄在18到20之间(含18和20)的女生学号、姓名及年龄。 查询有不及格课程的学生姓名和所在系。 查询所选课程全部及格的学生姓名和所在系。 检索选修课程名为数据库的学生学号与姓名。 查询全部学生都选修了的课程的课程号、课程名。,作业:用关系代数实现下列功能,91,答案,1.检索年龄在18到20之间(含18和20)的女生学号、姓名及年龄。 2.查询有不及格课程的学生姓名和所在系。 3.查询所选课程全部及格的学生姓名和所在系。,sno,sname,sage( sage18sage20 ssex=女(student), sname, sdept (grade60 ( sc student ), sname, sdept ((sc student ) -grade60 (sc) student )),92,4.检索选修课程名为数据库的学生学号与姓名。 5.查询全部学生都选修了的课程的课程号、课程名。, sno,sname( cname=数据库( student sc course),cno,cname( sno,cno (sc) sno(student) course),93,6、查询至少选修了两门课的学生学号和姓名。 sno ,sname(sno( 1=4 2 5(sc sc) student),94,2.4.1 关系代数概述,关系代数的扩充运算:改名、广义投影、赋值、外连接、外部并、半连接、聚集运算等,我们把这些运算和附加功能统称为关系代数的扩充运算。,95,1改名(rename) 改名也称重命名,是关系代数中一种常用的附加操作功能。改名运算的形式为: s(a1,a2,,an)(r) 如果只是希望将关系r改名成s而其属性名称保持不变,此时改名运算可表示成: 。,96,2.4.4 关系代数的扩充运算,2广义投影(generalized projection) 广义投影是投影运算的扩展。该运算允许在投影列表中使用算术函数来对投影进行扩展 例2-15 给定职工关系employee(eno,name,department,age,sex,pay),如要将年龄为50岁以上的职工工资上调8%,则可使用广义投影表示为:,97,2.4.4 关系代数的扩充运算,3赋值(assignment) 赋值运算的形式为: ,表示将关系 的结果赋值给关系 。,98,4.外连接,如果关系r和 s 做自然连接时,把舍弃的元组也保存在结果关系中,而在其他属性上填空值(null),这种连接就叫做外连接(outer join)。,99,左外连接 如果只把左边关系r中要舍弃的元组保留就叫做左外连接 右外连接 如果只把右边关系s中要舍弃的元组保留就叫做右外连接。 全外连接: 把两个关系中原该舍弃的元组都保留在新关系中,这种运算称为全外连接,4.外连接(续),100,关系r和关系s 如下所示:,外连接(续),101,外连接(续),图(b)是关系r和关系s的左外连接,图(c)是右外连接,102,外连接(续),下图是关系r和关系s的全外连接,103,2.4.4 关系代数的扩充运算,5外部并(outer union) 外部并是并运算的扩展。设关系 和 的关系模式不同,则 和 的外部并是由两关系所有属性组成(公共属性只取一次)的一种新关系,记为 ,该关系的元组由属于 或 的所有元组组成,同时元组在新增加的属性上填充空值(null)。,104,2.4.4 关系代数的扩充运算,例2-17 关系 和 的外部并运算结果如图2-8所示。,105,2.4.4 关系代数的扩充运算,6半
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古鄂尔多斯生态环境职业学院专业技术人员招聘18人考前自测高频考点模拟试题含答案详解
- 2025河南新乡市牧野区世青学校招聘考前自测高频考点模拟试题及答案详解(名校卷)
- 2025贵州遵义市赤水市第一批就业见习招募34人模拟试卷及答案详解(网校专用)
- 2025江西南昌市东方航空配餐有限公司招聘劳务派遣人员1人模拟试卷及答案详解(名师系列)
- 2025河南郑州市第六人民医院招聘考前自测高频考点模拟试题及答案详解(全优)
- 2025年山东职业学院公开招聘人员(28名)模拟试卷及答案详解(必刷)
- 2025黑龙江五大连池风景区宣传和统一战线工作部招聘1名公益性岗位1人考前自测高频考点模拟试题(含答案详解)
- 2025福建三明市大田县住房和城乡建设局(房地产服务中心)补招聘工作人员(政府购买服务)1人模拟试卷及答案详解(有一套)
- 2025年牡丹江市高校毕业生留牡来牡就业创业专项行动工作的模拟试卷(含答案详解)
- 2025年上海新型烟草制品研究院有限公司所属企业招聘2人(第一批次)笔试题库历年考点版附带答案详解
- 营房装修施工方案(3篇)
- 品牌基础知识培训内容课件
- 2025年教师师德师风考试题(附答案)
- 2025年知识竞赛-监理知识竞赛历年参考题库含答案解析(5套典型题)
- DG-TJ08-2120-2025 集体土地所有权调查技术标准
- 脑梗死健康宣教及指导
- 遵守安全生产法 当好第一责任人
- 创伤性气胸护理查房
- DB42T 750-2011 家用燃气燃烧器具安装维修服务质量评价规范
- 氧化蜡行业深度研究分析报告(2024-2030版)
- 2025-2030年中国备件制造行业市场现状供需分析及投资评估规划分析研究报告
评论
0/150
提交评论