関係代数の選択条件内でユーザー定義関数を使用することは可能ですか?
元:
次のようになります<selection condition>
:distance(x1、x2、y2、y2)<r
ここでσ<selection condition>(R)
、distanceは、属性x1、x2、y1、およびy2の値を操作する関数です。
ありがとう
関係代数の選択条件内でユーザー定義関数を使用することは可能ですか?
元:
次のようになります<selection condition>
:distance(x1、x2、y2、y2)<r
ここでσ<selection condition>(R)
、distanceは、属性x1、x2、y1、およびy2の値を操作する関数です。
ありがとう
はい。
「a = b + c」と書くこともできますよね (ヒント: 関数 plus(b,c) を呼び出すのと意味的に同じです) ? では、PLUS 機能を呼び出すことが許可されている場合、他の機能 (距離など) を除外する合理的な理由は何でしょうか?
まあ、非決定論的な関数 (WHERE x = RANDOM()) を含めるのは少し無意味ですが、それでも、なぜ取り除かなければならないのかは不明です...
技術的に言えば、RA の選択条件 (つまり、RESTRICT 演算子に対する選択条件の「引数」) は、それをサポートするプログラミング言語のラムダのようなものであり、ラムダは実際には任意の関数である可能性があります。
実装に関しては、特定の種類の式、副作用の更新 (++ インクリメントなど) を持つ式は事実上除外されますが、紙に代数式を書いているだけであれば問題ありません。