关系数据库中的一阶类型、冗余关系与参与约束矩阵表示
在关系数据库领域,冗余关系的判定以及参与约束的矩阵表示是重要的研究内容,它们对于数据库的设计、优化和查询处理有着关键作用。
计算冗余关系
在关系数据库中,判定一个关系是否为冗余关系是一个重要问题。有两个相关的可判定问题:
1. 给定一个模式 σ、一个属于 σ 的 k 元关系符号 R(k ≥ 1)以及一个模式为 σ 的数据库 A,判定 RA 是否为 A 中的冗余关系。
2. 给定一个模式 σ 和一个模式为 σ 的数据库 A,判定 σ 中是否存在某个关系符号 R,使得 RA 是 A 中的冗余关系。
对于第一个问题,有如下算法:
redundant := True;
m := |dom(A)| + 1;
For every ¯u ∈ dom(A)k {
Build ψA,¯u(¯x);
Build ψA|σ−R,¯u(¯x);
For every ¯v ∈ dom(A)k {
If ¬ [A |= ψA,¯u(¯x)[¯v] ↔ A|σ−R |= ψA|σ−R,¯u(¯x)[¯v]]
then {
“If it is not the case that ¯u and ¯v have the same FO type both in A and in A|σ−R”
redundant := False;
Return redundant
}
}
}
Return red
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



