.svg/500px-Mutation_and_selection_diagram_(2).svg.png)
リレーショナル代数では、選択( EF Codd の 1970 年の論文[1]を参照して制限と呼ばれることもありますが、一般に信じられているのとは異なり、 SQLの SELECT の使用との混同を避けるため、Codd の論文は SQL が存在する以前に書かれたものであるため、選択とは呼ばれません) は、関係の サブセットを表す単項演算です。
選択は次のように記述され ます。
- aとbは属性名です
- θは集合内の二項演算である
- vは値定数である
- Rは関係である
選択は、a属性とb属性の間でθ が成立するR内のすべてのタプルを表します。
選択は、a属性と値v の間でθ が成立するR内のすべてのタプルを表します。
たとえば、次の表を考えてみます。最初の表は関係Person を示し、2 番目の表は の結果を示し、3 番目の表は の結果を示します 。
より正式には、選択のセマンティクスは次のように定義されます。
選択の結果は、それが操作する関係の見出しに指定する属性名が含まれている場合にのみ定義されます。
一般化された選択
一般化された選択は、と記述される単項演算です。ここで、は通常の選択で許可されるアトムと、それに加えて論理演算子 ∧ ( および )、∨ ( または )、および ( 否定 ) で構成される命題式です。この選択は、が成り立つR内のすべてのタプルを選択します。
たとえば、最初のテーブルが関係Person を示し、2 番目のテーブルが の結果を示す次のテーブルを考えます。
正式には、一般化選択のセマンティクスは次のように定義されます。
選択の結果は、それが操作する関係のヘッダーに指定する 属性名が含まれている場合にのみ定義されます。
一般化された選択は、他の基本的な代数演算で表現できます。基本演算子を使用した一般化された選択のシミュレーションは、次の規則によって定義されます。
コンピュータ言語
コンピュータ言語では、単純な比較に制限するのではなく、 任意の真理値式を選択条件として許可することが期待されます。
SQLでは、、、およびステートメントWHEREの定義を使用して選択が実行されますが、選択条件の結果は通常の 2 つの真理値ではなく、3 つの真理値 ( true、false、およびunknown ) のいずれかになることに注意してください。
SELECTUPDATEDELETE
SQLでは、一般的な選択は、、、およびステートメント
で、、、またはオペランドをWHERE含む定義を使用して実行されます。ANDORNOTSELECTUPDATEDELETE
参考文献
- ^ Codd, EF (1970 年 6 月). 「大規模共有データバンク用のリレーショナルデータモデル」Communications of the ACM . 13 (6): 377–387. doi : 10.1145/362384.362685 .
外部リンク
- http://cisnet.baruch.cuny.edu/holowczak/classes/3400/relationalalgebra/#selectionoperator
