ホテルの予約システムの概念データモデリングに関する次の記述を読んで,設問に答えよ。
ホテルを運営するX社は,予約システムの再構築に当たり,現状業務の分析及び新規要件の洗い出しを行い,概念データモデル及び関係スキーマを設計した。
〔現状業務の分析結果〕
(1)全国各地に10のホテルを運営している。ホテルはホテルコードで識別する。
(2)客室はホテルごとに客室番号で識別する。
(3)客室ごとに客室タイプを設定する。客室タイプはホテル共通であり,客室タイプコードで識別する。客室タイプにはシングル,ツインなどがある。
(4)館内施設として,レストラン,ショップ,プールなどがある。
2.会員
利用頻度が高い客向けの会員制度があり,会員は会員番号で識別する。会員には会員番号が記載された会員証を送付する。
3.旅行会社
X社のホテルの宿泊予約を取り扱う複数の旅行会社があり,旅行会社コードで識別する。
4.予約
(1)自社サイト予約と旅行会社予約があり,予約区分で分類する。
(2)自社サイト予約では,客はX社の予約サイトから予約する。旅行会社予約では,客は旅行会社を通じて予約する。旅行会社の予約システムからX社の予約システムに予約情報が連携され,どの旅行会社での予約かが記録される。
(3)1回の予約で,客は宿泊するホテル,客室タイプ,泊数,客室数,宿泊人数,チェックイン予定年月日を指定する。予約は予約番号で識別する。
(4)宿泊時期,予約状況を踏まえて,予約システムで決定した1室当たりの宿泊料金を記録する。
(5)客が会員の場合,会員番号を記録する。会員でない場合は,予約者の氏名と住所を記録する。
5.宿泊
客室ごとのチェックインからチェックアウトまでを宿泊と呼び,ホテル共通の宿泊番号で識別する。
6.チェックイン
フロントで宿泊の手続を行う。
(1)予約有の場合には該当する予約を検索し,客室を決め,宿泊を記録する。泊数,宿泊人数,宿泊料金は,予約から転記する。泊数,宿泊人数宿泊料金が予約時から変更になる場合には,変更後の内容を記録する。
(2)予約無の場合には泊数,宿泊人数,宿泊料金を確認し,客室を決め,宿泊を記録する。
(3)宿泊者が会員の場合,会員番号を記録する。ただし,予約有の場合で宿泊者が予約者と同じ場合,予約の会員番号を宿泊に転記する。
(4)一つの客室に複数の会員が宿泊する場合であっても記録できるのは,代表者1人の会員番号だけである。
(5)宿泊ごとに宿泊者全員の氏名,住所を記録する。
(6)客室のカードキーを宿泊客に渡し,チェックイン年月日時刻を記録する。
7.チェックアウト
フロントで客室のカードキーを返却してもらう。チェックアウト年月日時刻を記録する。
8.精算
(1)通常,チェックアウト時に宿泊料金を精算するが,客が希望すれば,予約時又はチェックイン時に宿泊料金を前払いすることもできる。
(2)宿泊客が館内施設を利用した場合,その場で料金を支払わずにチェックアウト時にまとめて支払うことができる。館内施設の利用料金は予約システムとは別の館内施設精算システムから予約システムに連携される。
9.会員特典
会員特典として,割引券を発行する。券面には割引券を識別する割引券番号と発行先の会員番号を記載する。割引券には宿泊割引券と館内施設割引券があり,割引券区分で分類する。1枚につき,1回だけ利用できる。割引券の状態には未利用,利用済,有効期限切れによる失効があり,割引券ステータスで分類する。
(1)宿泊割引券
①会員の宿泊に対して,次回以降の宿泊料金に充当できる宿泊割引券を発行し,郵送する。1回の宿泊で割引券を1枚発行し,泊数に応じて割引金額を変える。旅行会社予約による宿泊は発行対象外となる。発行対象の宿泊かどうかを割引券発行区分で分類する。
②予約時の前払いで利用する場合,宿泊割引券番号を記録する。1回の予約で1枚を会員本人の予約だけに利用できる。
③ホテルでのチェックイン時の前払い,チェックアウト時の精算で利用する場合,宿泊割引券番号を記録する。1回の宿泊で1枚を会員本人の宿泊だけに利用できる。
(2)館内施設割引券
①館内施設割引券を発行し,定期的に送付している会員向けのダイレクトメールに同封する。館内施設の利用料金に充当できる。チェックアウト時の精算だけで利用できる。
②チェックアウト時の精算で利用する場合,館内施設割引券番号を記録する。1回の宿泊で1枚を会員本人の宿泊だけに利用できる。宿泊割引券との併用が可能である。
〔新規要件〕
会員特典として宿泊時にポイントを付与し,次回以降の宿泊時の精算などに利用できるポイント制を導入する。ポイント制は次のように運用する。
(1)会員ランクにはゴールド,シルバー,ブロンズがあり,それぞれの必要累計泊数及びポイント付与率を決める。ポイント付与率は上位の会員ランクほど高くする。
(2)毎月末に過去1年間の累計泊数に応じて会員の会員ランクを決める。
(3)チェックアウト日の翌日午前0時に宿泊料金にポイント付与率を乗じたポイントを付与する。この場合のポイントの有効期限年月日は付与日から1年後である。
(4)宿泊料金に応じたポイントとは別に,個別にポイントを付与することがある。この場合のポイントの有効期限年月日は1年後に限らず,任意に指定できる。
(5)ポイントを付与した際に,有効期限年月日及び付与したポイント数を未利用ポイント数の初期値として記録する。
(6)ポイントは宿泊料金,館内施設の利用料金の支払に充当でき,これを支払充当と呼ぶ。支払充当では,支払充当区分(予約時,チェックイン時,チェックアウト時のいずれか),ポイントを利用した予約の予約番号又は宿泊の宿泊番号を記録する。
(7)ポイントは商品と交換することもでき,これを商品交換と呼ぶ。商品ごとに交換に必要なポイント数を決める。ホテルのフロントで交換することができる。交換時に商品と個数を記録する。
(8)支払充当,商品交換でポイントが利用される都度,その時点で有効期限の近い未利用ポイント数から利用されたポイント数を減じて,消し込んでいく。
(9)未利用のまま有効期限を過ぎたポイントは失効し,未利用ポイント数を0とする。失効の1か月前と失効後に会員に電子メールで連絡する。失効前メール送付日時と失効後メール送付日時を記録する。
(10)ポイントの付与,支払充当,商品交換及び失効が発生する都度,ポイントの増減区分,増減数及び増減時刻をポイント増減として記録する。具体例を表1に示す。
表1 ポイント増減の具体例
1.概念データモデル及び関係スキーマの設計方針
(1)概念データモデル及び関係スキーマの設計は,まず現状業務について実施し,その後に新規要件に関する部分を実施する。
(2)関係スキーマは第3正規形にし,多対多のリレーションシップは用いない。
(3)概念データモデルでは,リレーションシップについて,対応関係にゼロを含むか否かを表す“O”又はは記述しない。
(4)サブタイプが存在する場合,他のエンティティタイプとのリレーションシップは,スーパータイプ又はいずれかのサブタイプの適切な方との間に設定する。
2.〔現状業務の分析結果〕に基づく設計
現状の概念データモデルを図1に,関係スキーマを図2に示す。
図1 現状の概念データモデル(未完成)
図2 現状の関係スキーマ(未完成)
3.〔新規要件〕に関する設計
新規要件に関する概念データモデルを図3に,関係スキーマを図4に示す。
図3 新規要件に関する概念データモデル(未完成)
図4 新規要件に関する関係スキーマ(未完成)
解答に当たっては,巻頭の表記ルールに従うこと。また,エンティティタイプ名,関係名,属性名は,それぞれ意味を識別できる適切な名称とすること。関係スキーマに入れる属性名を答える場合,主キーを表す下線,外部キーを表す破線の下線についても答えること。
設問1 現状の概念データモデル及び関係スキーマについて答えよ。
(1)図1中の欠落しているリレーションシップを補って図を完成させよ。
解答・解説
解答例
解説
ー
(2)図2中の ア 〜 エ に入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ。
解答・解説
解答例
ア:客室タイプコード
イ:ホテルコード,客室タイプコード,旅行会社コード,宿泊割引券番号
ウ:ホテルコード,客室番号,宿泊割引券番号,館内施設割引券番号
エ:予約番号
解説
ー
設問2 現状の業務処理及び制約について答えよ。
(1)割引券発行区分の値が発行対象となる宿泊の条件を表2にまとめた。予約有の場合は番号1と2,予約無の場合は番号3の条件を満たしている必要がある。表2中の a 〜 d に入れる適切な字句を答えよ。
表2 割引券発行区分の値が発行対象となる宿泊の条件
解答・解説
解答例
a:宿泊
b:会員番号
c:予約区分 (又は 旅行会社コード)
d:自社サイト予約 (又は NULL)
解説
ー
(2)予約時に割引券を利用する場合の制約条件を表3にまとめた。番号1〜3全ての条件を満たしている必要がある。表3中の e 〜 j に入れる適切な字句を答えよ。
表3 予約時に割引券を利用する場合の制約条件
解答・解説
解答例
e:割引券ステータス(又は 割引券区分)
f:未利用(又は 宿泊割引券)
g:割引券区分(又は 割引券ステータス)
h:宿泊割引券(又は 未利用)
i:会員番号
j:会員番号
解説
ー
設問3 新規要件に関する概念データモデル及び関係スキーマについて答えよ。
(1)図3中の欠落しているリレーションシップを補って図を完成させよ。なお,図3にないエンティティタイプとのリレーションシップは不要とする。
解答・解説
解答例
解説
ー
(2)図4中の オ 〜 サ に入れる一つ又は複数の適切な属性名を補って関係スキーマを完成させよ。
解答・解説
解答例
オ:必要累計泊数,ポイント付与率
カ:商品名,ポイント数
キ:ポイント増減区分,ポイント増減数,ポイント増減時刻
ク:有効期限年月日,未利用ポイント数
ケ:失効後メール送付日時
コ:支払充当区分
サ:商品コード,個数
解説
ー
(3)ポイント利用時の消込みにおいて,関係“ポイント付与”の会員番号が一致するインスタンスに対する次の条件について表1の用語を用いてそれぞれ20字以内で具体的に答えよ。
(a)消込みの対象とするインスタンスを選択する条件
解答・解説
解答例
未利用ポイント数が0より大きい。
解説
ー
(b)(a)で選択したインスタンスに対して消込みを行う順序付けの条件
解答・解説
解答例
有効期限年月日が近い順
解説
ー
IPA公開情報
出題趣旨
システムの再構築では,現状業務の概念データモデリングを行い,現状のデータ構造を理解してから新規の概念データモデリングを行うことがある。この場合,現状業務と新規要件を正確に概念データモデルに反映することが求められる。
本問では,ホテルの予約システムの再構築を題材として,現状業務及び新規要件を概念データモデル,関係スキーマに反映する能力,業務処理及び制約の条件を整理する能力を問う。
採点講評
問 2 では,ホテルの予約システムの再構築を題材に,概念データモデル及び関係スキーマ,並びに業務処理及び制約について出題した。全体として正答率は平均的であった。
設問 1 では,(2)ウの正答率が低かった。宿泊割引券番号と館内施設割引券番号のどちらかだけを記述した解答が散見された。館内施設割引券が宿泊割引券と併用可能であることを,正確に状況記述から読み取ってほしい。
設問 2 では,(1)a の正答率がやや低かった。a を,宿泊ではなく予約とした誤答が散見された。予約者と宿泊者は異なる場合があり,宿泊者が会員の場合に宿泊割引券が発行されることから正しい条件を導き出してほしい。
設問 3 では,(2)ク~サの正答率がやや低かった。サブタイプの視点での関係スキーマの属性を整理することは実務でもよくあることであり,理解を深めてほしい。