0

ここに画像の説明を入力してください

これを関係代数ツリーに変換するにはどうすればよいですか?

論理的なステップは何ですか?最初に関係代数に変換する必要がありますか?または、SQLからツリーに直接移動できますか?

4

2 に答える 2

4

最初に関係代数に変換し、次にツリーに変換します。

ほら、このSELECT句には3つのフィールドしか必要ありません。それはprojectionです。

このFROM句には3つの関係があります。それはCartesian productです。

WHERE節はたくさんのsselectionを与えます。これは、ツリーに変換する前に関係代数に変換するのに役立つ部分です。

クラスでどの表記を使用するかはわかりませんが、一般的な形式の何かが必要になる可能性があります。

projection((things-you-want), selection((criteria), selection((criteria),
  selection((criteria), aXbXc))))

または、外積から生じる...ものの選択の選択の予測。

インストラクターの気の利いた状況によっては、フィールドの名前を変更しなければならない場合があることに注意してください。ShowとSeatの両方に属性としてshowNoがあるため、一意の名前を付ける前に外積を取ることが許可されない場合があります(代替ルール、属性は暗黙のリレーション名プレフィックスによって一意に識別されます)。

さらに、レッスンの目的によっては、これらの操作の一部を通勤する場合があります。日付範囲を制限する手段として、クロス積を取得する前に予約時に選択を行うことができます。最終結果は同等になります。

とにかく、SQLから関係代数、そしてツリーに移行するのは本当にそれほど多くの余分な作業ですか?練習すれば、中間のステップをスキップできることは間違いありません。しかし、そもそも質問をされたので、動議を通過することをお勧めします。高校でなくなった簡単な用語を組​​み合わせるための中学校の数学の教師からの「あなたの仕事を見せてください」という要件を覚えていますか?ここでも同じルールが適用されます。私はこれをCS課題の元学年者として言います。

于 2011-05-26T17:11:10.920 に答える
3

そのSQLクエリの結果はリレーションではないため、RAに完全に相当するものはありません。DISTINCTを追加して同じSQLクエリのRAバージョンを作成してみることができます。

于 2011-05-28T09:54:12.700 に答える