1

次の質問に答えようとしています...

「外部キーを構成する列に NULL が存在する場合に発生する問題を説明してください。連結された外部キーを使用するときに採用できる 3 つの「一致ルール」を使用して、ANSI がこの問題を解決しようとした方法について説明してください。」

これらの「マッチングルール」とは何かについて、誰かが私を正しい方向に向けることができますか? 最初は OUTER JOINS を指していると思っていましたが、もうよくわかりません。

アドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

3

私の記憶が正しければ、これらのルールは複合外部キーに関するものです。たとえば、次のように定義されたアドレス テーブルを考えてみましょう。

deliveryaddressid - order - orderline - street - ...

(order,orderline) は orderline テーブルへの外部キーです。マッチング ルールは、外部キーの一部が NULL の場合の結合の動作を決定します。たとえば、次のような行です。

32 - null - 1123 - 'Main Street 1' - ...

部分的な外部キーに関する記事を次に示します(PDF ダウンロード、6 ページ)。関連する部分は次のようです。

ANSI SQL 92 許可および Oracle などのデータベースは、次のような複合外部キーの代替一致規則をサポートしています。

Match Full – 部分的に null の外部キーは許可されません。外部キーのすべてのコンポーネントが NULL であるか、外部キーに含まれる値の組み合わせが、参照されるテーブルの単一行の主キーまたは一意のキー値として表示される必要があります。[デフォルト]
Match Partial – 部分的に null の複合外部キーが許可されます。外部キーのすべてのコンポーネントが null である必要があるか、外部キーに含まれる null 以外の値の組み合わせが、参照されるテーブルの単一行の主キーまたは一意のキー値の対応する部分に表示される必要があります。
マッチなし– 部分的にヌルの複合外部キーが許可されます。複合外部キーのいずれかの列が null の場合、キーの null 以外の部分は、親キーの対応する部分と一致する必要はありません。

于 2009-05-18T11:10:33.107 に答える