47、递归关系与不定序列关系中的函数依赖

递归关系与不定序列关系中的函数依赖

1. 递归关系的有效性规则

递归关系在数据库设计中具有重要作用,下面将介绍递归关系的有效性规则及相关示例。

1.1 规则概述

规则编号 规则内容 有效示例 适用关系类型
1 仅具有强制 - 强制或可选 - 可选基数约束的 1:1 递归关系在结构上是有效的。 1 - 1 TAXED JOINTLY WITH PERSON;1 - 1 MARRIED TO 对称和完全循环关系
2 对于 1:M 或 M:1 递归关系,可选 - 可选基数在结构上是有效的。 1 TUTORS STUDENT M 非对称关系
3 对于层次 - 循环类型的 1:M 递归关系,可选 - 强制基数在结构上是有效的。 DECISION MAKER 1 M BACKS UP 层次 - 循环关系
4 所有具有多对多最大基数的递归关系在结构上都是有效的,无论最小基数约束如何。 SIBLING PERSON M M 对称、层次和层次 - 循环关系
5 所有具有可选 - 可选基数的递归关系在结构上都是有效的。 ARE FRIENDS WITH PERSON 对称和非对称关系

1.2 无效示例及推论

推论编号 推论内容 无效示例
1 所有具有强制 - 可选或可选 - 强制基数约束的 1:1 递归关系在结构上是无效的。 1 - 1 DANCES WITH DANCER
2 所有具有强制 - 强制基数约束的 1:M 或 M:1 递归关系在结构上是无效的。 1 M SUBSTITUTE PRODUCT
3 所有在“一”侧具有强制参与约束,在“多”侧具有可选参与约束的 1:M 或 M:1 递归关系在结构上是无效的。 1 M SUPERVISE EMPLOYEE

1.3 示例分析

假设有一个实体关系图包含三个递归关系:PARTNER_OF、MANAGE 和 SUBSTITUTE。
- PARTNER_OF 无效,因为它违反了推论 1,即“一对一”递归关系具有“强制 - 可选”参与约束是无效的。
- SUBSTITUTE 无效,因为它违反了推论 2,即“一对多”递归关系具有“强制 - 强制”参与约束是无效的。
- MANAGE 无效,因为它违反了推论 3,即“一对多”递归关系具有“强制 - 可选”参与约束是无效的。

下面是一个简单的 mermaid 流程图,展示递归关系有效性判断流程:

graph TD;
    A[递归关系] --> B{关系类型};
    B -->|1:1| C{基数约束};
    C -->|强制 - 强制/可选 - 可选| D[有效];
    C -->|强制 - 可选/可选 - 强制| E[无效];
    B -->|1:M 或 M:1| F{基数约束};
    F -->|可选 - 可选| G[有效];
    F -->|强制 - 强制| H[无效];
    F -->|强制(一) - 可选(多)| I[无效];
    B -->|多对多| J[有效];

2. 不定序列关系

2.1 概念引入

在许多数据库应用中,序列数据非常有用,因为现实生活中的很多信息包含数据项之间的逻辑顺序关系。然而,当数据来自移动环境或多数据库系统时,可能会出现不定信息。为了处理这种情况,引入了不定序列关系的概念。

不定序列关系中的元组允许属性值包含一组值,这可以用来表示信息的析取。从不定序列关系中提取的确定序列关系,在保持其顺序的同时,将所有不定单元格替换为其中一个不定值。

2.2 示例说明

以货币兑换率数据为例,假设 CURRENCY TABLE = {TIME, EXCHANGE RATE} 是一个关系模式。在快速变化的货币市场中,在某个特定时间记录美元到港币的汇率。由于数据可能来自不同的来源,并且数量较大,为了方便引用,将到达时间相近的值合并为一组(等可能)值,形成不定元组。

TIME EXCHANGE RATE
t1 {0900, 0902, 0905} {7.77, 7.78}
t2 {1000, 1011} {7.55}
t3 {1200, 1211, 1213} {7.60, 7.67}

2.3 元组顺序的重要性

元组顺序在数据库设计和实现中具有重要意义:
- 逻辑层面 :可以用来表示数据的时间语义,还可以扩展到建模其他类型的有序数据,如空间数据。
- 物理层面 :允许用户基于这种线性结构导出更多的访问和处理方法。

2.4 确定性的概念

“确定性”是不定序列关系语义的核心。对于一个元组,给定一个模式,其所有单元格值的基数越小,该元组就“越确定”(或等价地,“越不不定”)。将这个概念扩展到关系,建立了一个称为精度层次结构的形式结构,用于将关系分类到不同的精度级别。精度层次越高,不定关系越确定。

下面是一个简单的精度层次结构示例,当 R = {A} 且 n = 2 时:

graph LR;
    A[T1: 最精确级别] --> B[T2];
    B --> C[T3: 最不精确级别];
    A1([{a}, {a}]):::nodeA --> A;
    A2([{a}, {b}]):::nodeA --> A;
    A3([{b}, {a}]):::nodeA --> A;
    A4([{b}, {b}]):::nodeA --> A;
    B1([{a}, {a,b}]):::nodeB --> B;
    B2([{a,b}, {a}]):::nodeB --> B;
    B3([{b}, {a,b}]):::nodeB --> B;
    B4([{a,b}, {b}]):::nodeB --> B;
    C1([{a,b}, {a,b}]):::nodeC --> C;
    classDef nodeA fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef nodeB fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
    classDef nodeC fill:#FFEBEB,stroke:#E68994,stroke-width:2px;

2.5 相关定义

  • 关系模式和不定序列关系 :设 U 是可数的属性集,D 是可数的域值集。关系模式 R 是 U 中的有限属性集。不定元组 t 是从 R 到 P(D) 的全映射,其中对于每个 A ∈ R,t(A) ∈ P(A)。如果对于每个 A ∈ R,|t(A)| = 1,则元组 t 是确定的。不定序列关系是 R 上的有限(可能为空)不定元组序列。如果关系 r 中的所有元组都是确定的,则 r 是确定的。
  • 可能的确定序列关系集 :元组 t 的可能确定元组集 poss(t) 是 {u | u 是确定的,并且对于每个 A ∈ R,u[A] ∈ t[A]}。关系 r = ⟨t1, …, tn⟩ 的可能确定序列关系集 poss(r) 是 {s | s = ⟨u1, …, un⟩ 且 u1 ∈ poss(t1), …, un ∈ poss(tn)}。
  • 投影 :元组 t 在属性集 X ⊆ R 上的投影 t[X] 是 t 对 X 的限制。关系 r = ⟨t1, …, tn⟩ 在 X 上的投影 πX(r) 定义为 πX(r) = ⟨t1[X], …, tn[X]⟩。
  • 较不确定的元组 :设 t1 和 t2 是 R 上的两个元组。如果对于每个 A ∈ R,t2[A] ⊆ t1[A],则称 t1 比 t2 更不确定,记为 t1 ⊑ t2。
  • 较不确定的关系 :设 r1 和 r2 是 R 上的两个关系。如果 poss(r2) ⊆ poss(r1),则称 r1 比 r2 更不确定,记为 r1 ⊑ r2。

2.6 精度层次结构的构建

精度层次结构是通过以下算法生成的:

Algorithm 1
1. begin
2. rel0 = rel(R, n) and T0 = ∅;
3. do until reli−1 = ∅
4. Ti is the set of maximal relations of reli = reli−1 − Ti−1 with respect to ⊑;
5. return Result = {T1, ..., Tb};
6. end.

该算法终止,并且生成的精度层次结构是唯一的。顶层(T1)的关系数量为 |T1| = |D|n|R|。例如,在上述简单示例中,当 R = {A} 且 n = 2 时,T1 有 22×1 = 4 个关系。

精度层次结构具有以下有趣的性质:
- 每个级别上的关系在精度方面具有一致性。
- 较高级别的关系不会比任何较低级别的关系更不精确。
- 至少有一个较高级别的关系比某些较低级别的关系更精确。

这些性质对应于在部分有序集上定义的内部层次结构的一般概念的要求,内部层次结构可以看作是多分辨率概念的推广,多分辨率是一种公认的近似图像数据检索结果的方法。

3. 不定序列关系中的函数依赖

3.1 函数依赖的定义

函数依赖(FDs)在传统关系数据库中是最基本的完整性约束。在不定序列关系中,我们使用可能世界方法来定义函数依赖的满足性。

给定一个关系模式 $R$ 上的不定序列关系 $r$,其可能世界集 $poss(r)$ 是由不定单元格中的可能元素生成的所有确定序列关系的集合。如果存在 $poss(r)$ 中的一个可能世界满足函数依赖 $f$(按照标准的确定序列关系中函数依赖的满足定义),则称函数依赖 $f$ 在 $r$ 中满足。

例如,对于前面提到的货币兑换率关系:
|TIME|EXCHANGE RATE|
| ---- | ---- |
|t1 {0900, 0902, 0905}|{7.77, 7.78}|
|t2 {1000, 1011}|{7.55}|
|t3 {1200, 1211, 1213}|{7.60, 7.67}|

可以验证它满足函数依赖 $TIME \to EXCHANGE RATE$。

3.2 函数依赖满足的好处

在关系中强制实施函数依赖有以下两个好处:
- 一致性保证 :确保在关系中,任何两个在精确时间到达的元组,其对应的汇率集合不会不相交,从而保证存在一个一致的可能世界。
- 数据挖掘支持 :可以采用适应不定序列关系的数据挖掘技术,以发现满足(近似)某些有序趋势的一致可能世界。

3.3 函数依赖的推理规则

在数据库研究中,函数依赖的蕴含问题是一个重要问题。为了解决不定序列关系中函数依赖的蕴含问题,我们建立了一组推理规则 $F$,构成公理系统 $A$。

如果使用公理系统 $A$ 可以从函数依赖集 $F$ 推导出函数依赖 $f$,并且当且仅当关系 $r$ 满足 $F$ 时,$r$ 也满足 $f$,则称 $A$ 是健全且完备的。

与传统的 Armstrong 公理系统不同,Lien 和 Atzeni 为不完全关系中的函数依赖建立的公理系统对于不定序列关系中的函数依赖是健全且完备的。这意味着,为不完全关系中的函数依赖建立的结果,如闭包和蕴含算法,可以扩展到不定序列关系中的函数依赖。

3.4 与模糊关系的比较

不定序列关系的研究还与模糊关系模型相关,但不定序列关系中的函数依赖语义与模糊关系中的模糊函数依赖语义不同。即使不考虑元组顺序在不定序列关系中的重要性,我们使用可能世界方法定义的函数依赖通常比基于等价类模型定义的模糊关系中的模糊函数依赖限制更少。

例如,假设有一个关系 $r$ 包含两个元组:
|A|B|
| ---- | ---- |
|t1 {0}|{2}|
|t2 {0, 1}|{3}|

可以验证 $r$ 满足函数依赖 $A \to B$,因为存在一个从 $r$ 中提取的可能确定序列关系满足该函数依赖。然而,$r$ 不满足模糊函数依赖 $A ❀ B$,因为当 $t1[A] \sim t2[A]$ 时,$t1[B] \not\sim t2[B]$(这里 $X \sim Y$ 定义为 $X \cap Y \neq \varnothing$)。

下面是一个简单的 mermaid 流程图,展示不定序列关系中函数依赖满足性判断流程:

graph TD;
    A[不定序列关系 r] --> B{是否存在 poss(r) 中的可能世界};
    B -->|是| C[满足函数依赖 f];
    B -->|否| D[不满足函数依赖 f];

4. 不定序列关系中函数依赖满足的非加性

在传统关系中,函数依赖的满足通常是可加的,即如果关系满足一组函数依赖 $F$ 中的每个 $f$,那么它也满足 $F$。然而,在不定序列关系中,函数依赖的满足是非加性的。

这意味着,在给定的关系中,每个 $f$ 在 $F$ 中的满足可能不会导致 $F$ 的满足。这种非加性是不定序列关系中函数依赖的一个重要特征,与传统关系中的情况不同。

5. 总结

5.1 主要成果回顾

  • 递归关系 :我们对递归关系进行了完整的分类,将其分为对称和非对称关系,非对称递归关系进一步分为层次、循环和镜像关系。同时,我们确定了它们在最大和最小基数约束方面的方向性和有效性,建立了一套完整的决策规则来确定包含递归关系的任何实体 - 关系图的结构有效性。
  • 不定序列关系 :引入了不定序列关系的概念,以处理来自移动环境或多数据库系统的不定信息。建立了不定序列关系的精度层次结构,用于对关系进行分类。定义了不定序列关系中函数依赖的满足性,证明了 Lien 和 Atzeni 的公理系统对于不定序列关系中的函数依赖是健全且完备的,并指出函数依赖的满足是非加性的。

5.2 实际应用价值

这些决策规则和概念可以应用于实际的数据模型,无论其复杂程度如何。它们可以轻松地融入数据库建模和设计过程,也可以扩展到案例工具的实现中。例如,在设计包含递归关系的数据库时,可以使用决策规则来确保关系的有效性;在处理不定序列数据时,可以利用不定序列关系的相关理论进行数据建模和分析。

5.3 未来展望

未来的研究可以进一步探索不定序列关系在更多实际场景中的应用,如在实时数据处理、物联网数据管理等领域。同时,可以研究如何优化不定序列关系中函数依赖的推理算法,提高其在大规模数据上的性能。

通过对递归关系和不定序列关系的研究,我们为数据库设计和数据处理提供了更全面的理论支持,有助于更好地处理复杂和不确定的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值