2009年 秋期 応用情報技術者試験 問6

旅行業務用データベースの設計

旅行会社である Z 社では、四半期ごとにパッケージツアー(以下、ツアーという)の計画を作成し、発売開始後、申込みを受け付ける。Z 社には、本社のほかに、地域ごとに支店があり、ツアーの申込みは、インターネットと支店店頭の両方で行える。また、ツアーの申込みに関するデータは、本社のデータベースで一括して管理する。

[ツアー]

・ツアーにはツアーコードが付されている。ツアーの内容が同じであれば、出発日が異なってもツアーコードは同じであるが、日数が異なればツアーコードは異なる。

・ツアーは、ツアーコードが同じでも、出発日によって価格が異なることがある。

[ツアーに関する業務]

・ツアーの申込みを受け付けたときには、申込番号、申込者の顧客番号、申込日、申し込んだツアーのツアーコード、そのツアーの出発日、参加人数を登録する。新規の顧客の場合には顧客番号を新たに設定し、顧客の氏名、住所、郵便番号、電話番号、電子メールアドレスを登録する。

・ツアーを申し込んだ顧客には、店頭での申込みがインターネットからの申込みかにかかわらず、それ以降、支店から四半期ごとにツアーなどに関する情報をダイレクトメールで送付する。顧客を担当する支店は、顧客の郵便番号によって決めている。発送は、その時点で担当となっている支店が行う。なお、支店間の業務量の均等化のために、担当範囲を随時見直すことにしている。

[データベースの設計]

・E-R 図を作成してテーブル設計を行った結果、ツアーテーブル、申込みテーブル、顧客テーブル、支店テーブルの四つのテーブルから成るデータベースを作成することにした。

・E-R 図を図 1 に、設計したテーブルを表 1 に示す。なお、表 1 において、下線の引かれた列名は、主キーである。

表1 テーブル設計
テーブル名列名
ツアーツアーコード、出発日、日数、ツアー名称、価格
申込み申込番号、顧客番号、申込日、ツアーコード、出発日、参加人数
顧客顧客番号、氏名、住所、郵便番号、電話番号、電子メールアドレス、担当支店コード
支店支店コード、支店名

[データベースの運用]

・ツアーテーブルには、四半期ごとにその期のツアー商品を追加する。当該四半期の間にツアーテーブルの内容が変更されることはない。

・ツアーの申込みを受け付けるごとに、申込みテーブルに行を 1 件追加する。申込番号は、ツアーの申込み 1 件ごとに設定する。

[正規化に関する検討]

ツアーテーブルの非キー属性の中には、候補キーに完全関数従属していない属性が存在するので、ツアーテーブルは第二正規形ではない。すなわち、非キー属性であるabが、候補キーの一部であるcだけに関数従属している。

顧客テーブルの非キー属性の中には、ほかの非キー属性を介して候補キーに関数従属(推移関数従属)している属性があるので、顧客テーブルは第三正規形ではない。

具体的には、非キー属性であるdは、やはり非キー属性であるeに関数従属している。ただし、Z 社では、入力間違いなどの可能性を考慮し、顧客テーブルの郵便番号は住所に関数従属しないものと考えている。

出典:平成21年度 秋期 応用情報技術者試験 午後 問6