数据库关系代数除法(SQL语句实现关系代数中的“除法”)
大家好,如果您还对数据库关系代数除法不太了解,没有关系,今天就由本站为大家分享数据库关系代数除法的知识,包括SQL语句实现关系代数中的“除法”的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
access关系代数除法运算
这里用通俗些的语言讲一下步骤。
1.先去找被除数(R)中与除数(S)所含有的相同的属性集(即第一行的字段)有什么。
此题观察发现是{A,B}
2.找到{A,B}后,就去比较R中{A,B}所有的投影值,哪个是与S中{A,B}的投影值相同。(所谓投影,就是说去找第一行属性集对应之下的各行的值)
会发现只有R的最后一行的{c,3}符合(注意不要把1也写上,因为这里只找{A,B}下的投影)。
3.去找{A,B}的像集的投影中与{c,3}同在一行的值。所谓像集,通俗地讲,就是用被除数(R)所有的属性集减去除数(S)的属性集得到的差值。
此题{A,B}的像集为{A,B,C}-{A,B}={C},那么,{C}的投影中与{c,3}同在一行的值就是{1})
4.列出该值即可。
关系代数中除法的意义是做什么的呢?
可以再举一个通俗而实际的例子。依然按上式,假设A表示课程名,B表示教师的编号,C表示学生的学号。
那么R除以S就是求:至少选修了教师3讲授的课程c的同学的学号。(注意“至少”这个词,因为可以看到,学生1还选修了教师2讲授的课程b)
建议把一些抽象的概念套用在实际应用中去理解,在理解步骤之后再去深化认识书中的数学定义。
sql语句中用户实现关系代数中的除法主要依靠的关键字是什么
关键字是NOT EXISTS
用SQL语句实现的一个简单除法操作,把问题一个一个分开来解释:
1.查询在主查询中用到了depositor表。而在它的嵌套子查询中,同样用到了这张表。所以,这个查询为相关子查询。
相反,如果这个嵌套查询在子查询中没有用到主查询中的表,那么我们称之为无关子查询。
相关子查询和无关子查询的在使用上的区别是什么呢?如果一个嵌套查询中包含无关子查询。那么我们会先执行子查询,在子查询结果的这张表中,我们再执行主查询。也就是说在子查询结果的基础之上再进行查询。
而相关子查询不同,在主查询中扫描一条记录,比如果我们拿到了一条depositor的记录A,我们会把A带入到子查询中,看结果是否为真,如果为真,那么就输出A。然后取depositor的表中的下一项B。一次逐条扫描。
2.在数据库中,如果我们想表示关系A包含关系B。我们应该怎么表示呢?
对!用NOT EXISTS关键字。
如果我们说A包含B,那么也就等价于NOT EXISTS( B EXCEPT A)
换句话说就是==》不存在属于B而不属于A的元组。那么也就是A包含B。
数据库常用的关系运算是什么
在关系数据库中,基本的关系运算有三种,它们是选择、投影和连接。关系的基本运算有两类:一类是传统的集合运算(并、差、交等),另一类是专门的关系运算(选择、投影、连接、除法、外连接等),有些查询需要几个基本运算的组合,要经过若干步骤才能完成。
一、传统的集合运算
1、并(UNION)设有两个关系R和S,它们具有相同的结构。R和S的并是由属于R或属于S的元组组成的集合,运算符为∪。记为T=R∪S。
2、差(DIFFERENCE)R和S的差是由属于R但不属于S的元组组成的集合,运算符为-。记为T=R-S。
3、交(INTERSECTION)R和S的交是由既属于R又属于S的元组组成的集合,运算符为∩。记为T=R∩S。R∩S=R-(R-S)。
二、选择运算
从关系中找出满足给定条件的那些元组称为选择。其中的条件是以逻辑表达式给出的,值为真的元组将被选取。这种运算是从水平方向抽取元组。在FOXPRO中的短语FOR和WHILE均相当于选择运算。
如:LISTFOR出版单位='高等教育出版社'AND单价<=20
三、投影运算
从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。在FOXPRO中短语FIELDS相当于投影运算。如:LISTFIELDS单位,姓名
四、连接运算
连接运算是从两个关系的笛卡尔积中选择属性间满足一定条件的元组。
五、除法运算
在关系代数中,除法运算可理解为笛卡尔积的逆运算。
设被除关系R为m元关系,除关系S为n元关系,那么它们的商为m-n元关系,记为R÷S。商的构成原则是:将被除关系R中的m-n列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取m-n列的值作为商的一个元组,否则不取。
扩展资料:
数据库除运算:
除运算的含义–给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。
R÷S的结果为a1,x相当于A y相当于B,C z相当于D,按照除运算规则,我们不必关注D。只需比较B,C当S关系中的B,C所有的组合(b1,c2)(b2,c3)(b2,c1)都出现在R关系中时,结果才为A
R÷S={tr[X]| trÎR∧πY(S)íYx},Yx:x在R中的象集,x= tr[X]。除操作是同时从行和列角度进行运算。
参考资料来源:百度百科-关系运算
参考资料来源:百度百科-数据库除运算
SQL语句实现关系代数中的“除法”
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算可以得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上的分量值x的像集Y(x)包含S在Y上的投影的集合。
第一步:找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);
第二步:被除关系R中与S中不相同的属性列是X,关系R在属性X上做取消重复值的投影;
第三步:求关系R中X属性对应的像集Y;
第四步:判断包含关系,R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。
R(X,Y)÷S(Y,Z)的运算用结构化语言SQL语句可表达为下列形式:
文章分享结束,数据库关系代数除法和SQL语句实现关系代数中的“除法”的答案你都知道了吗?欢迎再次光临本站哦!