データベーススペシャリスト暗記無料で始める

商演算とは?しょうえんざん

商演算とは、関係Rを関係Sで割り、Sに現れるすべての値と組になっている値だけを取り出す演算。「すべての〜を満たすものを求めよ」という全称条件を一つの演算で表せる点に意味があり、結果の列はRの列からSの列を除いた残りになる。

最終更新:2026-10-06

試験情報

データベーススペシャリスト試験の過去問では2回出題されています(2023年度〜2025年度)。

データベーススペシャリスト試験の頻出用語/午前II

別名:除算、division

この語が出る過去問を解く →

背景

SQLには「いずれかを満たす」を表すEXISTSはあるが、「すべてを満たす」を直接書く述語が用意されていない。そのため実装側では「満たさないものが一つも存在しない」と二重に否定して書く必要があり、書き手にとって発想しにくい形になる。関係代数の側でこの型に演算として名前を与えておくと、要件の文言から書くべき問合せの形へ一段で降りられる。試験はこの対応づけができるかを見ている。

具体例

取扱表(店舗コード, 商品コード)を店舗表(店舗コード)で割ると、「全店舗で取り扱われている商品」が得られる。結果に残るのは商品コードの列だけで、店舗コードは割った側に吸収されて消える。

試験での引っ掛け

商は基本演算ではなく、直積・差・射影の組合せで書き直せる導出演算である。SQLに直すときは NOT EXISTS を二重に重ねる形が定石で、これを「すべての行に対して条件が成り立つ」と素直に書けると誤解しやすい。結果の列がRとSの差集合になる(割った側の列は残らない)点も、結合と取り違えると答えが合わなくなる。

関連用語

出た過去問

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

この語が出る過去問を解く →

試験での特徴
  • 試験では2回出題(2023年度〜2025年度)
  • 分野:午前II
  • 商は基本演算ではなく、直積・差・射影の組合せで書き直せる導出演算である。