2016-05-12 5 views
0

属性A、B、C、Dとの関係Sを考えてみましょう。関数従属AB - > Cが関係Sを保持している場合に限り、空の解を返すSQL照会を作成します。 (この場合、クエリ結果が空でない限り、関数の依存関係がSを保持していない場合、クエリが返すものは重要ではありません。)NULL値が存在しないと仮定します。AB - > CのSQLクエリ

私の質問は、空の答えを返す方法と、間違った場合には私の部品を修正する方法です。 (B)は(C)の正確値に関連付けられているの値IFF

Select 
From S AS S1, S As S2, 
Where (S1.C!=S2.C) AND (S1.A=S2.A) AND (S1.B=S2.B) 
+0

あなたの宿題を行うためにStack Overflowが存在しないため、この質問を議論の対象外としています。 –

+0

何ですか?私は試験のために勉強しています。これは問題ではありません。 –

+0

プラス、これは5月中旬です。決勝を除いて、学校は終わっています。なぜ今私は質問をするのだろうか?これは学習ガイドからのものです。 –

答えて

0

...。必要とされる

チェックがタプル(a、b)はCつ以上値に関連しているのいずれかの値が存在するかどうかです。

関数の依存関係が成立しないことを証明するために、反例を示す必要があります。

ここにはいくつかの簡単な例があります。

機能依存(a、b)は - >(C)

a b c d 
-- -- -- -- 
2 3 5 42 
2 3 5 42 

機能の依存関係を保持している機能的な依存関係が成立しない場合ははないはそれが必要で、

a b c d 
-- -- -- -- 
2 3 7 42 
2 3 11 42 

を保持しませんと同じの値が(a、b)がと異なる(c)の値に対応していること。

いくつかのクエリが可能です。ここに1つの例があります:

SELECT s.a 
     , s.b 
    FROM s 
    GROUP 
    BY s.a 
     , s.b 
HAVING NOT (MIN(s.c) <=> MAX(s.c)) 
関連する問題