考虑以下关系模式。
Students(rollno: integer, sname: string)
Courses(courseno: integer, cname: string)
Registration(rollno: integer, courseno: integer, percent: real)
对于以下查询:
{T ∣ ∃S∈Students,∃R∈Registration(
S.rollno=R.rollno ∧ R.courseno=107 ∧ R.percent>90 ∧ T.sname=S.sname)}
是否可以检索到所有令人满意的元组,还是仅检索T.sname
? (如果是这样,它会有区别吗?)
答案 0 :(得分:0)
关系演算或代数表达式返回关系值。关系拥有多组元组。集合不包含重复项。
结果中的属性取决于您的特定版本的元组关系演算的定义方式。两种合理的可能性是:
右侧表示名为T
的元组值是根据给定关系定义的具有某些属性的某种关系的元素。
我们将T
命名为一个元组值,该元组值具有在右侧T.
之后使用的属性。
(否则,任何时候只有属性T
的名称sname
的元组值满足右侧,每个其他元组都带有任何附加属性,无论任何值也满足右手。)
(元组关系演算的某些版本只给出了左边的属性名称。有些版本在左边给出了属性名称和值(在右边使用的元组名称方面)。有些版本给出了表单{左边是{1}},因此给出了属性名称和值。有些版本就像其中一个版本,但左边还有一个元组名R.a
。)