数据库技术 第二章 关系数据库 中国科学技术大学网络学院 阚卫华.

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
2012年9月等级考试辅导 数据库设计基础.
复习: :对任意的x∈A,都有x∈B。 集合A与集合B间的关系 A(B) A B :存在x0∈A,但x0∈B。 A B A B.
数据库系统概论 An Introduction to Database Systems
圆的一般方程 (x-a)2 +(y-b)2=r2 x2+y2+Dx+Ey+F=0 Ax2+Bxy+Cy2+Dx+Ey+ F=0.
第五章 二次型. 第五章 二次型 知识点1---二次型及其矩阵表示 二次型的基本概念 1. 线性变换与合同矩阵 2.
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
Principles and Applications of the Database
Access数据库基础 系列教学课件 安丘市职业中专 雷云龙.
第二章 关系数据库 2.1 关系模型概述 2.2 关系数据结构 2.3 关系的完整性 2.4 关系代数 2.5 关系演算 2.6 小结.
An Introduction to Database System An Introduction To Database System
《高等数学》(理学) 常数项级数的概念 袁安锋
第1章 数据库基础 1.1 数据库基本概念 数据处理 数据(Data)是对客观事物的某些特征及其相互联系的一种抽象化、符号化表示。 例如:王华出生日期为1970年7月12日,身高1.75m,体重65kg,部门代码A01,职称是副教授,其中王华、1970年7月12日、1.75m、65kg、A01、副教授等都是数据.
常用逻辑用语复习课 李娟.
Database Principles & Applications
第5章 数据库基础 5.1 数据库系统概述 5.2 数据模型 5.3 关系模型 5.4 关系数据库 5.5 常见的关系数据库管理系统简介.
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
2-7、函数的微分 教学要求 教学要点.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
第2章 关系数据库系统.
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
作业4讲评.
第2章 关系数据库 2.1 关系模型 2.2 关系代数 2.3 查询优化.
辅导课程六.
元素替换法 ——行列式按行(列)展开(推论)
An Introduction to Database System An Introduction to Database System
An Introduction to Database System
第2章 关系数据库数学模型 本章导读: 2.1 关系模型概述 2.2 关系代数的原理 2.3 关系代数 2.4 关系演算
第2章数据基础知识 2.1数据库基本概念 2.1.1数据库技术的发展
第二章 Java语言基础.
Thanks for the Slides from Renmin U
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
第一章 函数与极限.
1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
数据库系统概论 An Introduction to Database System
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
An Introduction to Database System An Introduction to Database System
第二章 关系数据库 2.1 关系数据库的基本概念 2.2 关系模型及其描述 2.3 关系代数 2.4 关系演算 本章小结.
数列.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
作业2讲评.
VB与Access数据库的连接.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第九节 赋值运算符和赋值表达式.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
1.把下面的关系模式转化为E-R图 1)系(系号,系名,电话) 2)教师(工号,姓名,性别,年龄,系号)
1.2 子集、补集、全集习题课.
1.设A和B是集合,证明:A=B当且仅当A∩B=A∪B
第4课时 绝对值.
上杭二中 曾庆华 上杭二中 曾庆华 上杭二中 曾庆华.
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
《离散结构》 二元运算性质的判断 西安工程大学计算机科学学院 王爱丽.
§2 方阵的特征值与特征向量.
主讲教师 欧阳丹彤 吉林大学计算机科学与技术学院
第3章 关系数据库 内容提要 关系模型的数据结构 关系模型的常用术语 关系数据库的完整性概念 数据库的关系运算 函数依赖的定义
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
基于列存储的RDF数据管理 朱敏
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
VB与Access数据库的连接.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
§4.5 最大公因式的矩阵求法( Ⅱ ).
Chapter 14 Databases.
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
关系数据库 第2章 关系数据结构 关系定义 关系性质 关系模式 关系的完整性 实体完整性 参照完整性 用户定义完整性 关系代数 关系演算
Presentation transcript:

数据库技术 第二章 关系数据库 中国科学技术大学网络学院 阚卫华

第二章 关系数据库 (8学时) 2.1 关系模型概述 2.2 关系数据结构及形式化定义 2.3 关系的完整性 2.4 关系代数 第二章 关系数据库 (8学时) 2.1 关系模型概述 2.2 关系数据结构及形式化定义 2.3 关系的完整性 2.4 关系代数 * 2.5 关系演算 2.6小结 2018年11月22日星期四

关系数据库简介 关系数据库是应用数学方法来处理数据库中的数据。系统地、严格地提出关系数据模型的是美国IBM公司的E.F.Codd。    1970 年,E.F.Codd在美国计算机学会会刊《 Communication of the ACM 》上发表的题为“A Relational Model of Data for Large Shared Data Banks”的论文,首先提出了关系数据模型,开创了数据库系统的新纪元。之后,他又提出了关系代数和关系演算的概念,提出了函数依赖的概念; 2018年11月22日星期四

关系数据库简介(续) 1972 年提出了关系的第一、第二、第三范式; 1974 年提出了关系的BC范式(Boyce - Codd),为关系数据库奠定了理论基础 (由于Codd对关系数据库理论的突出贡献,他获得了ACM的最高奖:图灵奖)。20世纪80年代后,关系数据库系统成为最重要、最流行的数据库系统(数据库系统产品:1. 典型实验系统的 System R; University INGRES 2. 典型商用系统的ORACLE;SYBASE;INFORMIX;DB2;INGRES) 。 2018年11月22日星期四

2.1 关系模型概述 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 一、单一的数据结构 关系 一、单一的数据结构  关系 现实世界的实体以及实体间的各种联系均用关系来表示。 数据的逻辑结构:二维表。 关系模型中的数据结构非常单一。从用户角度来看,关系模型中数据的逻辑结构是一张二维表。 2018年11月22日星期四

二、关系操作 (1) 关系模型中常用的关系操作包括7 种 查询: 选择;投影;连接;除;并;交; 差。 (1) 关系模型中常用的关系操作包括7 种 查询: 选择;投影;连接;除;并;交; 差。 (2)数据更新:增加、删除、修改3种。    查询的表达能力是其中最主要的部分;关系模型给出了关系操作的能力,但对RDBMS语言没有给出具体的语法要求。 2018年11月22日星期四

集合操作方式(即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录的方式)。 (3) 关系操作的特点:    集合操作方式(即操作的对象和结果都是集合。非关系数据模型的数据操作方式:一次一记录的方式)。 2018年11月22日星期四

(4)关系数据语言    关系数据语言包括:A)关系代数语言;B)关系演算语言(元组关系演算语言、域关系演算语言);C)具有关系代数和关系演算双重特点的语言三类。这些关系数据语言的共同特点是:语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入到高级语言中使用。 2018年11月22日星期四

A)关系代数语言:用对关系的运算来表达查询要求。典型代表:ISBL B)关系演算语言:用谓词来表达查询要求 1) 元组关系演算语言:谓词变元的基本对象是元组变量。典型代表:APLHA, QUEL     2) 域关系演算语言 :谓词变元的基本对象是域变量。典型代表:QBE 2018年11月22日星期四

C)具有关系代数和关系演算双重特点的语言。    *早期的关系操作能力通常用代数方式和逻辑方式来表示,分别称为关系代数和关系演算。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。这三种语言在表达能力上是完全等价的。 C)具有关系代数和关系演算双重特点的语言。 典型代表:SQL 2018年11月22日星期四

   这是一种介于关系代数和关系演算之间的语言SQL(Structured Query Language)。SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL、DML和DCL于一体的关系数据语言。它充分体现了关系数据语言的特点(优点),是关系数据库的标准语言。 2018年11月22日星期四

(5)关系数据语言的特点    关系数据语言是一种高度非过程化的语言;存取路径的选择由DBMS的优化机制来完成,不必请求DBA为其建立特殊的存取路径;用户不必用循环结构就可以完成数据操作;能够嵌入到高级语言中使用;理论上已经证明:关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。 2018年11月22日星期四

三、关系的三类完整性约束 实体完整性:通常由关系系统自动支持; 参照完整性:通常由关系系统自动支持;  三、关系的三类完整性约束 实体完整性:通常由关系系统自动支持; 参照完整性:通常由关系系统自动支持; ( 实体完整性和参照完整性是关系模型必须满足的完整性约束条件;早期系统不支持,目前大型系统能自动支持。) 用户定义的完整性:反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束。用户定义后由系统支持。    下面将分别讨论关系模型的三个方面(第三章将专门讨论SQL)。 2018年11月22日星期四

2.2 关系数据结构及形式化定义    在关系模型中,无论是实体还是实体之间的联系,都是由单一的结构类型(即:关系或表)来表示。在此以前,尽管已经讨论过关系模型以及有关的概念,但那是非形式化的。这里我们从集合论的角度给出关系数据结构的形式化定义(关系模型是建立在集合代数的基础的)。 2018年11月22日星期四

2.2.1 关系 1.域(Domain):域是一组具有相同数据类型的值的集合。     与以前域的概念在本质上是一样的,只不过抽象为数据类型。(注:数据类型是一个很重要的概念。例如:C语言中数据类型定义为整型的数据。它表示:在具体的计算机内的取值范围<如在微机中的范围为-32767~32768>;它在机内的表示<如为补码形式>;它所能允许的操作<如+、-、*、/、% 等运算>;数据类型可以构成较为复杂的数据结构<即:数据的组织形式>)。 2018年11月22日星期四

2. 笛卡尔积(Cartesian Product) 给定一组域D1,D2,…,Dn,这些域中可以有相同的。 {(d 1,d 2,…,d n)|d i D i,i=1,2,…,n} 其中每一个元素(d 1,d 2,…,d n)叫做一个n元组(n-tuple)或简称元组(Tuple)。元组中的每一个值d i叫做一个分量(Component)。 2018年11月22日星期四

  若D i (i=1,2,…,n)为有限集,其基数(Cardinal number)为m i(i=1,2,…,n),则D1×D2×…×Dn的基数M为:      2018年11月22日星期四

笛卡儿积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。 下面以实际的例子做笛卡儿积的运算过程。所有域的所有取值的一个组合不能重复。 2018年11月22日星期四

则D1,D2,D3的笛卡尔积为: 例 给出三个域: D1=导师集合SUPERVISOR ={ 张清玫,刘逸 } 例 给出三个域: D1=导师集合SUPERVISOR ={ 张清玫,刘逸 } D2=专业集合SPECIALITY={计算机专业,信息专业} D3=研究生集合POSTGRADUATE={李勇,刘晨,王敏} 则D1,D2,D3的笛卡尔积为: 2018年11月22日星期四

{(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), 则D1,D2,D3的笛卡尔积为:  D1×D2×D3 = {(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), 2018年11月22日星期四

(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) } 其中, (张清玫,计算机专业,李勇)等都是元组[笛卡尔积中每一个元素(d1,d2,…,dn)] ; [笛卡尔积元素(d1,d2,…,dn)中的每一个值 d i 叫作一个分量] :张清玫,计算机专业,李勇等。 2018年11月22日星期四

在上例中,基数为:2×2×3=12,即D1×D2×D3共有2×2×3=12个元组,12个元组可列成一张二维表。    笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。 继续P23 2018年11月22日星期四

表2.1 D1,D2,D3的笛卡尔积 SUPERVISOR SPECIALITY POSTGRADUATE 张清玫   计算机专业     李勇 张清玫   计算机专业     刘晨 张清玫   计算机专业     王敏 张清玫   信息专业      李勇  张清玫   信息专业      刘晨 张清玫   信息专业      王敏  刘逸    计算机专业     李勇 刘逸    计算机专业     刘晨  刘逸    计算机专业     王敏 刘逸    信息专业      李勇  刘逸    信息专业      刘晨 刘逸    信息专业      王敏    返回P21 继续P23 返回P29 2018年11月22日星期四

3.关系(Relation) 关系的定义: D1×D2×…×Dn的子集叫作在域 D1,D2,…,Dn上的关系,表示为 R(D1,D2,…,Dn),这里R表示关系的名字, n表示关系的目或度(Degree)。 2018年11月22日星期四

D1×D2×…×Dn表示的是域上所有可能的组合,在现实生活中很多元组是无意义的数据,而一个关系肯定包含在D1×D2×…×Dn之中,因此,在数学上把关系定义为D1×D2×…×Dn的子集。 2018年11月22日星期四

关系中的每个元素是关系中的元组,通常用t表示。 当n=1时,称该关系为单元关系  (Unary relation)。    当n=2时,称该关系为二元关系(Binary relation)。 2018年11月22日星期四

注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是没有意义的。    关系是笛卡儿积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。n目关系必有n个属性。    注意:关系是笛卡尔积的有限子集。无限关系在数据库系统中是没有意义的。 2018年11月22日星期四

候选码:若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 若一个关系有多个候选码,则选定其中一个为主码(Primary key)。主码中的所有属性称为主属性(Prime attribute)。不包含在任何候选码中的属性称为非码属性(非主属性)(Non-key attribute)。 2018年11月22日星期四

在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。 2018年11月22日星期四

例 在表2.1 的笛卡尔积中取出子集(有实际意义的元组)来构造关系。    例 在表2.1 的笛卡尔积中取出子集(有实际意义的元组)来构造关系。    由于一个研究生只师从一个导师,学习某一门专业,所以笛卡尔积中的许多元组都是没有实际意义的。现从中取出有实际意义的元组来构造关系。 2018年11月22日星期四

关系名:SAP,属性名:SUPERVISOR,SPECIALITY和POSTGRADUATE。  假设:导师与专业是1:1,即一个导师只有一个专业;导师与研究生是1:n,即一个导师可以带多名研究生,而一名研究生只有一个导师。   如表 2.2 所示 继续课程P32 2018年11月22日星期四

{(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(刘逸,信息专业,王敏)}如表 2.2 所示。 这样,SAP关系可以包含三个元组: {(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(刘逸,信息专业,王敏)}如表 2.2 所示。 表 2.2 SAP关系 返回P30 SUPERVISOR SPECIALITY POTGRADUATE 信息专业 李勇 张清玫 张清玫 信息专业 刘晨 刘逸 信息专业 王敏 继续课程P32 2018年11月22日星期四

三种关系类型: 基本关系(基本表或基表): 实际存在的表,是实际存储数据的逻辑表示。 查询表:查询结果对应的表。 视图表: 由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。 2018年11月22日星期四

当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充:    当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充: ⑴ 无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。 ⑵ 通过为关系的每个列附加一个属性名的方法取消关系元组的有序性。说明见下页 2018年11月22日星期四

(d1,d2,…,dn )≠(d2,d1,…,dn ) 但关系满足交换律,即   由于笛卡尔积不满足交换律,即 (d1,d2,…,dn )≠(d2,d1,…,dn ) 但关系满足交换律,即  (d1,d2 ,…,di ,dj ,…,dn) =   (d1,d2 ,…,dj,di ,…,dn)    (i,j = 1,2,…,n)  解决方法:为关系的每个列附加一个属性名的方法取消关系元组的有序性。 2018年11月22日星期四

基本关系具有以下六条性质:    因此,基本关系具有以下六条性质:注意:在许多实际关系数据库产品中,基本表并不完全具有这六条性质,例如,有的数据库产品(如FoxPro)仍然区分了属性顺序和元组的顺序;许多关系数据库产品中,例如Oracle,FoxPro等,它们都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。 2018年11月22日星期四

基本关系具有以下六条性质(续): ① 列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。 ② 不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。   这样,在上例中也可以只给出两个域: 人(PERSON)= 张清玫,刘逸,李勇,刘晨,王敏 专业(SPECIALITY)= 计算机专业,信息专业 2018年11月22日星期四

*SAP关系的导师属性和研究生属性都从PERSON域中取值。但为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。    例如,定义:导师属性名为SUPERVISOR-PERSON(或SUPERVISOR),研究生属性名为POSTGRADUATE-PERSON(或POSTGRADUATE)。 2018年11月22日星期四

基本关系具有以下六条性质(续): ③ 列的顺序无所谓,即列的次序可以任意交换。    遵循这一性质的数据库产品(如Oracle),增加新属性时,永远是插至最后一列。    但也有许多关系数据库产品没有遵循这一性质,例如FoxPro仍然区分了属性顺序。 2018年11月22日星期四

基本关系具有以下六条性质(续): ④ 任意两个元组不能完全相同。    这是由笛卡尔积的性质决定的。但许多关系数据库产品没有遵循这一性质。例如:Oracle,FoxPro等都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。 2018年11月22日星期四

基本关系具有以下六条性质(续): ⑤ 行的顺序无所谓,即行的次序可以任意交换。  基本关系具有以下六条性质(续): ⑤ 行的顺序无所谓,即行的次序可以任意交换。    遵循这一性质的数据库产品( 如Oracle),插入一个元组时永远插至最后一行。但也有许多关系数据库产品没有遵循这一性质,例如FoxPro 仍然区分了元组的顺序。 2018年11月22日星期四

基本关系具有以下六条性质(续): ⑥ 分量必须取原子值,即关系的每一个分量都必须是一个不可分的数据项。    分量必须取原子值,这是规范条件中最基本的一条。关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件。关系的每一个分量都必须是一个不可分的数据项。   规范化的关系简称为范式(Normal Form)。 2018年11月22日星期四

   例如,表2.3虽然表达了导师与研究生之间的一对多关系,但由于POSTGRADUATE分量取了两个值,不符合规范化的要求,因此,这样的关系在数据库中是不允许的。 2018年11月22日星期四

表2.3 非规范化关系: POSTGRADUATE SUPERVISOR SPECIALITY PG1 PG2 张清玫 刘晨 信息专业 李勇 刘逸 信息专业 王敏 返回P42 2018年11月22日星期四

2.2.2 关系模式 什么是关系模式?    在数据库中要区分型和值的概念。在关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述。描述一个关系应该有如下几个方面: 2018年11月22日星期四

1.关系实质上是一张二维表,表的每一行为一个元组,表的每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡儿积的一个元素。关系是元组的集合,因此,关系模式必须指出这个元组集合的结构(即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系)。 2018年11月22日星期四

2.一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡儿积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。 2018年11月22日星期四

3.关系模式应当刻划出这些完整性约束条件。  现实世界随着时间在不断地变化,因而在不同的时刻,关系模式的关系也会有所变化。尽管如此,现实世界的许多已有事实限定了的关系模式所有可能的关系必须满足一定的完整性约束条件。这些约束或者通过对属性取值范围的限定(例如,在职职工年龄的限制),或者通过属性值之间的相互关联(主要体现于属性值的相等与否)反映出来。 2018年11月22日星期四

定义关系模式: 关系模式(Relation Schema)(至此,我们所定义的关系模式应当是一个5元组)可以形式化地表示为: 定义关系模式:      关系模式(Relation Schema)(至此,我们所定义的关系模式应当是一个5元组)可以形式化地表示为:    R(U,D,dom,F)    其中:R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。 2018年11月22日星期四

dom(SUPERVISOR - PERSON)=    *例如:在上面的例子中,由于导师和研究生出自同一个域(:人),所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域,例如: dom(SUPERVISOR - PERSON)=   dom(POSTGRADUATE - PERSON)= PERSON   2018年11月22日星期四

关系模式通常可以简记为:R (U) 或 R (A1,A2,…,An) 2018年11月22日星期四

关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际中,人们常常把关系模式和关系统称为关系(可以通过上下文加以区别)。 2018年11月22日星期四

2.2.3 关系数据库 分清关系数据库型和值的概念。 1. 关系数据库 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合,构成一个关系数据库。 (在关系模型中,实体以及实体之间的联系都是用关系来表示的。例如,导师实体、研究生实体之间的一对多联系都可以分别用一个关系来表示。) 2018年11月22日星期四

关系数据库的型,称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。 2. 关系数据库的型与值 关系数据库也有型和值之分。 关系数据库的型,称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。 关系数据库的值,是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。 2018年11月22日星期四

2.3 关系的完整性 如前所述: 关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,它们应该由关系系统自动支持。 2018年11月22日星期四

一、实体完整性(Entity Integrity) 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 例 如:在 关 系 “SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)”中,研究生姓名POSTGRADUATE属性为主码(假设研究生不会重名),则其不能取空值。 2018年11月22日星期四

实体完整性规则规定:基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。 例如:学生选课关系“选修(学号,课程号,成绩)”中,“学号,课程号”为主码,则“学号”和“课程号”都不能取空值。 2018年11月22日星期四

对于实体完整性规则说明如下: (1) 实体完整性规则是针对基本关系而言的。一个 基本表通常对应现实世界的一个实体集。 (1) 实体完整性规则是针对基本关系而言的。一个  基本表通常对应现实世界的一个实体集。 (2) 现实世界中的实体是可区分的,即它们具有某  种唯一性标识。 (3) 关系模型中以主码作为唯一性标识。   (4) 主码中的属性不能取空值(空值:“不知道”或“无意义”),如果主属性取空值,则说明存在某个不可标识的实体(即存在不可区分的实体),但这与(2)点相矛盾,因此,这个规则称为实体完整性。 2018年11月22日星期四

二、参照完整性 现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系之间的引用。关系间的引用举例: 例1 学生实体和专业实体以及专业与学生间的一对多联系 [主码用下划线标识]  学生(学号 ,姓名,性别,专业号 ,年龄) 专业(专业号 ,专业名) 说明 转P69 2018年11月22日星期四

这两个关系之间存在着属性的引用,学生关系引用了专业关系的主码“专业号”。显然,学生关系中的“专业号”值必须是确实存在的、已有专业的、专业号(即专业关系中有该专业的记录)。这也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。 继续 2018年11月22日星期四

例2 学生、课程、学生与课程之间的多对多联系: 学生(学号, 姓名,性别,专业号,年龄) 课程(课程号 ,课程名,学分) 例2 学生、课程、学生与课程之间的多对多联系: 学生(学号, 姓名,性别,专业号,年龄) 课程(课程号 ,课程名,学分) 选修(学号 ,课程号 ,成绩) 继续课程P62 说明见下页P61 转P70 2018年11月22日星期四

这三个关系之间存在着属性的引用,即选修关系引用了学生关系的主码“学号”和课程关系的主码“课程号”;同样,选修关系中的“学号” 值必须是确实存在的学生的学号,即学生关系中有该学生的记录;选修关系中的“课程号” 值也必须是确实存在的课程的课程号,即课程关系中有该课程的记录。或者说,选修关系中某些属性的取值需要参照其它关系的属性取值。 继续课程P62 返回例2P60 2018年11月22日星期四

不仅两个或两个以上的关系之间可以存在引用关系,同一关系内部属性之间也可能存在引用关系。 例3 学生实体及其内部的领导联系( 一对多) :在 学生2(学号,姓名,性别,专业号,年龄,班长)中,“学号”属性是主码,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系“学号”属性,即“班长”必须是确实存在的学生的学号。 转P71 2018年11月22日星期四

外码(Foreign Key) 外码定义: 设 F 是基本关系 R 的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign Key),并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系Referenced Relation)或目标关系(Target Relation)。关系R和S不一定是不同的关系。 2018年11月22日星期四

注意:F不能是关系R的主码,Ks必须是关系S的主码。 显然,目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上。    在例1中,学生关系的“专业号” 属性与专业关系的主码“专业号”相对应,因此,“专业号” 属性是学生关系的外码。这里专业关系是被参照关系,学生关系为参照关系。如图2.1(a)所示: 继续课程P66 2018年11月22日星期四

图2.1 关系的参照图 专业号 学生关系 专业关系 ( a ) 学号 课程号 学生关系 选修关系 课程关系 ( b ) 返回P64 2018年11月22日星期四

   在例2中,选修关系的“学号”属性与学生关系的主码“学号”相对应,“课程号”属性与课程关系的主码“课程号” 相对应,因此,“学号”和“课程号” 属性是选修关系的外码。这里学生关系和课程关系均为被参照关系,选修关系为参照关系。如图2.1(b)所示。 2018年11月22日星期四

在例3中,“班长”属性与本身的主码“学号”属性相对应,因此,“班长”是外码。这里学生2关系既是参照关系也是被参照关系。    在例3中,“班长”属性与本身的主码“学号”属性相对应,因此,“班长”是外码。这里学生2关系既是参照关系也是被参照关系。    需要指出的是,外码并不一定要与相应的主码同名(如例3)。不过,在实际应用当中,为了便于识别,当外码与相应的主码属于不同的关系时,往往给它们取相同的名字。参照完整性规则就是定义外码与主码之间的引用规则。 2018年11月22日星期四

参照完整性规则:    参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:   或者取空值(F的每个属性值均为空值);   或者等于S中某个元组的主码值。 2018年11月22日星期四

例如,对于例1,学生关系中每个元组的“专业号”属性只能取下面两类值: (1)空值(表示尚未给该学生分配专业);    例如,对于例1,学生关系中每个元组的“专业号”属性只能取下面两类值: (1)空值(表示尚未给该学生分配专业); (2)非空值(这时该值必须是专业关系中某个元组的“专业号”值 ,表示该学生不可能分配到一个不存在的专业中。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值)。 2018年11月22日星期四

   对于例2,按照参照完整性规则,“学号”和“课程号”属性也可以取两类值:空值或目标关系中的已经存在的值。但由于“学号”和“课程号”是选修关系中的主属性,按照实体完整性规则,它们均不能取空值。所以选修关系中的“学号”和“课程号” 属性实际上只能取相应被参照关系中已经存在的主码值。 2018年11月22日星期四

(1)空值,表示该学生所在班级尚未选出班长(或该学生本人即是班长); (2)非空值,这时该值必须是本关系中某个元组的学号值。    参照完整性规则中,R与S可以是同一个关系。例如,对于例3,学生2(学号,姓名,性别,专业号,年龄,班长)按照参照完整性规则,“班长”属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长(或该学生本人即是班长); (2)非空值,这时该值必须是本关系中某个元组的学号值。 2018年11月22日星期四

三、用户定义的完整性(User-defined Integrity) 不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。 关系模型应提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。 2018年11月22日星期四

非主属性“课程名” 属性必须取唯一值; “ 课程名” 也不能取空值 ; “ 学分” 属性只能取值{1 ,2 ,3 ,4}。 例如: 课程(课程号 ,课程名,学分) 非主属性“课程名” 属性必须取唯一值; “ 课程名” 也不能取空值 ; “ 学分” 属性只能取值{1 ,2 ,3 ,4}。 2018年11月22日星期四

2.4 关系代数 关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。    关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式,它是用对关系的运算来表达查询的。    任何一种运算都是将一定的运算符作用于一定的运算对象上,达到预期的运算结果。所以运算对象、运算符、运算结果是关系代数运算的三个要素。 2018年11月22日星期四

关系代数运算的三个要素: 运算对象:关系; 运算结果:关系; 运算符:关系代数用到的四类运算符,包括集合运算符、专门的关系运算符、算术比较符和逻辑运算符。如下表所示: 2018年11月22日星期四

表2.4关系代数运算符(一): 集 集 ∪ ∪ 并 并 比 比 > > 大于 大于 合 合 - - 较 较 差 差 ≥ ≥ 大于等于 含义 运算符 含义 集 集 ∪ ∪ 并 并 比 比 > > 大于 大于 合 合 - - 较 较 差 差 ≥ ≥ 大于等于 大于等于 运 运 运 运 ∩ ∩ 交 交 < < 小于 小于 算 算 算 算 ≤ ≤ 小于等于 小于等于 符 符 符 符 = = 等于 等于 ≠ ≠ 不等于 不等于 返回P75 表2 P77 2018年11月22日星期四

表2.4关系代数运算符(二): 运算符 含义 运算符 含义 ¬ ÷ 返回P75 返回P78 × σ π ∧ ∨ 广义笛卡尔积 专门的 专门的 选择 逻辑运 逻辑运 ¬ 非 非 关系 关系 π 投影 投影 算符 算符 ∧ ∧ 与 与 运算符 运算符 连接 连接 ∨ ∨ 或 或 ÷ 除 除 返回P75 返回P78 2018年11月22日星期四

其中 传统的集合运算是 将关系看成元组的集合, 运算是从关系的“ 水平” 方向也即是行的角度来进行的; 专门的关系运算符不仅涉及到行而且涉及到列;算术比较符和逻辑运算符是用来辅助专门的关系运算符进行操作的。 2018年11月22日星期四

2.4.1 传统的集合运算 关系代数运算的分类 传统的集合运算是二目运算,有并、差、交、广义笛卡尔积四种运算。 专门的关系运算有选择、投影、连接、除运算。 设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域,则可以定义并、差、交运算如下: 2018年11月22日星期四

1. 并(Union) 1. 并(Union) R∪S = { t | t  R ∨ t  S } 图示见下页P81 继续课程P82 2018年11月22日星期四

1. 并(Union)图示: A A B B C C a1 a1 b1 b1 c1 c1 a1 a1 b2 b2 c2 c2 A A B B R A A B B C C R ∪ S a1 a1 b1 b1 c1 c1 a1 a1 b2 b2 c2 c2 A A B B C C a2 a2 b2 b2 c1 c1 a1 a1 b1 b1 c1 c1 a1 a1 b2 b2 c2 c2 S A A B B C C a1 a1 b3 b3 c2 c2 a1 a1 b2 b2 c2 c2 a2 a2 b2 b2 c1 c1 a1 a1 b3 b3 c2 c2 a2 a2 b2 b2 c1 c1 返回P80 2018年11月22日星期四

2. 差(Difference) R和S的差:R - S R - S = { t | t  R ∧t  S }    其结果关系仍为n 目关系,由属于R 而不属于S 的所有元组组成。 图示见下页P83 继续课程P84 2018年11月22日星期四

2. 差(Difference)图示: A A B B C C a1 a1 b1 b1 c1 c1 R - S 返回P82 2018年11月22日星期四

3. 交(Intersection) R和S的交:R∩S R∩S = { t | t  R ∧ t  S }    其结果关系仍为n 目关系,由既属于R 又属于S 的元组组成。关系的交可以用差来表示, 即 R∩S = R – ( R – S )。 继续课程P86 图示见下页P85 2018年11月22日星期四

返回P84 继续P86 2018年11月22日星期四

4. 广义笛卡尔积(Extended Cartesian Product)    两个分别为n目关系R和m 目关系S的广义笛卡尔积R×S: R×S = {t r t s | t r  R ∧ t s  S }   R×S的结果是一个(n + m)列的元组的集合。元组的前n 列是关系R 的一个元组,后m 列是关系S 的一个元组。若R有 k1个元组,S有k2 个元组,则R×S有:k1×k2 个元组。 ⌒ 2018年11月22日星期四

返回P86 继续P88 2018年11月22日星期四

2.4.2 专门的关系运算 专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。    专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。     ⑴ 设关系模式为R(A1,A2,…,An)。它的一个关系设为R。t ∈ R表示t是R的一个元组。t [A i ] 则表示元组t中相应于属性 A i上的一个分量。 2018年11月22日星期四

⑵ 若A={A i1,A i2, …,A i k}, 其中 A i1, A i2, …,A i k是A1,A2,…,An中的一部分,则A称为属性列或域列。 t [A]=( t[A i1] , t[A i2],…,t[A i k])表示元组t在属性列A上诸分量的集合。Ā则表示{A1,A2, …,An}中去掉{ A i1,A i2, …,A i k }后剩余的属性组。 2018年11月22日星期四

⑶ R为 n 目关系,S为m目关系。t r∈ R,t s ∈S ,   称为元组的连接。 它是一个 (n+m)列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。 tr ts 2018年11月22日星期四

它表示R中属性组X上值为x的诸元组在Z上分量的集合。象集概念字面不好理解,以实际例子说明象集的概念。 ⑷ 给定一个关系R(X,Z),X和Z为属性组。定义当t [ X ] = x 时, x 在R中的象集为:Zx = {t [ Z ] | t ∈ R,t [ X ] = x} 它表示R中属性组X上值为x的诸元组在Z上分量的集合。象集概念字面不好理解,以实际例子说明象集的概念。 2018年11月22日星期四

关系运算的定义: 下面给出关系运算的定义: 1. 选择(Selection) 1) 选择又称为限制(Restriction) 2) 选择运算符的含义 σF ( R ) = { t | t  R ∧ F( t ) = ‘ 真 ’ } 选择运算实际上是在关系R中选择满足给定条件的那些元组,即是说:从关系R中选取使逻辑表达式F为真的元组。这是从行的角度进行的运算。 2018年11月22日星期四

F:选择条件,是一个逻辑表达式,取逻辑值“真”或 “假”。逻辑表达式F由逻辑运算符  ,∧,∨连接各算术表达式组成;算术表达式的基本形式为X 1θY 1,其中θ:比较运算符(>,≥,<,≤,=或≠),其中X 1、Y 1等:属性名、常量或为简单函数;属性名也可以用它的序号来代替; 返回P107 2018年11月22日星期四

举例 结合教材例子的讲解。表达式不仅可以用列名构造也可以用列序号构造。 3) 举例(P.58~) 设有一个学生- 课程数据库,包括学生关系Student、 课程关系Course 和选修关系SC。 2018年11月22日星期四

学 号 Sno 姓 名 Sname 性 别 Ssex 年 龄 Sage 95001 李勇 男 20 CS 95002 刘晨 女 19 IS 95003 王敏 18 MA 95004 张立 所在系 Sdept Student 2018年11月22日星期四

Course 课程号 课程名 先行课 学分 Cno Cname Cpno Ccredit 1 数据库 5 4 2 数学 3 信息系统 操作系统 6 数据结构 7 数据处理 PASCAL 语言 2018年11月22日星期四

SC 学 号 课 程 成 绩 Sno Cno Grade 95001 1 92 2 85 3 88 95002 90 80 2018年11月22日星期四

例1(P.59) 例1 查询信息系(IS系)全体学生 σS d e p t = ' I S ' ( Student ) 结果: 2018年11月22日星期四

例2(P.60) 例2 查询年龄小于20 岁的学生 σS a g e < 20 ( Student ) 例2 查询年龄小于20 岁的学生 σS a g e < 20 ( Student ) 或 σ 4 < 20 ( Student ) 结果: 2018年11月22日星期四

2.投影(Projection) 1)投影运算符的含义 从R 中选择出若干属性列组成新的关系,记做: πA (R ) = { t [ A ] | t  R } A:R 中的属性列 。 2 )投影操作主要是从列的角度进行的运算。 2018年11月22日星期四

   投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免出现重复的行)。因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。    结合教材例子的讲解投影运算。 2018年11月22日星期四

例3(P60) 3) 举例 例3 查询学生的姓名和所在系, 即求Student 关系在学生姓名和所在系两个属性上的投影。 πS name,S dept ( Student ) 或 π2,5 ( Student ) 结果: 2018年11月22日星期四

继续课程P104 2018年11月22日星期四

例4 (P.60) 例4 查询学生关系Student 中都有哪些系,即查询学生关系Student在所在系属性上的投影。 πS dept( Student ) 结果: Student关系原来有四个元组,而投影结果取消了重复的IS元组,因此只有三个元组。(见下表) 2018年11月22日星期四

继续课程P106 2018年11月22日星期四

3. 连接(Join) 1)连接也称为θ连接。它是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作: AθB tr ts R      S ={ | t r  R ∧ t s∈ S ∧ t r [ A ]θt s[ B ] } tr ts 2018年11月22日星期四

连接运算的含义 2)连接运算的含义 A 和B: 分别为R 和S 上度数相等且可比的属性组 。 θ: 比较运算符(如前所述6种)。    θ: 比较运算符(如前所述6种)。   连接运算从R 和S 的广义笛卡尔积R×S 中选取(R 关系)在A 属性组上的值与(S 关系)在B 属性组上值满足比较关系(θ)的元组。 2018年11月22日星期四

等值连接 连接运算中由两种最为重要也是常用的连接,一种是等值连接,一种是自然连接。  等值连接    连接运算中由两种最为重要也是常用的连接,一种是等值连接,一种是自然连接。    θ为“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡儿积中选取A,B属性值相等的那些元组,即等值连接为: R     S = { | t r  R ∧ t s ∈ S ∧ t r [ A] =t s[ B ] } tr ts A=B [ 注:等值连接中相同属性均被连接 ] 2018年11月22日星期四

自然连接     自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。即若R和S具有相同的属性组B,则自然连接可记作: R     S = { | t r  R ∧ t s ∈ S ∧ t r [ B] =t s [ B ] } tr ts 2018年11月22日星期四

一般的连接操作是从行的角度进行运算,但自然连接还需要取消重复列,所以它是同时从行和列的角度进行运算。    一般的连接操作是从行的角度进行运算,但自然连接还需要取消重复列,所以它是同时从行和列的角度进行运算。    结合教材上的例子,详细讲述连接、等值连接、自然连接的运算过程。 关系R、S: 继续课程P115除运算 2018年11月22日星期四

S R 2018年11月22日星期四

例5(P61-62)设上图关系分别为R和S,则连接示例如下: C < E 返回P110 2018年11月22日星期四

R.B=S.B R S 返回P110 2018年11月22日星期四

R S 返回P110 2018年11月22日星期四

4.除(Division)    给定关系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上投影的集合。记做: 2018年11月22日星期四

R÷S = {t r [ X ] | t r  R ∧πY (S )  Yx }  其中Y x :x在R中的象集,x = t r [ X ] 。    除操作是同时从行和列的角度进行运算。以教材上具体的例子讲述除运算的运算过程。 2018年11月22日星期四

例6(P.66) 设关系R,S分别为下图所示,R÷S的结 果为下图所示。在关系R中,A可以取四个值:   { a 1 ,a 2 ,a 3 , a 4 }。   其中: a 1 的象集为: { ( b 1 , c 2 ) ,( b 2 , c 3 ) ,( b 2 , c 1 ) };  a 2的象集为 { ( b 3 , c 7 ) ,( b 2 , c 3 ) };  a 3的象集为 {( b 4 , c 6 ) };  a 4的象集为 { ( b 6 , c 6 ) } 。 转至P91 2018年11月22日星期四

{ ( b 1 , c 2 ) ,(b 2 , c 1 ) ,( b 2 , c 3 )},    S在(B,C)上的投影为:  { ( b 1 , c 2 ) ,(b 2 , c 1 ) ,( b 2 , c 3 )},  显然,只有a 1 的象集(B,C)a 1 包含了S在(B,C)属性组上的投影,所以  R÷S = {a 1 }。 2018年11月22日星期四

S A A B C a b c A A B B B C C C B C D b c d B B B C C C D D D a a a b 1 b c 2 3 7 4 6 A A B B B C C C B C D b 1 c 2 d 3 B B B C C C D D D a 1 a a b 1 b b c 2 c c b 1 c 2 d 1 R 1 1 1 1 2 2 b b c c d d 1 1 2 2 1 1 a 1 S a 2 a a b 3 b b c 7 c c b 2 c 1 2 2 3 3 7 7 b b c c d 1 d d 2 2 1 1 1 1 a 3 a a b 4 b b c 6 c c 3 3 4 4 6 6 b 2 b b c 3 c c d 2 d d 2 2 3 3 2 2 a 1 a a b 2 b b c 3 c c 1 1 2 2 3 3 R ÷ S a 4 a a b 6 b b c 6 c c 4 4 6 6 6 6 a 2 a a b 2 b b c 3 c c A A A 2 2 2 2 3 3 a 1 a 1 a a b 2 b b c 1 c c 1 1 2 2 1 1 返回P116 2018年11月22日星期四

5.综合举例 (P.63) 以学生-课程数据库为例,给出几个综合应用多种关系代数运算进行查询的例子。    以学生-课程数据库为例,给出几个综合应用多种关系代数运算进行查询的例子。   例7 查询至少选修1号课程和3号课程的学生号码 。   首先建立一个临时关系K: 2018年11月22日星期四

于是:π S n o,C n o ( S C )÷K={95001} 95001象集{1,2,3} 95002象集{2,3} πCno(K)={1,3} 于是:π S n o,C n o ( S C )÷K={95001} 继续课程P123 2018年11月22日星期四

π S n o. C n o ( S C ) π S n o. C n o ( S C )÷K={95001} K 返回P121   π S n o. C n o ( S C ) 返回P121 K π S n o. C n o ( S C )÷K={95001} 2018年11月22日星期四

例8:查询选修了2号课程的学生的学号。 此查询只是对SC表进行选择和投影运算。 πS n o(σC n o=' 2 '(S C))={ 95001,95002 }  2018年11月22日星期四

例9:查询至少选修了一门其直接先行课为5号课程的学生姓名。 πS name (σC p no = ' 5 ' ( Course) SC π S no,S name (Student))  或 πS name (πS no (σCpno='5' (Course ) SC ) π S no,S name ( Student ) )  2018年11月22日星期四

例10 (P.63) 例10 查询选修了全部课程的学生号码和姓名。 πS no, Cno(SC)÷πC no(Course)   πS no, Cno(SC)÷πC no(Course) πS no,S name(Student) 2018年11月22日星期四

2.5 关系演算 关系演算 种类:按谓词变元不同分类 以数理逻辑中的谓词演算为基础 1.元组关系演算: 以元组变量作为谓词变元的基本对象 2.5 关系演算 关系演算 以数理逻辑中的谓词演算为基础 种类:按谓词变元不同分类 1.元组关系演算: 以元组变量作为谓词变元的基本对象 元组关系演算语言ALPHA 2.域关系演算: 以域变量作为谓词变元的基本对象 域关系演算语言QBE 2018年11月22日星期四