-1

この本には、2 つの同一の関係に対して関係代数シータ結合 (条件を問わず結合) を作成できないと書かれているので、次のように仮定します。

person(ssn, name, surname, age)
disease(ssn_p, gravity, code)

主キーである person の ssn、主キーである疾患からのコード、および person.name を参照する外部キー ssn_p を使用します。

共通のフィールドを持つ 2 つのリレーションを結合できますか?

たとえば、2 つのリレーションがあります (選択と射影の結果)。

R1(ssn, name)
R2(ssn_p, name)

R1 と R2 を結合できますか?

4

1 に答える 1

2

リレーションが属性を共有している場合、シータ結合を行うことはできません。その理由は、シータ結合が基本的に属性を並置するためです。つまり、a1, a2, ..., anが の属性でR1あり、b1, b2, ..., bmが の属性でR2ある場合、 と のシータ結合の結果は属性 との関係にR1なりR2ます。属性を共有している場合は、属性が重複しています。関係代数では属性の繰り返しは許可されません。R3a1, a2, ..., an, b1, b2, ..., bmR1R2R3

リレーションがいくつかの属性を共有しているときにシータ結合を実行したい場合は、リレーションの 1 つで名前変更操作を実行して、すべての属性が明確になるようにすることができます。

于 2012-04-02T00:48:33.493 に答える