模糊逻辑 - 数据库和查询


我们在前面的章节中已经研究过,模糊逻辑是一种基于“真实程度”而不是通常的“真或假”逻辑的计算方法。它处理近似推理而不是精确推理,以更类似于人类逻辑的方式解决问题,因此布尔代数的二值实现的数据库查询过程是不够的。

数据库关系的模糊场景

数据库关系的模糊场景可以借助以下示例来理解 -

例子

假设我们有一个数据库,其中包含访问过印度的人员的记录。在简单的数据库中,我们将按以下方式输入条目 -

姓名 年龄 公民 访问过的国家 度过的天数 访问年份
约翰·史密斯 35 我们 印度 41 1999年
约翰·史密斯 35 我们 意大利 72 1999年
约翰·史密斯 35 我们 日本 31 1999年

现在,如果有人查询 99 年访问过印度和日本并且是美国公民的人,那么输出将显示两个名为 John Smith 的条目。这是生成简单输出的简单查询。

但是如果我们想知道上面查询中的人是否年轻怎么办?根据以上结果,该人的年龄为35岁。但我们能假设这个人年轻吗?同样,同样的事情也可以应用于其他字段,例如花费的天数、访问的年份等。

上述问题的解决方案可以借助模糊值集找到,如下所示 -

  • FV(年龄){ 非常年轻、年轻、有点老、老 }

  • FV(花费的天数){ 几乎几天、几天、相当几天、很多天 }

  • FV(访问年份){遥远的过去、最近的过去、最近的}

  • 现在,如果任何查询具有模糊值,那么结果本质上也将是模糊的。

模糊查询系统

模糊查询系统是用户使用(准)自然语言句子从数据库获取信息的接口。已经提出了许多模糊查询实现,导致语言略有不同。尽管根据不同实现的特殊性存在一些变化,但模糊查询语句的答案通常是一个记录列表,按匹配程度排序。