結合は並列化できますか?


9

述語で2つの関係を結合したいとします。これはNCですか?

NCにないことの証明はであることの証明になると私は理解しているので、それが未解決の問題であるという証拠を答えとして受け入れます。PNC

一般的なケースだけでなく、特定のケースにも興味があります(たとえば、並列化できる特定のデータ構造がある場合)。

編集:コメントからこの投稿にいくつかの明確化をもたらすために:

  • 等結合検討できます。X = B y。シングルプロセッサでは、ハッシュベースのアルゴリズムはO | A | + | B |)で実行され、これは各セットを読み取る必要があるため、私たちができる最善の方法です。A.x=B.yO(|A|+|B|)
  • 述語が各ペアをチェックする必要がある「ブラックボックス」である場合、ペアであり、それぞれが中にあるかどうかにかかわらず、2 a b可能性があります。各ペアをチェックすると、可能性が半分に分割されます。そのため、私たちにできる最善のことはO a b です。|A||B|2abO(ab)

logkn


この質問が実際的な問題によって動機付けられている場合は、NCが「並列化可能」の最も適切な概念ではない可能性があることに注意してください。
ラファエル

@Raphael:そうではありませんが、なぜかについて何かリンクがありますか?それがより適切な場合は、別の質問としてこれを質問できます。
Xodarap

あなたが何を求めているのか、私にはわかりません。結合演算子を追加する基本のリレーショナルデータベースクエリ言語は何ですか?または、結合演算子のみを含むクエリの複雑さを尋ねていますか?または、本当の問題は、結合演算子を「並行して」実行して時間の複雑さを改善できるかどうかです。(ANDを並行して実行できるという方法と同様)また、(安全な)SQLクエリはFOL(Count)に対応することに注意してください。
Kaveh

または、2つのリレーショナルデータベースを入力として与えられた結合を計算する複雑さについて、最もよく知られている上限と下限(複雑度クラス)を尋ねていますか?
Kaveh

2
@Xodarap:私のこの質問への回答やコメントは有益かもしれません。私はそうしました。クルスカル他 (1990)も良い読み物です。
ラファエル

回答:


1

n2(n2)


ORを取る場合、深さは対数になります。
sdcvvc 2012

@sdcvvc:十分に公平です。極端な場合、リレーショナル計算で3SATをエンコードできるため、この結果は、選択が単純(つまり、一定時間)である場合にのみ当てはまります。
Xodarap
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.