見出し画像

Tableau のリレーションシップ機能 その9 ~ 参照整合って何?① ~

リレーションシップにあるもう一つのパフォーマンスオプション「参照整合」。これは何だろう? 言葉からして難しい。  イメージが沸かない。英語で言うと、"Referential Integrity"   integrity には完全性といった意味もあるので、データが完全に揃ってる状態か否か?、みたいなほうが解りやすいかもしれません。

このオプションの選択肢は、「一部のレコードが一致」(some records match) と「すべてのレコードが一致」(all records match) の二つ。これのよってどんな違いが出てくるのか? 今回も、結果と SQL から確認してみたいと思います。

確認にあたり、二つのケースを見ていく必要があります。「参照整合」は、リレーションに使われているキーをワークシート上で使っている場合と、使ってない場合で挙動が異なります。先ず、リレーションに使われているキーを使用していない場合を見ていきましょう。

今回も、シンプルな  TRAN_01.CSV と CST_01.CSV を CST_CD でリレーションして確認します。

今回使用するテーブル

カーディナリティ は 多対多で、
①  一部のレコードが一致  対  一部のレコードが一致
②  一部のレコードが一致  対  すべてのレコードが一致
③  すべてのレコードが一致  対  一部のレコードが一致
④  すべてのレコードが一致  対  すべてのレコードが一致
の4つのパターンを見てみましょう。

①  一部のレコードが一致  対  一部のレコードが一致

一部 対 一部 (完全外部結合)

その3でも説明していますが、完全外部結合の状態になります。
(その3はこちら

②  一部のレコードが一致  対  すべてのレコードが一致

一部 対 すべて (左結合)

TRAN_01 の全ての T_ORD_CD が全て表示され、これに合致する C_CST_NAME が表示されます。左結合の状態です。

③  すべてのレコードが一致  対  一部のレコードが一致

すべて 対 一部 (右結合)

CST_01 の全ての C_CST_NAME が表示され、これに合致する T_ORD_CD が表示されます。右結合の状態です。

④  すべてのレコードが一致  対  すべてのレコードが一致

すべて 対 すべて (内部結合)

両方のテーブルに共通する CST_CD だけが表示されました。内部結合の状態です。

どちらの集計値を使うかによって、結合の方法が変わることは、その2その3 で説明しましたが、両方のテーブルの集計を行っていても、内部結合、左結合、右結合、完全外部結合を使い分けた時はあると思います。そのような場合は、参照整合を定義することによって、結合の方法を変えること出来るようです。

すべてのレコードが一致 というのは、日本語的には、関係先と「一致するものだけ」にする、と解釈したほうが解り易いかも知れません。一部のレコードが一致 は、関係先と「一致しないものも含める」でしょうか。

なお、今回は、カーディナリティを 多対多 で検証しましたが、カーディナリティを 1対多(多対1)、1対1に変えても同じ結果が得られました。

では、それぞれどんな SQL が書かれているのか? それは次回見ていきましょう。

この記事が気に入ったらサポートをしてみませんか?