2016-04-17 8 views
0

このリレーショナル代数文は何をしますか?私は、SQLクエリに関係代数から変換しようとしています(SQLクエリに変換する)

ρ(R1, ΠroomId((ΠguestIdσage<35Guest) Natural Join Reservation)) 
ρ(R2, ΠroomIdσprice≤100∨numberOfBeds>2Room) 
R1 ∧ R2 

私はそれが第二部のためにR1とR2に出力の名前を変更し、その後、それがR1を実行していることを理解しますR2は

しかし、私の混乱がクエリ

誰かが助けるか、これが行われることになる方法についてのいくつかの洞察を提供することができますに関係代数から変換されましたか?

答えて

0

最初の文はage35より低いすべてのレコード、projectingのみguestId列関係Guestからselectingです。

この得られた関係は、その後、別のテーブルReservationroomIdprojecting結果と結果R1を呼び出すとnaturally joinedあります。

第二の文は、この第2の結果R2を呼び出して、関連ルームからselectingprice低い又は等しい100より以上より2ベッド、projectingroomIdで結果を有するすべての行です。アイデアは低く、少なくとも2台のベッドや価格を持っている35歳未満のお客様のために確保すべての部屋を選択することです

SELECT roomId AS R1 
FROM (
    SELECT guestId 
    FROM Guest 
    WHERE age < 35 
) AS YoungGuests NATURAL JOIN Reservation 
WHERE roomId IN (
    SELECT roomId AS R2 
    FROM Room 
    WHERE price <= 100 OR numberOfBeds > 2 
); 

:私はこれを正しく読めば

、それが何かのようにSQLへの変換があるべきです実施例(いくつかのダミーデータを有する)。Here実施例

+0

あなたは連合がどこから来たのか説明できますか? '^'はANDではないのですか? – RandomMath

+0

@RandomMathはい、私はそれを誤解しました。修正されました: – Cynical

+0

私はこのクエリを試しました - しかし、これは正しく翻訳されていないので、エラーが発生しました – RandomMath

関連する問題