关系运算总结及错题
已知下述关系,Student(学号, 姓名, 年龄, 性别, 院系),SC(学号,课程号,分数),C(课程号,课程名,学分,教师名)。请用关系演算公式表达“检索出年龄不是最小的,所学课程都及格的所有同学”,则用关系演算可表示为:这是战神MOOC上练习题的截图,我做了两次然后又重新回去看的视频,第二次在这个地方还是出错了,所以关于关系演算复杂的情况真的挺难表达的。
*****************************************************************************************************************华丽丽的分割线下面是关于关系运算的总结~
1.三种关系运算:
*关系代数:以集合为对象的操作思维,由集合到集合的变换
*元组演算:以元组为对象的操作思维,取出关系的每一个元组进行验证,有一个元组变量则可能需要一个循环,多个元组变量则需要多个循环
*域演算:以域变量为对象的操作思维,取出域的每一个变量进行验 证看其是否满足条件
*性质:三种运算之间是等价的,即一种形式的表达式可以被等价地转换为另一种形式
*非过程性:域演算>元组演算>关系代数(好→差)
三种关系运算虽是抽象的,但却是衡量数据库语言完备性的基础,一个数据库语言如果能够等价地实现这三种关系运算的操作,则说该语言是完备的.目前多数数据库语言都能够实现这三种运算的操作,在此基础上还增加了许多其他的操作,如赋值操作、聚集操作等。其中ISBL语言,即基于关系代数的数据库语言和Ingress系统的QUEL语言都是代表。
2.关系运算的安全性:不产生无限关系和无穷验证的运算。
关系代数是一种集合运算,是安全的,因为集合本身是有限的,有限元素集合的有限次运算仍旧是有限的关系演算不一定是安全的,例子如下: *****************************************************************************************************************
安全元祖表达式为:
最后总结如下图: