【问题标题】:Semantics of the Boolean and comparison operators in the context of three-valued-logic三值逻辑上下文中布尔和比较运算符的语义
【发布时间】:2010-03-02 00:02:54
【问题描述】:

教授问我这个问题:

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

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

谢谢。

【问题讨论】:

    标签: sql null database-management


    【解决方案1】:

    根据定义,布尔值包含两个选项:True 和 False,或者它们的某种表示形式,如 1/0、ON/OFF、YES/NO 等。

    许多数据库系统还允许您在指定为布尔值的字段中存储 NULL 值,以允许它们表示三个值:是、否和未知 (NULL)。

    布尔运算符是 AND、OR 和 NOT。
    比较运算符是 EQUALS 或 NOT EQUALS 的某种形式。

    两端 TRUE/FALSE 值的操作很明显:
    对或错 -> 对
    不正确 -> 错误
    真=真->真

    他得到的是添加 NULL(未知)值的后果:
    TRUE 或 UNKNOWN(NULL) -> ???
    NOT UNKNOWN(NULL) -> ???
    真=未知(空)->???

    【讨论】:

      【解决方案2】:

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

      基本上,三值逻辑是真/假/空,布尔/比较运算符在比较真==空、空==空等时会有一定的作用。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-10
          • 1970-01-01
          • 2012-07-16
          • 2017-07-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多