数据库系统概论——ALPHA语言

关于ALPHA语言其实并不难,本文想重点记录一下再学习ALPHA的一些较难点——用元组变量检索。
尤其是存在量词与全称量词的理解问题,在做到课本上全称量词的使用的时候,我想了很多天,包括问了老师,一直无法理解,后来自己突然醒悟,明白了自己在某个点上卡住了,特此记录。
本文以一道习题为例进行讨论

分析

《数据库系统概论》第五版 P59 例2.25
image.png
image.png
image.png
![XA}QG7Z57PQKAV_M)QUN_0.png

全称量词理解

全称量词来写这个表达式,我一直很难理解,一直卡在一个点上。
首先,最重要的是明确几个事情:

  1. 需要在几个表中查询:2个
  2. 查询的是什么:Studente.Sname,一定要明确,你查询的是第一个表中的元素。
  3. 后面的全称量词的式子的作用是什么:对前面的待查元素进行约束,这是非常重要的,后面的式子仅仅是对前面的待查元素进行约束。

如果需要模拟上面的查询流程,应当是这样的:

  1. 首先拿出Student表中的第一个元组,检查Student.Sno是否等于SC表中的一个元组的Sno,
  2. 如果Student.Sno=SCX.Sno,则检查SC表中的这个元组,SCX.Cno是否等于c1,如果不等于,则换到下一个元组,如果等于,那么说明Student表中的Sname不是我们想要的。
  3. 如果Student.Sno!= SCX.Sno,则满足要求,输出Student.Sname。

文字表述不清晰,可以看下面这张图:
在这里插入图片描述


理解的关键点是:
对于全称量词,我们首先拿出Student中的一个元组,然后遍历SC中的每一个元组,看看Student中的这个元组,是否满足后面的包含全称量词的约束条件,如果满足,则输出Student.Sname,不满足就继续Student.Sname的下一个元组,SC表对变量是起一个约束作用,全称量词的要求是,遍历SC表中的每一个元素,依次对Student.Sname进行检查
重点:在两个表中进行查询,后面一个表对前面的变量起到的是约束作用。

存在量词理解

存在量词理解比全称量词简单,只要后面的那个SC表中,找到了一个能够使Student.Sname满足题意,就进行输出Student.Sname,这里不需要像全称量词那样检查SC中每一个元素。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值