是否可以在关系代数的选择条件中使用用户定义的函数?
前任:
可以<selection condition>
是:距离(x1,x2,y2,y2)< r
in σ<selection condition>(R)
,其中 distance 是一个操作属性值的函数:x1、x2、y1 和 y2。
谢谢
是否可以在关系代数的选择条件中使用用户定义的函数?
前任:
可以<selection condition>
是:距离(x1,x2,y2,y2)< r
in σ<selection condition>(R)
,其中 distance 是一个操作属性值的函数:x1、x2、y1 和 y2。
谢谢
是的。
你也可以写“a = b + c”,对吧(提示:这在语义上与调用函数 plus(b,c) 相同)?那么如果允许调用 PLUS 函数,还有什么合理的理由可以排除其他一些(比如你的距离)?
好吧,包含非确定性函数(WHERE x = RANDOM())有点荒谬,但即使在那里,也不清楚为什么必须将其删除......
从技术上讲,RA 中的选择条件(我的意思是 RESTRICT 运算符的选择条件“参数”)就像支持它的编程语言中的 lambda,而 lambda 实际上可以是任意函数。
在实现方面,有效地排除了某些类型的表达式,即具有副作用更新的表达式(如 ++ 增量等),但如果您只是在纸上编写代数表达式,则不必担心。