在
计算机科学中,域关系演算(DRC)是
Michel Lacroix和Alain Pirotte为
关系数据模型发明的的作为声明性数据库查询语言。
简介
在
计算机科学中,域关系演算(DRC)是
Michel Lacroix和Alain Pirotte为
关系数据模型发明的的作为声明性数据库查询语言。
在 DRC 中,“查询”有如下形式:
这里的 Xi要么是一个域变量要么是一个常量,而 p() 指示一个 DRC “公式”。 查询的结果为使得这个 DRC 为真的元组 Xi到 Xn的集合。
域关系演算可以使用
量词,同时使用
与、
或、
非(以及
蕴含算符); 尽管如此,域关系演算的表达能力同非递归的
Datalog程序是一样的,也等价于
关系代数。
例子
设 A, B, C 为 Rank, Name, ID 而 D, E, F 为 Name, DeptName, ID
找到星际飞船USS Enterprise的所有首领:
在这个例子中,A, B, C 同时指示结果集合和在表 Enterprise 中的一个集合。
找到在 Stellar Cartography 部门工作的 Enterprise 船员的名字:
在这个例子中,我们只查找名字,所以 指示列名。F = C 是个要求,因为我们需要找到 Enterprise 船员并且他们在 Stellar Cartography 部门工作。
前面例子的另一个可替代表示为:
在这个例子中,要求的 F 域的值被直接的放置在公式中,而 C 域变量重新用于部门存在性的查询中,因为它已经持有了一个船员的 id。