Семантика булевых операторов и операторов сравнения в контексте трехзначной логики - PullRequest
7 голосов
/ 02 марта 2010

Профессор, задайте мне этот вопрос:

Какова семантика булевых операторов и операторов сравнения в контексте трехзначной логики?

Я не уверен, что он имел в виду. Что такое оператор сравнения? Это то же самое, что и реляционный оператор? Семантика? Он спрашивает о «значении» этих двух терминов в контексте трехзначной логики?

Спасибо.

Ответы [ 3 ]

6 голосов
/ 02 марта 2010

Булевы значения по определению состоят из двух опций: True и False, или некоторых их представлений, таких как 1/0, ON / OFF, YES / NO и т. Д.

Многие системы баз данных также позволяют хранить значение NULL в полях, обозначенных как Boolean, чтобы они могли представлять три значения: Да, Нет и Неизвестно (NULL).

Булевы операторы: И, ИЛИ, И НЕ.
Операторы сравнения - это некоторая форма РАВНЫХ или НЕ РАВНЫХ.

Операции со значениями ИСТИНА / ЛОЖЬ на обоих концах очевидны:
ИСТИНА или ЛОЖЬ -> ИСТИНА
НЕ ПРАВДА -> ЛОЖЬ
ИСТИНА = ИСТИНА -> ИСТИНА

К чему он стремится, это последствия добавления значения NULL (Неизвестно):
ИСТИНА или НЕИЗВЕСТНО (NULL) -> ???
НЕИЗВЕСТНО (NULL) -> ???
ИСТИНА = НЕИЗВЕСТНО (NULL) -> ???

3 голосов
/ 02 марта 2010

http://en.wikipedia.org/wiki/Null_(SQL)#Three-valued_logic_.283VL.29

По сути, логика трех значений имеет значение true / false / null, и логические операторы / операторы сравнения будут функционировать определенным образом при сравнении true == null, null == null и т. Д.

0 голосов
/ 02 марта 2010

Булева логика по определению использует только два значения. Для меня этот вопрос не имеет смысла. Если бы он спросил, как вы можете определить или расширить булеву логику, чтобы она могла использовать трехзначную систему, это было бы яснее.

...