关系代数表达式练习(针对难题)

article/2025/11/9 1:31:23
教师关系T(T#,TNAME,TITLE)
课程关系C(C#,CNAME,TNO)
学生关系S(S#,SNAME,AGE,SEX)
选课关系SC(S#,C#,SCORE)

检索至少选修了C2,C4两门课程的学生学号:

这里的下标可以这样理解,课程表C取了别名SC1,SC2,SC1的第一个元素(学生学号)和SC2的第一个元素 (学生学号)相等(1=4),且(SC1的第二个元素(课程号)=C2,SC2的第二个元素(课程号)=C4)

C#CNAMETNO

涉及减法相关

检索不学C2课的学生姓名和年龄

最后并上S,是因为S中才有AGE属性

 涉及除法相关:

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

 检索所学课程包含学生S3所学全部课程的学生学号

进阶:

供应商关系S(SNO,SNAME,SADDR)
零件关系P(PNO,PNAME,COLOR.WEIGHT)
工程项目关系J(JNO,JNAME,JCITY,BALANCE)
供应关系SPJ(SNO,PNO,JNO,PRICE,QTY)

检索使用了编号为P3零件的工程编号和名称

检索供应零件给工程J1,且零件颜色为红色的供应商名称和地址

检索使用了零件编号为P3或P5零件的工程编号JNO

πJNo(\sigmaPNO='P3'VPNO='P5'(SPJ))

检索至少使用了编号为P3和P5零件的工程编号JNO

πз(\sigma _{3=8\wedge 2='p3'\wedge 7='p5'}(SPJxSPJ))

检索不使用编号为P3零件的工程编号JNO和工程名称JNAME

或者 

πJNO,JNAME((πJNO(J) - JNO(σPNO=’P3‘(SPJ)) )\bowtie J)

 检索使用了全部零件的工程名称JNAME 

 检索使用零件包含编号为S1的供应商所供应的全部零件的工程编号JNO

💖💖在做题过程中我有一下感悟,可以跟大家分享一下💖💖

1.相同属性才能相减,例如:

● 检索不学C2课的学生姓名和年龄

●检索不使用编号为P3零件的工程编号JNO和工程名称JNAME

πJNO,JNAME((πJNO(J) - JNO(σPNO=’P3‘(SPJ)) )\bowtie J)

2.什么时候要使用数字代替呢?

当两个相同的属性出现在要求中时:例如

●检索至少使用了编号为P3和P5零件的工程编号JNO

πз(\sigma _{3=8\wedge 2='p3'\wedge 7='p5'}(SPJxSPJ))

● 检索至少选修了C2,C4两门课程的学生学号: 

 但是这两个都是\wedge(并)的关系,如果是(或)的关系,就不需要使用数字了,例如:

检索使用了零件编号为P3或P5零件的工程编号JNO

πJNO(\sigmaPNO='P3'VPNO='P5'(SPJ))

:同时注意后面需要跟(SPJ\timesSPJ),后面只用(SPJ)

3.如果要求的属性有联系的属性之间不相关,那么就先用要求的属性的表有联系的属性,例如,下面的JNAME和全部零件没有关联,那么就要用JNO,通过SPJ,关联PNO:

 ●检索使用了全部零件的工程名称JNAME 

4.在进行除法时,要求是什么属性(或者与该属性相关)就留下什么属性,例如:

 ● 检索所学课程包含学生S3所学全部课程的学生学号

 ●检索使用了全部零件的工程名称JNAME 

JNO,PNO/PNO=JNO

5.在含有“全部”字样的关系代数表达式中,包含单个属性的要用无关联的表,并且“全部”后面跟的属性为除数的属性,例如:

  ●检索使用了全部零件的工程名称JNAME 

其中检索PNO用的是P表,而不是SPJ表,并且除数的属性为零件编号PNO

● 检索学习全部课程的学生姓名

其中C#用的是C表
并且除数的属性为课程号C#

但是有关联其他表中属性的则例外:

    ●检索所学课程包含学生S3所学全部课程的学生学号

6.如果要求中存在多个表的属性,一定要加入关联表进行关联,例如:

    ● 检索供应零件给工程J1,且零件颜色为红色的供应商名称和地址

SPJ就是其中关联PNO和SNO的表

7.在有两个或者两个以上属性时,通常有两种写法:

1.第一种是先拉一个属性进行条件限制,再关联其他属性

2.直接通过条件判断,然后把两个表关联起来

    ●检索不使用编号为P3零件的工程编号JNO和工程名称JNAME

或者 

πJNO,JNAME((πJNO(J) - JNO(σPNO=’P3‘(SPJ)) )\bowtie J)

    ● 检索使用了编号为P3零件的工程编号和名称

其实做题的时候,想一下写数据库语句的时候是怎么做的,就比较容易相通了,各位今天也要努力学习呀!!(^o^)/(^o^)/


http://chatgpt.dhexx.cn/article/Um53Xmem.shtml

相关文章

怎样用关系代数表达式表示查询要求?求过程

怎样用关系代数表达式表示查询要求? 用一个例子来讲述一下 题目:查询至少选修了全部课程的学生学号和姓名 题目所用到的表如下 题目:查询至少选修了全部课程的学生学号和姓名? ① 找出题目中暗含属性、以及它们所在的表 ② 根据…

关系代数与sql语句

关系代数定义&#xff1a; 关系代数是以关系为运算对象的一组高级运算的集合。关系代数的运算有集合运算&#xff08;集合<表>与集合<表>之间的运算&#xff09;和关系运算&#xff08;集合<表>内部的运算&#xff09; 集合运算&#xff1a; 并运算&#xf…

关系代数2

转载链接&#xff1a; https://blog.csdn.net/Bruce_why/article/details/46389603 题A 设有如下所示的关系S(S#,SNAME,AGE,SEX)、C(C#,CNAME,TEACHER)和SC(S#,C#,GRADE)&#xff0c;用关系代数表达式表示下列查询语句&#xff1a; (1) 检索“程军”老师所授课程的课程号(C#)…

【数据库作业10】用SQL语句来表示关系代数中的表达式

1、有两个关系S&#xff08;A,B,C,D)和T&#xff08;C,D,E,F&#xff09;&#xff0c;写出与下列查询等价的SQL表达式&#xff1a; &#xff08;1&#xff09; σ A 10 ( S ) \sigma_{A10}(S) σA10​(S) //选择 select * from S where A10; &#xff08;2&#xff09; Π A…

① 数据库介绍 及 关系型数据库的关系代数表达式

查看专栏更多内容&#xff1a; ① 数据库介绍 及 关系型数据库的关系代数表达式 ② 关系数据库标准语言SQL 数据定义&#xff08;创建、修改基本表&#xff09;、数据更新&#xff08;增删改&#xff09; ③ 关系数据库标准语言SQL 数据查询&#xff08;SELECT&#xff09; …

关系代数表达式优化步骤

关系代数表达式优化步骤 本篇主要讲解怎么画查询语法树并对其优化&#xff0c;因为我在学关系代数的语法树的时候&#xff0c;在网上找不到比较详细的教法或者技巧&#xff0c;最后通过答案反推原理&#xff0c;所以想写一篇技巧来描述一下这类题的解题方法。 先上书内讲解 …

关系代数表达式学习

一、关系代数的9种操作&#xff1a; 关系代数中包括了&#xff1a;并、交、差、乘、选择、投影、联接、除、自然联接等操作。 五个基本操作&#xff1a; 并(∪)、差(-)、笛卡尔积()、投影(π)、选择(σ) 四个组合操作&#xff1a; 交(∩)、联接(等值联接)、自然联接(RS)、除法(…

数据库考点之关系代数表达

如题&#xff1a;2018年4月 分析&#xff1a;有难度&#xff0c;书上没有明确介绍元组关系演算&#xff0c;所以也有些超纲了。只能作为扩展部分来了解下&#xff1a; 就看懂了前面的部分为广义笛卡尔积定义。 关系代数这部分虽然在2019年10月14日《软考考点之数据库关系运算…

数据库应用之关系代数(relational algebra)

关系代数表达式的五个基本算子 1.选择&#xff08;selection&#xff09;&#xff1a;即选择某些行。代码&#xff1a;select from where。表达式&#xff1a;σ<条件>&#xff08;<表>&#xff09;。 2.投影&#xff08;projection&#xff09;&#xff1a;即…

Linux压缩打包命令——tar、zip、unzip

打包跟压缩的区别&#xff1a; 打包是指将多个文件或者目录放在一起&#xff0c;形成一个总的包&#xff0c;这样便于保存和传输&#xff0c;但是大小是没有变化的&#xff0c;压缩是指将一个或者多个大文件或者目录通过压缩算法使文件的体积变小以达到压缩的目的&#xff0c;…

linux tar压缩文件命令,tar打包压缩文件命令

tar命令 tar命令用于将多个文件合成1个文件,wiki中把这个命令和cpio、shar等一起叫做archive文件,个人理解是归档,合成一个文件,后就可以用gzip、bz2、xz等工具进行压缩,同时也能方便在各个计算机间传输,有点类似windows下共享的zip文件。 wiki上这个图比较形象,tar把零…

解压缩 tar命令详解

1、 tar命令进行文档的归档和压缩 归档和压缩文件 归档和压缩文件的好处&#xff1a;节约硬盘的资源&#xff0c;加快文件传输速率 tar命令 作用&#xff1a;打包、压缩文件&#xff1b;tar文件是把几个文件和&#xff08;或&#xff09;目录集合在一个文件里&#xff0c;该存…

使用sobel、prewitt、拉普拉斯算子、差分法提取图像的边缘

参考&#xff1a; https://www.cnblogs.com/dengdan890730/p/6145585.html https://blog.csdn.net/touch_dream/article/details/62447801 https://blog.csdn.net/xiahn1a/article/details/42141429 https://blog.csdn.net/swj110119/article/details/51777422 什么是边缘…

图像边缘检测——一阶微分算子 Roberts、Sobel、Prewitt、Kirsch、Robinson(Matlab实现)

图像边缘一般指图像的灰度变化率最大的位置。成因主要如下&#xff1a; 1.图像灰度在表面法向变化不连续&#xff1b; 2.图像中物体在空间上的深度不一致&#xff1b; 3.在光滑的表面上颜色不一致&#xff1b; 4.图像中物体的光影 边缘检测指的是从图像中检测边缘点和边缘段…

python图像处理(十一)——图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子、Laplacian算子

在图像增强过程中&#xff0c;通常利用各类图像平滑算法消除噪声&#xff0c;图像的常见噪声主要有加性噪声、乘性噪声和量化噪声等。一般来说&#xff0c;图像的能量主要集中在其低频部分&#xff0c;噪声所在的频段主要在高频段&#xff0c;同时图像边缘信息也主要集中在其高…

机器学习MATLAB实现:Matlab-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化

机器学习MATLAB实现&#xff1a;Matlab-梯度Roberts算子、拉普拉斯算子、Sobel算子、Prewitt算子对图像进行锐化 欢迎大家来到安静到无声的《模式识别与人工智能&#xff08;程序与算法&#xff09;》&#xff0c;如果对所写内容感兴趣请看模式识别与人工智能&#xff08;程序与…

10.1 Python图像处理之边缘算子-Sobel算子、Roberts算子、拉普拉斯算子、Canny算子、Prewitt算子、高斯拉普拉斯算子

10.1 Python图像处理之边缘算子-Sobel算子、Roberts算子、拉普拉斯算子、Canny算子、Prewitt算子、高斯拉普拉斯算子 文章目录 10.1 Python图像处理之边缘算子-Sobel算子、Roberts算子、拉普拉斯算子、Canny算子、Prewitt算子、高斯拉普拉斯算子1 算法原理1.1 Sobel 算子1.2 Ro…

【计算机视觉】卷积、均值滤波、高斯滤波、Sobel算子、Prewitt算子(Python实现)

##1.环境的搭建 Python 3.6OpenCV Open Source Computer Vision Library.OpenCV于1999年由Intel建立&#xff0c;如今由Willow Garage提供支持。OpenCV是一个基于BSD许可&#xff08;开源&#xff09;发行的跨平台计算机视觉库&#xff0c;可以运行在Linux、Windows、MacOS操作…

几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny

from&#xff1a;https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括&#xff1a;深度上的…

prewitt算子实现

原理&#xff1a; 实现&#xff1a; /*** description: prewitt算子* param src 输入图像* param dst 输出图像*/ void prewitt(cv::Mat& src, cv::Mat& dst) {cv::Mat getPrewitt_horizontal (cv::Mat_<float>(3, 3) << -1, -1, -1, 0, 0, 0, 1, 1, …