> 文章列表 > 读SQL进阶教程笔记12_地址与三值逻辑

读SQL进阶教程笔记12_地址与三值逻辑

读SQL进阶教程笔记12_地址与三值逻辑

 

1. SQL和数据库都在极力提升数据在表现层的抽象度,以及对用户隐藏物理层的概念

2. 关系模型是为摆脱地址而生的

2.1. “地址”不仅包括指针操作的地址,还包括数组下标等

3. 一个优雅的数据结构胜过一百行杂耍般的代码

3.1. 精巧的数据结构搭配笨拙的代码,远远好过笨拙的数据结构搭配精巧的代码

4. 编程中泛滥的地址

4.1. 我们可以使用的只有冯·诺依曼型计算机,它不仅使用地址管理数据,而且要求运行于其上的程序也要这样

4.2. 变量

4.2.1. 它正是编程语言中地址的化身

4.3. 对象

4.3.1. 仍是由OID这样的地址来管理的

4.4. 与SQL一样不使用变量的语言还有Lisp

4.4.1. 一种年龄仅次于Fortran的高级语言

4.4.2. 声明式语言SQL和函数式语言Lisp在当今的编程世界里都处于边缘,而且从来没有成为主流语言过

4.4.3. SQL和函数式语言有很多的共同点

5. 三值逻辑

5.1. 历史上最早提出三值逻辑(three-valued-logic)体系的是波兰的著名逻辑学家卢卡西维茨(Jan Lukasiewicz, 1878—1956)

5.1.1. 用来表达第三个值的分类其实包含在Codd提出的“未知”分类里

5.1.2. 对未来不确定性的描述,没有Codd提出的“不适用”的含义

5.1.3. 我认为,明年的某一个时间点(比如12月21日正午)我是否在华沙,在今天这一天看来无法肯定也无法否定,这并不矛盾。因此在指定的时间点我也许在华沙这件事是可能的,但却不是必然的。进而,“明年的12月21日正午我也许在华沙”这个命题,在今天这一天看来既不可能是真也不可能是假。……因此,在今天这一天,这个命题的值只能是一个全新的值,不同于表示真的数值“1”,也不同于表示假的数值“0”。我们可以用“1/2”来表示这个值。它的含义是“可能”,它是和“真”“假”并列的第三个值。

5.1.4. 命题的作用其实不在于表达事实,而在于反映人们对这件事实的认知

5.1.4.1. 命题其实不存在于客观世界,而存在于我们的内心

5.2. 古典逻辑学最受批判的理论是排中律(A∨¬ A),以及支撑它的二值原理

5.2.1. “A或者非A总有一个成立”

5.2.2. “一个命题必然有真假”

5.3. SQL采用的三值逻辑属于非古典逻辑这一比较新的逻辑学流派

5.3.1. 从提出这样一个心理学式命题理论的贡献来看,逻辑学家卢卡西维茨确实可以说是Codd的前辈,为关系数据库奠定了理论基础

5.4. 允许三个以上的真值的多值逻辑学(many-valued logic)的研究也在进行中

5.4.1. 没有神的逻辑学——人类的逻辑学诞生了