当前位置:科技动态 > 转换关系表达式

转换关系表达式

  • 发布:2023-10-02 22:11

转换关系表达式

优化器的第一步是实现逻辑上与给定表达式等价的表达式。为了实现这一步,我们使用等价规则,它描述了将生成的表达式转换为逻辑等价表达式的方法。

虽然我们可以用不同的方式表达查询,但是费用是不同的。然而,为了有效地表达查询,我们将学习为给定表达式创建替代表达式和等效表达式,而不是使用给定表达式。如果两个关系代数表达式在每个合法数据库实例上生成相同的元组集,则它们是等效的。 合法的数据库实例是满足数据库模式中指定的所有完整性约束的数据库系统。然而,两个表达式中生成的元组的顺序可能不同,但在它们生成相同的元组集合之前,它们不被认为是等效的。

等价规则

等价规则意味着表达式的两种形式相同或相等,因为这两个表达式在任何合法数据库实例上都会产生相同的输出。这意味着我们可以用第二种表达形式代替第一种表达形式,用第一种表达形式代替第二种表达形式。因此,查询评估计划的优化器使用这种等价规则或方法将表达式转换为逻辑上等价的表达式。

优化器使用各种等价规则转换关系代数表达式。为了描述每条规则,我们将使用以下符号:

θ, θ1, θ2…: 用于表达谓词。

L 1、L 2、L 3:用于表示属性列表。

E,E1,E2…。 :表示关系代数表达式。

让我们讨论一些等效的规则:

规则 1:级联 σ

该规则说明了将联合选择操作解构为一系列单独选择。这种转换称为 σ 级联

σθ1ᴧθ2(E)=σθ1(σθ2(E))

规则2:可互换规则

a) 该规则指出选择操作是可交换的。

σθ1 ( σθ2 (E))= σθ2 ( σθ1 (E))

b) Theta Join(θ) 是可交换的。

ë1⋈θe 2 = E 2⋈θë1(θ为下标和加法符号)

但是,在 theta 连接的情况下,如果考虑属性顺序,则等价规则不起作用。自然连接是 Theta 连接的特例,自然连接也是可交换的。

但是,在 theta 连接的情况下,如果考虑属性顺序,则等价规则不起作用。自然连接是 Theta 连接的特例,自然连接也是可交换的。

规则 3:

的级联

这个规则规定我们只需要按照投影操作的顺序执行最后一个操作,其他操作被省略。这种变换称为 的级联。

∏L1(∏L2(..(∏Ln(E))..))= ∏L1(E)

规则 4:我们可以将选择与笛卡尔积以及 theta 连接相结合

规则 4:我们可以将选择与笛卡尔积以及 theta 连接相结合

  • σθ(E1×e2)=E1θ⋈e2
  • σθ1(E1⋈θ2ë2)=

规则5:协会规则

a) 该规则指出自然连接运算是关联的。

(E1⋈E2)⋈E3 = E1⋈(E2⋈E3)

b) Theta 连接与以下表达式相关联:

(E 1⋈θ1ë2)⋈θ2ᴧθ3E 3 = E 1⋈θ1ᴧθ3(E 2⋈θ2E3)

在theta相关中,theta2只涉及E2和E3的性质。可能存在空条件的机会,因此笛卡尔积也是相关的。

注意:关联和连接操作的交换等价规则对于查询优化中的连接重新排序至关重要。

规则 6: 选择 Theta 连接上的操作分布。

在以下两种情况下,选择操作分布在 theta 连接操作上:

a) 选择条件θ0 中的所有属性仅包括添加到其中一个表达式的属性。

σθ0(E 1⋈θe 2)=(σθ0(E ) 1))⋈θe2'

? 仅包括 e 2 的 的属性。

σθ1ꓥθ2(E 1⋈θe 2)=(σθ1(E) 1))⋈θ((σθ2(E) 2))

规则 7:theta 连接上的投影操作的分布。

在以下两种情况下,选择操作分布在 theta 连接操作上:

a) 假设连接条件θ仅包含L 1中的υL E 1和E 2的属性。然后,我们得到以下表达式:

ΠL1υL2(E 1⋈θe 2)=(ΠL1(E) 1))⋈θ(ΠL2(E) 2))

b) 假定连接 E 1⋈e 2。表达式 E 1 和 E 2 都具有属性集 L 1 和 L 2。假设有两个属性 L 3 和 L 4, ,其中 L 3 是表达式 E 1, 参与 θ 的连接条件的属性,但不与L 1υL 2同样,L 4仅在 θ 中是表达式 E 2 的属性连接条件,而不是 υL 中的 L 1 2 点 属性。因此,我们得到以下表达式:

ΠL1υL2(E 1⋈θe 2)=ΠL1υL2((ΠL1υL3(E) 1))⋈θ((ΠL2υL4( E 2)))

规则 8:并集和交集运算是可交换的。

ë1υe 2 = E 2υë1

ë1ꓵe 2 = E 2ꓵë1

但是,集合差运算是不可交换的。

规则 9:并集和交集运算是结合的。

(E 1υë2)υE 3 = E 1υ(E 2υE 3)

(E 1ꓵë2)ꓵE 3 = E 1ꓵ(E 2 ꓵE 3)

规则 10: 选择交集、并集和集差运算的运算分布。

下面的表达式显示了对集合差值运算执行的分布。

σP(E 1 - 电子 2)=σP(E 1) – σP(E 2)

我们可以类似地将选择操作分布在 υ 上,并通过用 - 替换它们来分布。此外,我们得到:

σp(e1-e2)=σp(e1) - e2

规则 11:投影运算相对并集运算的分布。

这条规则指出我们可以将给定表达式的投影运算分配给并集运算。

ΠL(E 1υë2)=(ΠL(E 1))υ(ΠL(E 2) )

除了这些讨论的等价规则之外,还有各种其他等价规则。

相关文章