7

教授问我这个问题:

在三值逻辑的上下文中,布尔运算符和比较运算符的语义是什么?

我不确定他的意思。什么是比较运算符?这和关系运算符一样吗?语义?他在三值逻辑的上下文中询问这两个术语的“含义”?

谢谢。

4

3 回答 3

6

根据定义,布尔值包含两个选项: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) -> ???
真=未知(空)->???

于 2010-03-02T00:35:57.097 回答
3

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

基本上,三值逻辑是真/假/空,布尔/比较运算符在比较真==空、空==空等时会以某种方式起作用。

于 2010-03-02T00:06:37.083 回答
0

根据定义,布尔逻辑仅使用两个值。对我来说,这个问题没有意义。如果他问你如何定义或扩展布尔逻辑以便它可以使用三值系统,那就更清楚了。

于 2010-03-02T00:14:47.113 回答