数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt

上传人(卖家):晟晟文业 文档编号:5139008 上传时间:2023-02-14 格式:PPT 页数:34 大小:123.50KB
下载 相关 举报
数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt_第1页
第1页 / 共34页
数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt_第2页
第2页 / 共34页
数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt_第3页
第3页 / 共34页
数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt_第4页
第4页 / 共34页
数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、数据库系统原理与应用教程(第三版)第8章 Datalog语言第1页第第8章章 Datalog语言语言 本章概述 本章的学习目标主要内容数据库系统原理与应用教程(第三版)第8章 Datalog语言第2页本章概述本章概述l关系代数是关系型数据库的理论基础,是数据库产品应用关系代数是关系型数据库的理论基础,是数据库产品应用和发展的坚实基础。随着数据技术的不断提高,关系代数和发展的坚实基础。随着数据技术的不断提高,关系代数也暴露出了一些局限性,例如,无法有效地表示递归运算、也暴露出了一些局限性,例如,无法有效地表示递归运算、逻辑表达能力弱等。逻辑表达能力弱等。l在这种情况下,在这种情况下,Datalo

2、g语言应运而生。语言应运而生。Datalog语言是语言是一种基于逻辑编程语言一种基于逻辑编程语言Prolog的一种非过程化的语言。同的一种非过程化的语言。同使用关系演算类似,用户只需要给出所描述的信息,不需使用关系演算类似,用户只需要给出所描述的信息,不需要给出获取信息的具体过程。要给出获取信息的具体过程。Datalog语言使用声明的方语言使用声明的方式定义,简化了简单查询的书写,使查询优化更容易进行。式定义,简化了简单查询的书写,使查询优化更容易进行。l本章将要全面介绍本章将要全面介绍Datalog语言的基本结构、规则、递归语言的基本结构、规则、递归编程以及从关系代数到编程以及从关系代数到D

3、atalog语言的转换等内容。语言的转换等内容。数据库系统原理与应用教程(第三版)第8章 Datalog语言第3页本章的学习目标本章的学习目标l了解了解Datalog语言的基本概念;语言的基本概念;l掌握掌握Datalog语言的基本结构;语言的基本结构;l掌握掌握Datalog语言的基本规则;语言的基本规则;l掌握从关系代数到掌握从关系代数到Datalog语言的转换过程;语言的转换过程;l认识和掌握认识和掌握Datalog语言的递归编程原理;语言的递归编程原理;l理解包的概念和其在关系代数和理解包的概念和其在关系代数和Datalog语语言中的作用。言中的作用。数据库系统原理与应用教程(第三版)

4、第8章 Datalog语言第4页主要内容主要内容8.1 基本概念基本概念 8.2 关系代数向关系代数向Datalog规则的转换规则的转换 8.3 递归原理递归原理 8.4 包的运算包的运算 8.5 本章小结本章小结 数据库系统原理与应用教程(第三版)第8章 Datalog语言第5页8.1 基本概念基本概念l逻辑也是一种表示关系查询的方法,例如逻辑也是一种表示关系查询的方法,例如Datalog语言就可以表示相同类型的查询。语言就可以表示相同类型的查询。lDatalog语言不是使用过程语言来表示查询,语言不是使用过程语言来表示查询,而是使用一种规则来表示出这种想法,即而是使用一种规则来表示出这种想

5、法,即可以通过已知的关系中的某些元组的组合可以通过已知的关系中的某些元组的组合推测某个其他元组是否在某个其他关系中。推测某个其他元组是否在某个其他关系中。数据库系统原理与应用教程(第三版)第8章 Datalog语言第6页基本结构基本结构 lDatalog语言包括了两种基本的原子,即关系原语言包括了两种基本的原子,即关系原子和算术原子。子和算术原子。Datalog语言是由这些原子按照语言是由这些原子按照一定的规则组成的。一定的规则组成的。l在在Datalog语言中,关系通过称为谓词的符号来语言中,关系通过称为谓词的符号来表示,每一个谓词都有固定数量的参数。关系原表示,每一个谓词都有固定数量的参数

6、。关系原子是由符号谓词和其后的参数组成,关系原子也子是由符号谓词和其后的参数组成,关系原子也经常简称原子。例如,如果谓词是经常简称原子。例如,如果谓词是R,其参数分,其参数分别是别是t1,t2,tn,那么,那么R(t1,t2,tn)就就是一个关系原子。是一个关系原子。l算术原子是两个算术表达式的比较。算术原子的算术原子是两个算术表达式的比较。算术原子的值也是布尔值。值也是布尔值。数据库系统原理与应用教程(第三版)第8章 Datalog语言第7页一般规则一般规则 l在前面讲述的关系代数中,介绍了许多关系代数在前面讲述的关系代数中,介绍了许多关系代数运算,例如集合、笛卡尔乘积和自然连接等。这运算,

7、例如集合、笛卡尔乘积和自然连接等。这些运算形式在些运算形式在Datalog语言中可以使用规则来描语言中可以使用规则来描述。规则就是述。规则就是Datalog语言中描述各种原子元素语言中描述各种原子元素关联的规范,包括下列三个组成部分:关联的规范,包括下列三个组成部分:1.一个称为头部的关系原子,其后是一个称为头部的关系原子,其后是2.左向箭头符号左向箭头符号,读作,读作if,其后是,其后是3.多个子目标组成的规则体。这些子目标既可以是关多个子目标组成的规则体。这些子目标既可以是关系原子,也可以是算术原子。各个子目标之间用逻辑系原子,也可以是算术原子。各个子目标之间用逻辑运算符运算符AND连接,

8、且各个子目标前面可以有选择地增连接,且各个子目标前面可以有选择地增加取反逻辑运算符加取反逻辑运算符NOT。数据库系统原理与应用教程(第三版)第8章 Datalog语言第8页安全规则安全规则 l前面讲过,前面讲过,Datalog语言是一种由许多原子构成语言是一种由许多原子构成的规则,规则包含了许多变量。规则的目标是使的规则,规则包含了许多变量。规则的目标是使规则的头部关系原子为真。由于关系实例总是有规则的头部关系原子为真。由于关系实例总是有限,所以还需要由规则保证得到的头部关系也都限,所以还需要由规则保证得到的头部关系也都是有限的。如果得到的头部关系是无限的,那么是有限的。如果得到的头部关系是无

9、限的,那么这种规则是无意义的。这种规则是无意义的。l下面分析如何保证得到的查询结果是有意义的。下面分析如何保证得到的查询结果是有意义的。在子目标中,包括了关系子目标、求反关系子目在子目标中,包括了关系子目标、求反关系子目标、算术子目标和求反算术子目标。标、算术子目标和求反算术子目标。数据库系统原理与应用教程(第三版)第8章 Datalog语言第9页外延谓词和内涵谓词外延谓词和内涵谓词 l外延谓词和内涵谓词是两个经常提到的概念。当谓词所指外延谓词和内涵谓词是两个经常提到的概念。当谓词所指的关系存储在数据库中时,称该谓词为外延谓词。当谓词的关系存储在数据库中时,称该谓词为外延谓词。当谓词所指的关系

10、是通过一个或多个所指的关系是通过一个或多个Datalog规则计算得到的,规则计算得到的,称该谓词是内涵谓词。外延谓词和内涵谓词之间的差别类称该谓词是内涵谓词。外延谓词和内涵谓词之间的差别类似关系代数表达式的运算项和使用关系代数表达式计算的似关系代数表达式的运算项和使用关系代数表达式计算的关系之间的差别。关系之间的差别。l在在Datalog规则中,如果谓词分别是内涵的或外延的,可规则中,如果谓词分别是内涵的或外延的,可以引用与内涵的或外延的谓词相对应的关系。有时,使用以引用与内涵的或外延的谓词相对应的关系。有时,使用IDB(Internal Database,内涵数据库,内涵数据库)来引用内涵谓

11、词或来引用内涵谓词或相应的关系,使用相应的关系,使用EDB(External Database,外延数据库,外延数据库)来引用外延谓词或相应的关系。来引用外延谓词或相应的关系。数据库系统原理与应用教程(第三版)第8章 Datalog语言第10页主要内容主要内容8.1 基本概念基本概念 8.2 关系代数向关系代数向Datalog规则的转换规则的转换 8.3 递归原理递归原理 8.4 包的运算包的运算 8.5 本章小结本章小结 数据库系统原理与应用教程(第三版)第8章 Datalog语言第11页8.2 关系代数向关系代数向Datalog规则的转换规则的转换l上一章介绍了关系代数的各种运算形式,上一

12、章介绍了关系代数的各种运算形式,本节将介绍各种本节将介绍各种Datalog规则形式。一般地,规则形式。一般地,可以使用一个或多个可以使用一个或多个Datalog规则来模拟关规则来模拟关系代数的运算形式,并且可以模拟非常复系代数的运算形式,并且可以模拟非常复杂的运算形式。杂的运算形式。l本节主要研究如何从关系代数的基本运算本节主要研究如何从关系代数的基本运算形式以及连接运算形式转换到形式以及连接运算形式转换到Datalog规则。规则。数据库系统原理与应用教程(第三版)第8章 Datalog语言第12页从集合运算到从集合运算到Datalog规则规则 l集合运算是关系代数的最基本的运算形式,包括了交

13、集、并集和差集集合运算是关系代数的最基本的运算形式,包括了交集、并集和差集三种运算形式。下面介绍如何使用三种运算形式。下面介绍如何使用Datalog规则模拟这三种集合运算规则模拟这三种集合运算形式。形式。l交集运算可以使用一个交集运算可以使用一个Datalog规则来表示。由于交集运算涉及了两规则来表示。由于交集运算涉及了两个关系,那么在个关系,那么在Datalog规则中,具有与两个关系对应的子目标。在规则中,具有与两个关系对应的子目标。在规则中,相应的参数使用相同的变量。规则中,相应的参数使用相同的变量。l并集运算可以使用两个规则来表示。在并集运算可以使用两个规则来表示。在Datalog规则中

14、,每个规则都规则中,每个规则都对应着一个并集运算中的关系,且两个规则的头部都有相同的对应着一个并集运算中的关系,且两个规则的头部都有相同的IDB谓谓词。头部的参数与各个子目标中的参数完全相同。词。头部的参数与各个子目标中的参数完全相同。l差集运算可以使用具有求反子目标的一个规则来计算。即如果计算两差集运算可以使用具有求反子目标的一个规则来计算。即如果计算两个关系个关系U和和V的差集,可以这样来计算,非求反子目标是谓词的差集,可以这样来计算,非求反子目标是谓词U,求反,求反子目标是谓词子目标是谓词V。在该规则中,子目标和头部对于相应的参数都有相。在该规则中,子目标和头部对于相应的参数都有相同的变

15、量。同的变量。数据库系统原理与应用教程(第三版)第8章 Datalog语言第13页从投影运算到从投影运算到Datalog规则规则 l把关系代数中的投影运算形式转换成把关系代数中的投影运算形式转换成Datalog规则,可以使用一个具有单一子目规则,可以使用一个具有单一子目标的规则。该子目标的参数是数量不同于标的规则。该子目标的参数是数量不同于关系的属性数量的变量,每个变量都对应关系的属性数量的变量,每个变量都对应着关系的一个属性。头部是带有参数的原着关系的一个属性。头部是带有参数的原子,这些参数是按照要求的顺序与投影的子,这些参数是按照要求的顺序与投影的属性表对应的变量。头部原子的这些变量属性表

16、对应的变量。头部原子的这些变量只是子目标投影过来的变量,因此两者的只是子目标投影过来的变量,因此两者的数量不同。数量不同。数据库系统原理与应用教程(第三版)第8章 Datalog语言第14页从笛卡尔乘积到从笛卡尔乘积到Datalog规则规则 l两个关系两个关系U和和V的笛卡尔乘积的笛卡尔乘积UV可以使用单一可以使用单一的的Datalog规则来表示。在这个规则来表示。在这个Datalog规则中,规则中,有两个子目标。一个子目标对应关系有两个子目标。一个子目标对应关系U,另一个,另一个子目标对应关系子目标对应关系V。每个子目标都有不同的变量,。每个子目标都有不同的变量,每个变量对应着关系每个变量对

17、应着关系U或或V中的一个属性。头部的中的一个属性。头部的关系原子把出现的两个子目标中的所有变量作为关系原子把出现的两个子目标中的所有变量作为参数,且严格按照出现的先后顺序,即出现在关参数,且严格按照出现的先后顺序,即出现在关系系U子目标中的变量排列在关系子目标中的变量排列在关系V子目标的变量之子目标的变量之前。前。数据库系统原理与应用教程(第三版)第8章 Datalog语言第15页从选择运算到从选择运算到Datalog规则规则 l把关系运算中的选择转换成把关系运算中的选择转换成Datalog规则比较复杂。下面规则比较复杂。下面首先研究一种简单的情况,然后再研究如何把具有复杂条首先研究一种简单的

18、情况,然后再研究如何把具有复杂条件的选择运算转变成件的选择运算转变成Datalog规则。规则。l如果选择条件是一个算术比较表达式或多个比较表达式的如果选择条件是一个算术比较表达式或多个比较表达式的AND运算,可以建立一个具有下列子目标的运算,可以建立一个具有下列子目标的Datalog规则:规则:一个关系子目标对应于将其进行选择的关系。该关系子目标的每一个关系子目标对应于将其进行选择的关系。该关系子目标的每个分量都有不同的变量,且每个分量都对应关系的一个属性;个分量都有不同的变量,且每个分量都对应关系的一个属性;多个算术子目标,每个算术子目标都对应着选择条件的一个比较多个算术子目标,每个算术子目

19、标都对应着选择条件的一个比较运算。虽然在选择条件中使用属性名,但是在算术子目标中却使运算。虽然在选择条件中使用属性名,但是在算术子目标中却使用相应的变量,并且与关系子目标中建立的变量保持一致。用相应的变量,并且与关系子目标中建立的变量保持一致。数据库系统原理与应用教程(第三版)第8章 Datalog语言第16页从连接运算到从连接运算到Datalog规则规则 l连接包括了自然连接、连接包括了自然连接、连接和外部连接。这里主连接和外部连接。这里主要介绍如何把自然连接和要介绍如何把自然连接和连接转变成连接转变成Datalog规规则。则。l连接运算非常类似于笛卡尔乘积的运算,因此可连接运算非常类似于笛

20、卡尔乘积的运算,因此可以使用像乘积的规则来表示两个关系的自然连接,以使用像乘积的规则来表示两个关系的自然连接,区别是如果希望表示关系区别是如果希望表示关系U和和V的自然连接的自然连接UV,并且这两个关系中有相同名称的属性,那么必须并且这两个关系中有相同名称的属性,那么必须使用相同的变量,否则必须使用不同的变量。规使用相同的变量,否则必须使用不同的变量。规则头部是每一个变量都出现一次的则头部是每一个变量都出现一次的IDB谓词。谓词。数据库系统原理与应用教程(第三版)第8章 Datalog语言第17页从多重运算到从多重运算到Datalog规则规则 l关系代数中的单一运算形式可以使用关系代数中的单一

21、运算形式可以使用Datalog规则表示,而且多重运算也可以使规则表示,而且多重运算也可以使用用Datalog规则模拟。规则模拟。l模拟多重运算的步骤如下:模拟多重运算的步骤如下:第一步,绘制关系代数的表达树。其中,表达第一步,绘制关系代数的表达树。其中,表达树就是使用树状结构表示关系代数表达式的计树就是使用树状结构表示关系代数表达式的计算程序。算程序。第二步,为表达树的每一个内部节点建立一个第二步,为表达树的每一个内部节点建立一个IDB谓词。谓词。数据库系统原理与应用教程(第三版)第8章 Datalog语言第18页主要内容主要内容8.1 基本概念基本概念 8.2 关系代数向关系代数向Datal

22、og规则的转换规则的转换 8.3 递归原理递归原理 8.4 包的运算包的运算 8.5 本章小结本章小结 数据库系统原理与应用教程(第三版)第8章 Datalog语言第19页8.3 递归原理递归原理l递归是一种常见的算法,即如果一个过程递归是一种常见的算法,即如果一个过程直接或间接地调用它自身,称该过程为递直接或间接地调用它自身,称该过程为递归过程。归过程。l本节将要研究为什么使用和如何使用本节将要研究为什么使用和如何使用Datalog语言描述递归过程。语言描述递归过程。数据库系统原理与应用教程(第三版)第8章 Datalog语言第20页关系代数存在的问题关系代数存在的问题 l在数据的查询过程中

23、,经常会遇到递归现在数据的查询过程中,经常会遇到递归现象。象。l例如,在出版社的人事管理中,经理和雇例如,在出版社的人事管理中,经理和雇员的问题就是一个递归问题。一个人可以员的问题就是一个递归问题。一个人可以是某些雇员的经理,但是他又可能是另外是某些雇员的经理,但是他又可能是另外一个经理的雇员,经理又可能是更高层经一个经理的雇员,经理又可能是更高层经理的雇员等多种情况。理的雇员等多种情况。数据库系统原理与应用教程(第三版)第8章 Datalog语言第21页计算最小固定点计算最小固定点 l现在研究如何在关系代数中解决这种问题。现在研究如何在关系代数中解决这种问题。l假设关系假设关系Leader(

24、a,b)表示了这种直接和表示了这种直接和间接经理和雇员的联系。可以写出下面的间接经理和雇员的联系。可以写出下面的方程,这是一个包含了关系方程,这是一个包含了关系Leader和和Human的方程式,的方程式,Leader的值是满足该方的值是满足该方程式的最小关系,最小关系也称为最小固程式的最小关系,最小关系也称为最小固定点。定点。数据库系统原理与应用教程(第三版)第8章 Datalog语言第22页使用使用Datalog规则表示固定点公式规则表示固定点公式 l通过上面的分析可以看到,使用关系代数通过上面的分析可以看到,使用关系代数表示固定点公式往往会非常复杂,使用表示固定点公式往往会非常复杂,使用

25、Datalog规则表示则比较容易。下面研究如规则表示则比较容易。下面研究如何使用何使用Datalog规则表示固定点公式。规则表示固定点公式。l使用使用Datalog规则表示固定点公式的思路是:规则表示固定点公式的思路是:假定一个或多个假定一个或多个EDB关系已知,其他关系已知,其他IDB关关系则通过出现在规则的头部来定义,规则系则通过出现在规则的头部来定义,规则体可能包含的谓词是体可能包含的谓词是EDB或或IDB的关系以及的关系以及代数原子子目标。代数原子子目标。数据库系统原理与应用教程(第三版)第8章 Datalog语言第23页主要内容主要内容8.1 基本概念基本概念 8.2 关系代数向关系

26、代数向Datalog规则的转换规则的转换 8.3 递归原理递归原理 8.4 包的运算包的运算 8.5 本章小结本章小结 数据库系统原理与应用教程(第三版)第8章 Datalog语言第24页8.4 包的运算包的运算l前面已经讲过,关系中的元组是集合,是前面已经讲过,关系中的元组是集合,是一种自然的断言。但实际上,在许多数据一种自然的断言。但实际上,在许多数据库产品中,允许相同的元组在关系中重复库产品中,允许相同的元组在关系中重复出现。这时,关系中的元组不是集合,而出现。这时,关系中的元组不是集合,而是包。是包。l因此,我们不但需要理解集合的各种运算,因此,我们不但需要理解集合的各种运算,还需要了

27、解包是如何运算的。还需要了解包是如何运算的。数据库系统原理与应用教程(第三版)第8章 Datalog语言第25页包的意义包的意义 l集合中不允许元组重复出现,元组的顺序不重要。集合中不允许元组重复出现,元组的顺序不重要。列表不但不允许元组重复出现,而且元组的出现列表不但不允许元组重复出现,而且元组的出现顺序也是列表的重要特性。相对而言,包的要求顺序也是列表的重要特性。相对而言,包的要求比较宽松,既允许元组重复出现,又不重视元组比较宽松,既允许元组重复出现,又不重视元组的出现顺序。的出现顺序。l图图8-9就是一个包的示例。在该示例中,清华大学就是一个包的示例。在该示例中,清华大学出版社元组出现了

28、出版社元组出现了5次,高等教育出版社元组出次,高等教育出版社元组出现了现了4次,机械工业出版社元组出现了次,机械工业出版社元组出现了3次。次。数据库系统原理与应用教程(第三版)第8章 Datalog语言第26页包的关系运算包的关系运算 l关系的基本运算包括并集、交集、差集、关系的基本运算包括并集、交集、差集、投影、笛卡尔乘积和选择等形式投影、笛卡尔乘积和选择等形式l下面研究如何对包进行这些运算。下面研究如何对包进行这些运算。数据库系统原理与应用教程(第三版)第8章 Datalog语言第27页包的并集运算包的并集运算 l如果关系如果关系U是一个包,其中元组是一个包,其中元组tupleA出现出现了

29、了n次,关系次,关系V也是一个包,其中元组也是一个包,其中元组tupleA出现了出现了m次。那么,在包次。那么,在包UV的结的结果中,元组果中,元组tupleA出现的次数是出现的次数是n+m。l例如,如果关系例如,如果关系U的一个实例如图的一个实例如图8-12所示,所示,其中高等教育出版社出现了其中高等教育出版社出现了3次,其他元组次,其他元组出现了一次。关系出现了一次。关系V的一个实例如图的一个实例如图8-13所所示,其中清华大学出版社元组出现了示,其中清华大学出版社元组出现了4次,次,其他元组均出现了一次。其他元组均出现了一次。数据库系统原理与应用教程(第三版)第8章 Datalog语言第

30、28页包的交集运算包的交集运算 l下面开始研究包的交集运算。如果关系下面开始研究包的交集运算。如果关系U是是一个包,其中元组一个包,其中元组tupleA出现了出现了n次,关系次,关系V也是一个包,其中元组也是一个包,其中元组tupleA出现了出现了m次。次。那么,在包那么,在包UV的结果中,元组的结果中,元组tupleA出出现的次数是现的次数是min(n,m)。l例如,如果关系例如,如果关系U和和V的实例分别如图的实例分别如图8-12和和8-13所示,那么所示,那么UV的结果如图的结果如图8-15所所示,即每个出版社都只出现了一次。示,即每个出版社都只出现了一次。数据库系统原理与应用教程(第三

31、版)第8章 Datalog语言第29页包的差集运算包的差集运算 l包的差集运算也是一种集合运算。如果关包的差集运算也是一种集合运算。如果关系系U是一个包,其中元组是一个包,其中元组tupleA出现了出现了n次,次,关系关系V也是一个包,其中元组也是一个包,其中元组tupleA出现了出现了m次。那么,在包次。那么,在包UV的结果中,元组的结果中,元组tupleA出现的次数是出现的次数是max(0,nm)。数据库系统原理与应用教程(第三版)第8章 Datalog语言第30页包的投影运算包的投影运算 l图图8-9所示的关系实例就是图所示的关系实例就是图8-10所示的关所示的关系实例投影的结果。系实例

32、投影的结果。l需要注意的是,如果在投影过程中因为消需要注意的是,如果在投影过程中因为消除一个或多个属性使得从几个元组中产生除一个或多个属性使得从几个元组中产生出相同的元组,那么这些重复的元组不从出相同的元组,那么这些重复的元组不从包的投影结果中删除。包的投影结果中删除。数据库系统原理与应用教程(第三版)第8章 Datalog语言第31页包的笛卡尔乘积运算包的笛卡尔乘积运算 l在包的笛卡尔乘积中,只需要将一个关系的每个在包的笛卡尔乘积中,只需要将一个关系的每个元组和另外一个关系的每个元组匹配成对,不考元组和另外一个关系的每个元组匹配成对,不考虑这些元组是否重复。如果关系虑这些元组是否重复。如果关

33、系U是一个包,其是一个包,其中元组数量是中元组数量是n个,关系个,关系V也是一个包,其中元组也是一个包,其中元组数量是数量是m个。那么,在包个。那么,在包UV的结果中,元组的的结果中,元组的数量数量nm。l例如,已知关系例如,已知关系U和和V的实例,那么包的实例,那么包UV的运的运算结果如图算结果如图8-17所示。包的乘积中属性命名的方所示。包的乘积中属性命名的方式与集合乘积运算中相同。式与集合乘积运算中相同。数据库系统原理与应用教程(第三版)第8章 Datalog语言第32页包的选择运算包的选择运算 l包的选择运算与集合的选择运算非常类似。包的选择运算与集合的选择运算非常类似。在包的选择运算

34、中,把选择条件应用于每在包的选择运算中,把选择条件应用于每个元组,而不论这些元组是否重复。个元组,而不论这些元组是否重复。l例如,如果关系例如,如果关系U如图如图8-12所示,那么包的所示,那么包的选择选择name=高等教育出版社高等教育出版社(U)的结果的结果如图如图8-18所示。可见选择运算的结果依然所示。可见选择运算的结果依然是包。是包。数据库系统原理与应用教程(第三版)第8章 Datalog语言第33页包的逻辑运算包的逻辑运算 l包的运算不仅可以用于关系代数,而且也可以用包的运算不仅可以用于关系代数,而且也可以用于于Datalog规则。即如果没有求反的关系子目标,规则。即如果没有求反的

35、关系子目标,那么包的投影、选择、乘积和连接等运算形式可那么包的投影、选择、乘积和连接等运算形式可以同样应用于以同样应用于Datalog规则。规则。l当把包的运算应用于当把包的运算应用于Datalog规则时,其运算步规则时,其运算步骤如下:骤如下:第一步,对不同子目标对应的关系进行包连接运算;第一步,对不同子目标对应的关系进行包连接运算;第二步,按照算术子目标包含的内容,对连接运算的第二步,按照算术子目标包含的内容,对连接运算的结果进行包选择运算;结果进行包选择运算;第三步,把选择结果按照规则头部的关系进行包投影第三步,把选择结果按照规则头部的关系进行包投影运算。运算。数据库系统原理与应用教程(第三版)第8章 Datalog语言第34页主要内容主要内容8.1 基本概念基本概念 8.2 关系代数向关系代数向Datalog规则的转换规则的转换 8.3 递归原理递归原理 8.4 包的运算包的运算 8.5 本章小结本章小结

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(数据库系统原理与应用教程(第三版)ch08-Datalog语言课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|