私は、次のSQLクエリを持っている:このSQLクエリは、このリレーショナル代数ステートメントと同等ですか?
SELECT foo.a, bar.b, baz.c FROM foo
INNER JOIN bar ON bar.id = foo.bar_id
INNER JOIN baz ON baz.id = foo.baz_id
WHERE foo.z = 50;
私はこれが、この関係代数文と同じかどうかを知りたいです。
π foo.a, bar.b, baz.c (foo) ⋈ bar.id = foo.bar_id (bar) ⋈ baz.id = foo.baz_id (baz) σ foo.z = 50
はい、そうです。あなたのSQLをリレーショナル代数に変換するのに使うことができる[ここに一連のスライドがあります](http://www.cs.cornell.edu/projects/btr/bioinformaticsschool/slides/gehrke.pdf)です。 –
"リレーショナル代数"には多くのバージョンがあります。プロジェクトを使用していないか、または私が見た代数に従って正しく制限しています。プロジェクト、制限、結合は、あなたが使用するはずのものでどのように定義されていますか?ご使用のバージョンのリファレンスを提供してください。関係代数の大部分のプレゼンテーションでは、*その関係の値を*制限することができます。つまり、ドットなし。しかしドットには、関連値を持つ変数や定数の名前(例えば、あなたの答えと受け入れられた答え)、あるいは値と一時的な名前(例えばSQL)のどちらかの引数が必要です。 – philipxy
代数式を与えられましたか、それとも生成しましたか? – philipxy