0

こんにちは、試験が迫っていますが、模擬試験の 2 つの問題について講師からあまり助けを得られません。彼女は答えを提供しましたが、答えについての私の質問には答えていません。ここにいる誰かが答えがそのようになっている理由を説明できることを願っています.

次の 2 つのテーブル R および S とそのインスタンスを考えてみましょう。

R       S 
A B C  D E 
a x y  x y 
a z w  z w 
b x k    
b m j    
c x y    
f g h  

a) πA(R[natural join]B=D S)

答えは(a,b,c)、なぜそうではないの(a,a,b,c)ですか?投影はそれを区別しますか?


b) π A(R[natural join] B<>D S) 

答えは(a,b,c,f)、なぜa答えなのですか?b=d 値が x と z の両方の場合、なぜこれが出力されるのでしょうか?

4

3 に答える 3

1
a) πA(R[natural join]B=D S)
the answer being (a,b,c), why isn't it (a,a,b,c)? does a projection make it distinct?

関係代数では、重複するタプルは許可されていません。SQL(明確なものが必要な場合)と関係代数の主な違い

b) π A(R[natural join] B<>D S) 
the answer being (a,b,c,f), why is a an answer? b=d both times when values are x and z, so why is this being printed out?

自然結合操作は、RとSのタプルのすべての組み合わせのセットを返すため、この場合はタプル(axyzw)と(azwxy)も返します。したがって、aは結果の投影に含まれている必要があります。

于 2012-06-14T06:29:00.327 に答える
1

a) 関係代数では、射影演算子は重複除去を提供します。SQL では、これはデフォルトの操作ではありませんが、リレーショナル代数用です。これが私の情報源です。現時点では、重複排除を行う理由を思い出せませんが、これはデータベースの私の教授であり、彼は非常に知識が豊富です。(Relation Algebra が set-logic を使用し、集合に重複がないためだと思います。)

b) 2 つのテーブルを結合すると、2 つのテーブル間に CROSS PRODUCT が作成されます。6 行と 2 行があります。外積は 6x2 = 12 行です。テーブル R の行 1 には、ax y があります。これは xy AND zw とペアになり、[axyxy] と [axyzw] になります。2 番目の組み合わせは、この関係代数ステートメントに有効です。列 B と D は x != z と一致しません。

于 2012-06-14T06:21:55.780 に答える
0

【自然結合】B=D

これは自然結合ではありません。「自然結合」は、同じ名前の属性に対して排他的にリレーションを結合する結合だからです。あなたが説明する構成は、いくつかの場所で「等結合」などとラベル付け/呼ばれる可能性がありますが、それは確かに「自然結合」ではありません。

[自然結合] B<>D

「自然結合」は、属性値が等しい場合にのみ引数関係のタプルを結合する結合であるため、これは自然結合ではありません。

あなたは絶望的に誤解され、誤解されています。参考資料:「データベースシステム入門」、CJDate. 試験には何の役にも立たないかもしれませんが、後のデータベース技術のキャリアを求めるなら、このことを覚えておく価値があるかもしれません。

しかし、実際の質問に答えるには(前の回答に沿って):

a) 属性値 'a' は射影の結果に 2 回現れることはありません。射影は関係 を生成し、関係は集合 であると定義され、集合には重複を含めることができないためです。

b) [非] 自然結合には、タプル (axyzw) と (azwxy) の両方が含まれます。R からの「最初の」タプルと S からの「2 番目の」タプル、およびその逆。射影には結果 (a) が含まれます。

于 2012-06-14T11:15:49.620 に答える