2

現在、データベースのクラスでリレーショナル代数を学んでおり、このステートメントについて別の学生と議論しています

/Project pizza (/Select age < 24 (Person ⋈ Eats))

この声明は、24 歳未満の人が食べたすべてのピザを返還することになりますか?

スキーマはこちら-

Person (name, age, gender)  
Frequents (name, pizzeria)  
Eats (name, pizza)      
Serves (pizzeria, pizza, price) 

私の同僚は、私たちがピザを射影していて、その人物のスキーマにピザが含まれていないため、うまくいかないと信じています。しかし、Person と Eats に参加することで、年齢によってピザを投影し、選択できる新しい関係を作成できるためだと思います。

4

1 に答える 1

2

正しい答えを得るには、式を単純に評価します。

人 /joins Eats

ピザを食べる各人が存在するテーブルになります。そのスキーマは次のとおりです。

(名前、年齢、性別、ピザ)

今、あなたが選択します。選択はスキーマに影響しないため、結果のスキーマは同じです。

次に、ピザを投影します。スキーマは単純に (ピザ) です。

これで、24 歳未満の人が食べるピザの名前が予測されました。

そうです、あなたは正しいです。JOIN は新しいテーブルを作成します。

--dmg

于 2013-05-02T08:03:31.433 に答える