我可以使用自然加入加入3个表吗?

时间:2013-11-02 08:01:50

标签: relational-algebra

下面的图片显示了一个小型数据库, enter image description here

我有一个问题

  

给出关系代数表达式来查找法官的姓名   主持被告称为“迈克”的审判开始   二零一二年十二月一日。

答案是

enter image description here


但我认为它应该加入JUDGE表,如下所示:

如果我错误的话,请留下一些评论

enter image description here

1 个答案:

答案 0 :(得分:1)

不,你不需要加入JUDGE表来获得法官的名字。

注意JnameJUDGE的主键,也就是说,法官是由她的名字唯一标识的;并且TRIAL表实际上包含Jname表示哪位法官主持了特定的审判:

Judge | Defendant | Number | Sdate
Dredd |  1        |   1    | 1.12.2012
Dredd |  2        |   2    | 2.12.2012
Rico  |  1        |   3    | 1.12.2012

你可以看到选择元组如何在不加入任何内容的情况下为我们提供法官的名字。(如果你想知道,这是一个非常糟糕的设计,你不应该在现实世界中使用。)

相反,我们必须将DEFENDANT加入TRIALDEFENDANT的主键是他的ID,因此TRIAL表中只显示该ID ,如果我们需要按名称选择被告,我们必须使用加入。

至于你的问题标题:是的,你当然可以加入三个以上的表格。如果您发现很难想象,请回忆R ⨝ S ⨝ T = (R ⨝ S) ⨝ T。请注意,自然连接也很好地交换和关联。