iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >关系代数(关系代数的五个基本操作)
  • 589
分享到

关系代数(关系代数的五个基本操作)

算法人工智能数据挖掘pythonmysql 2023-09-24 09:09:21 589人浏览 八月长安
摘要

五种基本关系代数运算是? 五种基本关系代数运算是并、差、投影、交、选择、投影。 并:设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。 差:R和S的差是由属于

五种基本关系代数运算是?

五种基本关系代数运算是并、差、投影、交、选择、投影。

并:设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。

差:R和S的差是由属于R但不属于S的元组组成的集合,运算符为- [1]  。记为T=R-S。

交:R和S的交是由既属于R又属于S的元组组成的集合,运算符为∩ [1]  。记为T=R∩S。R∩S=R-(R-S)。

选择:从关系中找出满足给定条件的那些元组。其中的条件是以逻辑表达式给出的,值为真的元组将被选取。这种运算是从水平方向抽取元组。

投影:从关系模式中挑选若干属性组成新的关系。这是从列的角度进行的运算,相当于对关系进行垂直分解。

扩展资料:

数据库中的全部数据及其相互联系都被组织成关系,即二维表的形式。关系数据库系统提供一种完备的高级关系运算,支持对数据库的各种操作。关系模型有严格的数学理论,使数据库的研究建立在比较坚实的数学基础上。

选择和投影运算都是属于一目运算,它们的操作对象只是一个关系。连接运算是二目运算,需要两个关系作为操作对象。5种基本关系代数运算是:∪,-,×,π和σ。

关系代数运算中的基本运算包括并(∪)、差(-)、广义笛卡尔积(×)、投影(π)和选择(σ),其他运算的功能都可以由这五种基本运算来实现。

扩展资料:

关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的,所以按照运算符的不同,主要将关系代数分为传统的集合运算和专门的关系运算两类。

对关系进行运算时可以采用对待集合的方式来操作,这些操作被称为集合操作。其他的一些操作不能在集合上使用,那么被成为纯关系操作。五种基本关系代数运算是:并(∪)、差(-)、笛卡尔积(×)、选择(σ)、投影(π)并、差、笛卡儿积、投影、选择是关系代数的5种基本的运算,其他运算,即交、连接、除都可以通过基本的运算推导运算出。

并,设有两个关系R和S,它们具有相同的结构,R和S的并是由属于R或属于S的元组组成的集合;

差,R和S的差是由属于R但不属于S的元组组成的集合;

笛卡尔积,两个集合X和Y的笛卡尓积,又称直积,表示为X与Y相乘,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员;

选择,从关系中找出满足给定条件的那些元组称为选择;其中的条件是以逻辑表达式给出的,值为真的元组将被选取;

投影,从关系模式中挑选若干属性组成新的关系称为投影。a

关系代数(关系代数的五个基本操作)_关系代数(关系代数的五个基本操作)

数据库的关系代数表达式

原发布者:豆子9018

SSCC(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)答:∏课程号,课程名(σTEACHER=“程军”(C))(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。答:∏学号,姓名(σ性别=“男”∧年龄>21(S))(3)检索至少选修“程军”老师所授全部课程的学生姓名(SNAME)。答:∏姓名(σTEACHER=“程军”(C)∞SC∞∏学号,姓名(S))(4)检索“李强”同学不学课程的课程号(C#)。答:∏课程号(C)-∏课程号(σ姓名=“李强”(SC∞S))(5)检索至少选修两门课程的学生学号(S#)。答:∏学号(σ课程号=“K1”∨课程号=“K5”(SCхC))(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。答:∏学号,课程号,课程名(SC∞C)÷∏学号(S)(7)检索选修课程包括“程军”老师所授课程之一的学生学号(S#)。答:∏学号,课程号(SC)÷∏课程号(σTEACHER=“程军”(C))(8)检索选修课程号为K1和K5的学生学号(S#)。答:σ课程名=k1∨课程号=k5(S)(9)检索选修全部课程的学生姓名(SNAME)。答:∏姓名(S∞(∏课程号,学号(SC)÷∏课程号(C)))(10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。答:∏学号(C∞(σ学号=“2”(SC))(11)检索选修课程名为“C语言”的学生学号(S#)和姓名(SNAME)。答:∏学号,数据库的关系代数表达式是由关系代数运算经有限次复合而成的式子。

在关系代数运算中,把由并(∪)、差(-)、笛卡尔积(×)、投影(π)、选择(σ)五个基本操作经过有限次复合的式子称为关系代数表达式。关系代数表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的各种数据查询和更新操作。

关系代数表达式用到的运算符包括集合运算符、专门的关系运算符、算术比较符和逻辑运算符。和交(∩)、联接(等值联接)、自然联接(RXS)、除法(÷) 四个组合操作。

扩展资料:

关系代数表达式的运算过程是将关系的属性分为像集属性和结果属性两部分;与关系相同的属性属于像集属性;不相同的属性属于结果属性。在关系中,对像集属性投影,得到目标数据集。将被关系分组。

分组原则是结果属性值一样的元组分为一组。逐一考察每个组,如果它的像集属性值中包括目标数据集,则对应的结果属性应属于该运算结果集。一、关系代数的9种操作:

关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。

五个基本操作:

并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π)

四个组合操作:

交(∩)、联接(等值联接)、自然联接(R S)、除法(÷)

注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)

注2:自然连接表示两个关系中若有相同名称的属性,则自动作为关联条件,且仅列出一列

二、关系代数表达式:

由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。

三、举例说明:

设教学数据库中有3个关系:

学生关系S(SNO, SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

(1) 检索学习课程号为C2的学生学号与成绩

------------------------------------

SELECT SNO,GRADE

FROM SC

WHERE CNO='C2'

------------------------------------

π SNO, GRADE (σ CNO='C2' (SC))

************************************

(2) 检索学习课程号为C2的学生学号与姓名

------------------------------------

SELECT SC.SNO,S.SNAME

FROM SC,S

WHERE SC.SNO=S.SNO

AND SC.CNO='C2'

------------------------------------

π SNO,SNAME (σ CNO='C2' (S SC))

此查询涉及S和SC,先进行自然连接,然后再执行选择投影操作。

----

π SNO,SNAME (S) (π SNO (σ CNO='C2' (SC)))

自然连接的右分量为"学了C2课的学生学号的集合"。

此表达式比前一个表达式优化,执行起来要省时间、省空间。

************************************

(3) 检索选修课程名为MATHS的学生学号与姓名

------------------------------------

SELECT SC.SNO,S.SNAME

FROM SC,S,C

WHERE SC.SNO=S.SNO

AND SC.CNO=C.CNO

AND C.CNAME='MATHS'

------------------------------------

π SNO, SANME (σ CNAME='MATHS' (S SC C))

************************************

(4) 检索选修课程号为C2或C4的学生学号

------------------------------------

SELECT SNO

FROM SC

WHERE CNO='C2'

OR CNO='C4'

------------------------------------

π SNO (σ CNO='C2'∨CNO='C4' (SC))

************************************

(5) 检索至少选修课程号为C2或C4的学生学号

------------------------------------

SELECT SA.SNO

FROM SC AS SA,SC AS SB

WHERE SA.SNO=SB.SNO

AND SA.CNO='C2'

AND SB.CNO='C4'

------------------------------------

π 1 (σ 1=4∧2='C2'∧5='C4' (SC×SC))

************************************

(6) 检索不学C2课的学生姓名与年龄

------------------------------------

SELECT SNAME,AGE

FROM S

MINUS

SELECT S.SNAME,S.AGE

FROM SC,S

WHERE SC.SNO=S.SNO

AND SC.CNO='C2'

(oracle)

------------------------------------

π SNAME, AGE (S)-π SNAME, AGE (σ CNO='C2' (S SC))

************************************

(7) 检索学习全部课程的学生姓名

------------------------------------

这个定义用sql表示比较麻烦,略过

------------------------------------

π SNO, CNO (SC)÷π CNO (C)

先用除法取出选取所有课程的SNO集(除法可以理解为一个Filter)

π SNAME (S (π SNO,CNO (SC)÷π CNO (C)))

再关联S表取出SNAME

************************************

(8) 检索所学课程包含S3所学课程的学生学号

------------------------------------

这个定义用SQL表示比较麻烦,略过

------------------------------------

π SNO,CNO (SC)÷ π CNO (σ SNO='S3' (SC))

同样运用了除法的特性

************************************

(9) 将新课程元组( 'C10','PHYSICS','YU') 插入到关系C中

------------------------------------

INSERT INTO C VALUES('C10','PHYSICS','YU')

------------------------------------

(C∪ ('C10','PHYSICS','YU'))

记住该符号的用法

************************************

(10) 将学号S4选修课程号为C4的成绩改为85分

------------------------------------

UPDATE SC SET GRADE=85

WHERE SNO='S4'

AND CNO='C4'

------------------------------------

(SC- ('S4','C4',? )∪ ('S4','C4',85))

先用'- '实现DELETE功能,再用'∪'实现INSERT功能

注意使用?来表示检索时忽略该字段值

************************************

四、关系代数表达式的优化:

目的 :为了系统在执行时既省时间又能提高效率。

基本策略 :先做选择,运用投影去除多余属性等等。

优化算法 :语法树( 尽量提前做选择操作;在每个操作后,应做个投影操作,去掉不用的属性值)

例如:

π SNO ,SNAME (σ GRADE>60 (S SC)) 进行 优化后转换为:

π SNO ,SNAME (π SNO ,SNAME (S) π SNO (σ GRADE>60 (SC)))

--即提前做选择操作;在每个操作后,应做个投影操作,去掉不用的属性值

S(S#,SNAME,AGE,SEX)

SC(S#,C#,GRADE)

C(C#,CNAME,TEACHER)

π CNAME,TEACHER (σ SEX='女' (S SC C)) 进行 优化后转换为:

π CNAME, TEACHER (C π C# (π S#,C# (SC) π S# (σ SEX='女' (S))))

来源地址:https://blog.csdn.net/yetaodiao/article/details/127368010

您可能感兴趣的文档:

--结束END--

本文标题: 关系代数(关系代数的五个基本操作)

本文链接: https://www.lsjlt.com/news/416802.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关系代数(关系代数的五个基本操作)
    五种基本关系代数运算是? 五种基本关系代数运算是并、差、投影、交、选择、投影。 并:设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。 差:R和S的差是由属于...
    99+
    2023-09-24
    算法 人工智能 数据挖掘 python mysql
  • 数据库系统概论——关系代数详解
    文章目录 1、关系代数概述1.1 传统的集合运算1.2 专门的关系运算1.2.1 选择运算1.2.2 投影(Projection)1.2.3 连接(Join)1.2.4 两类常用连接运算1.2...
    99+
    2023-09-29
    数据库 mysql
  • 【数模系列】02_三大相关系数+Python代码
    文章目录 一、皮尔逊相关系数1、公式推导2、使用条件3、Python绘图 二、斯皮尔曼秩相关系数1、如何选择皮尔逊和斯皮尔曼 三、肯德尔秩相关系数 一、皮尔逊相关系数 在统计学中,...
    99+
    2023-09-18
    python
  • 在关系数据库中关系的基本运算有多少种
    小编给大家分享一下在关系数据库中关系的基本运算有多少种,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在关系数据库中从关系中找出满足给定条件的元组,该操作称为:选择。其中的条件是以逻辑表达式...
    99+
    2024-04-02
  • 关系数据库系统如何实现的三种基本关系运算
    这篇文章主要介绍了关系数据库系统如何实现的三种基本关系运算,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。关系数据库管理系统能够实现的三种基本关系...
    99+
    2024-04-02
  • PostgreSQL中关系代数的示例分析
    这篇文章给大家分享的是有关PostgreSQL中关系代数的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、基本概念关系代数是一种过程化查询语言.它包括一个运算的集合,这...
    99+
    2024-04-02
  • SQLALchemy操作MySQL关系型数据库
    1.SQLALchemy使用安装pip install sqlalchemy;SQLAlchemy是Python编程语言下的一款开源软件,是PythonSQL工具包和对象关系映射器,它为应用程序开发人员提供了SQL的全部功能和灵活性2.什么...
    99+
    2023-06-02
  • 多用户操作系统:数字化转型时代的关键推动者
    优势: 多用户访问:MUOS允许多名用户同时登录和访问同一操作系统,实现协作和资源共享。 集中管理:管理员可以集中管理用户帐户、权限和系统设置,提高效率和安全性。 可扩展性:MUOS具有高度可扩展性,可以轻松添加或移除用户,满足企业不断...
    99+
    2024-03-14
    多用户操作系统
  • 关系数据库的基本运算有哪些
    小编给大家分享一下关系数据库的基本运算有哪些,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!关系数据库能够实现的三种基本关系运算是:1、选择运算,从关系中找出满足给定条件的元组的操作称为选择;2...
    99+
    2024-04-02
  • 关系数据库的数据操作分为哪几类
    这篇文章主要介绍了关系数据库的数据操作分为哪几类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关系数据库的数据操作分为查询和更新。查询语句用...
    99+
    2024-04-02
  • Git的基本操作流程及工作区版本库暂存区的关系
    目录1、Git的基本操作流程2、工作区、暂存区、版本库的区别(1)工作区(2)版本库(3)暂存区(4)通过新增文件理解三个区的关系(5)说明1、Git的基本操作流程 初始化一个本地版...
    99+
    2024-04-02
  • 操作系统:大数据时代的数字守门员
    安全卫士:抵御网络威胁 在数字领域,安全至关重要。操作系统通过多种机制充当数字守门员,保护系统免受恶意软件、网络攻击和其他威胁的侵害。例如,访问控制限制对敏感数据的访问,加密功能保护数据免遭未经授权的窥视,入侵检测系统监控可疑活动并采取相...
    99+
    2024-04-02
  • C++实现关系与关系矩阵的代码详解
    目录ADT集合关系关系矩阵功能实现关系的矩阵表示关系的性质判断关系的合成参考:ADT 集合 template<class Type> //集合的元素类型 class...
    99+
    2024-04-02
  • java中基本数据类型与Object的关系说明
    目录基本数据类型与Object的关系这里举一个例子Object、基本数据类型的包装类Object类基本数据类型基本数据类型与Object的关系 我知道大家是不是都听说过Object是...
    99+
    2024-04-02
  • mysql client如何操作MySQL关系型数据库
    这篇文章主要介绍了mysql client如何操作MySQL关系型数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。主要讲解mysqlclient操作MySQL关系型数据库...
    99+
    2023-06-02
  • 操作系统 IaaS:云计算时代企业竞争力的关键
    云计算时代的 IaaS 云计算彻底改变了企业运营方式。弹性、可扩展和按需计费的基础设施服务消除了传统的硬件限制,为企业提供了前所未有的灵活性。操作系统 IaaS 作为云计算服务栈的基础,提供企业级操作系统平台,无需物理服务器的投资和维护...
    99+
    2024-03-06
    操作系统 IaaS 云计算 企业竞争力 虚拟化
  • 关系数据库中基本的数据结构指的是什么
    关系数据库中基本的数据结构指的是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在关系数据库中,基本的数据结构是“二维表”,表之间的联系通过不同表中的公共字段来体现。关系数据...
    99+
    2023-06-29
  • 关于Python操作Excel的基本方法
    目录写入Excel1. 安装第三方模块2. 编写代码读取Excel1. 安装第三方模块小结写入Excel 1. 安装第三方模块 修改excel可以使用xlwt模块 pip insta...
    99+
    2023-05-18
    Python Excel Python操作Excel
  • 区块链操作系统:解密下一代数字基础设施
    ...
    99+
    2024-04-02
  • java中基本数据类型与Object的关系是什么
    这篇文章给大家分享的是有关java中基本数据类型与Object的关系是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基本数据类型与Object的关系我知道大家是不是都听说过Object是所有类型的基类,但是这...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作