データ接続と準備

データモデルと関係 — 結合・リレーションシップの違いを整理する

導入

Tableauでデータを分析するとき、複数のテーブルをどう組み合わせるかで結果が大きく変わることをご存じでしょうか。正しく扱わないと集計値がずれてしまう――そんなトラブルを防ぐ仕組みが「データモデル」です。

なぜ重要か

データモデルとリレーションシップは、Tableau Desktop Specialist 試験でデータソース設計の中心的なトピックとして位置づけられています。特にTableau 2020.2で導入された関係(Relationship)は、従来の結合(Join)との違いを問う問題が頻繁に出題されており、論理層と物理層の概念を理解しているかどうかが問われます。

実務においても、売上テーブルと商品マスタのように粒度が異なる複数のテーブルを扱う場面は多く、安易に結合してしまうと集計値の重複カウントという問題が起きます。関係を適切に使えると、テーブルを物理的に混ぜることなく必要な情報を動的に参照できるため、分析の精度と設計の柔軟性が大きく向上します。

くわしく知ろう

Tableauのデータモデルは、テーブルどうしの接続方法を2つのレイヤーで管理しています。画面上部に見えるロジカルレイヤー(論理レイヤー)では、テーブルを線でつないで「関係(Relationship)」を設定します。その線をダブルクリックして中に入ると、フィジカルレイヤー(物理レイヤー)に切り替わり、ここで結合(Join)やユニオン(Union)といった従来の操作が行えます。

関係はTableau 2020.2で導入された比較的新しい機能です。結合とは異なり、テーブルを物理的に混ぜ合わせることなく、クエリを実行するタイミングで必要な分だけ動的に組み合わせます。そのため、売上テーブルと商品テーブルのように行数の粒度が異なる場合でも、集計値が二重にカウントされるリスクを大幅に抑えられます。

結合は2つ以上のテーブルの列を横に並べて1つの大きなテーブルとして扱う操作です。内部結合・左結合・右結合・完全外部結合など種類があり、マッチしない行はNULL値になります。粒度の異なるテーブルを結合すると意図しない重複が生じる場合があるため、関係の方がより安全な選択肢となることがあります。

イメージとしては、結合は具材をすべて混ぜ合わせた料理であり、関係は具材をとなりに置いて必要に応じて取り合わせる料理と考えると区別しやすくなっています。

具体例で理解する

たとえば「注文テーブル」と「商品テーブル」を関係でつなぐと、売上の集計は注文テーブルの粒度を保ちつつ、商品名や価格を参照できます。一方、同じ2つのテーブルを結合してしまうと、商品に複数の注文が紐づく場合に行が重複し、売上合計が正しく計算されないことがあります。

試験での出題パターン

【パターン1:関係と結合の違いを問う問題】

「テーブルを物理的に混ぜ合わせることなく、クエリ時に動的に組み合わせる接続方法はどれか」という問いに対して「関係(Relationship)」が正解です。「結合はどの画面で設定するか」には「フィジカルレイヤー」、「関係はどの画面で設定するか」には「ロジカルレイヤー」が正解になります。

【パターン2:粒度の異なるテーブルの接続方法を問う問題】

「売上テーブル(1注文1行)と商品マスタ(1商品1行)を組み合わせて売上合計を正しく求めたい。重複カウントを防ぐ方法として最も適切なものはどれか」という形式で、関係を選ぶことが正解です。結合を選ぶと行が重複して集計値が増えてしまうという点が引っかかりポイントになっています。

【パターン3:バージョンと機能の対応を問う問題】

「関係(Relationship)機能が導入されたTableauのバージョンはどれか」という問題も出ます。Tableau 2020.2が正解です。「関係はすべてのバージョンで使える」という誤った選択肢が置かれることがあるため、2020.2という節目を押さえておきましょう。

よくある間違い・紛らわしいポイント

【関係と結合は設定する場所が違う】

関係はロジカルレイヤーで設定し、結合はその線をダブルクリックして入ったフィジカルレイヤーで設定します。「関係も結合も同じ画面で設定できる」という思い込みが誤答につながります。どちらのレイヤーで操作するかをセットで覚えておいてください。

【関係はJoinの上位互換ではない】

関係は粒度の異なるテーブルを安全につなぐ場面で有効ですが、常にJoinより優れているわけではありません。同じ粒度のテーブルをまとめたい場合はJoinの方が適しており、フィジカルレイヤー内でのJoin設定はTableau 2020.2以降も引き続き使用可能です。

【Tableau 2020.2以前はロジカルレイヤーが存在しない】

関係機能の追加に伴い画面構成が変わりました。2020.2より前のバージョンではロジカルレイヤーは存在せず、データソース画面で直接Joinを設定していました。試験で「関係はどのバージョンから使えるか」と問われたときは2020.2が正解です。

まとめ・試験ポイント

  • 関係(Relationship)=Tableau 2020.2以降の機能、クエリ時に動的結合
  • 結合(Join)=テーブルを物理的に混ぜる、NULL値が生まれる可能性あり
  • ロジカルレイヤー=関係を設定する画面、フィジカルレイヤー=結合を設定する画面
  • 粒度が異なるテーブルには関係が安全
  • 試験では「関係と結合の違い」「どちらを使うべきか」を問う設問が頻出

学習した内容を模擬試験で確認しよう。Tableau Desktop基礎(旧Specialist)模擬試験で実力を測ろう。

Tableau Desktop模擬試験に挑戦

実技で試したい方は、Tableau実践演習 初段にも挑戦してみよう。

実践演習 初段を見る