2 数据模型

2.1 什么是数据模型

  • 数据模型是模型的一种,是现实世界数据特征的抽象,是用来描述数据的一组概念和定义。
  • 数据在计算机中的组织结构,和施加在这个结构上的处理方法,即是数据模型。

Pasted image 20250228120228.png

概念数据模型
  • 是独立于计算机系统的数据模型,不涉及信息在计算机中的表示,只用来描述某个特定组织所关心的信息结构,是对现实世界的第一层抽象
    • 从实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节
    • 把这些特性用各种概念精确地加以描述
  • 概念模型是按用户的观点对数据建模,强调其语义表达能力,是用户和数据库设计人员之间进行交流的语言和工具
逻辑数据模型
  • 直接面向数据库的逻辑结构,是对现实世界的第二层抽象。它直接与DBMS有关,有严格的形式化定义,以便在计算机系统中实现。
  • 它通常有一组严格定义的无二义性语法和语义的DB语言,人们可以用这种语言来定义、操纵DB中的数据。
  • 该类数据模型有层次模型、网状模型、关系模型等。
  • 逻辑数据模型是区分不同类型数据库的依据,并在很大程度上决定了数据库的性能和应用范围
  • 通常所说的数据模型即指逻辑数据模型
物理数据模型
  • 反映了数据在存储介质上的组成结构,并描述了访问机制
  • 如何表达记录结构、记录顺序和访问路径等信息
基于数据模型开发数据库系统

Pasted image 20250228121112.png

2.2 概念模型

  • 概念模型
    • 概念模型用于信息世界的建模,对现实世界进行第一层的抽象
    • 独立于计算机系统
    • 是数据库设计的有力工具
    • 数据库设计人员和用户之间进行交流的语言
  • 对概念模型的基本要求
    • 较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识
    • 简单、清晰、易于用户理解。
ER数据模型:最常用的一种概念数据模型
  • 对现实世界进行抽象
  • 应用ER模型表达抽象结果
  • 两种常用抽象手段
    • 分类(Classification)
      • 定义某一类概念作为现实世界中一组对象的类型
      • 在特定的上下文里,这些对象具有某些共同的特性和行为
      • 大学里的学生,奥运会的赛事,公交公司的司机…
    • 聚集(Aggregation)
      • 定义某一类型的组成成分
      • 根据上下文管理需求,给出指定类型的特征集合
      • 学生:学号、姓名、年龄等特征组成
  • 观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的
  • 给我们一种语言去描述如下信息:
    • 数据库中应该存储什么对象信息
    • 对象之间存在什么样的联系
三个基本元素
实体 (Entity)
  • 客观存在并可以相互区分客观事物或抽象事件称为实体
    • 可以触及的客观对象仓库、器件、职工……等是实体
    • 客观存在的抽象事件订货、演出、足球赛……等也是实体
  • 实体集
    • 同型实体的集合
    • 经常把实体集简称为实体。因此‘实体’的具体含义要看上下文
属性 (Attribute)
  • 实体所具有的某一特性称为属性
  • 一个实体可由若干个属性来刻画:学生实体可由学号、姓名、年龄、系等属性来描述
  • 属性类型不同的实体属于不同的实体集
  • 属性类型相同,仅取值不同的实体属于同一个实体集
  • 域(Domain):属性的取值范围。所有可能的取值的集合。
  • 属性的类型(Type)
    • 简单属性:不可再分的属性,如学号、年龄等
    • 复合属性:可以划分为更小的属性,每个属性的域不同,如:街道=家庭地址+门牌号码。用于把相关属性聚集起来,使ER模型更清晰
    • 单值属性:每一个特定的实体在该属性上的取值唯一,如学生的学号、年龄等
    • 多值属性:某特定实体在该属性上有多于一个的取值,如某人的电话号码
  • (key)
    • 实体集中能唯一标识实体的属性或属性组称为实体集的键
    • 两个以上属性组成的键称为复合键(compound key)
    • 键属性用斜体标示出来
      • 例:学生(学号,年龄,性别,班级)
      • 成绩单(学生课程学期,成绩) ---复合键
    • 实体集中的每一个实体,在键属性上的取值各不相同
联系 (Relation)
  • 数学定义:如果A、B是集合(set),则联系 R 是 A × B 的一个子集
  • 联系由一系列的实体间对应关系所组成
  • 联系的键必然是复合键,其键由来自于各相关实体集的键属性组成
  • 也可以用属性来刻画联系的特性
ER图——用图形化的方法来表示ER数据模式
  • 矩形框表示实体,把实体名写在框内
  • 实体的属性椭圆框表示,框内写上属性名,并用连线连到相应实体。
  • 实体之间的联系菱形框表示,框内写上联系名,并用连线与有关的实体相连。
联系的元

参与联系的实体的个数称为联系的元
Pasted image 20250307103118.png

一元联系
  • 有时二元联系关联的两个实体集实际上属于同一个实体集的两个副本,可以将这二个实体集合并,形成一元联系。
    Pasted image 20250307105456.png
  • 一元联系中的1:1联系
    运动员根据其得分来排定名次。在名次排列中,排在他前面只有一个人,排在他后面也只有一个人
    Pasted image 20250307110507.png
  • 一元联系中的1:n联系
    职工之间的上下级关系中,一个领导可以管理多个职工,每个职工只隶属于一个领导
    Pasted image 20250307110521.png
  • 一元联系中的m:n联系
    工厂的零件之间存在着组合关系,一种零件由多种子零件组成,而一种零件也可以是其他零件的子零件
    Pasted image 20250307110555.png
多元联系

Pasted image 20250307111934.png

联系中的角色 (Roles)
  • 在联系中关联的每个实体集应是相互区别的。在一元联系中,需要用角色来区分同一实体集的不同副本
  • 下图中的标签“manager” 和 “worker”被称为角色,它们说明了 employee 实体是如何通过 works_for 联系相互关联的
    Pasted image 20250307111100.png
联系的基数比约束(Mapping Cardinality Constraints)
  • 表示一个实体可以通过联系关联到的另一个实体集中实体的数量。
  • 一对一联系 (1:1)
    • 实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系。记作1:1。
      Pasted image 20250307103207.png
  • 一对多联系 (1:n)
    • 实体集A中的一个实体可以与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应
      Pasted image 20250307103324.png
  • 多对多联系 (m:n)
    • 实体集A中的一个实体可以与实体集B中的多个实体相对应,反之亦然
      Pasted image 20250307103457.png
约束 (Constraints)
  • 约束是一种对数据库的断言(assertion),数据库应保证该断言成立

  • 断言内容是对插入数据库中的数据进行限定。常见约束:

    • 非空约束;唯一值约束;主键约束; 外键约束;Check约束等等
  • 约束是数据库模式的重要组成部分

    • 丰富了数据的语义
    • 保证数据的有效性和完整性
    • 实现更高效的存储和数据查询
  • 键约束(Key Constraints)

    • 用键约束可以容易的引用实体
    • 超键(super key) 是实体集中的一个或一组属性,用它们可以唯一的确定每一个实体
    • 候选键(candidate key)是某个超键的最小集
    • 若存在多个候选键,则可以任选一个作为该实体集的主键(primary key)。主键会被数据库登记和使用。
      例:学生(学号,身份证号,年龄,性别,班级)
      超键:(学号,身份证号,年龄),(学号,性别,班级)…
      候选键:(学号),(身份证号)
      主键:(学号)
建模准则
  • 忠实于用户需求
  • KISS准则 (keep it simple and stupid)
  • 避免冗余
    • 冗余:用两个以上不同的实例描述同一件事情(two instances of one fact)
    • 冗余会导致空间浪费,更会带来数据不一致:在一个实例上修改了数据,而另一个实例没有修改,则会产生数据冲突
  • 能抽象为属性的,就不要抽象为实体
    • 只有在符合下面两个情况之一的时候才需要把事物抽象为实体
      1. 事物有至少一个非键属性(不属于键的属性)学生(姓名) VS 书(书名,页数,出版年代)
      2. 事物处于“一对多”或“多对多”联系中“多”那一端

2.3 逻辑模型

基本概念
  • 逻辑数据模型是对现实世界的第二层抽象。负责将概念数据模式映射为数据库的逻辑结构
  • 直接与DBMS有关,有严格的形式化定义,以便在计算机系统中实现。
  • 它通常有一组严格定义的无二义性语法和语义的DB语言,人们可以用这种语言来定义、操纵DB中的数据。
  • 逻辑数据模型的三要素:数据结构、数据操作和数据约束
逻辑模型的发展

2.3.1 关系模型概述

ER模型 vs. 关系模型
  • 都用于数据建模
  • ER模型有很多概念
    • 实体、关系、属性等
    • 适用于描述应用需求
    • 不适合在计算机上实现(只有数据结构,没有定义数据操作)
  • 关系模型
    • 只有一个概念:关系(relation)
    • 用一组表的集合来描述世界
    • 适合在计算机上实现,能进行高效的数据操作
关系数据库
  • 关系数据库系统是支持关系模型的数据库系统
  • 关系数据库应用严格的数学方法来处理数据库中的数据
  • 80年代后,关系数据库系统成为最重要、最流行的数据库系统

2.3.2 关系数据结构(结构)

  • 关系模型就是用二维表格结构来表示实体及实体之间联系的模型
  • 关系模型是各个关系的框架的集合,即关系模型是一些表格的格式,其中包括关系名、属性名、关键字等
  • 关系的框架(表头)称为关系模式(relation schema)
  • 关系框架和符合该框架的关系值称为关系实例(relation instance)
    Pasted image 20250314100856.png
ER模型与关系模型

Pasted image 20250314101702.png

系(系号,系名字,院长)
学生(学号,姓名,性别,年龄,系号)
课程(课程id,课程名字,选课记录,学分)
课程选择(学生id,课程id,成绩)

老师(课程id)

  • 从各个关系的框架中,我们可以看出哪两个关系之间有联系。
  • 例如:
    • 系关系和学生关系有公共的属性“D#”,则表明这两个关系有联系。
    • 而学生关系和选课关系有公共的属性“S#”,则表明这两个关系也有联系。
关系模型
  • 由上例可以看出,在一个关系中可以存放两类信息:
    • 一类是描述实体本身的信息
    • 一类是描述实体(关系)之间的联系的信息
  • 在层次模型和网状模型中,把有联系的实体(元组)用指针链接起来,实体之间的联系是通过指针来实现的。
  • 而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。
  • 所以,在建立关系模型时,只要把所有的实体及其属性用关系框架来表示,同时把实体之间的关系也用关系框架来表示,就可以得到一个关系模型。
关系的定义
  • 在关系模型中,数据是以二维表的形式存在的,这个二维表就叫做关系
  • 关系理论是以集合代数理论为基础的,因此,我们可以用集合代数给出二维表的“关系”定义。
域(Domain)
  • 域是一组具有相同数据类型的值的集合,又称为值域。(用D表示)
  • 域中所包含的值的个数称为域的基数(用m表示)。
  • 关系中用域表示属性的取值范围。例如:
    D1={李力,王平,刘伟} m1=3
    D2={男,女} m2=2
    D3={47,28,30} m3=3
    其中,D1,D2,D3为域名,分别表示教师关系中姓名、性别、年龄的集合。
  • 域值无排列次序,如D2={男,女}={女,男}
笛卡尔积
  • 给定一组域D1,D2,…,Dn(它们可以有相同的元素,即可以完全不同,也可以部分或全部相同),D1,D2,…,Dn的笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。
  • 笛卡尔积每一个元素(d1,d2,d3,…,dn)叫做一个n元组(n-tuple),简称元组(Tuple)。
  • 元素中的每一个di叫做一个分量(Component),来自相应的域(di∈Di)
  • 但元组不是di的集合,元组的每个分量(di)是按序排列
    (1,2,3)≠(2,3,1)≠(1,3,2);
    而集合中的元素是没有排序次序的,如(1,2,3)=(2,3,1)=(1,3,2)
  • 笛卡尔积的基数
    若Di(i=1,2,……n)为有限集,Di中的集合元素个数称为Di的基数,用mi(i=1,2,……n)表示,则笛卡尔积D1×D2×……×Dn的基数M(即元素(d1,d2,……dn)的个数)为所有域的基数的累乘之积,即
  • 笛卡尔积的二维表表示
    Pasted image 20250314103111.png
关系(Relation)的定义
  • 笛卡尔积D1×D2×…×Dn的任一子集称为定义在域D1,D2,…Dn上的n元关系(Relation),可用R(D1,D2 ……Dn)表示
  • R为关系名,n称为关系的(目或度)(Degree)。
    当n=1时,称为单元关系。
    当n=2时,称为二元关系。

    当n=n时,称为n元关系。
  • 数学上关系是笛卡尔积的任意子集,但在实际应用中关系是笛卡尔积中所取的有意义的子集
关系的二维表表示

同样可以把关系看成一个二维表。其中,

  • 表的框架由域Di(i=1,2,……n)构成;
  • 表的任意一行对应一个元组;
  • 表的每一列来自同一域;
  • 域可以相同,为了加以区别,每列起一个名字,称为属性,n目关系有n个属性,属性的名字唯一,属性的取值范围Di(i=1,2,…,n)称为值域(比如一个表有两列性别(域可以相同),一列是本人性别,一列是子女性别(每列起一个名字))
  • 具有相同关系框架的关系成为同类关系,如:
    Pasted image 20250314104653.png
关系的术语

Pasted image 20250314105017.png

关系的性质
  1. 关系中不允许出现相同的元组。因为数学上集合中没有相同的元素,而关系是元组的集合,所以作为集合元素的元组应该是唯一的。
    Pasted image 20250314105518.png
  2. 关系中元组的顺序(即行序)是无关紧要的,在一个关系中可以任意交换两行的次序。因为集合中的元素是无序的,所以作为集合元素的元组也是无序的。
  3. 关系中属性的顺序也是无关紧要的,即列的顺序可以任意交换。交换时,应连同属性名一起交换,否则将得到不同的关系。
  4. 同一属性名下的各个属性值必须来自同一个域,是同一类型的数据
  5. 关系中各个属性必须有不同的名字,不同的属性可来自同一个域,即它们的分量可以取自同一个域。
    例如,有如下表中关系,职业与兼职是两个不同的属性,但它们取自同一个域职业={教师,工人,辅导员}。
    Pasted image 20250314105452.png
  6. 关系中每一分量必须是不可分的数据项。所有属性值都是原子的,是一个确定的值,而不是值的集合。不可“表中有表”。满足此条件的关系称为规范化关系,否则称为非规范化关系
    Pasted image 20250314105754.png
ER转关系
  • 实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性即为关系模式的属性,实体标识符即为关系模式的键。
    Pasted image 20250314112018.png
  • 对于二元联系的处理
    • 把m:n联系转化为关系
      Pasted image 20250314112000.png
    • 对于1:n联系和1:1联系的处理
      • 可以像m:n联系一样,直接转换为一个关系
      • 但更好的处理方式是将1:n或1:1联系合并到相关联的实体转换出来的关系中
      • 这样的好处是可以减少表的数量,更方便查询并加快查询速度
      1. 对于 1:n的处理
        Pasted image 20250314111047.png
        如果合并到1段对于的实体关系中,会出现数据冗余,且系号会违反主键约束
      2. 对于1:1的处理
        1:1联系可以合并到任意端对于的实体关系中。
        但应考虑哪个实体是被经常使用的。1:1联系应与常用实体相合并
        Pasted image 20250314111616.png
  • 对于三元联系的处理
    • 1:1:1 联系与其中一个实体集合并
    • 1:1:N 联系与N端实体集合合并
    • 1:M:N 联系转换为独立的关系模式,主键为1端实体集的主键
    • M:N:P 联系转换为独立的关系模式,主键为三个实体集的主键的组合

2.3.3 关系的完整性(约束)

  • 关系模型的完整性规则是对关系的某种约束条件
    • 对数据库状态的预测或断言
    • 总是为真(数据库更新的时候会确认状态是否符合完整性约束)
  • 关系模型中的完整性约束:
    1. 域完整性 (Domain Integrity)
    2. 实体完整性 (Entity Integrity)
    3. 参照完整性 (Referential Integrity)
    4. 用户定义的完整性 (User-defined Integrity)
域完整性 (Domain Integrity)
  • 属性值应符合域的取值范围
  • 可以用于增强数据类型
    例如:为年龄属性设定<=150的域完整性约束
  • 对属性值能否为空(NULL)的检查也是域完整性约束的一部分
    空值(NULL)是值的一种,代表‘值未知’或‘值不存在’
实体完整性(Entity Integrity)
  • 实体完整性用主键来约束
  • 实施了实体完整性约束的关系,其主属性(构成主键的属性)应同时满足以下条件:
    • 主属性不能为空
    • 主属性取值唯一
  • 关系模型必须遵守实体完整性规则的原因
    • 一个关系(二维表)通常对应现实世界的一个实体集或多对多联系。表中每条记录对应一个实体或联系。
    • 现实世界中的实体和实体间的联系都是可区分的。
    • 因此,关系中应设定主键来作为记录的唯一性标识,以此区分实体或联系
    • 同时主键中的属性即主属性不能取空值。
      • 空值就是“不知道”或“无意义”的值。
      • 主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与上面的第二条论断相违背。
参照完整性( Referential Integrity)
  • 在关系模型中实体及实体间的联系都是用关系来描述的,因此可能存在着关系与关系间的引用(reference)。
    Pasted image 20250314113659.png
  • 关系模型中用外键(Foreign Key)来表示这种关系与关系之间的引用。
    设F是关系R的一个或一组属性,但不是关系R的键。如果F与关系S的主键K相对应,则称F是关系R的外键
    • 关系R称为参照关系(Referencing Relation);
    • 关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation)。
  • 参照完整性规则:外键上的取值只能是空值,或等于被参照关系中某个元组的主键值
  • 关系R和S不一定是不同的关系
  • 目标关系S的主键K 和参照关系的外键F必须定义在同一个(或一组)域上
  • 外键并不一定要与相应的主键同名
    当外键与相应的主键属于不同关系时,往往取相同的名字,以便于识别

Pasted image 20250314114119.png
专业号是学生的外键,学生是参照关系,专业是被参照关系

用户定义的完整性( Referential Integrity)
  • 用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
  • 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
    Pasted image 20250314114304.png

2.3.4 关系代数(操作)

1 关系运算

  • 关系模型与其他(层次、网状等)模型相比,最有特色的是它的数据库语言。这种语言灵活方便、表达能力和功能都很强。
  • 目前关系数据库所使用的语言一般都具有定义、查询、更新和控制一体化的特点,而查询是最主要的部分。
  • 查询的条件要使用关系运算表达式来表示。
  • 因此,关系运算是设计关系数据语言的基础。
  • 按表达查询的方法不同,关系运算可分为关系代数关系演算两大类。

2 关系代数(Relational Algebra)

  • 关系代数是对关系的查询语言:以对关系的运算表达查询
  • 以关系(relations)为运算对象
  • 其操作符设计为在数据库中我们对于关系最常做的操作
  • 其运算结果也是一个关系
  • 关系代数运算的三个要素
  • 运算对象:关系
  • 运算结果:关系
  • 运算符:四类
四类关系运算符
  • 集合运算符

    • 将关系看成元组的集合
    • 运算是从关系的“水平”方向即行的角度来进行
  • 专门的关系运算符
    不仅涉及行而且涉及列

  • 算术比较符
    辅助专门的关系运算符进行操作

  • 逻辑运算符
    辅助专门的关系运算符进行操作
    Pasted image 20250315210714.png

  • 另一个概念:基本运算

    • 集合并、集合差、广义笛卡儿积、选择、投影
    • 由基本运算可以推导出其它所有运算
并交差
  • 两个关系R和S若进行并,交,差运算,则它们必须是相容的:
    • 关系R和S必须是同元的,即它们的属性数目必须相同
    • 对于所有i,R的第i个属性的域必须和S的第i个属性的域相同。
并运算 (Union)
  • 设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的并运算定义为:
  • 其结果仍为n元关系,由属于R或属于S的元组构成。
  • 运算结果中应消除重复行
  • 应用示例:
    Pasted image 20250315211057.png
差运算 (Difference)
  • 设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的差运算定义为:
  • 其结果仍为n元关系,由属于R且不属于S的元组构成。
  • 应用示例:AllTeachers - RetiredTeachers
    Pasted image 20250315211212.png
交运算 (Difference)
  • 设R和S是n元关系,并且两者各对应属性的数据类型也相同。则R和S的交运算定义为:
  • 其结果仍为n元关系,由既属于R而又属于S的元组构成。
  • 交运算可以通过差运算来重写:
  • 应用示例:
    Pasted image 20250315211355.png
广义笛卡尔积 (Extended Cartesian Product)
  • 笛卡尔积:集合运算 vs. 广义笛卡尔积:关系运算
  • 两个关系R,S,其度(degree)分别为n,m,则它们的广义笛卡尔积是所有这样的元组集合:元组的前n个分量是R中的一个元组,后m个分量是S中的一个元组。
    • 的度为R与S的度之和, 的元组个数为R和S的元组个数的乘积。
      Pasted image 20250315211751.png
专门的关系运算
  • 并、交、叉和笛卡尔积运算只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算,从行和列的方向同时进行选择
  • 专门的关系运算符包括:
    • 选择 、投影 、连接 和除
    • 其中选择、投影是基本运算符
选择 (selection)
  • 选择运算是从指定的关系中选择某些元组形成一个新的关系,被选择的元组是用满足某个逻辑条件来指定的。
  • 选择运算表示为:
    其中𝑅是关系名,𝜎是选择运算符,𝐹是逻辑表达式。
    Pasted image 20250324161506.png
投影 (projection)
  • 投影运算对指定的关系进行投影操作,根据该关系分两步产生一个新关系:
    • 选择指定的属性,形成一个可能含有重复行的表格
    • 删除重复行,形成新的关系
  • 投影运算定义为:
    其中R是关系名,π是投影运算符,A是被投影的属性或属性集
  • 选择运算是从关系的水平方向上进行运算的,而投影运算则是从关系的垂直方向上进行的。
  • 投影运算可以改变关系的属性次序
  • 投影后取消了某些属性列,就可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。
    Pasted image 20250324161541.png
连接 (join)

Theta链接

  • 连接运算是两个表之间的运算,这两个表通常是具有一对多联系的父子关系。所以连接过程一般是由参照关系的外部关键字和被参照关系的主关键字来控制的,这样的属性通常也称为连接属性
  • 定义
    从两个关系的广义笛卡儿积中选取给定属性间满足 操作的元组。
    为算术比较符,当 为等号时称为等值连接;θ为“<”时,称为小于连接;θ为“>”时,称为大于连接等等。
    此类连接也被统称为Theta连接(连接)
    Pasted image 20250324161609.png

自然连接

  • 在连接运算中最常用的连接是自然连接。
  • 定义:从两个关系的广义笛卡儿积中选取在相同属性列(名一致&定义域一致)上取值相等的元组,并去掉重复的属性列。
  • 自然连接是特殊的等值连接
    • 等值连接:从两个关系(R、S)的笛卡尔积中选取属性(A、B)值相等的元组
    • 自然连接:在等值连接中取消重复属性
      Pasted image 20250324161705.png

外链接

  • 为避免自然连接时因失配而发生的信息丢失,可以假定往参与连接的一方表中附加一个取值全为空值的行,它和参与连接的另一方表中的任何一个未匹配上的元组都能匹配,称之为外连接。
    外连接 = 自然连接 + 失配的元组。
    外连接的形式:左外连接、右外连接、全外连接 。
    R Pasted image 20250324162550.png S 左外连接 = 自然连接 + 左侧表中失配的元组。
    R Pasted image 20250324162634.png S 右外连接 = 自然连接 + 右侧表中失配的元组。
    R Pasted image 20250324162651.png S 全外连接 = 自然连接 + 两侧表中失配的元组
除 (divide)
  • 除运算常用于包含语义“至少…”的语义的查询或运算设R(X,Y)和S(Y)是两个关系,则
  • 除运算定义:设有关系R (X ,Y )和S (Y ),其中X 、Y 可以是单个属性或属性集,则:

Pasted image 20250324162735.png
引进派生运算并不增加语言的能力,但是可以简化表达

Built with MDFriday ❤️