📜  DBMS中的查询处理

📅  最后修改于: 2020-12-12 08:10:42             🧑  作者: Mango

DBMS中的查询处理

查询处理是从数据库提取数据时执行的活动。在查询处理中,需要采取各种步骤从数据库中获取数据。涉及的步骤是:

  • 解析和翻译
  • 优化
  • 评价

查询处理以下列方式工作:

解析与翻译

由于查询处理包括某些用于数据检索的活动。最初,给定的用户查询被翻译成高级数据库语言(例如SQL)。它被转换为可以在文件系统的物理级别上进一步使用的表达式。此后,将对查询进行实际评估,并进行各种优化查询的转换。因此,在处理查询之前,计算机系统需要将查询翻译成人类可读和可理解的语言。因此,SQL或结构化查询语言是最适合人类的选择。但是,它并不完全适合查询对系统的内部表示。关系代数非常适合查询的内部表示。查询处理中的翻译过程类似于查询的解析器。当用户执行任何查询以生成查询的内部形式时,系统中的解析器将检查查询的语法,验证数据库中关系的名称,元组,最后验证所需的属性值。解析器创建查询的树,称为“解析树”。此外,将其转换为关系代数的形式。这样,当在查询中使用视图时,它将均匀地替换视图的所有使用。

因此,我们可以在下面描述的图中理解查询处理的工作方式:

假设用户执行查询。如我们所知,有多种方法可以从数据库中提取数据。在SQL中,用户希望获取薪水大于或等于10000的员工的记录。为此,将执行以下查询:

从employee中选择emp_name,薪水> 10000;

因此,为了使系统理解用户查询,需要以关系代数的形式对其进行翻译。我们可以将查询以关系代数形式表示为:

  • σ工资> 10000工资(雇员))
  • π薪水薪水> 10000 (雇员))

翻译完给定的查询后,我们可以使用不同的算法执行每个关系代数运算。因此,以这种方式,查询处理开始其工作。

评价

为此,除了关系代数转换外,还需要使用用于指定和评估每个运算的指令来注释转换后的关系代数表达式。因此,在翻译用户查询之后,系统执行查询评估计划。

查询评估计划

  • 为了全面评估查询,系统需要构建查询评估计划。
  • 评估计划中的注释可以引用要用于特定索引或特定操作的算法。
  • 这种带有注释的关系代数称为“评估基元” 。评估原语带有评估操作所需的指令。
  • 因此,查询评估计划定义了用于评估查询的一系列原始操作。查询评估计划也称为查询执行计划
  • 查询执行引擎负责生成给定查询的输出。它采用查询执行计划,执行该计划,最后为用户查询生成输出。

优化

  • 查询评估的成本可能因不同类型的查询而异。尽管系统负责构建评估计划,但用户无需有效地编写其查询。
  • 通常,数据库系统会生成有效的查询评估计划,从而将其成本降至最低。这种类型的任务由数据库系统执行,称为查询优化。
  • 为了优化查询,查询优化器应该对每个操作进行估计成本分析。这是因为总体操作成本取决于对多个操作的内存分配,执行成本等。

最后,在选择评估计划之后,系统评估查询并生成查询的输出。