データベース設計 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. この講義に対する意見・感想を述べよ.なお,この問題も採点対象であるが,意味
のある解答に対しては平等に加点するので,率直に記述せよ.批判的な内容も歓迎する.
以上