数据库之关系演算

1.原子公式

在这里插入图片描述
原子公式有三种,第二种,和常量C之间进行关系比较的时候
此时我们还未引入量词

注意,以下操作其实隐含着一次遍历:把整张表遍历,也就是一行一行元组遍历,然后和原子公式的常数相比较,符合条件的元组加入到新的集合里
在这里插入图片描述

最关键的第三种原子公式:

在这里插入图片描述
这时候引入了第二个元组,不同元组间进行比较,这时候无法直接和常量比较,而是元组之间比较,就需要引入量词,“存在”,“任意”

其实引入量词后,量词后的公式其实就又隐含着一层循环
有点像二层循环的感觉:

  1. t取一个值t1,然后 遍历整个表,所有的元祖变量u和t 进行比较
    t1满足条件则留下,否则丢弃
    2.t取下一个值,然后元组变量u再是变量全表,和t2比较
    以此类推,直到所有t的遍历完
    这就是一个二层循环。

如果量词 的公式里又有量词,那就是嵌套,n层循环了

当然如果是并列多个两量词,那深度来说仍然是二层循环,只不过内层循环有多个而已

量词(公式要满足的范围公式 r)(公式F)

在公式要满足的范围内,若:
在这里插入图片描述

举个栗子:
在这里插入图片描述
公式r 就是单纯的属于 SC,所以该范围内所有元组都要满足公式F
那么先走外循环
当t=t1时候
这个范围内不可能所有 的元组的 学号 都就是你t1的学号,也不可能所有元组的分数都大于60分

所以这个式子就是错的,他返回的结果为空。

在这里插入图片描述

如果是这样呢?
此时表示范围的公式r 改变了一下下

那么t取t1时候,
我们哟啊满足公式F的范围是

在这里插入图片描述
这样就可以正确判断了,只要某个t 对应的 元组u的范围内,元组u均大于60分就ok啦

比如 t 学号为202 的时候,就可以
所以202这个t就要了~

猜你喜欢

转载自blog.csdn.net/weixin_52110757/article/details/127483347