フクの非日常

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DB:平成21年 午後II-2

昨年の午後II問題やりました。重点ポイントは以下の通り。

・問題の全体像を掴む
・どこに何が書いてあるか探す読み方
・時間内に回答する

とにかく、問題用紙に線を引いたり、マルをつけたり、□をつけたり、線を引いたり、いろいろとマークしながら効率的に進めていくことに気をつけました。文中にエンティティ間の関連を示すところがあればその場でぐりっと囲んで線を引っ張るわけです。

そうやってチャレンジしたのは昨年の本試験でも選択した午後IIの2問目。この問題、設問1~3の区別がなく、「設問」とだけした潔い問題形式であります。やることは、エンティティの穴埋め、テーブルの穴埋め、エンティティの追加、リレーションの追加、という感じで問題文からテーブル設計を詰めて行く感じです。問題文中のあちこちにテーブルのヒントや、リレーションを暗示したところが満載で答案作成にかなりの記述量がある問題です。

全体を見るということをテーマにしているため今回は頭から読まず、設問から読み始めました。概念データモデル、関係スキーマの完成をするのが大きな目的のため、関連しそうなキーワード(特にスーパークラスなど)を中心に問題文を読んで行き、業務ルールが書いてある箇所を見つけると、そのルールを実現するためにはどういったエンティティが必要になってくるか?ということを考えながら良い進めて行きます。するとですね、思いのほかすっと答えが出てくるものがありました。たとえばa~fに入れるエンティティを答えなさい、なんて問いは「ここはスーパークラスとサブクラスが入るに違いないぞ」といった気持ちで読むと、見つかるんですよね。しかも、気をつけておけばそれらのリレーションまで説明してあるところが読み取れる。そのへんが読めたら熱いうちに図なり、答案なりにすぐに落とし込むのがポイントのようです。小さな関係ですが、後から見返すと「あー、だからこのテーブルにこの項目が入るんだ」とか腹に落ちるところがでてきます。

この問題、かなり良くできました。書いているうちにエンティティの数が多すぎでは?リレーションが複雑すぎでは?と不安になりましたが解答を見るとほぼ一致。微妙な言い回しは異なりますが、追加したリレーションの数などぴったり一致したのでなかなか良く読めたのではないかと。

間違ったポイントとしては、SKUのテーブルを追加したときに商品コードを含めなかったこと。逆に、通常商品の中にSKUを持つようにしていたので考え方が逆だったということでしょう。他に答えを作りながら気になった点としては、カタログのサブクラスを作るとき、サブクラスの主キーをどう持つべきか?という点。スーパークラスの主キーに加えて、新しくキーを持つべきなのか。または、名前の付け方をスーパークラスの主キーと同じにするべきか、違うものにするべきか。答えとしては、必要でなければ新しくキーを追加する必要はないが、サブクラスにキーを持つときはサブクラスごとにキーの名前が変わるのが普通のようである。カタログ番号のサブクラスでは、ブランド別カタログ番号、総合カタログ番号、特売カタログ番号、のような感じで。

あと、ミスした点としては、多対多の関係に対し、リレーションを追加して、1対多の関係に持っていく場合について。出荷と受注明細については多対多の関係があるので出荷明細を作り、1対多の関係に落とさなくてはならない。その場合、出荷と受注明細のキーに加え、出荷明細番号などのキーを追加しなくてはならない点に見落としがあった。追加のキーが無ければ、両者の関係を複数持てないので必要と気がつくべきであったがそこまで書けていなかった。リレーションを考えるときは常に着いてくるはずなので意識するようにしよう。

8割は取れたという感触。すこしづつコツがつかめてきたのかも。もし今年もこういったデータモデルを完成させるタイプの問題が出題されたら自信を持って選択するようにしよう。

コメント


管理者にだけ表示を許可する
 

 

トラックバック

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。