需要将关系查询转换为代数表达式。对该表达式进行运算,以便接收最终输出。存在的关系代数运算符是“并集”,“选择”,“联接”,“项目”等。它们用于制定关系查询以获得足够的结果。分组,分区和聚合都是关系查询的所有部分。
执行 :
必须选择适当的算法来优化存储数据的磁盘的寿命和性能。如果在磁盘上执行大量读写操作(数据修改和更新),则其寿命会因磨损而缩短。
选择运算符:
- 一个选择条件–
如果我们需要使用选择运算符根据条件选择特定的关系元组,则可以完成以下操作。如果只有一个选择条件,那么我们需要检查索引的存在。如果属性上存在索引,则我们可以轻松地基于这些索引找到选择内容,因为索引提供了可用于搜索的记录和块指针。出于任何原因,如果没有索引,则需要搜索整个文件以进行选择。 - 多重合取条件–
在多个合取选择条件的情况下,如果没有一个属性具有任何索引,则需要进行完整的文件扫描以选择相关的元组。但是,如果任何一个属性确实具有索引,那么我们需要转到相关属性并选择其属性值等于给定条件的元组,然后在那些记录中可以检查其他合取条件。 - 多重析取选择条件–
如果属性具有多个析取选择条件,则仅一个属性具有索引是没有用的,而是所有属性都具有索引是必要的。否则,必须进行完整的文件扫描才能获得选择。 - 谓词的选择–
如果存在多个属性的索引,则可以选择高度选择性的属性。这可以通过使用“选择性”来完成。任何特定属性的选择性是满足条件的记录数与记录总数之比。选择性的范围可以在0到1之间,包括0到1。如果条件的选择性较低,则将其定为高度选择性。
对于条件的结合,将选择具有最小选择性值的属性。将找到与条件相对应的元组,然后在其上实现其他条件。选择性值或其估计值可以在使用数据库时记录下来。可以将其放置在数据库目录中。 DB目录(数据库目录)由元数据和有关数据的相关统计信息(例如选择性)组成。这些是由RDBMS体系结构的一部分的查询优化器使用的。
估算选择性的公式如下:
- 在关键属性的情况下,选择性大约为–
1 / (total db records)
- 在非关键属性的情况下,选择性大约为–
1 / distinct values of columns
DBMS中也存在直方图。直方图在横轴上表示属性的不同值或属性的值范围。而在垂直轴上,它表示与范围内的值相对应的记录数。我们可以使用直方图来估计与数据库中给定条件相对应的记录数。这些估计值也可以离线记录。
参考–关系查询评估|套装2