关于关系代数的一个非常简单的问题,我在互联网或/和一些书中找不到任何答案。
假设关系员工(关键,工资,奖金),我想创建一个新的关系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”是关系代数运算符
可以吗?
我认为我的答案不是(非常)好。如果你能帮我找到一个漂亮而又整洁的解决方案,我将不胜感激。
由于
答案 0 :(得分:1)
Codd的原始代数不包括这样的操作,因为他坚信应该在应用程序中完成这样的计算。
唉,这些天教授的大部分内容仍然非常接近科德的这些原始想法。现在已经40岁了。因此,在这40年中发生的所有演变都被忽视了。
其中一个是EXTEND运算符,它是由Chris Date& amp;我相信休达文。该操作员可以完全满足您的需求。
答案 1 :(得分:0)
传统的关系代数does not support算术运算。但是,已经进行了不同的尝试来扩展它:例如Gabbay and McBrian讨论选择和投影运算符的算术扩展,而Boncz et al.已经为它们的XQuery编译器提出了许多关系代数扩展(包括算术运算)。探路者。