Comments
Description
Transcript
データベース設計 2010 年度 定期試験問題 (担当講師福田
データベース設計 2010 年度 定期試験問題 (担当講師 福田 剛志) 1 問 1. 銀行の顧客と口座に関するデータベースを設計する. • 顧客に関する情報は,名前,住所,電話番号,顧客番号を含む.ただし,顧客番号で顧 客が特定できるものとする. • 口座に関する情報は,支店番号,口座番号,残高を含む.ただし支店番号と口座番号を 合わせて一つの口座が特定できるものとする. • ある口座は必ず一人の顧客の持ち物であって,一人の顧客は複数の口座を持つことがで きるものとする. (1) このデータベースの概念モデルを実体関連図として描け.ただし実体のキーと関連の多 重度が分かるようにすること. (2) (1) で描いた実体関連図をリレーショナルモデルに変換し,そのスキーマを示せ.ただ し,BCNF の範囲内で出来るだけリレーション数を少なくすること.なお,属性のドメイン (データ型)を明記する必要はない. 問 2. 次の問いに答えよ. (1) 自明な関数従属性の定義を述べよ. (2) リレーションの超キー (super key) の定義を述べよ. (3) ボイス・コッド正規形 (BCNF) の定義を述べよ. 問 3. リレーション R(A1 , A2 , . . . , An ) について,以下の場合に何種類の超キーが存在する か.n のできるだけ簡単な関数で答えよ. (1) {A1 , A2 } だけがキーのとき. (2) {A1 , A2 , A3 } と {A3 , A4 } だけがキーのとき. 問 4. 属性数が 2 個のリレーションは必ず BCNF であることを証明せよ. 問 5. リレーション R(A, B, C) において,関数従属性 A → B と BC → A が成り立って いる. (1) R のキーをすべて列挙せよ. (2) R を BCNF か判定し,そうでない場合は BCNF に分解せよ. (3) R は 3NF か判定し,そうでない場合は 3NF に分解せよ. 問 6. リレーション R(A, B, C, D) において,関数従属性 A → B, B → D が成り立っている. これを BCNF に正規化する際,誤って最初に R1 (A, B), R2 (A, C, D) と分解してしまった. (1) もし必要であれば,このまま R1 , R2 を BCNF に分解せよ. (2) (1) の結果と正しい R の BCNF 分解との違いを論ぜよ. 問 7. リレーション R(A, B, C) において,多値従属性 A B が成り立っているとする.こ のリレーションに (a, b1 , c1 ), (a, b2 , c2 ), (a, b3 , c3 ) が含まれているとき,これら以外にこのリ レーションに存在するはずのタプルをすべて列挙せよ. データベース設計 2010 年度 定期試験問題 (担当講師 福田 剛志) 2 問 8. 次のデータベーススキーマを持つデータベースを考える. • 映画 (映画タイトル,制作会社名, 製作費) • 出演 (映画タイトル,俳優名, 出演料) • 俳優 (俳優名, 生年月日) ここで,映画リレーションは映画のタイトル(題名)とその映画を制作した制作会社の名前と 映画の製作費を,出演リレーションは映画に出演している俳優の名前とその出演料を,俳優 リレーションは俳優の名前とその年齢を,それぞれ表している.下線はリレーションのキー を表している.以下を求める SQL 文を答えよ.ただし,生年月日には <, ≤ などの比較演算 子が使用できるものとする. (1) 21 世紀生まれの俳優が出演している映画のタイトル. (2) 俳優 ‘戸田恵梨香’ と ‘松田翔太’ が共演している映画. (3) 一番多くの映画を製作している制作会社名. (4) 各映画の製作費に占める出演俳優への出演料の総額の割合. 問 9. リレーション R(A, B, C) のインスタンスで関数従属性 A → B が成り立っていると きに限り,結果が空となる SQL 文を作れ. 問 10. 反準結合 (anti-semijoin)R n S とは,R と S とを自然結合 (natural join) した際に ダングリングタプル (dangling tuple) となる R のタプルだけを返す演算である.R(A, B) と S(A, C) の反準結合を求める SQL 文を作れ. 問 11. 一般に,ディスク上にデータを配置するデータベースでは,インデックスとして B 木を用いる方が 2 分木を用いるより有利である.その理由を簡潔に述べよ. 問 12. 以下のスケジュールの先行グラフを描いて,競合直列可能 (conflict serializable) か 否か判定せよ.ただし,ri (X), wi (X) はそれぞれ,トランザクション i がデータ項目 X に対 して行う読み出しアクションと書き込みアクションである. (1) S1 = w3 (A)w2 (C)r1 (A)w1 (B)r1 (C)w2 (A)r4 (A)w4 (D) (2) S2 = r1 (A)w1 (A)r2 (A)w2 (A)r1 (B)w1 (B)r2 (B)w2 (B) 問 13. スケジュール S1 と S2 が競合等価 (conflict equivalent) であれば,それらの先行グラ フ (precedence graph) P (S1 ) と P (S2 ) が等しくなることを証明せよ.また,その逆は成り立 たないことを,反例を用いて示せ. 問 14. 2 フェーズロックについて説明せよ. 問 15. この講義に対する意見・感想を述べよ.なお,この問題も採点対象であるが,意味 のある解答に対しては平等に加点するので,率直に記述せよ.批判的な内容も歓迎する. 以上