H17午後I 問1
携帯電話会社の顧客情報を管理するデータベースの基礎理論
設問1に比べれば,かなりのサービス設問。
過去問をキチントこなしていれば完答できたハズっす。
顧客使用料(顧客番号,電話番号,氏名,生年月日,住所,基本料,通話料,パケット通信料,オプション料,年月度,計算開始日,計算終了日)
設問2(1)
候補キーの指摘
図2 破線枠内は,不完全。逆を返せば,破線枠外は完全。変な詮索はしない。
解答例:設問2(1) {電話番号,年月度}
変な詮索をすると,計算開始日→年月度,計算終了日→年月度が決まるのではないかと。。。思ってしまう。しかし,図4のインスタンスを見ると,計算開始日と計算終了日は,「年月日」ではなく,「日」だけである。
設問2(2)
正規形の指摘とその根拠。
図を見れば一目瞭然。
{電話番号,年月度}→顧客番号→{氏名,生年月日,住所} という推移関数従属がある。
部分関数従属は存在しない。
解答例:設問2(2) 第2正規形
候補キー{電話番号,年月度}に対し非キー属性が部分関数従属せず,{電話番号,年月度}→顧客番号→氏名という推移関数従属が存在するため。(67文字)
設問2(3)
データ登録時の不都合の記述
解答例:設問2(2) 顧客情報である{氏名,生年月日,住所}を電話番号毎,年月度毎に重複登録しなければならない。(45文字)
設問2(4)
推移関数従属を取り除く。「図1と同様の関係スキーマの形式」とあるので,候補キーは明示しない。
解答例:設問2(4)
顧客(顧客番号,氏名,生年月日,住所)
顧客使用料(電話番号,年月度,顧客番号,基本料,通話料,パケット通信料,オプション料,計算開始日,計算終了日)
ちなみに,候補キー,外部キーを明示すると
顧客(顧客番号,氏名,生年月日,住所)
顧客使用料(電話番号,年月度,顧客番号,基本料,通話料,パケット通信料,オプション料,計算開始日,計算終了日)
となる。