真理値表は犬に喰わせるべき。

「3値論理とNULL」
http://codezine.jp/a/article/aid/532.aspx
ここでSQLにおける3値論理の事がかいてあるんだが、覚え方がいけない。

 しかし、NOTの場合は単純だからいいとして、ANDとORの組み合わせを全部覚えるのはなかなか大変です。そこで、3つの真理値の間に次のような優先順位があると考えてください。

優先順位で覚えるとは珍妙である。
2値論理を理解していれば何も難しいことはないはずなのに。

まず、2値論理は以下の True の時の条件だけ覚えれば良い。
(TrueでなければFalseなので)

  1. AND = 双方の値が共にTrue
  2. OR = 少なくとも一方がTrue (双方の値が共に偽でない)
  3. XOR = 双方の値が異なる
  4. NOT = Falseの時

AND/ORは言葉通りで簡単。みたまんま。

そして、3値論理は Unknown がここに加わる。
これはそのまま「わからん!」という意味。
つまり、可能性としてTrue/Falseの両方があるということである。

たとえば、

True AND Unknown

の場合。
一方が True なので、結果はもう一方次第である。
そして、その一方がわからないので、結果はどちらとも言えない(わからない)。
つまり、結果は Unknown である。

自信がなければ、Unknown の部分を True/False の両方に置き換えた2パターンを試してみれば良い。
上の例ならば

True AND True == True
True AND False == False

になって、答えが2パターンになってしまう。
この場合は Unknown なわけである。
置き換えた試した結果、両方同じなら、それが答えである。

たとえば、

True OR Unknown

これを置き換えて試せば、当然どちらも True になる。
この場合、片方がわからなくても確定するのだから、 True と言えるわけである。


他のどの組み合わせも同じように考えたらわかる。
真理値表は確認やはっきりさせるためには有用だと思う。
しかし、覚えるのには良くないだろう。めんどくさいし。

ちなみにSQLはかじったばかりで、その後のページは為になりました。