时态数据库的约束与查询解析
1. 时态数据库的约束与语法简写
在时态数据库设计中,同时包含当前和历史关系变量的设计虽然涉及较为复杂的约束,但在许多情况下仍是首选。为了更方便地指定这种设计所需的约束,我们可以借鉴传统数据库中候选键和外键语法作为约束简写的思路,为时态数据库定义类似的简写。
1.1 数据库结构观察
通过对特定数据库的观察,我们可以总结出时态数据库的一些通用抽象结构:
- 当前关系变量 :每个当前(“since”)关系变量涉及特定实体,并指定这些实体的某些属性。实体由一组候选键属性标识,属性由其他属性指定。部分当前关系变量包含引用其他当前关系变量的外键。每个属性和键都有一个关联的“since”属性,且在任何给定元组中,“since”属性的值不小于与键关联的“since”属性的值。
- 历史关系变量 :每个当前关系变量中的属性和键都有一个关联的历史(“during”)关系变量。历史关系变量由对应当前关系变量的键属性、对应属性(键的历史关系变量除外)和一个“during”属性组成。历史关系变量在“during”属性上进行打包,并受“WHEN UNPACKED ON DURING THEN KEY {K, DURING}”形式的约束。当前关系变量中的属性(或键)与相应历史关系变量的组合受特定约束,这些约束由相关需求推导得出。
1.2 语法扩展建议
为了简化约束的指定,我们提出以下语法扩展:
- 指定“since”属性 :使用“DATE SINCE FOR {属性集}”语法指定某个属性是对
超级会员免费看
订阅专栏 解锁全文
31

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



