教授问我这个问题:
在三值逻辑的上下文中,布尔运算符和比较运算符的语义是什么?
我不确定他的意思。什么是比较运算符?这和关系运算符一样吗?语义?他在三值逻辑的上下文中询问这两个术语的“含义”?
谢谢。
教授问我这个问题:
在三值逻辑的上下文中,布尔运算符和比较运算符的语义是什么?
我不确定他的意思。什么是比较运算符?这和关系运算符一样吗?语义?他在三值逻辑的上下文中询问这两个术语的“含义”?
谢谢。
根据定义,布尔值包含两个选项:True 和 False,或者它们的某种表示形式,如 1/0、ON/OFF、YES/NO 等。
许多数据库系统还允许您在指定为布尔值的字段中存储 NULL 值,以允许它们表示三个值:是、否和未知 (NULL)。
布尔运算符是 AND、OR 和 NOT。
比较运算符是 EQUALS 或 NOT EQUALS 的某种形式。
两端带有 TRUE/FALSE 值的操作很明显:
TRUE 或 FALSE -> TRUE
NOT TRUE -> FALSE
TRUE=TRUE -> TRUE
他得到的是添加 NULL(未知)值的后果:
TRUE 或 UNKNOWN(NULL) -> ???
NOT UNKNOWN(NULL) -> ???
真=未知(空)->???
http://en.wikipedia.org/wiki/Null_(SQL)#Three-valued_logic_.283VL.29
基本上,三值逻辑是真/假/空,布尔/比较运算符在比较真==空、空==空等时会以某种方式起作用。
根据定义,布尔逻辑仅使用两个值。对我来说,这个问题没有意义。如果他问你如何定义或扩展布尔逻辑以便它可以使用三值系统,那就更清楚了。