0

関係代数の選択条件内でユーザー定義関数を使用することは可能ですか?

元:

次のようになります<selection condition>:distance(x1、x2、y2、y2)<r

ここでσ<selection condition>(R)、distanceは、属性x1、x2、y1、およびy2の値を操作する関数です。

ありがとう

4

1 に答える 1

0

はい。

「a = b + c」と書くこともできますよね (ヒント: 関数 plus(b,c) を呼び出すのと意味的に同じです) ? では、PLUS 機能を呼び出すことが許可されている場合、他の機能 (距離など) を除外する合理的な理由は何でしょうか?

まあ、非決定論的な関数 (WHERE x = RANDOM()) を含めるのは少し無意味ですが、それでも、なぜ取り除かなければならないのかは不明です...

技術的に言えば、RA の選択条件 (つまり、RESTRICT 演算子に対する選択条件の「引数」) は、それをサポートするプログラミング言語のラムダのようなものであり、ラムダは実際には任意の関数である可能性があります。

実装に関しては、特定の種類の式、副作用の更新 (++ インクリメントなど) を持つ式は事実上除外されますが、紙に代数式を書いているだけであれば問題ありません。

于 2012-04-23T19:50:43.077 に答える