美文网首页
关系代数

关系代数

作者: 娇娇_5038 | 来源:发表于2025-03-11 19:23 被阅读0次

关系数据库语言分类

  • 关系代数语言
    用对关系的运算来表达查询要求,代表:ISBL
  • 关系演算语言:用谓词来表达查询要求
  1. 元组关系演算语言:谓词变元的基本对选是元组变量,代表:APLHA,QUEL
  2. 域关系演算语言: 谓词变元的基本对象是域变量,代表:QBE
  • 具有关系代数和关系演算双重特点的语言
    代表:SQL

关系运算概述

基本操作关系

  • 查询: 选择、投影、链接、除、并、交、差
  • 数据更新:插入、删除、修改
  • 查询的表达能力是其中最重要的部门
  • 选择、投影、并、差、笛卡尔积是5种基本操作

关系操作的特点

  • 集合操作方式:操作的对象和结果都是集合,一次一集合的方式

关系代数是关系数据模型的基础

  • 传统运算符
    集合运算符
运算符 含义
U
-
× 笛卡尔积

比较运算符

运算符 含义
> 大于
大于等于
< 小于
小于等于
== 等于
!= xuanz不等于

专门关系运算符


2-1.png

关系运算术语:设关系模式为R(A1,A2,....An)

  • R:关系
  • t∈R:t是R的一个元组
  • t[Ai]:表示元组t中属性Ai的分量
  • t[A]=(t[Ai1],t[Ai]2]...t[Ai1],t[Aik]) 表示元组t在属性A上分量的集合
  • A={Ai1,Ai2.....,Aik} 其中Ai1,Ai2....,Aik是A1,A2....,An中的一部分,则A称为属性列或属性组

传统的集合运算

并(Union): R U S

  • 具有相同的目n(即两个关系都有n个属性)
  • 相应的属性取自同一个域(兼容)
  • 结果仍为n目关系,由属于R或属于S的元组组成
    注:也就是关系R和S结构相同
    R U S = {t | t ∈R V t ∈ S}


    2-3.png
    2-4.png

交(Intersection): R ∩ S

  • 具有相同的目n,相应的属性取自同一个域
  • 仍为n目关系,由即属于R又属于S的元组组成
    注:也就是关系R和S结构相同

    R ∩ S = {t | t ∈ R ∧ t ∈ s}

差 (Difference): R - S

  • 具有相同的目n,相应的属性取自同一个域
  • 仍为n 目关系,由属于R且不属于S的所有元组组成
    注:也就是关系R和S结构相同
    R - S = { t | t ∈ R ∧ t ∉ S }


广义的笛卡尔积(Extended Cartesian Product)

  • R : n目关系,k1个元组(基数)
  • S: m目关系,k2个元组(基数)
    R*S
    • 列: (n+m)列,元组的前n列是关系R的一个元组,后m列是关系S 的一个元组
    • 行: k1 × k2 个元组
      R × S = {tr ts | tr ∈ R ∧ ts ∈ S }

专门的关系运算

学生-课程数据库:
由三个表
学生关系Student,课程关系Course、选修关系SC




专门的关系运算

  • 选择(Selection): 又称为限制(Restriction)

选择运算符的含义

  • 在关系R中选择满足给定条件的诸元组
    σF(R) = { t | t ∈ R ∧ F(t) = '真'} xuan'z
  • F: 选择条件(逻辑表达式),基本形式为: X1 θ Y1



    eg:
    查询信息系(IS系)全体学生


  • 投影(Projection)运算符的含义
  • 从R中选择出若干属性列组成新的关系
    πA(R)={ t[A] | t ∈ R }
    A: R中的属性列



连接(Join,也称为θ连接)运算的含义

  • 连接运算从R和S的广义笛卡尔积R×S中选取(R 关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组


  • 连接的计算过程 (R S为例)

两类常用的连接运算

  • 等值连接 (equijoin): θ为‘=’



  • 自然连接(Natural join): 两个关系中进行比较的分量必须是相同的属性组,在结果中去掉重复的属性列
    R和S具有相同的属性组B的元组



除 (Division)

  • 给定关系R(X,Y)和S(Y,Z) ,其中X,Y,Z为属性组。R中的Y和S中的Y可以有不同的属性名,但必须出自相同的域集
  • R和S的除运算得到一个新的关系P(X)
  • P(X):元组在X上分量值x的象集Yx包含S在Y上投影的集合作


象集Zx
给定一个关系R(X,Z),X和Z 为属性组
当 t[X]=x时,x在R中的象集为:Zx={t[Z] | t ∈ R,t[X]=x}
他表示R中属性X上值为x的诸元组在Z上分量的集合


关系代数的扩展操作

悬浮元组 (dangling tuple)

  • 在一个连接当中,如果一个元组不能和另外关系中的任何一个元组匹配,则该元组称为悬浮元组,一版被舍弃
  • 自然连接 R ⨝ S 的悬浮元组时


完成外连接(OUTER JOIN)

  • 如果把舍弃的元组(悬浮元组)也保存在结果关系中,而在其他属性上填值(Null),这种连接就叫作外连接


左外连接(保留左边)

  • 如果只把左边关系R中舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN 或 LEFT JOIN)

右外连接(保留右边)

  • 如果只把右边关系S中要舍弃的元组保留就叫做外连接(RIGHT OUTER JOIN 或 RIGHT JOIN)

重命名:Ps(A1,A2,... An)(R)

  • 操作结果: 将关系R的名字改为S,且S关系zh

相关文章

  • 第四讲 关系模型之关系代数

    关系模型之关系代数 书写关系代数的基本思维训练: 一个集合, 施加一个集合, 依次施加关系代数操作, 进而得到所需...

  • 关系数据库--关系代数

    关系代数 关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操...

  • 数据库Mooc笔记(4)关系代数

    什么是关系代数 关系代数运算的特点 (1)基于集合,提供了一系列的关系代数操作:并、差、笛卡尔积(广义积)、选择、...

  • 掌握关系代数运算

    关系代数关系代数是以关系为运算对象的一组高级运算的集合。关系代数中的操作可以分为两类:传统的集合操作,并、差、交、...

  • Calcite optimizer

    代数 关系代数是方解石的核心。每个查询都表示为关系运算符树。您可以从SQL转换为关系代数,也可以直接构建树。 规划...

  • 关系代数

    1.概念: ​ 关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。 ​ 按运算符的不同分为传统的集...

  • 关系代数

    Database System Concepts 7th 第2章学习 关系型数据库以集合论,谓词逻辑为基础SQL...

  • 关系代数

  • PostgreSQL 源码解读(16)- 查询语句#1(基础:关

    本文简单介绍了数据库系统实现中的数学基础-关系代数,包括关系代数的基本概念以及关系代数的运算如集合运算/投影/选择...

  • 51 SQL 复习 语句关系代数(二)

    SELECT 查询指定多个列 关系代数 操作 关系代数与SQL 练习 WHERE 去重 查询结果排序 BETWEE...

网友评论

      本文标题:关系代数

      本文链接:https://www.haomeiwen.com/subject/ebzdejtx.html