読み込み中...
先行公開中:2026年11月から一部が有料になります(無料プランはそのまま使えます)。詳しく ›
読み込み中...
受講管理システムの改修に関する次の記述を読んで,設問に答えよ。
出典:令和7年度 秋期 応用情報技術者試験 午後 問6
D社は,日本人を対象に英会話のオンライン教育サービスを提供する中堅企業である。従来は,ビジネス英会話の講座を提供していたが,それに加えて日常英会話の講座を追加することになった。
従来のビジネス英会話講座と新規に追加する日常英会話講座との違いを表1に示す。
| ビジネス英会話講座 | 日常英会話講座 | ||
|---|---|---|---|
| 講座の種類 | レベル | 初級,中級,上級の3段階 | A1, A2, B1, B2, C1, C2の6段階 |
| ジャンル | 海外出張,会議,交渉などの15種類 | 社交,旅行,趣味などの10種類(変更の可能性あり) | |
| 年齢層 | なし | 幼児・小学生,中学生・高校生,大学生・大人の3種類 | |
| 受講形態 | 6人までのグループに対して1人の講師がつく受講形態 | 2人までの受講者に対して1人の講師がつく受講形態 | |
| 受講予約方法 | 講座の開催スケジュールが決まっていて,それに受講者が先着順で応募する。 | 受講者が希望日時を指定して,その時間帯に空いている講師を選択して予約する。 | |
日常英会話講座のジャンルは,サービスを開始してから1年程度は,申込み具合などを考慮して変更する可能性がある。
講師は割り当てられた講座の開始時刻から終了時刻まで拘束されるが,それ以外の時間帯は自由である。現状は勤務日と講座担当の割当てだけで勤務を管理している。講座の受講管理には,受講管理システムを利用している。
現状のビジネス英会話講座を管理する受講管理システムのE-R図を図1に示す。
図1 現状のビジネス英会話講座を管理する受講管理システムのE-R図
この図の中に空欄 a・b があります
注記 属性名の実線の下線は主キー,破線の下線は外部キーを示す。主キーの実線が付いている属性名には,外部キーの破線を付けない。
開催スケジュールについては,同じ講座が複数回開催されるので,開催番号で区別している。
受講管理システムのデータベースでは,E-R図のエンティティ名を表名にし,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理する。
講座の種類には,表1に示す内容に沿った値以外のものを格納できないように定義域制約を適用する。
日常英会話講座の追加に当たり,日常英会話講座のジャンルの変更の容易性と講師の勤務管理の厳密化を考慮して,受講管理システムの関係スキーマの変更内容を次のように検討した。
講座エンティティをスーパータイプにして,ビジネス英会話講座エンティティ,日常英会話講座エンティティをサブタイプとして新規に追加する。講座エンティティにビジネス英会話講座か日常英会話講座かを区別する講座区分属性を追加して,講座エンティティからc及びdの①二つの属性をサブタイプに移す。
勤務日でも講師が講座を受けもつことができない時間帯は予約できないようにするため,勤務日の勤務可能時間帯を管理する勤務可能時間エンティティを追加する。
追加及び変更するエンティティを図2に示す。
図2 追加及び変更するエンティティ
この図の中に空欄 c・d・e があります
受講管理システムの関係スキーマの変更に伴い,新規表の定義,既存表の変更を行う。今回の変更では,スーパータイプ,サブタイプのエンティティごとに別の表にしている。講座表の変更に当たり,削除する列の情報は削除前に保存して,追加したサブタイプに反映する。
講座表の変更を行うSQL文を図3に示す。
| f TABLE 講座 ADD COLUMN 講座区分 VARCHAR(10) f TABLE 講座 DROP COLUMN c CASCADE f TABLE 講座 DROP COLUMN d CASCADE |
勤務可能時間表を作成するSQL文を図4に示す。
図4で,勤務日表の行が削除された場合は,参照元の勤務可能時間表の行も自動的に削除されるようにしている。
| CREATE TABLE 勤務可能時間( 勤務年月日 DATE, 講師コード CHAR(10), 開始時刻 TIME, 終了時刻 TIME, PRIMARY KEY(勤務年月日, 講師コード, 開始時刻), FOREIGN KEY(勤務年月日, 講師コード) REFERENCES 勤務日(g) ON DELETE h) |
勤務日が削除可能となるのは,指定した日の勤務年月日に開催する講座を講師が担当していない場合である。
指定した日にある講師が担当している講座の講座コードの一覧を取得するSQL文を図5に示す。ここで,“:講師コード”と“:勤務年月日”は,それぞれ対象となる講師の講師コードと指定した日の年月日を格納する埋込み変数である。
なお,CAST指定は,データ型を変換する際に使用される。
| SELECT DISTINCT t0.講座コード FROM 開催スケジュール t0 INNER JOIN 講座担当割当 t1 i WHERE t1.講師コード = :講師コード AND t0.開催年月日 = CAST(:勤務年月日 AS DATE) |
図1中の a , b に入れる適切な属性名及びエンティティ間の関連を答え,E-R図を完成させよ。なお,属性名の表記及びエンティティ間の関連は図1の凡例に倣うこと。
0 字
読み込み中…
本文,図2及び図3中の c , d に入れる適切な属性名を答えよ。
0 字
読み込み中…
本文中の下線①について,二つの属性をサブタイプに移した理由を,20字以内で答えよ。
0 / 20 字
読み込み中…
図2中の e に入れる適切な属性名を答えよ。
0 字
読み込み中…
図3中の f に入れる適切な字句を答えよ。
0 字
読み込み中…
図4中の g , h に入れる適切な字句を答えよ。
0 字
読み込み中…
図5中の i に入れる適切な字句を答えよ。
0 字
読み込み中…