データベースについての基礎を解説(2)
本日、2記事目です。
今回も引き続きシリーズものということで、データベースに関連する知識の解説を行なっていきます。この記事で取り扱うのは2値論理と3値論理です。
1) 2値論理
→ ある命題について、真か偽かを真偽値という概念で示す値のことです。命題とは主張のことです。例えば、「男性は女性より平均身長が高い。」というようなデータを集めて議論を重ねれば、それが正しいか間違っているかの判断がつきそうな主張を指します。一方、例えば「何と言っても私は私!」みたいなデータで正誤の判断がつかなさそうな主張は除外されます。真偽値については、以下2つにてにて表現されます。
TRUE:真
FALSE:偽
2) 3値論理
→ SQLにて採用される論理形式であり、非常に重要な概念です。3値である理由は、先述の2値に加えて、NULLという概念が加えられるためです。つまり、以下3つによって表現されます。
TRUE:真
UNKNOWN:不明
FALSE:偽
このUNKNOWNという表現はNULLという表現のうちの1種類を指しています。つまり、文字通り、「真か偽かは分からず、何とも言えない。」状態のことを指します。これは偽であることとは明確に異なる概念なので、注意する必要があると感じます。
例:「このリンゴは国産か?」と実物がないのに質問される。
→ モノを見せてくれないことには何も分からない。
さらに、NULLの表現の意味にはもう1種類あって、「適用不能」と言います。これは
「真か偽かは分からず、分かる可能性もない。」という状態を指します。
例:「このリンゴは男性か?」
→ リンゴに性別はなく、性別そのものをリンゴに当てはめることができないた
め、質問自体が無意味である。
したがって、「不明」と「適用不能」の違いは、前者はその真偽が将来判明する可能性がある状況であるのに対して、後者は真偽が判明する可能性がそもそもない状況を指していると言えます。
NOTとANDとOR
→ NOTは「ではない」、ANDは「かつ」、ORは「または」を表す論理の記号です。
これを3つの真理値に適用すると、以下のような力関係が生まれます。
1) ANDの場合 → false > unknown > true
2) ORの場合 → true > unknown > false
こうなる理由を分析しますと、「結論はなるべく真に近づけたい」という観点から説明できると考えます。ANDの場合、「かつ」であるので、3つの値がtrueでないといけません。1つでもfalseがあれば、偽となってしまいます。そのため、ANDにおいては、falseの力が最も強く、trueの力が最も弱いのです。
ORの場合は、「または」であるので、3つの値はどれかが真であればいいわけです。そのため、trueの力が最も強く、falseの力が最も弱いのです。
以上で解説を終わります。
本日もご覧いただきありがとうございました。
また、次回以降もよろしくお願いいたします。