模糊逻辑 - 数据库和查询
我们在前面的章节中已经研究过,模糊逻辑是一种基于“真实程度”而不是通常的“真或假”逻辑的计算方法。它处理近似推理而不是精确推理,以更类似于人类逻辑的方式解决问题,因此布尔代数的二值实现的数据库查询过程是不够的。
数据库关系的模糊场景
数据库关系的模糊场景可以借助以下示例来理解 -
例子
假设我们有一个数据库,其中包含访问过印度的人员的记录。在简单的数据库中,我们将按以下方式输入条目 -
姓名 | 年龄 | 公民 | 访问过的国家 | 度过的天数 | 访问年份 |
---|---|---|---|---|---|
约翰·史密斯 | 35 | 我们 | 印度 | 41 | 1999年 |
约翰·史密斯 | 35 | 我们 | 意大利 | 72 | 1999年 |
约翰·史密斯 | 35 | 我们 | 日本 | 31 | 1999年 |
现在,如果有人查询 99 年访问过印度和日本并且是美国公民的人,那么输出将显示两个名为 John Smith 的条目。这是生成简单输出的简单查询。
但是如果我们想知道上面查询中的人是否年轻怎么办?根据以上结果,该人的年龄为35岁。但我们能假设这个人年轻吗?同样,同样的事情也可以应用于其他字段,例如花费的天数、访问的年份等。
上述问题的解决方案可以借助模糊值集找到,如下所示 -
FV(年龄){ 非常年轻、年轻、有点老、老 }
FV(花费的天数){ 几乎几天、几天、相当几天、很多天 }
FV(访问年份){遥远的过去、最近的过去、最近的}
现在,如果任何查询具有模糊值,那么结果本质上也将是模糊的。
模糊查询系统
模糊查询系统是用户使用(准)自然语言句子从数据库获取信息的接口。已经提出了许多模糊查询实现,导致语言略有不同。尽管根据不同实现的特殊性存在一些变化,但模糊查询语句的答案通常是一个记录列表,按匹配程度排序。