关系代数中的数学运算

时间:2013-09-06 22:58:23

标签: relational-database relational-algebra

关于关系代数的一个非常简单的问题,我在互联网或/和一些书中找不到任何答案。

假设关系员工(关键,工资,奖金),我想创建一个新的关系R(key,totalMoney),其中totalMoney =工资+奖金。我的尝试是:

R1(key,totalMoney)=投影键,薪水(员工)

R2(key,totalMoney)=投影键,奖金(员工)

R = 密钥汇总金额 totalMoney (R1 U R2)

可以吗?

如果没问题,那就不能解决我所有的问题了:(

假设我现在想获得RT2(key,totalMoney * 2)。为此,我的尝试是:

RT2 =更新 totalMoney < - totalMoney * 2(R)//“update”是关系代数运算符

可以吗?

我认为我的答案不是(非常)好。如果你能帮我找到一个漂亮而又整洁的解决方案,我将不胜感激。

由于

2 个答案:

答案 0 :(得分:1)

Codd的原始代数不包括这样的操作,因为他坚信应该在应用程序中完成这样的计算。

唉,这些天教授的大部分内容仍然非常接近科德的这些原始想法。现在已经40岁了。因此,在这40年中发生的所有演变都被忽视了。

其中一个是EXTEND运算符,它是由Chris Date& amp;我相信休达文。该操作员可以完全满足您的需求。

答案 1 :(得分:0)

传统的关系代数does not support算术运算。但是,已经进行了不同的尝试来扩展它:例如Gabbay and McBrian讨论选择和投影运算符的算术扩展,而Boncz et al.已经为它们的XQuery编译器提出了许多关系代数扩展(包括算术运算)。探路者。