データベース工学 試験問題 2007年7月30日(月) 10:30 – 12:

データベース工学 試験問題
2015 年 2 月 5 日(木) 13:00 – 14:30
[1] 次の図は、ある中古車販売業者が販売情報を管理するためのデータベースを構築しようとした際に作成した実体
関連図である。この実体関連図から導出されるリレーションスキーマを記せ。
製造年
車台番号
車名
(1, 1)
自動車
(0, N)
製造
販売年月日
(0, N)
会社名
販売額
販売
顧客番号
(0, N)
所在地
メーカー
氏名
電話番号
顧客
[2] ある通信販売会社が顧客からの注文を管理するためのリレーションスキーマとして以下のスキーマを考えた。
注文(注文番号, 注文年月日, 顧客番号, 顧客名)
注文明細(注文番号, 商品番号, 商品名, 単価, 数量)
例えば、ある顧客が 2 つの商品を一度に注文した場合、スキーマ「注文」には
(1001, ’2015-02-05’, 8001, ’阪大太郎’)
同一の顧客が同一年月
日に複数の注文を行う
こともあると想定
といったタプルが挿入され、スキーマ「注文明細」には
(1001, 5010, ’32 インチテレビ’, 59800, 1)
(1001, 8155, ’400L 冷蔵庫’, 128000, 1)
といったタプルが挿入されることになる。なお、商品番号は一意であるが、商品名は一意でないものとする。
(1) 上記のスキーマ「注文」および「注文明細」の候補キーを、それぞれ示せ。
(2) 上記のスキーマ「注文」および「注文明細」で成立する関数従属性のうち、左辺が候補キーでないものを、
「X→A」の形で列挙せよ。(A は単一属性とする。
)
(3) 上記のスキーマ「注文」および「注文明細」を第三正規形まで正規化したリレーションスキーマを示せ。
[3] ある大学で教員の発表論文を管理するための以下のようなリレーションスキーマを考える。
教員(教員 ID, 氏名, 部局 ID)
部局(部局 ID, 部局名)
論文(教員 ID, 論文種別, 論文名, 掲載誌名, 発行年)
以下の問合せを SQL で記述せよ。ただし、論文数を求める際は延べ数とする。つまり、1つの論文を2名の教員
が共同執筆している場合は、2件と数えるものとする。
(1) 「阪大太郎」の発表論文の論文名、掲載誌名、発行年の一覧を、発行年の降順に求める問合せ。
(2) 「工学研究科」に所属する教員が 2014 年に発表した論文の総数を求める問合せ。
(3) 教員毎の発表論文数一覧(教員名と発表論文数を出力)を、発表論文数が多い順(降順)に求める問
合せ。
(4) 2014 年の発表論文数が1つもない教員の氏名と部局名の一覧を求める問合せ。
裏へ続く
[4] 空欄を埋めよ。

データベース管理システムで用いられるファイル編成のうち、キー値を指定したレコード検索が最も高速に
処理できるファイル編成は (
a
) である。また、キー以外のフィールド(属性)の値を指定した検索や
範囲検索を高速化するためには、そのフィールドを索引属性とする (

d
c
) な
) に変換する処理が行われる。
データベース管理システムでの障害回復では、(
としては、(

) を生成し付加すればよい。
データベース管理システムでの問合せ最適化機構では、処理すべき SQL から、短時間で (
(

b
f
) 方式、(
g
e
) 方式、(
h
) を使った方式が用いられることが多い。その方式
) 方式がある。
トランザクションの特性の一つに、データベース処理の基本単位はトランザクションである、という特性が
ある。この特性を (
i
) と呼ぶ。また、いったんコミットしたトランザクションの実行結果は、障害が
発生したとしても消滅してはならない、という特性は、(
j
) と呼ばれる。
[5] 同時実行制御について、以下のスケジュールの先行グラフを示し、競合直列可能かどうかを判定せよ。ただし、
Ri (X), Wi (X) はそれぞれトランザクション Ti によるデータ項目 X に対する読み取り操作、書き込み操作を表す
ものとする。
R1(A) R2(B) W2(B) R1(B) W1(A) R3(A) R3(C) W3(A) W1(B) W2(C)
[6] 1次の B 木で編成されたレコード群が、以下のような状態でノード(ページ)に配置されているとする。図中の
数値はレコードのキー値である。
33 52
20
12 17
21
38 44
35
41
60
46 48
55
69
この状態の B 木に、以下の操作を行った後の状態を図示せよ。
(それぞれ、上の図の状態に対する操作とする。
(a)から(d)の操作を連続して行うのではないことに注意。
)
(a)
キー値が 18 のレコードを追加
(b)
キー値が 50 のレコードを追加
(c)
キー値が 21 のレコードを削除
(d)
キー値が 52 のレコードを削除
[7] この講義の感想を3行以上書け。