-1

考虑以下关系模式。

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?(如果是这样,它会不同吗?)

4

1 回答 1

0

关系演算或代数表达式返回一个关系值。关系持有一组元组。集合不包含重复项。

结果中的属性取决于如何定义特定版本的元组关系演算。两种合理的可能性是:

  • 右手边说,元组值命名T是一些关系的元素,根据给定关系定义以具有某些属性。

  • 我们命名一个元组值,该值恰好具有右侧T后面使用的属性。T.

(否则,只要 name 的元组值T仅具有属性就sname满足右侧,具有任何其他属性的任何其他元组具有任何值也满足右侧。)

(一些版本的元组关系演算只在左边给出属性名称。一些版本在左边给出属性名称和值(根据右边使用的元组名称)。一些版本在左边给出形式的表达式R.a,因此同时给出属性名称和值。有些版本就像其中之一,但也在T左侧给出一个元组名称。)

于 2017-02-09T21:15:32.660 回答