第8章 Datalog语言 本章概迷 本章的学习目标 至要内容 数据库系统原理与应用教程(第二版) 第1章概述 第1页
数据库系统原理与应用教程(第二版) 第1章 概述 第1页 第8章 Datalog语言 本章概述 本章的学习目标 主要内容
本章概述 ●关系代数是关系型数据库的理论基础,是数据库产品应用 和发展的坚实基础。随着数据技术的不断提高,关系代数 也暴露出了一些局限性,例如,无法有效地表示递归运算、 逻辑表达能力弱等。在这种情况下, Datalog语言应运而 生 Datalog语言是一种基于逻辑编程语言 Prolog的一种非过 程化的语言。就像使用关系演算一样,用户只需要给出所 描述的信息,不需要给出获取信息的具体过程。 Datalog 语言使用声明的方式定义,简化了简单查询的书写,使查 询优化更容易进行。 本章将要全面介绍 Datalog语言的基本结构、规则、递归 编程以及从关系代数到 Datalog语言的转换等内容 数据库系统原理与应用教程(第二版) 第1章概述 第2页
数据库系统原理与应用教程(第二版) 第1章 概述 第2页 本章概述 ⚫ 关系代数是关系型数据库的理论基础,是数据库产品应用 和发展的坚实基础。随着数据技术的不断提高,关系代数 也暴露出了一些局限性,例如,无法有效地表示递归运算、 逻辑表达能力弱等。在这种情况下,Datalog语言应运而 生。 ⚫ Datalog语言是一种基于逻辑编程语言Prolog的一种非过 程化的语言。就像使用关系演算一样,用户只需要给出所 描述的信息,不需要给出获取信息的具体过程。Datalog 语言使用声明的方式定义,简化了简单查询的书写,使查 询优化更容易进行。 ⚫ 本章将要全面介绍Datalog语言的基本结构、规则、递归 编程以及从关系代数到Datalog语言的转换等内容
本章的学习目标 了解 Datalog语言的基本概念; 掌握 Datalog语言的基本结构; 掌握 Datalog语言的基本规则; 掌握从关系代数到 Datalog语言的转换过程; 认识和掌握 Datalog语言的递归编程原理; ●理解包的概念和其在关系代数和 Datalog语 言中的作用。 数据库系统原理与应用教程(第二版) 第1章概述 第3页
数据库系统原理与应用教程(第二版) 第1章 概述 第3页 本章的学习目标 ⚫ 了解Datalog语言的基本概念; ⚫ 掌握Datalog语言的基本结构; ⚫ 掌握Datalog语言的基本规则; ⚫ 掌握从关系代数到Datalog语言的转换过程; ⚫ 认识和掌握Datalog语言的递归编程原理; ⚫ 理解包的概念和其在关系代数和Datalog语 言中的作用
主要内容 81基本概念 82关系代数向 Datalog规则的转换 83递归原理 84包的运算 85本章小结 数据库系统原理与应用教程(第二版) 第1章概述 第4页
数据库系统原理与应用教程(第二版) 第1章 概述 第4页 主要内容 8.1 基本概念 8.2 关系代数向Datalog规则的转换 8.3 递归原理 8.4 包的运算 8.5 本章小结
81基本概念 ●逻辑也是一种表示关系查询的方法,例如 Datalog语言就可以表示相同类型的查询。 Datalog语言不是使用过程语言来表示查询, 而是使用一种规则来表示出这种想法,即 可以通过已知的关系中的某些元组的组合 推测某个其他元组是否在某个其他关系中。 数据库系统原理与应用教程(第二版) 第1章概述 第5页
数据库系统原理与应用教程(第二版) 第1章 概述 第5页 8.1 基本概念 ⚫ 逻辑也是一种表示关系查询的方法,例如 Datalog语言就可以表示相同类型的查询。 Datalog语言不是使用过程语言来表示查询, 而是使用一种规则来表示出这种想法,即 可以通过已知的关系中的某些元组的组合 推测某个其他元组是否在某个其他关系中
基本结构 ● Datalog语言包括了两种基本的原子,即关 系原子和算术原子。 Datalog语言是由这些 原子按照一定的规则组成的。 ●在 Datalog语言中,关系通过称为谓词的符 号来表示,每一个谓词都有固定数量的参 数。关系原子是由符号谓词和其后的参数 组成,关系原子也经常简称原子。 ●算术原子是两个算术表达式的比较。算术 原子的值也是布尔值。 数据库系统原理与应用教程(第二版) 第1章概述 第6页
数据库系统原理与应用教程(第二版) 第1章 概述 第6页 基本结构 ⚫ Datalog语言包括了两种基本的原子,即关 系原子和算术原子。Datalog语言是由这些 原子按照一定的规则组成的。 ⚫ 在Datalog语言中,关系通过称为谓词的符 号来表示,每一个谓词都有固定数量的参 数。关系原子是由符号谓词和其后的参数 组成,关系原子也经常简称原子。 ⚫ 算术原子是两个算术表达式的比较。算术 原子的值也是布尔值
般规则 ●在前面讲述的关系代数中,介绍了许多关系代数 运算,例如集合、笛卡尔乘积、自然连接等。这 些运算形式在 Datalog语言中可以使用规则来描 述。规则就是 Datalog语言中描述各种原子元素 关联的规范,包括下列三个组成部分: 1.一个称为头部的关系原子,其后是 2.左向箭头符号←,读作酽,其后是 3.多个子目标组成的规则体。这些子目标既可以是关 系原子,也可以是算术原子。各个子目标之间用逻辑 运算符AND连接,且各个子目标前面可以有选择地增 加取反逻辑运算符NoT。 数据库系统原理与应用教程(第二版) 第1章概述 第7页
数据库系统原理与应用教程(第二版) 第1章 概述 第7页 一般规则 ⚫ 在前面讲述的关系代数中,介绍了许多关系代数 运算,例如集合、笛卡尔乘积、自然连接等。这 些运算形式在Datalog语言中可以使用规则来描 述。规则就是Datalog语言中描述各种原子元素 关联的规范,包括下列三个组成部分: ►1. 一个称为头部的关系原子,其后是 ►2. 左向箭头符号←,读作if,其后是 ►3. 多个子目标组成的规则体。这些子目标既可以是关 系原子,也可以是算术原子。各个子目标之间用逻辑 运算符AND连接,且各个子目标前面可以有选择地增 加取反逻辑运算符NOT
安全规则 ●前面讲过, Datalog语言是一种由许多原子构成 的规则,规则包含了许多变量。规则的目标是使 规则的头部关系原子为真。由于关系实例总是有 限,所以还需要由规则保证得到的头部关系也都 是有限的。如果得到的头部关系是无限的,那么 这种规则是无意义的。 ●我们来分析一下,如何保证得到的查询结果是有 意义的。在子目标中,包括了关系子目标、求反 关系子目标、算术子目标和求反算术子目标。 数据库系统原理与应用教程(第二版) 第1章概述 第8页
数据库系统原理与应用教程(第二版) 第1章 概述 第8页 安全规则 ⚫ 前面讲过,Datalog语言是一种由许多原子构成 的规则,规则包含了许多变量。规则的目标是使 规则的头部关系原子为真。由于关系实例总是有 限,所以还需要由规则保证得到的头部关系也都 是有限的。如果得到的头部关系是无限的,那么 这种规则是无意义的。 ⚫ 我们来分析一下,如何保证得到的查询结果是有 意义的。在子目标中,包括了关系子目标、求反 关系子目标、算术子目标和求反算术子目标
外延谓词和内涵谓词 ●外延谓词和内涵谓词是两个经常提到的概念。当谓词所指 的关系存储在数据库中时,称该谓词为外延谓词。当谓词 所指的关系是通过一个或多个 Datalog规则计算得到的, 那么称该谓词是内涵谓词。外延谓词和内涵谓词之间的差 别类似关系代数表达式的运算项和使用关系代数表达式计 算的关系之间的差别。 在 Datalog规则中,如果谓词分别是内涵的或外延的,那 么可以引用与内涵的或外延的谓词相对应的关系。有时, 我们使用DB( nternal database,内涵数据库)来引用内 涵谓词或相应的关系,使用EDB( External Database,外 延数据库)来引用外延谓词或相应的关系。 数据库系统原理与应用教程(第二版) 第1章概述 第9页
数据库系统原理与应用教程(第二版) 第1章 概述 第9页 外延谓词和内涵谓词 ⚫ 外延谓词和内涵谓词是两个经常提到的概念。当谓词所指 的关系存储在数据库中时,称该谓词为外延谓词。当谓词 所指的关系是通过一个或多个Datalog规则计算得到的, 那么称该谓词是内涵谓词。外延谓词和内涵谓词之间的差 别类似关系代数表达式的运算项和使用关系代数表达式计 算的关系之间的差别。 ⚫ 在Datalog规则中,如果谓词分别是内涵的或外延的,那 么可以引用与内涵的或外延的谓词相对应的关系。有时, 我们使用IDB(Internal Database,内涵数据库)来引用内 涵谓词或相应的关系,使用EDB(External Database,外 延数据库)来引用外延谓词或相应的关系
主要内容 81基本概念 82关系代数向 Datalog规则的转换 83递归原理 84包的运算 85本章小结 数据库系统原理与应用教程(第二版) 第1章概述 第10页
数据库系统原理与应用教程(第二版) 第1章 概述 第10页 主要内容 8.1 基本概念 8.2 关系代数向Datalog规则的转换 8.3 递归原理 8.4 包的运算 8.5 本章小结