我做了一些关系代数并且对这个问题有点打击,我做到了,但是我怀疑我做得对。 所以这些是3种关系:
Musicians: ssn, name, annualIncome
Instruments: instrID, iname, key
Plays: ssn, instrID
问题是由音乐家名约翰发现的instrID。
我做的是:
T1 = proj [condition ssn] ( select [name = John] Musician)
T2 = Plays natural joins Instruments
Result = proj [instruID] (T1 natural joins T2)
似乎我让每个约翰都演奏乐器而不是一个特定的约翰......我如何使用关系代数挑选一个约翰?
答案 0 :(得分:1)
潜在的假设是只有一位名叫约翰的音乐家:否则这个问题似乎没有意义。
proj[instrID] (proj[ssn]( select[name = John] Musician) naturalJoin Plays)
应该回答这个问题。您不需要表Instruments
,因为您可以从instrID
获取Plays
。