当前位置: 首页 > news >正文

【数据库】形式化关系查询语言(一):关系代数Relational Algebra:基本运算、附加关系代数、扩展的关系代数

目录

一、关系代数Relational Algebra

1. 基本运算

a. 选择运算(Select Operation)

b. 投影运算(Project Operation)

组合

c. 并运算(Union Operation)

d. 集合差运算(Set Difference Operation)

e. 笛卡尔积运算(Cartesian-Product Operation)

 f. 更名运算(Rename Operation)

2. 关系代数的形式化定义

3. 附加关系代数(Additional Operations)

a. 集合交(Set-Intersection Operation)

b. 自然连接(Natural Join Operation)

c. 除法(Division Operation)

d. 赋值(Assignment Operation)

e. 外连接运算

4. 扩展的关系代数运算

a. 广义投影(generalized-projection)

b. 聚集(aggregation operation)

二、元组关系演算(Tuple Relational Calculus)

三、域关系演算(Domain Relational Calculus)


     关系代数是一种过程化查询语言。它包括一个运算的集合,这些运算以一个或两个关系为输入, 产生一个新的关系作为结果。关系代数基本运算有:选择、投影、并、集合差、笛卡儿积和更名。在 基本运算以外,还有一些其他运算,即集合交、自然连接和赋值。我们将用基本运算来定义这些运算。

一、关系代数Relational Algebra

1. 基本运算

        选择、投影和更名运算称为一元运算,因为它们对一个关系进行运算,另外三个运算对两个关系 进行运算.因而称为二元运算。

a. 选择运算(Select Operation)

       选择(selelct)运算选出满足给定谓词的元组,用符号σ表示:

        选择运算使用一个条件表达式作为参数,对关系中的每个元组进行判断,只有满足条件的元组才会被选取出来,形成一个新的关系。选择运算符通常用符号σ来表示。

选择运算的语法如下:
σ<条件表达式>(关系)

其中,条件表达式是一个逻辑表达式,可以使用关系中的属性进行比较和组合。比较运算符(如等于、大于、小于等)和逻辑运算符(如与、或、非等)可以用于构建条件表达式。

选择运算的结果是一个新的关系,其中包含原始关系中满足条件的元组。新关系的模式(属性集合)与原始关系相同。

举个例子,假设有一个关系R,包含属性A、B和C,我们可以使用选择运算来选取满足条件A>5的元组,语法为σ(A>5)(R)。

b. 投影运算(Project Operation)

组合

c. 并运算(Union Operation)

     

        1. 关系r和s必须是同元的,即它们的属性数目必须相同。

        2. 对所有的i,r的第i个属性的域必须和s的第i个属性的域相同。

请注意r和s可以是数据库关系或者作为关系代数表达式结果的临时关系。

d. 集合差运算(Set Difference Operation)

        用—表示的集合差(set-difference)运算使得我们可以找出在一个关系中而不在另一个关系中的那些元组。表达式r-s的结果即一个包含所有在r中而不在s中的元组的关系。

e. 笛卡尔积运算(Cartesian-Product Operation)

 f. 更名运算(Rename Operation)

2. 关系代数的形式化定义

3. 附加关系代数(Additional Operations)

a. 集合交(Set-Intersection Operation)

  • 定义: r ∩ s =

  • 要点:

    • r ,s 必须包含相同属性,即同元
    • r ,s 属性的域必须相容
  • 注意,任何使用了集合交的关系代数表达式,我们都可以通过用一对集合差运算替代集合交运 算来重写:

        r ∩ s = r − ( r − s )

b. 自然连接(Natural Join Operation)

  • 定义:r⋈s,r 表和 s 表根据重复属性进行笛卡尔积,最后去除重复属性

注意,如果关系r(R)和s(S)不含有任何相同属性,即R ∩ S =0,那么r ∩ s=r X S

  • 例题:

    • 查找计算机学院所有老师的名字以及他们所上课程的名字

    • 查找教授 ‘D.B.S' 和 ’O.S‘ 的老师的名字以及课程名称

c. 除法(Division Operation)

  • 定义:r÷s�÷�
  • R=(A1,A2,...Am,B1,B2,...Bn),S=(B1,B2,...Bn)
  • 解释:前提是 s 表的属性包含于 r 表。则 r 表属性去掉 s 表的属性之后,r 表中包含 s 表所有数据的元组被选出。其实文字比较难以形容,看图理解更好。

  • 应用:带有“包含某某集合所有元素”的问题,可以使用除法解决

  • 例题:

    • 选出选了计算机系所有课程的学生的 ID:∏courseid,ID(takes)÷(∏courseid(σdepartment=′Comp.Sci.′(course)))∏��������,��(�����)÷(∏��������(�����������=′����.���.′(������)))

d. 赋值(Assignment Operation)

  • 定义:temp←expressio,查询结果保存在临时表

e. 外连接运算

4. 扩展的关系代数运算

a. 广义投影(generalized-projection)

b. 聚集(aggregation operation)

二、元组关系演算(Tuple Relational Calculus)

待完善

三、域关系演算(Domain Relational Calculus)

待完善

http://www.lryc.cn/news/215120.html

相关文章:

  • 【计算机网络】计算机网络和因特网
  • JAVA面经整理(9)
  • IPD(集成产品开发)模式下的产品研发流程
  • Flutter GetX的使用
  • 【Amazon】AWS实战 | 快速发布安全传输的静态页面
  • 前后端登录的密码加密和解密
  • 使用 Curl 和 DomCrawler 下载抖音视频链接并存储到指定文件夹
  • 取消Excel打开密码的两种方法
  • 多测师肖sir_高级金牌讲师_jmeter 反向代理录制脚本
  • 网络取证-Tomcat-简单
  • 3.Linux常用操作(传输、crontab定时、匹配日期删除文件等)
  • ChatGPT对未来发展的影响?一般什么时候用到GPT
  • 在Win10系统进行MySQL的安装、连接、卸载
  • Windows下pm2调用npm和nuxt的办法
  • 本地仓库转为git仓库推送到gitee
  • CSS以及JavaScript
  • JVM——类的生命周期(加载阶段,连接阶段,初始化阶段)
  • CSS中实现元素居中的几种方法总结
  • 保护听力戴什么耳机比较好?开放式耳机能保护听力吗?
  • 【JVM】垃圾回收机制
  • MySQL数据库入门到精通——运维篇(2)
  • 投资者如何保障个人利益?行业律师与欧科云链专家给出建议
  • 【办公软件】C#调用NPOI实现Excel文件的加载、导出功能
  • UVA 11990 “Dynamic‘‘ Inversion 区域树 + 树状数组
  • 邮件钓鱼分析
  • Android 小技巧
  • Centos MySQL --skip-grant-tables详解
  • Linux:进程控制的概念和理解
  • ubuntu20.04编译安装nginx
  • 操作系统的分页