你知道SQL,你了解元组演算吗?

我们学习一个知识点,必须要从一个最基本的定义出发,然后再慢慢剖析其内部潜在的规律,再而就是与生活结合起来分析,达到共鸣,那么这个知识点就算搞定了。那么我们这次来说说元组演算。我想说说“共鸣”:为什么你看一部泡沫剧不困,看到大半夜还想继续看,但是如果让你看一集某某的教程,你噼里啪啦的,就睡着了,这是因为泡沫剧与你的生活中有很多的交叉点,我们管它叫共鸣,所以一个知识点,你要是理解不了,你找身边的例子,或者融入到生活中去,那么这个看似很难的问题就迎刃而解了。相信你也有过这样的感受。

定义:在元组关系演算系统中,称{t|Q(t)}为元组演算表达式,其中t是元组变量,Q(t)是元组关系演算公式;它是由原子公式和运算符组成。

我们接下来看看原子公式的三类:

1、R(t):R是关系名,t是元组变量,R(t)是元组变量,R(t)表示t是R中的元组,一般用{t|R(t)}来表示

2、t[i]Θu[j],t,u是元组变量,Θ是算术比较运算符。t[i]Θu[j]表示命题“元组t的第i个分量与元组u的第j个分量满足比较关系Θ

3、t[i]Θc或者cΘt[i]这里的c是常量,该公式表示“t的第i个分量与常数c满足比较关系Θ”举个很简单的例子:t[4]=3表示t的第4个分量等于3。

公式的递归定义:

其实就是一个逻辑运算,特别简单的一个道理:我们先看是什么个情况:


这个就是咱们代数上的“且”,“并”,“非”关系,这个我相信大家都明白,这里咱们就不多说了。

接下来,我们分析例题,我们从例题中来进行更好的理解。

两个关系R和S:


我们看R1的要求:

我们看到t[1]是属于S(t)中的元素,那么我们很直观的就发现,在关系S中t[1]=1<2,那么与咱们的要求t[1]>2不吻合,所以我们发现t[1]是指A这一列,那么就是说,在A这一列当中,那个数是>2的,所以我们发现了3和5,那么我们就取出了第二行和第三行:

那么我们再与S(t)进行“且”的组合,就能很快的得到了我们的答案了。

我们继续看第二个要求:

我们看的出来,t是包含在R中的元组,同时要满足非S(t)代表t不能包含在S中,那么我们看到第一条:1,2,3是R中的元组,同时也是S中的元组,那么就不符合要求,我们看的出来,R中的4,5,6;7,8,9是满足我们的要求的,因为这些元组不在S中,然后我们去除了相同的元素:1、2、3.得到我们的结果:

我们继续看要求:

我们从题目的要求看的出来,t是包含在S中的,所以我们就很直观的从S中找答案;同时我们还发现u是包含在R中的。我们首先要满足这么个条件就是t[3]<u[2],我们就找出了这两列

那么我们很easy的发现了:u[2]有三个值,2,5,8,;其中5和8大于3,所以满足条件;那么S中的1,2,3是符合条件的。再而我们发现R中的2、5、8里边,对应的S的3,6,9里边,我们存在了8>6的元组,那么我们得出S中的3,4,6也是符合条件的要求的,那么最后我们得出的答案就是:

其实对于这个元组的知识点,有些人觉得很烦恼,其实我的理解是,你首先在边看例题的同时,遇到不明白的地方,回头看定义,这样的效果也许会更好点。


评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值