数据库架构中的树投影必要性及状态构建
1. 基础概念
-
关系数据库与运算符
-
关系模式
R是属性的有限子集,数据库模式D是一组命名的关系模式,可表示为(R1, ..., Rn)。 -
数据库状态
D中,每个Ri是对应关系模式的关系。 -
元组匹配:若关系模式
R上的元组r和关系模式S上的元组s在R∩S的所有属性上常量相同,则它们匹配。 -
自然半连接:关系
R和S的自然半连接R >< S是包含R中所有与S中某些元组匹配的元组的关系,是一种缩减运算符。 -
连接缩减(JR)状态:对于数据库状态
D中的每个关系R,若R = ΠR ×S∈D S,则D是连接缩减状态。 -
半连接缩减(SJR)状态:若
D中每对关系R和S都兼容(即R中的每个元组都与S中的一个元组匹配,反之亦然),则D是半连接缩减状态。
-
关系模式
-
树和循环模式
-
无向图:无自环的图。子图
G′ = (V ′, E′)是无向图G = (V, E)的子图,满足V ′ ⊆V且E′ ⊆E。 -
对于数据库模式
D,若图G的节点与D的关系模式一一对应,对于属性A ∈U(D),若包含A的关系模式(节点)诱导的G的子图是连通的,则称G是A- 连通的;对于属性集X,若对所有A ∈X,G都是A- 连通的,则称G是X- 连通的;若G是U(D)- 连通的,则称G是D的质量图;若质量图G是树,则称G是质量树。 -
树模式:若
D存在一个质量图是树,则D是树模式(等价于无环超图、无环方案);否则,D是循环模式(等价于循环超图、循环方案)。 -
邻接图:数据库模式
D的邻接图AG(D)以D的属性为节点,若两个属性在D的一个关系模式中同时出现,则它们通过一条边连接。 -
团:若
AG(D)是n个节点上的团,则循环数据库模式D是大小为n的团。 -
属性环(Aring):若数据库模式
D与模式A = ({A1, A2}, {A2, A3}, ..., {An−1, An}, {An, A1})同构,则D是大小为n的属性环,可简写为A = (A1A2 ... An−1An),所有属性环数据库模式都是循环模式。 -
投影:若对于数据库模式
D中的所有关系模式R,都存在数据库模式E中的关系模式S使得R ⊆S,则称D是E的投影,记为D ≤E,≤是传递关系。 -
树投影:数据库模式
TP是数据库模式E关于D的树投影(TP),若U(TP) = U(D),TP是树模式且D ≤TP ≤E。
-
无向图:无自环的图。子图
| 概念 | 定义 |
|---|---|
关系模式
R
| 属性的有限子集 |
数据库模式
D
| 一组命名的关系模式 |
自然半连接
R >< S
|
包含
R
中所有与
S
中某些元组匹配的元组的关系
|
| 连接缩减(JR)状态 |
R = ΠR ×S∈D S
|
| 半连接缩减(SJR)状态 | 每对关系都兼容 |
| 树模式 | 存在质量图是树 |
| 循环模式 | 不存在质量图是树 |
邻接图
AG(D)
|
以
D
的属性为节点,属性同时出现则有边连接
|
| 团 |
AG(D)
是
n
个节点上的团
|
| 属性环(Aring) | 与特定模式同构 |
投影
D ≤E
|
对
D
中所有
R
存在
E
中
S
使
R ⊆S
|
树投影
TP
|
U(TP) = U(D)
,
TP
是树模式且
D ≤TP ≤E
|
2. 树投影示例
考虑以下数据库模式:
-
D = ({A, B}, {B, C}, {C, D}, {D, E}, {E, F}, {F, A})
,是大小为 6 的属性环,因此是循环模式。
-
TP = D ∪({C, D, E, F}, {F, A, B, C})
,是树模式。
-
E = ({A, D}, {F, A, B, C}, {C, D, E, F})
,由于包含属性
{A, C, D}
上的属性环,所以是循环模式。
因为
D ≤TP ≤E
,所以
TP
是
E
关于
D
的树投影。
3. 构建 (k - 1) - 完全 k - 部图
-
定义
-
无向
k- 部图:无向图G = (V, E),其中V = V1 ∪... ∪Vk,Vi两两不相交,称为图的分区,且同一分区内的节点之间没有边。 -
(k - 1) - 完全
k- 部图:满足两个条件:一是图中不存在大小为k的团作为子图;二是E中的每条边e恰好是(k - 2)!个大小为(k - 1)的团的一部分,每个团的顶点来自(k - 1)个分区(即边e的两个分区加上(k - 3)个额外分区)。
-
无向
-
构建算法
-
输入
k,构建 (k - 1) - 完全k- 部无向图Gk的算法Construct(k)步骤如下:-
对于
i = 1, ..., k,令Vi = {(i, 1), ..., (i, (k - 1))},即每个分区i有(k - 1)个不同的顶点,形式为(i, b)。 -
对于每对不同的分区
Vi和Vj(i < j),对于u = 1, ..., (k - 1),对于v = 1, ..., (u - 1), (u + 1), ..., (k - 1),形成无向边{(i, u), (j, v)},即连接不同分区的每对顶点,除非它们的形式为(i, b)和(j, b)(相同常量b)。
-
对于
-
输入
graph TD;
A[开始] --> B[初始化分区 Vi];
B --> C[遍历不同分区对 Vi 和 Vj];
C --> D[遍历 u 和 v];
D --> E[形成边 {(i, u), (j, v)}];
E --> F{是否完成所有分区和顶点遍历};
F -- 否 --> C;
F -- 是 --> G[结束];
-
算法正确性证明
-
引理 2:由
Construct(k)形成的图Gk = (V k, Ek)不包含形式为{(a, b), (c, b)}的边。证明:算法的两个for循环明确禁止构建这样的边。 -
引理 3:算法
Construct(k)构建了一个 (k - 1) - 完全图Gk = (V k, Ek)。
-
引理 2:由
4. 数据库状态构建与树投影的关系
-
数据库状态编码
:图
Gk编码了一个 2 - 属性(即 2 列)关系状态的数据库状态。Gk中的边对应数据库状态中的元组,形成关系状态Rmn,其关系模式为Rmn,属性为Am和An。令Dk是由所有这些关系状态组成的数据库状态,其数据库模式为Dk,由于AG(Dk)是团,所以Dk是团。 -
查询计算问题
:假设要计算
Dk中所有关系状态在一组属性X ≠ U(Dk)上的自然连接投影。可以使用带有连接和投影语句的程序P,构建扩展数据库状态,应用半连接循环达到 SJR 状态,然后从包含X的关系状态中投影出所需结果。-
若扩展数据库模式
E包含关系模式U(Dk),计算是正确的,因为扩展状态包含Dk的所有原始关系状态。 -
若
E不包含U(Dk),但P进行了“最大努力”,即扩展模式E包含所有基数为(k - 1)的关系模式。 -
由于引理 3,
Gk的每个(k - 1)团C = (Vc, Ec)为关系状态S提供常量,S的模式是Vc中(k - 1)个顶点的分区,S中属性的常量就是Vc中的(k - 1)个顶点本身。所有初始数据库元组(即Ek中的边),其属性包含在关系模式S中,将在构建相应关系S的连接操作和半连接循环中“存活”,并在S中产生最终状态元组。 -
然而,
E的构建并没有解决初始问题,因为最终得到的所有关系状态都不为空,从这个最终状态推导出X的结果元组,但实际上所有初始关系的连接为空。假设所有初始关系的连接不为空,考虑连接结果中的元组s = (a1, ..., ak),每对(ai, aj)必须是Gk中的边,这意味着Gk中存在大小为k的团,与引理 3 矛盾。
-
若扩展数据库模式
-
定理 1
:设
k- 部图Gk由Construct(k)形成,Dk是数据库状态,其中每对属性(分区)形成一个关系模式,元组是Gk中连接相应分区节点的边。若数据库模式E解决了Dk,则E必须包含关系模式U(Dk)。
5. 一般构造定理
-
二进制数据库模式
:若数据库模式
D中的所有关系模式都由两个属性组成,则D是二进制数据库模式。可以将数据库模式D的邻接图AG(D)视为一个派生的二进制数据库模式,其每个关系模式由AG(D)中边的顶点(属性)组成。 -
定理 2
:设
D是循环数据库模式,GD是从AG(D)派生的二进制数据库模式,DG是GD的数据库状态,若要在数据库状态DG上解决GD必须形成关于GD的树投影,则可以按以下方式构造数据库状态D:对于D中的每个关系模式R,通过连接DG中所有属性都包含在R中的关系状态来构造R的状态。这样,要在状态D上解决D必须形成关于D的树投影。
数据库架构中的树投影必要性及状态构建
6. 属性环(Aring)数据库模式
-
重复语句与同义词
-
对于关系模式
{A}上的关系R,引入一种新的语句:(duplicate) RNEW ←R.AA′,其中RNEW是新的关系名,A′是新的属性,RNEW = {A, A′}是RNEW的关系模式,且之前没有涉及属性A的重复语句。该语句的语义是:R中的每个元组t会产生RNEW中的一个元组t′,t′中分配给A′的常量与t中分配给A的常量相同,A′称为A的同义词。 -
对于数据库模式
D,定义有向图G(D),其节点是U(D),边的形式为(A, B),其中B是A的同义词。若A = B或在G(D)中存在从A到B的路径,则属性B是属性A的传递同义词。若程序P允许使用重复语句,则称P是支持重复语句的。 -
例如,对于关系模式
{A}上的关系状态R = {(1), (4), (5)},执行重复语句RNEW ←R.AA′后,RNEW = {(1, 1), (4, 4), (5, 5)}。
-
对于关系模式
-
标准状态
-
对于属性环
A = (A1, ..., An)的数据库状态A,若关系模式S1 = {A1, A2}的关系状态(称为切换关系)为{(0, 1), (1, 0)},其他关系模式的关系状态为{(1, 1), (0, 0)},则称该数据库状态为A的标准状态,且该状态下所有关系的连接为空。
-
对于属性环
-
相关定理
-
声明
:设
A = (A1 ... An)是大小为n的属性环数据库模式,A是其标准状态,若支持重复语句的程序P创建的数据库模式D能解决A,则程序P必须形成一个关系状态R,其模式R包含属性环A中连续属性Ai, Ai+1和Ai+1+1(1 ≤i ≤n,n + 1 = 1)的三个传递同义词。 -
定理 3
:设
A是大小为n的属性环模式,A是其标准状态,若支持重复语句的程序P创建的数据库模式D能解决A,则存在一个树模式TP,使得U(TP) = U(A),A包含在TP中,且对于TP中的每个关系模式R,D中存在一个关系模式S,使得R的每个属性在S中有一个传递同义词属性(即TP是D关于A的树投影)。证明过程是对n进行归纳,且不妨假设在P的每个语句后应用半连接循环直到稳定,这不会影响最终结果。 -
由此可知,若程序
P完全不使用重复语句,解决属性环A的标准状态A就必须构建关于A的树投影。
-
声明
:设
| 概念 | 定义 |
|---|---|
| 重复语句 |
RNEW ←R.AA′
,产生新关系
RNEW
,
A′
是
A
的同义词
|
| 传递同义词 |
在有向图
G(D)
中,
A = B
或存在从
A
到
B
的路径
|
| 标准状态 |
关系模式
S1 = {A1, A2}
为
{(0, 1), (1, 0)}
,其他为
{(1, 1), (0, 0)}
|
| 定理 3 结论 |
支持重复语句的
P
解决
A
时存在树投影
TP
|
7. 结论
-
对于邻接图是团或简单循环的数据库模式
D,构建了相应的数据库状态,使得该数据库状态中所有关系的连接为空。但如果使用一个包含投影和连接语句的直线程序,接着进行半连接循环直到收敛,在扩展状态(和模式)的过程中不形成树投影,就无法将状态完全缩减为空关系状态。 - 这为这类模式提供了明确的状态构造,展示了形成树投影的必要性。这种构造具有理论意义,也可能在测试查询处理器方面有实际应用。通过证明可知,循环数据库模式的状态构造可从由该数据库模式派生的二进制数据库模式的状态构造中获得。
graph LR;
A[循环数据库模式 D] --> B[派生二进制数据库模式 GD];
B --> C[GD 的状态构造 DG];
C --> D[D 的状态构造 D];
D --> E[解决 D 需树投影];
综上所述,树投影在解决特定数据库模式的查询问题中起着关键作用,无论是从理论分析还是实际应用的角度,都值得进一步深入研究和探索。在实际操作中,根据不同的数据库模式和查询需求,合理运用树投影和相关的状态构造方法,能够提高查询处理的效率和准确性。
数据库树投影与状态构建解析
超级会员免费看
2097

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



