演绎数据库中的子句形式
在 SQL 或任何其他数据库系统中,演绎数据库是一种可以根据数据库中已存在的规则和信息得出关于新事实结论的工具。在演绎数据库中,Datalog 是通常用于表达事实、规则和查询的语言。公式以子句形式表达时,由多个子句组成,每个子句由多个文字组成,这些文字仅由用 OR 符号表示的逻辑连接词连接。
公式中可能包含以下量词:
全称量词 - 可以理解为“对于所有 x,P(x) 成立”,表示 P(x) 对宇宙中所有 x 的实例都成立。
例如,所有卡车都有轮子。
存在量词 - 表示 P(x) 至少对宇宙中的一个项目 x 成立,表示为“存在一个 x 使得 P(x)”。
例如:有人关心你。
子句形式公式必须转换为具有以下特性的公式:
公式的每个元素都有一个量词。因此,无需为所有元素显式添加全称量词。当去除量词时,公式中的所有变量都由全称量词隐式量化。
鉴于公式由多个子句组成,每个子句由多个文字组成,这些文字仅由逻辑连接词 OR 连接,因此公式由子句构成。因此,每个句子都是文字的析取。
句子本身仅由 AND 逻辑连接词连接以构成公式。因此,公式的子句形式是子句的合取。
可以证明,任何公式都可以转换为子句形式。就我们而言,主要关注的是各个子句的结构——每个子句都是文字的析取。记住这些文字可以是肯定的也可以是否定的。考虑以下子句:
NOT(P1) OR NOT(P2) OR ..... OR NOT(Pn) OR Q1 OR Q2 OR ..... OR Qm
上述子句中有 m 个肯定文字和 n 个否定文字。可以使用以下类似的逻辑公式来表示此子句:
P1 AND P2 AND ..... AND Pn => Q1 OR Q2 OR ..... OR Qm
例如,隐含的符号是“=>”。
只有当至少一个 Q 为真时,第二个公式才为真,这是 (蕴含) 符号的含义。如果所有 p 文字 i = (1, 2,...) 都为真,则此公式为真。对于第一个公式,如果任何一个 P 文字 i = (1, 2,..., n) 为真,则其所有否定也为真。因此,在这种情况下,只有当至少一个 Q 为真时,它才可能为真。
因此,上述两个公式的真值总是相同的,因为它们是可比的。
结论
在子句形式中,公式写成一系列句子,每个句子由多个文字组成,这些文字仅由 OR 类型的逻辑连接词连接。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP