2017-01-29 15 views
2

関連テーブルである:関係代数どのように2つの条件を選択できますか?

TRAIN(列車コード、列車型、出発局、宛先局)ロンドンから出発し、KENT宛ての列車の

リストの詳細。

質問は非常に簡単で、どこでも基本的な答えを見てきましたが、見つけられませんでした。

これは私がこれまでに出ているものですが、私はそれが正しい場合や、さらには、リレーショナル代数で使用することができるかどうかわからない:

SELECT TRAIN WHERE departure-station = 'LONDON' AND destination-station = 'KENT' 

がいることは正しいですか?私はあなたがこれを使用することができるかどうかについての情報をオンラインで見つけることはできません。それは私には長すぎるだろう、と、とにかく間違っている可能性がありますように

SELECT TRAIN WHERE departure-station = 'LONDON' GIVING TABLE1 
SELECT TRAIN WHERE destination-station = 'KENT' GIVING TABLE2 
PROJECT TABLE1 OVER train-code GIVING TABLE3 
PROJECT TABLE2 OVER train-code GIVING TABLE4 
TABLE1 INTERSECT TABLE2 GIVING TABLE3 
PROJECT TABLE3 OVER train-code, train-type, departure-station, destination-station GIVING RESULT 

これはそう:これは動作しなかった場合、私は私の答えは、このようなものであるべきと思っています。たぶん私は代わりにJOINコマンドを使用する必要がありますか?私は本当に分かりませんが、それは簡単な質問です。誰でも助けてくれますか?

+1

実際のデータベースではうまくいくはずですが、私はこの質問に対する答えを紙に書いて、関係代数テストを勉強しなければなりません。私は、これが似たように見えるにもかかわらず、SQLコードとは異なる関係代数で使用できるかどうかはわかりません。 – JadstaSeven

+0

出発駅= 'LONDON'郵便局= 'ケント'(TRAIN)) 'のようなものではなく、' SELECT * FROM TRAIN WHERE departure-station = 'LONDON' AND行き先= 'KENT'' ?? – Carlton

+0

おそらくそれは正しいでしょうが、私は英国にいるのですが、残念なことに私たちはこのようなことを違う方法で教えています。つまり、シグマ表記やそのようなものは使用せず、SELECT、PROJECT、DIVIDEBYなどです。実際にSELECTを書くことさえしません。同じものであってもRESTRICTを使用しますが、SELECTや別の表記法を使用する人など、アメリカの他の人にはもっと混乱が生じます。だから、あなたが英国出身でないなら、私の質問はもう少し混乱します。/ – JadstaSeven

答えて

1

は、我々は0123のような些細な構文の違いを無視した場合であっても、関係代数の単一のバージョンがありません対PROJECT OVER。彼らはすべての関係の同じ概念を持っていません。 とは何ですか?の定義はSELECT/RESTRICTですか?私たちはあなたに言うことはできません、あなたは私たちに教えなければなりません

ANDは、使用する関係代数のバージョンがSELECTで任意にネストされた条件を許可する場合に有効です。元の関係代数は、単一の平等または不等式しか許さなかった。あなたはあなたの割り当てに "関係代数" & "SELECT"が何を意味するのかを知る必要があります。しかし、あなたが書くことができるいずれかの方法:

SELECT (SELECT TRAIN WHERE departure-station = 'LONDON') 
WHERE destination-station = 'KENT' 

あなたの長い形式は無意味TABLE3を設定しますが、その後、再びそれを設定し、それを使用しません。 INTERSECTは同じ属性セットを持つ2つのリレーションを必要とするため、長いフォームも無効です。しかし、あなたは正しいです。INTERSECT並行AND。それでNATURAL JOINもそうです。すべてのテーブル(指定またはクエリ)は、述語を持ちます。つまり、タプルメンバーシップ条件を与える、属性によってパラメータ化されたステートメントテンプレートです。例えばTRAINに、宛先ステーション出発-駅からどこに行くか(何かのような)電車列車コードタイプ電車型のタプルです。 INTERSECT & NATURAL JOIN戻りタプルは、ある関係にあります。もう一方の関係の述語であるを満たしています。同様にUNIONはORの計算を行い、AND NOTの計算はMINUS ... WHEREcondition ... AND の条件はです。例えば、あなたのANDSELECTがタイプ電車型の電車列車コードタプル出発-駅から行くに、宛先ステーション出発、駅で =「LONDON」AND 先ステーション = 'ケント'。 PROJECTrelationOVERattributes keptは、いくつか(値について)は属性は述語をドロップするための計算します。例えばTABLE4はSOME 電車型逸脱駅 & 先ステーション、タイプ電車型の列車コード FOR出発-駅から先ステーションに行くタプルですそして宛先ステーション = 'ケント'。

ANDを使用しない別の答えはTABLE1 INTERSECT TABLE2です。なぜあなたは他のすべてのことをしていますか? (例えば、あなたはいくつかの予測をして元のものと結合しましたが、それはいつも何を与えるのですか?)

this answerを参照してください。

+0

このよく説明された答えをありがとう!これは多くの助けになりました。長い回答について私は確信が持てませんでしたが、間違っている可能性が高いと考えましたが、あなたが示したように単純に行うことはできませんでした。関係代数のバージョンについては、私たちには知らされていないので、実際のバージョンはわかりません。関係するalgebaであり、RESTRICT関数を一般的に使用していると言われています(SELECTを使用しないとそのバージョンを示すことはできません)。あなたが説明して使用できないオリジナルのバージョンかもしれません。その場合は、最後の答えが特に役に立ちます。 – JadstaSeven

+0

*どういうわけか*あなたの割り当てをくれた人は誰でも、「制限」と言ったときの意味を定義しています。講義?スライド?ノート?教科書?参考資料ですか?そして彼らも例を挙げました。 (私は、Avison&Fitzgeraldを予測しています) – philipxy

+0

ちょうど私の答えにどこにANDが2つのWHEREと書かれることができます。 – philipxy

1

私はOracle SQLに精通していませんが、私はMySQLに精通しており、基本的な構文は同じだと思います。あなたのANDの使い方は正しいように見えますが、あなたの質問にFROMキーワードがないようです。テーブルが呼び出された場合TRAINは、やってみてください:

SELECT * FROM TRAIN WHERE departure-station = 'LONDON' AND destination-station = 'KENT' 
+0

質問は、関係代数式について質問しています。彼らはシンボルではなくアルファベットの名前を使用しています。 – philipxy

1

を「と」リレーショナル代数では確かに有効で、次のように書くことができます。

σ departure-station = 'LONDON' AND destination-station = 'KENT' (TRAIN) 

これは基本的なチュートリアルですが、それはほとんどの定義RAの概念:

https://www.tutorialspoint.com/dbms/relational_algebra.htm

+0

ああ、ありがとう、それは私が望んでいたもので、答えはだと思ったが、今まではわからなかった! – JadstaSeven

+0

@philipxy、ありがとう、今編集中 – Jayvee

関連する問題