📅  最后修改于: 2020-12-12 08:10:42             🧑  作者: Mango
查询处理是从数据库提取数据时执行的活动。在查询处理中,需要采取各种步骤从数据库中获取数据。涉及的步骤是:
查询处理以下列方式工作:
由于查询处理包括某些用于数据检索的活动。最初,给定的用户查询被翻译成高级数据库语言(例如SQL)。它被转换为可以在文件系统的物理级别上进一步使用的表达式。此后,将对查询进行实际评估,并进行各种优化查询的转换。因此,在处理查询之前,计算机系统需要将查询翻译成人类可读和可理解的语言。因此,SQL或结构化查询语言是最适合人类的选择。但是,它并不完全适合查询对系统的内部表示。关系代数非常适合查询的内部表示。查询处理中的翻译过程类似于查询的解析器。当用户执行任何查询以生成查询的内部形式时,系统中的解析器将检查查询的语法,验证数据库中关系的名称,元组,最后验证所需的属性值。解析器创建查询的树,称为“解析树”。此外,将其转换为关系代数的形式。这样,当在查询中使用视图时,它将均匀地替换视图的所有使用。
因此,我们可以在下面描述的图中理解查询处理的工作方式:
假设用户执行查询。如我们所知,有多种方法可以从数据库中提取数据。在SQL中,用户希望获取薪水大于或等于10000的员工的记录。为此,将执行以下查询:
从employee中选择emp_name,薪水> 10000;
因此,为了使系统理解用户查询,需要以关系代数的形式对其进行翻译。我们可以将查询以关系代数形式表示为:
翻译完给定的查询后,我们可以使用不同的算法执行每个关系代数运算。因此,以这种方式,查询处理开始其工作。
为此,除了关系代数转换外,还需要使用用于指定和评估每个运算的指令来注释转换后的关系代数表达式。因此,在翻译用户查询之后,系统执行查询评估计划。
最后,在选择评估计划之后,系统评估查询并生成查询的输出。