基于逻辑的数据模型datalog 的递归应用 (论文摘要笔记)
2011-03-07 14:57
846 查看
基于Datalog 的逻辑数据库是由事实和规则组成的数据库, Datalog 逻辑数据模型与关系模型
有着内在的关联, 用Datalog 的谓词符号表示关系, 可定义两种形式的关系: 外延数据库EDB 关
系和内涵数据库IDB 关系. EDB 关系是存储在数据库中的事实, 其内容是给定的, 而IDB 关系需
由规则和事实推导出来, 可根据需要定义各种导出关系. 从逻辑数据模型的观点来看, 数据库是一
组谓词实例的集合, 即事实; 查询和IDB 关系都可以用逻辑程序中的规则表示. 关系模型中所有
的关系都是EDB 关系, 关系模型创建视图的能力有些类似于Datalog 中定义IDB 关系的能力, 但
其功能比以逻辑规则作为定义机制的Datalog 数据模型略为逊色.
Datalog 规则可表示复杂的语义关系, 下面以家族数据库为例, 给出表示家族复杂的亲戚关
系的一组Datalog 规则:
1) sibling ( X , Y ) : -parent ( X , Z) &parent ( Y,Z) &X ≠Y
2) cousin ( X , Y ) : -parent ( X , X P ) &parent( Y, YP) &sibling( X P, YP)
3) cousin ( X , Y ) : -parent ( X , X P ) &parent( Y, YP) &cousin( X P, YP)
4) related( X , Y ) : -sibling ( X , Y)
5) related ( X , Y ) : -related ( X , Z ) &parent( Y, Z)
6) r elated ( X , Y ) : -related ( Z, Y ) &parent( X , Z)
Datalog 递归规则的计算:从数据库的观点来看, 不仅需要知道逻辑数据库的语义, 还应有
相应的算法去获取其语义, 即给出基于逻辑的数据模型的计算. 因为递归Datalog 方程中没有一
个允许算法应用的线性顺序, 即每当在依赖图中有一个环出现时, 试图求解的某一条规则必然有
一个子目标的表达式还没有求出来, 因此递归规则的计算比非递归规则的计算要复杂许多, 这里
给出递归Datalog 方程的两种解法.
考虑一组具有给定EDB 关系R1 , ⋯, Rk 和要计算的IDB 关系P1 , ⋯, Pm 的Datalo g 规则, 首先
对规则建立Datalog 方程, 对每个i ( 1≤i≤m) , 关于Pi 的方程表达成如下的通用形式.
Pi= EVAL( pi, R1, ⋯, Rk , P1 , ⋯, Pm)这里pi 是对应于IDB 关系Pi 的谓词, 求解
Datalog 方程的普通算法如下:
for i: = 1 to m do
Pi : =
有着内在的关联, 用Datalog 的谓词符号表示关系, 可定义两种形式的关系: 外延数据库EDB 关
系和内涵数据库IDB 关系. EDB 关系是存储在数据库中的事实, 其内容是给定的, 而IDB 关系需
由规则和事实推导出来, 可根据需要定义各种导出关系. 从逻辑数据模型的观点来看, 数据库是一
组谓词实例的集合, 即事实; 查询和IDB 关系都可以用逻辑程序中的规则表示. 关系模型中所有
的关系都是EDB 关系, 关系模型创建视图的能力有些类似于Datalog 中定义IDB 关系的能力, 但
其功能比以逻辑规则作为定义机制的Datalog 数据模型略为逊色.
Datalog 规则可表示复杂的语义关系, 下面以家族数据库为例, 给出表示家族复杂的亲戚关
系的一组Datalog 规则:
1) sibling ( X , Y ) : -parent ( X , Z) &parent ( Y,Z) &X ≠Y
2) cousin ( X , Y ) : -parent ( X , X P ) &parent( Y, YP) &sibling( X P, YP)
3) cousin ( X , Y ) : -parent ( X , X P ) &parent( Y, YP) &cousin( X P, YP)
4) related( X , Y ) : -sibling ( X , Y)
5) related ( X , Y ) : -related ( X , Z ) &parent( Y, Z)
6) r elated ( X , Y ) : -related ( Z, Y ) &parent( X , Z)
Datalog 递归规则的计算:从数据库的观点来看, 不仅需要知道逻辑数据库的语义, 还应有
相应的算法去获取其语义, 即给出基于逻辑的数据模型的计算. 因为递归Datalog 方程中没有一
个允许算法应用的线性顺序, 即每当在依赖图中有一个环出现时, 试图求解的某一条规则必然有
一个子目标的表达式还没有求出来, 因此递归规则的计算比非递归规则的计算要复杂许多, 这里
给出递归Datalog 方程的两种解法.
考虑一组具有给定EDB 关系R1 , ⋯, Rk 和要计算的IDB 关系P1 , ⋯, Pm 的Datalo g 规则, 首先
对规则建立Datalog 方程, 对每个i ( 1≤i≤m) , 关于Pi 的方程表达成如下的通用形式.
Pi= EVAL( pi, R1, ⋯, Rk , P1 , ⋯, Pm)这里pi 是对应于IDB 关系Pi 的谓词, 求解
Datalog 方程的普通算法如下:
for i: = 1 to m do
Pi : =
相关文章推荐
- 16、数据结构笔记之十六栈的应用之栈与递归之汉诺塔问题
- 【数据结构与算法学习笔记】PART1:算法分析(计算,计算模型,大O记号,算法分析,迭代与递归,动态控制)
- 14、数据结构笔记之十四栈的应用之栈与递归之阿克曼函数
- 15、数据结构笔记之十五栈的应用之栈与递归之八皇后问题
- 12、数据结构笔记之十二栈的应用之栈与递归之阶乘实现
- Odoo10学习笔记三:模型(结构化的应用数据)、视图(用户界面设计)
- 读周傲英老师的论文:计算广告:以数据为核心的web综合应用笔记
- 笔记:数据建模基本流程,概念模型,逻辑模型和物理模型
- 论文笔记 | 基于双线性CNN模型的细粒度视觉识别
- 滴滴KDD2017论文:基于组合优化的出租车分单模型 By 机器之心2017年8月14日 10:29 数据挖掘顶会 KDD 2017 已经开幕,国内有众多来自产业界的论文被 KDD 2017 接收。
- 读周傲英老师的论文:计算广告:以数据为核心的web综合应用笔记
- 【学习笔记】逻辑回归模型原理与应用
- Django学习笔记之【应用和数据模型】
- VM 操作系统实例化(基于 KVM 的虚拟化研究及应用--崔泽永(2011))的论文笔记
- 应用Rational 工具简化基于J2EE的项目 (三)转换到系统模型
- ASP.NET MVC5 网站开发实践(一) - 框架(续) 模型、数据存储、业务逻辑
- MongoDB 指定应用上下文数据模型
- Extjs学习笔记之九 数据模型(上)
- 黑马程序员_温习 网络编辑四 (个人笔记)摘要(浏览器客户端介绍----消息头---URL(统一资源定位符)(应用层)----域名解析)
- 数据挖掘应用案例:RFM模型分析与客户细分(未完成)