表 7-1 逻辑运算的真与假
A |
B |
NOT |
A |
A |
AND |
B |
A |
OR B B NOT |
A |
A |
XOR |
B |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
0 |
1 |
1 |
1 |
0 |
|||||||
1 |
0 |
0 |
0 |
1 |
0 |
1 |
||||||
0 |
1 |
1 |
0 |
1 |
1 |
1 |
||||||
0 |
0 |
1 |
0 |
0 |
0 |
0 |
*表中 1 表示“真”,0 表示“假”。
图 7-2 表示简单的布尔逻辑运算结果。如果集合 A 是具有 a 属性的集
合,集合 B 是具有 b 属性的集合,那么语句 AANDB,AORB,AXORB,ANOTB 就恢复了图 7—2 中用阴影表示的属性组合项目。再用一个例子来说明,土壤制图单元数据库中,每个单元都可能包括土壤结构、pH 值等属性。假设集合 A 为表层土壤是粘性土结构的所有制图单元的集合,集合 B 是表层土壤 pH 值大于 7.0 的所有单元的集合。那么逻辑运算语句的作用如下:
X=AANDB
检索出全部土壤结构为粘性土且 pH 值大于 7.0 的制图单元; X=AORB
检索出全部土壤结构为粘性土以及土壤 pH 值大于 7.0 的制图单元,其中包括两个条件都满足的那些制图单元;
X=AXORB
检索出全部土壤结构为粘性土以及土壤 pH 值大于 7.0 的制图单元,但不包括两个条件都满足的那些制图单元;
X=ANOTB
检索出全部土壤结构为粘性土以及土壤 pH 值小于 7.0 的制图单元。
这些逻辑运算都是按属性数据的特定组合条件去检索出相应的图形数据。也可以按同样组合去检索相应的属性项目列表等。
应注意的是布尔逻辑运算不满足交换律,这是与数学运算不同之处。AANDBORC 这一逻辑运算表达式的结果(图 7-2)取决于“AND”相对于“OR” 的优先权,经常用圆括号来明确指明运算顺序。上例中,如果加入一个表示排水不良的土壤制图单元集合 C,那么
X=(AANDB)ORC
这个表达式就是恢复出土壤结构为粘性土而且pH 值大于7.0 的所有制图单元再加上排水不良的那些制图单元;而表达式
X=AOR(BANDC)
则得到同时满足条件 B 和 C(即 pH 值大于 7.0 又排水不良)的单元和土壤结构为粘性土的单元。
布尔逻辑运算还可以组合更多的属性作为检索条件。例如,当人们希望从土地利用数据库中了解具有一定面积大小和边界形状的(林地分布,或者从土地景观分类中恢复具有一定面积和边界形状的)开阔地时,除属性“树林”和“开阔地”外,还加上面积和形状等条件组合在一起形成更为复杂的逻辑选择运算。