私は学校で次回のテストを準備しています。英語の記述から関係代数クエリを作成する
いくつかの例題の質問を行っているうちに、私は特定の質問に固執しました。
Passenger {p_id, p_name, p_nation} with key {p_id}
Flight {f_no, f_date, f_orig, f_dest} with key {f_no, f_date}
Trip {p_id, f_no, f_date, class} with key {p_id, f_no,f date}
and foreign keys [p_id] ⊆ Passenger[p_id] and [f_no, f_date] ⊆ Flight[f_no, f_date]
質問は尋ねる:
は、乗客が成田からの便に占領されているクラスを考えてみましょう。 関係代数を書く: がこれらのクラスの成田から少なくとも1回飛行している乗客のIDは何ですか?
-- rename class to class' in Trip and join with Trip Q1 = Trip JOIN RENAME class\class' (Trip) -- select those Q1 tuples where class = class' Q2 = RESTRICT class = class' (Q2) -- Project for those who traveled in different classes more than once Q3 = PROJECT p_id (Q1 - Q2)
(私はそれを正しくやった場合)Q3は人の乗客のすべてのIDを私が表示されます:私はこれまでのところで何をしたか
異なるクラスで2回以上旅行した。
この時点からさらに助けてもらえる人はいますか?
テキストとして必要な文字を取得するためのGoogleの「Unicodeリレーショナルプロジェクション」など。阿蘇「ユニコードの数学記号」 – philipxy
Q1の式は意味をなさない。 JOINの右のオペランドには、名前の変更が起こっている関係は記述されていません。また、多項式の代数変数もありますので、参考にしてください。 (これまでは、あなたが使っていた演算子だけを知っていました)PS [this](http://stackoverflow.com/a/41800639/3404097) – philipxy
あなたのQ3のコメントは、 "異なるクラス[es]後でQ3が「別のクラスで2回以上旅をした乗客」と言っていますが、これはどちらかというと明確ではありません。実際にどのタプルを記述するかを編集してください。あなたのQ3コードがそれらのIDを与えると思うのはなぜですか?PS私は可能な限りあなたの言語と書式を編集しました。あなたのコードのテキスト版。 – philipxy