共通の文章
フェリー会社の乗船予約システムのデータベース設計に関する次の記述を読んで,
設問に答えよ。
X社は,複数航路でフェリーを運航している。乗船予約システムを構築してから時
間が経過していることから,改めて現行業務を分析し,更に新規要件を洗い出し,
乗船予約システムを再構築することになった。予約,乗船手続,下船手続などに関
する業務について,概念データモデルとテーブル構造を設計した。
[現行業務の分析結果〕
1.フェリーの概要
(1)フェリー
①12隻のフェリーを運航している。フェリーはフェリー番号で識別している。
②一つの設計図で複数のフェリーを造っている。同じ設計図から造られたフ
ェリーを同じ船型のフェリーと呼ぶ。同じ船型であれば,外見だけでなく,
船内施設,宿泊区画などの構成も同じとなる。船型は船型番号で識別してい
る。
③RE,三つの船型があり,船型ごとに4隻のフェリーがある。
④フェリーが乗船容のほかに積載できるのは,次のとおりである。
・乗用車・トラック・バス(以下,車両という)
・ペット持込み用のペットケージ
・自転車・原動機付自転車・自動二輸車(以下,二輪車という)
©どれだけの車両を積載できるかは,車両の長さが基準となる。有船型ごとに
積載可能車両長合計を決めており,積載する車両の車両長の合計が,積載可
能車両長合計を超えない範囲であれば積載可能となる。
©ペットケージ,二輪車については,船型ごとに積載可能数をそれぞれ決め
ている。
(2)宿泊区画
①宿泊区画とは,乗客の宿泊のための販売単位であり,大部屋に設置された
ベッド(定員1名)と個室(定員1名から4名まで)とがある。
②宿泊区画には一意な宿泊区画番号を付与している。宿泊区画番号には,個
a 92ご
室の場合は個室番号,ベッドの場合はベッド番号を用いる。
(3)等級
①宿泊区画は等級に分かれており,等級を等級コードで識別している。個室
の等級には,ロイヤルスイート,スイート,デラックス,レディースデラッ
クスなどがあり,大部屋の等級には,ステート,ツーリストなどがある。
②船型ごとに存在する等級が異なる。例えば,ある船型にはロイヤルスイー
トが存在しないということがある。
③一部の等級のエリアは,後述するカードキーをタッチしないとドアが開か
ず立ち入ることができない。
④同じ等級でも船型ごとに定員,面積が異なる場合がある。
(4)航路
①出発港から幾つかの経由港を経て到着港までを航路と呼ぶ、ただし,経由
港のない航路もある。A港とB港との間を運航している場合,A港発B HEL
B港発A港行とは別の航路となる。航路ごとに航路番号を決めている。
②航路ごとに配船する船型を決めている。
③航路ごとに航路明細として出発港,経由港,到着港,標準入港時刻,標準
出港時刻を決めている。港は港コードで識別している。航路明細の例を表1に
示す。
表1航路明細の例
|gh[emeres[me[oe|」|wee TT sare|
|W|caer[oe|『|4|sae[eee i000っっ、|
|e[rence[oe[re|)|ase CT mmieee|
[we[raxcas[we[ca|4[sae[eae[>]
(5)運航スケジュール
①航路について,出発年月日ごとに配船するフェリーを決める。ある航路に
おいて,同日に複数のフェリーが出発することはない。運航スケジュールの
例を表2に示す。
表2運航スケジュールの例
|m[caer[emer|AA|
|9|Cf生|eee|Ooぇ|
②出発港,経由港,到着港にいつ入出港するかの運航スケジュール明細を決
OS,同じ航路でも出発年月日によって出発港,経由港,到着港の入港日時
及び出港日時が,標準入港時刻及び標準出港時刻と異なる場合がある。運航
スケジュール明細の例を表3に示す。
表3運航スケジュール明細の例
|0|cmser ees|2022014[ova|6|っ|zwez-3-4 17:30]
|01 Cream mer|2022.03-14[woe[vim|2nze-0s-14 10:00|202-05-14 21:00]
Po[omar ies|2622-0314|005[em|2022-02-16 14:39|2022-05-16 16:30]
Po|cwser eer|262214[ove|『[2022-03-16 vo:0o[ーー|
Poe|rmmeowers|2022-08-14|665|Fm[|aze-0s-14 18:00)
|0|Fea cweer|20220314[ows|owe[2020-09-16 11-00["-————_|
|01|(電導行|20220316|eem[ox[———Y20nn 16 17248
(6)販売区間
航路内の販売可能な乗船港と下船港との組合せを販売区間と呼ぶ。宿泊を伴
わない区間は販売区間とならない。(C港とF港の間を運航し,DB,E港を経由す
る航路の場合,C港一E港,C港F港,D港E港,D港ーF港,E港ーF港が販
売区間となり得る。販売区間は販売区間名をもち,航路番号,乗船港コード,
mei 24—_
下船港コードで識別する。
(7)運賃
OQ販売区間ごとに乗船客,車両,ペットケージ,二輪車の運賃表がある。
②乗船客の運賃は,等級ごとに大人運賃を決めている。小人運賃は大人運賃の
半額としている。中学生以上には大人運賃小学生には小人運賃を適用する。
小学生未満の乳幼児は,大人1名につき1名分が無料となり,2人目以降は小
人運賃となる。
③車両の運賃は,車両の長さの範囲(4m未満,4m以上5m未満など)ごとに決
めている。
④ペットの運賃は(.ペットケージ1個ごとに決めている。
©二輪車の1台当たりの運賃は,自転車・原動機付自転車・自動二輸車の種類
ごとに決めている。
©等級に,車両の長さの範囲.ペットケージ,二輪車の種類を併せて運賃竹
類と呼び,運賃種類コードで識別している。運賃種類コードのうち,乗船客
の運賃を表すものは等級コードである。
⑦乗船客,車両及び二輪車については,通常期運賃とは別に繁忙期運賃を設
定している。
⑧復路の乗船年月日が往路の乗船年月日から30日以内であれば往復割引を適
FAL,復路は19%割引としている。
⑨運賃表は燃油の価格変動に伴い,数か月ごとに見直す。運賃表の運用開始
日を決めている。
(8)船内施設
フェリーの船内には,レストラン,ショップなどの施設があり,フェリーご
との施設コードで識別している。
(9)船内商品
船内施設で提供する商品として,レストランでの飲食メニュー,ショップで
のお土産品・雑貨品などがある。これらは,全フェリー共通の商品コードで識
別している。
ー25—
2.予約業務
(1)予約登録
①予約は,予約受付順の予約番号で一意に識別している。予約登録は,航路
と販売区間を指定した上で次のように行う。
・宿泊区画:個室の場合は1部屋,大部屋の場合は同じ等級の6人まで
・車両:1台まで
・ペットケージ,二輪車:数に制限無し
②往復予約の場合は,往路と復路とは別の予約番号を振り,復路の予約に往路
予約番号をもたせる。
③me,乗船港,下船港,乗船年月日,Si,大人人数,小人人数,AML
Atl,車両の有無(有りの場合は車両の長さき)。ペットケージ,二輪車の数を,
登録する。併せて乗船予定者全員の氏名,性別,生年月日,住所,大人運
賃・小人運賃・無料のいずれかを表す適用運賃区分を予約客として登録する。
④予約内容の変更は受け付けていない。
(2)予約キャンセル
①予約キャンセルは,出港時刻までであれば,予約番号ごとに可能である。
ただし,乗船年月日の6日前以降のキャンセルは,キャンセル料が発生する。
乗船年月日までの日数によってキャンセル期間区分を決め,キャンセル料率
を変えている。出港後はキャンセルできず,全額請求する。往復で予約して
いる場合,往路復路それぞれの乗船年月日に対してキャンセル料を算出す
hg
②天候不良などによる欠航の場合,翌日以降の運航に振り替えるか,キャンセ
ルするかを,予約客に選択してもらう。キャンセルの場合,キャンセル料は
請求せず,全額を返金する。
③往復予約の往路が天候不良などで欠航になったときの復路をキャンセルする
場合,キャンセル料は請求せず,全額を返金する。
(3)在庫の把握
④個室については利用可能個室残数を,大部屋については利用可能ベッド残数
を等級別在庫としてそれぞれ記録している。出発港。経由港を出港する時点
での等級ごとの残数を記録する。予約受付時又は予約無しでの乗船時に,個
ー26一、
室であれば利用可能個室残数を,大部屋であれば利用可能ベッド残数を更新
(利用分を減算)する。
②車両については積載可能車両残長を,ペットケージについては積載可能ペ
ットケージ残数を,二輪車については積載可能二輸車残敷をそれぞれ記録す
る。HES,経由港を出港する時点の残長・残数を記録する。予約受付時又
は予約無しでの乗船時に,車両であれば積載可能車両残長を,ペットケージ
であれば積載可能ペットケージ残数を,二輪車であれば積載可能二輪車残数
を更新(積載分を減算)する。
③上述の残長・残数について,乗船港と下船港との間に経由港がある場合には
乗船港を出港する時点の残長・残数だけではなく,経由港を出港する時点の
残長・残数も更新する。(港を出港し,DS,E港を経由し,『港に到着する航
路で,C港で乗船し,F港で下船する場合,C港を出港する時点の残長・残数
だけではなく,D DB,E港を出港する時点の残長・残数も更新する。
④予約キャンセル時には,予約登録時と逆に更新(キャンセル分を加算)する。
3.入金業務
(1)運賃の支払には,乗船前の支払と乗船当日の乗船窓口での支払とがある。
(2)乗船前の支払方法には,クレジットカード決済と現金振込みとがある。支払
が完了すると乗船前支払フラグを支払済、にする。
(3)乗船当日の乗船窓口での支払方法には,クレジットカード決済と現金払とが
ある。
4.顧客管理業務
(1)リピーターを確保する目的で顧客管理を行っており,希望する顧客には,氏
名,性別,生年月日,住所,電話番号,メールアドレスを登録してもらい,顧
客番号が記載された顧客カードを渡す。
(2)顧客は,顧客カードに記載された顧客番号を伝えることで,予約時及び乗船
時に氏名,性別などを記入する必要がなくなる。
5.乗船手続(チェックイン)
(1)乗船当日に乗船窓口において,予約有りの場合は予約の単位に,予約無しの
場合は乗船する個人又はグループ単位に乗船客の乗船手続をする。乗船手続で
は運航スケジュールごとの乗船番号を発番する。
ー27一
(2)予約有りの乗船手続
①⑪乗船窓口の担当者が予約を確認する。予約が確認できたら,予約の記録を
乗船の記録に引き継ぐ。
②予約時に申請した予約客に変更がある場合には,変更後の内容を乗船客と
して記録する。
③運賃が未払の場合は,運賃を請求する。
(3)予約無しの乗船手続
①乗船窓口の担当者が,乗船客の航路,RMS,FNS,乗船年月日,等
級,大人人数,小人人数,乳幼児人数,車両の有無,ペットケージ,二輸車
の数を確認する。これらは予約の記録ではなく,乗船の記録とする。
②次に乗船客を確認する。KA,性別,生年月日,EM,適用運賃区分を乗
船客の記録とする。顧客登録している場合,顧客番号を提示してもらうこと
で,氏名,性別などを確認する必要がなくなる。
③運賃を請求する。
(4)予約の有無にかかわらず,乗船手続時に乗船窓口の担当者が個室又はベッド
を決定する。宿泊区画状態区分が乗船の全区間を通して"チェックイン可の
個室又はベッドを割り当てる。
(5)乗船手続時に個室・大部屋の解錠ができるカードキーを手渡す。カードキー
は乗船客ごとに作成する。カードキーには,MBBS,出発年月日,乗船客番
号,宿泊区画番号を登録する。
(6)乗船手続終了後,乗船ステータス及び宿泊区画状態区分を'チェックイン'
に変更する。
6.船内売上
(1)乗船中に乗船客が船内商品を購入する場合の支払方法には,クレジットカー
ド決済,現金払がある。
(2)乗船客が購入した船内商品及び個数・金額を船内売上明細に,購入ごとの合
計金額を船内売上に記録する。
7.下船手続(チェックアウト)
下船口で乗船客から受領したカードキーを読み取り,乗船ステータス及び宿泊
区画状態区分を"チェックアウト′にする。
=Sm
[概念データモデルとテーブル構造
現行業務の分析結果に基づいて,概念データモデルとテーブル構造を設計した。
テーブル構造は,概念データモデルでサブタイプとしたエンティティタイプを,ス
ーパータイプのエンティティタイプにまとめた。現行業務の概念データモデルを図1
に,現行業務のテーブル構造を図2に示す。
ー29—
マスター領域
ハ\
—るる
Bat by P=] 船型別ー Ce
宿泊区画スケジューリSe
料
=== N s 3運航スケ2トー
ハ
ショーー
(oH キャンセリ
ハハ
明細予約有||予約無
乗船運賃明細
ハ①②EN LN
Z=Z Re||RMS
トランザクション領域
注記図中のマスター領域の①及び②は,トランザクション領域の①及び②にそれぞれつながっていることを
示す。
図1現行業務の概念データモデル(未完成)
港(港コード,港名)
航路(航路番号,航路名,船型番号)
航路明細(航路番号,港コード,寄港順,BRD,標準入港時刻,標準出港時刻)
船型(船型番号,乗船客数,全長,積載可能車両長合計積載可能ペットケージ数,積載可能二輪車数)
フェリー(フェリー番号,フェリー名,船型番号)
運航スケジュール(MBBS,出発年月日,フェリー番号)
運航スケジュール明細(航路番号,出発年月日港コード,入港日時,出港日時,積載可能車両残長,
積載可能ペットケージ残数,積載可能二輸車残数)
等級別在庫(航路番号,出発年月日,港コード,等級コード,利用可能個室残数,利用可能ベッド残数)
宿泊区画状態(航路番号,出発年月日,港コード,宿泊区画番号,宿泊区画状態区分,フェリー番号)
運賃種類(運賃種類コード,等級フラグ,運賃種類名,個室大部屋区分)
船型別等級構成(船型番号,等級コード,個室数,ベッド数,CA,面積,立ち入り区分)
船型別宿泊区画(船型番号,宿泊区画番号,等級コード)
宿泊区画(フェリー番号,宿泊区画番号)
船内商品(商品コード,商品名,単価)
船内施設(フェリー番号,施設コード,施設名)
(La)
運賃(航路番号、乗船港コード,下船港コード,運賃種類コード,運用開始日,通常期運賃,繁忙期運賃)
キャンセル料(キャンセル期間区分,キャンセル料率)
Me(顧客番号,氏名,性別,生年月日住所,電話番号,メールアドレス)
予約(予約番号,予約年月日時刻,ERED,乗船年月日,航路番号,出発年月日,乗船港コード
下船港コード,大人人数,小人人数,乳幼児人数,ペットケージ数,二輪車数,車両全長
請求金額,乗船前支払フラグ,支払方法区分,往路予約番号)
予約キャンセル(予約番号,キャンセル年月日,キャンセル期間区分,キャンセル料)
予約運賃明細(予約番号,予約運賃明細番号,MBBS,乗船港コード,下船港コード,運賃種類コード,
運用開始日,BASE)
FHS(予約番号,予約客番号,顧客登録有無区分,氏名,Meal,生年月日,住所,適用運賃区分
BBE A)
乗船(航路番号,出発年月日,乗船番号,乗船当日支払フラグ,支払方法区分,フェリー番号,
乗船時個室宿泊区画番号,予約有無区分,予約番号,往復区分,乗船年月日,乗船港コード
下船港コード,大人人数,小人人数,乳幼児人数,ペットケージ数,二輪車数,車両全長)
予約無乗船運賃明細(航路番号,出発年月日,乗船番号,乗船運賃明細番号,HAS A—K
下船港コード,運賃種類コード,運用開始日,運賃金額)
乗船客(航路番号,出発年月日,ROSES,乗船番号,フェリー番号,乗船時大部屋宿泊区画番号,
顧客登録有無区分,氏名,性別,生年月日,住所,適用運賃区分,顧客番号,予約有無区分,
予約番号,予約客番号,乗船ステータス)
船内売上(フェリー番号,売上番号,施設コード,合計金額,支払方法区分)
船内売上明細(フェリー番号,売上番号,売上明細番号,商品コード,個数,金額
注記図中の[|ア|には,図1の[|ア|と同じ字句が入る。
図2現行業務のテーブル構造(未完成)
【新規要件]
1.予約業務
(1)航路の出発港から到着港まで全て乗船する予約に限り,個室又はベッドを指
定できるようにする。乗船手続(チェックイン)までならば,指定した個室又
はベッドを変更することもできるようにする。
(2)1回の予約で複数個室又は大部屋に7人以上の予約ができるようにする。
(3)キャンセル待ちをできるようにする。キャンセル待ちは,通常の予約と同様
に航路,乗船年月日,乗船港,下船港,SR,人数などを指定する。出港まで
にキャンセルが発生した場合,キャンセル待ちを仮予約に変更し,予約希望者
に確認の上,本予約に変更する。複数のキャンセル待ちがある場合は,Fry
セル待ちの予約番号順かつ条件に合致するものを優先する。
2.下船手続(下船時精算)
(1)レストラン及びショップでの船内精算の際にカードキーを提示すると,その
場で都度支払うのではなく,下船時に乗船客ごとに一括して支払うことができ
るようにする。この場合,下船時にフロントで精算する。下船時の一括支払方
法としては,クレジットカード決済,現金払がある。下船時精算額を記録する。
(2)下船時にフロントで精算する場合,乗船客の家族が持つ複数のカードキーを
まとめて精算することができるようにする。精算合計金額を記録する。
解答に当たっては,巻頭の表記ルールに従うこと。ただし,エンティティタイプ
間の対応関係にゼロを含むか否かの表記は必要ない。
なお,エンティティタイプ間のリレーションシップとして“多対多"のリレーシ
ョンシップを用いないこと。エンティティタイプ名は,意味を識別できる適切な名
称とすること。また,識別可能なサブタイプが存在する場合,他のエンティティタ
イプとのリレーションシップは,スーパータイプ又はサブタイプのいずれか適切な
方との間に記述せよ。同一つのエンティティタイプ間に異なる役割をもつ複数のリレ
ーションシップが存在する場合,役割の数だけリレーションシップを表す線を記述
せよ。また,テーブル構造は第3正規形の条件を満たしていること。列名は意味を識
別できる適切な名称とすること。