0

是否可以在关系代数的选择条件中使用用户定义的函数?

前任:

可以<selection condition>是:距离(x1,x2,y2,y2)< r

in σ<selection condition>(R),其中 distance 是一个操作属性值的函数:x1、x2、y1 和 y2。

谢谢

4

1 回答 1

0

是的。

你也可以写“a = b + c”,对吧(提示:这在语义上与调用函数 plus(b,c) 相同)?那么如果允许调用 PLUS 函数,还有什么合理的理由可以排除其他一些(比如你的距离)?

好吧,包含非确定性函数(WHERE x = RANDOM())有点荒谬,但即使在那里,也不清楚为什么必须将其删除......

从技术上讲,RA 中的选择条件(我的意思是 RESTRICT 运算符的选择条件“参数”)就像支持它的编程语言中的 lambda,而 lambda 实际上可以是任意函数。

在实现方面,有效地排除了某些类型的表达式,即具有副作用更新的表达式(如 ++ 增量等),但如果您只是在纸上编写代数表达式,则不必担心。

于 2012-04-23T19:50:43.077 回答