選択(関係代数)

リレーショナル代数では選択( EF Codd の 1970 年の論文[1]に関連して制約と呼ばれることもあり、 SQLの SELECT の使用との混同を避けるため、一般に信じられているのとは反対に、Codd の論文は SQL が存在する以前に書かれたものであるため、そう呼ばれることはない) は、関係のサブセットを表す単項演算です。

選択は次のように記述されます

  • abは属性名です
  • θは集合内の二項演算である
  • vは値定数である
  • Rは関係である

選択は、a 属性b属性の間でθが成り立つR内のすべてのタプルを表します。

選択は、a属性と値vの間でθが成り立つR内のすべてのタプルを表します

たとえば、次のテーブルを考えてみましょう。最初のテーブルは関係Personを示し、2 番目のテーブルは の結果を示し、3 番目のテーブルは の結果を示します

名前重さ
ハリー3480
サリー2864
ジョージ2970
ヘレナ5454
ピーター3480
名前重さ
ハリー3480
ヘレナ5454
ピーター3480
名前重さ
ヘレナ5454

より正式には、選択のセマンティクスは次のように定義されます。

選択の結果は、それが操作する関係の見出しに指定する属性名がある場合にのみ定義されます。

一般化選択

一般化選択は、 と記述される単項演算です。ここで は、通常の選択で許容されるアトムに加え、論理演算子 ∧ (および)、∨ (または)、および(否定)からなる命題式です。この選択は、 Rにおいてが成り立つすべてのタプルを選択します。

たとえば、最初のテーブルが関係Personを与え、2 番目のテーブルが の結果を与える次のテーブルを考えてみましょう

名前重さ
ハリー3480
サリー2864
ジョージ2970
ヘレナ5454
ピーター3480
名前重さ
ヘレナ5454

一般化された選択のセマンティクスは正式には次のように定義されます。

選択の結果は、それが指し示す属性名が、それが操作する関係のヘッダー内にある場合にのみ定義されます。

一般化選択は他の基本的な代数演算で表現できます。基本演算子を用いた一般化選択のシミュレーションは、以下の規則によって定義されます。

コンピュータ言語

コンピュータ言語では、単純な比較に制限するのではなく、 任意の真理値式を選択条件として許可することが期待されます。

SQLでは、、、およびステートメントWHEREの定義を使用して選択が実行されますが、選択条件によって、通常の 2 つの真理値ではなく、3 つの真理値 ( truefalse、およびunknown ) のいずれかが返される可能性があることに注意してください。SELECTUPDATEDELETE

SQLでは、一般的な選択は、、、およびステートメント、、、またはオペランドをWHERE含む定義を使用して実行されますANDORNOTSELECTUPDATEDELETE

参考文献

  1. ^ 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/relationalgebra/#選択演算子
「https://en.wikipedia.org/w/index.php?title=Selection_(relational_algebra)&oldid=1271809511」より取得