読み方 : せんたくえんざん
選択演算【selection operation】制限演算/restriction operation
選択演算とは?
関係演算の一つで、ある関係から、指定した条件に従って特定のいくつかの組を抜き出す操作のこと。リレーショナルデータベースでは表から指定の行を抽出する操作に相当する。

データベースには大量のデータが行と列からなる表として格納されている。例えば、「名簿」テーブルに「学籍番号」「学年」「クラス」「氏名」という列があるとき、そこから「学年が1」の行だけを抜き出す操作が選択にあたる。
実際のデータベース操作では、SQL文のWHERE句がこの演算に対応する。「SELECT * FROM 名簿 WHERE 学年='1'」と記述すれば、学年が1の行だけが返される。利用者が表のすべてのデータを必要とする場面は少なく、目的に応じた一部分だけを取り出す際にこの演算が用いられる。
選択演算の結果として得られるのは、元の表と同じ列構成を保ちながら、条件を満たす行だけで構成された新しい表である。列の種類は変わらず、行数だけが絞り込まれる。この点で、列を取り出す「射影」演算とは異なる。また、選択はあくまで行を取り出す操作であり、元のデータを書き換えたり削除したりするものではない。
条件の指定には等号や不等号による比較のほか、AND(かつ)、OR(または)、NOT(ではない)を使った複数条件の組み合わせも可能である。条件は各行に対して個別に評価され、真となる行だけが結果に含まれる。選択を複数回適用しても条件をまとめて一度に評価した場合と結果は変わらず、この性質は問い合わせ処理の最適化に活用される。
選択演算は最も基本的な関係演算の一つで、リレーショナルデータベースへの操作でよく用いられる。一方、関係(表)から条件を満たす属性(列)を抽出する操作を「射影」(projection)と呼び、二つの関係(表)を一つに合わせる操作を「結合」(join)という。これらも対応するSQL文の構文などが用意されており、データベース操作で多用される。