📜  关系查询评估 |设置 1

📅  最后修改于: 2021-09-09 10:44:54             🧑  作者: Mango

需要将关系查询转换为代数表达式。对该表达式进行运算,以便接收最终输出。存在的关系代数运算符有 Union、Select、Join、Project 等。它们用于制定关系查询以获得足够的结果。分组、分区和聚合都是关系查询的一部分。

执行 :
必须选择合适的算法来优化存储数据的磁盘的寿命和性能。如果在磁盘上进行大量的读写操作(数据修改和更新),它的寿命会因磨损而减少。

选择运算符:

  1. 一种选择条件——
    如果我们需要使用 select运算符根据条件选择特定的关系元组,则可以执行以下操作。如果只有一个选择条件,那么我们需要检查索引是否存在。如果属性上存在索引,我们可以很容易地根据这些索引找到选择,因为索引提供了可用于搜索的记录和块指针。无论出于何种原因,如果缺少索引,则需要搜索整个文件以进行选择。

  2. 多重连接选择条件 –
    在多个联合选择条件的情况下,如果没有任何属性有任何索引,则需要进行完整的文件扫描以选择相关元组。但是,如果任何属性确实有索引,那么我们需要转到相关属性并选择属性值等于给定条件的元组,然后在这些记录中可以检查其他连接条件。
  3. 多重析取选择条件 –
    在属性有多个析取选择条件的情况下,如果只有一个属性有索引是没有用的,而是需要所有属性都有索引。否则,需要完整的文件扫描才能获得选择。
  4. 谓词的选择——
    如果存在多个属性的索引,则可以选择高度选择性的属性。这可以通过使用选择性来完成。任何特定属性的选择性是满足条件的记录数与总记录数之比。选择性的范围可以在 0 和 1 之间(包括 0 和 1)。如果该条件具有低选择性值,则该条件被评为高选择性。

对于条件的合取,选择选择性值最小的属性。找到与条件对应的元组,然后在其上实现其他条件。可以在使用数据库时记录选择性值或其估计值。它可以放在数据库目录中。 DB目录(数据库目录)由元数据和有关数据的相关统计信息组成,例如选择性。这些由作为 RDBMS 架构一部分的查询优化器使用。

估计选择性的公式如下:

  • 在关键属性的情况下,选择性大致是——
    1 / (total db records)
  • 在非关键属性的情况下,选择性大致是——
    1 / distinct values of columns

DBMS 中也存在直方图。直方图在水平轴上表示属性的不同值或属性值的范围。而在垂直轴上,它表示与范围内的值对应的记录数。我们可以使用直方图来估计数据库中与给定条件对应的记录数。这些估计也可以离线记录。

参考 – 关系查询评估 | 2套