人事評価システムの設計と実装に関する次の記述を読んで,設問に答えよ。
K社は,人事評価システムを中小企業に提供するSaaS事業者である。現在は,契約している会社ごとに仮想サーバを作成して,その中にデータベースを個別に作成している。現在のシステムのOSやフレームワークのサポート期限が迫ってきたのを機に,機能は変更せずにサーバリソース最適化を目的として,システムを再構築することにした。
〔人事評価システムの機能概要〕
人事評価システムの機能概要を表1に示す。
表1 人事評価システムの機能概要
〔単一データベース・単ースキーマ方式の検討〕
データベースのリソースを最適化するために,会社ごとに個別に作成していたデータベース及びスキーマを一つにまとめることを考える。検討したE-R図を図1に示す。
なお,再構築するシステムでは,E-R図のエンティティ名を表名に,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理する。
図1 E-R図
図1を関係データベースに実装した際のSQL文を考える。
(1)指定された会社と年度における,国民の祝日と会社記念日の一覧を日付の昇順に出力するSQL文を図2に示す。ここで“会社番号”は指定された会社の会社番号を,“:年度開始日”,“年度終了日”は,それぞれ指定された年度の開始日,終了日を表す埋込み変数である。
図2 国民の祝日と会社記念日の一覧を日付の昇順に出力するSQL文
(2)指定された管理者が評価する対象の従業員の一覧を部署番号,従業員番号の昇順に出力するSQL文を図3に示す。ここで"会社番号”と“:管理者番号”は,それぞれ指定された管理者の会社番号と従業員番号を表す埋込み変数である。
図3 従業員の一覧を部署番号,従業員番号の昇順に出力するSQL文
〔単一データベース・単一スキーマ方式のレビュー〕
検討した単一データベース単一スキーマ方式のレビューを受けたところ,次の指摘とアドバイスを受けた。
・指摘
この検討案は,サーバリソース最適化を実現することができるが,SQLインジェクションの脆弱性が見つかってしまった場合,多くの情報が漏えいしてしまうおそれがある。
・アドバイス
データベースは一つのまま,システム全体で共有するデータだけを格納する共有用のスキーマと,①システム利用者の会社ごとのスキーマに分ける方式にするとよい。共有用のスキーマに作成した表は,会社ごとのスキーマに対象の表と同じ名前のビューを作成して照会できるようにすると,現在のシステムのSQL文への修正を少なくすることができる。
〔単一データベース・個別スキーマ方式の検討〕
〔単一データベース・単ースキーマ方式のレビュー〕のアドバイスを受け,複数のスキーマを作成して各スキーマに表とビューを配置する。検討したスキーマを整理した結果を表2に示す。
表2 スキーマを整理した結果
次に,ビューを作成するSQL文について考える。
スキーマC001に国民の祝日ビューを作成するSQL文を図4に示す。
図4 国民の祝日ビューを作成するSQL文
〔単一データベース・個別スキーマ方式のレビュー〕
検討した単一データベース・個別スキーマ方式のレビューを受けたところ,次の指摘を受けた。
・システム利用者ごとに,利用するスキーマを指定するために, g 表に h 列を追加する必要がある。
・表2の表とビューの配置のままでは②利用できない機能があるので,③配置を一部見直す必要がある。
設問1 〔単一データベース・単一スキーマ方式の検討〕について答えよ。
(1)図1中の a に入れる適切なエンティティ間の関連を答え,E-R図を完成させよ。
なお,エンティティ間の関連の表記は,図1の凡例に倣うこと。
解答・解説
解答例
→
解説
ー
(2)図2中の b ,図2及び図3中の c に入れる適切な字句を答えよ。
解答・解説
解答例
b:BETWEEN :年度開始 AND :年度終了 c:ORDER BY
解説
ー
(3)図3中の d に入れる適切な字句を答えよ。
解答・解説
解答例
EMP.部署番号 = DEP.部署番号
解説
ー
設問2 本文中の下線①の方式にする利点は何か。20字以内で答えよ。
解答・解説
解答例
データ漏えい時の被害を限定的にできる
解説
ー
設問3 図4中の e , f に入れる適切な字句を答えよ。
解答・解説
解答例
e:C001.国民の祝日 f:PUB.国民の祝日
解説
ー
設問4 〔単一データベース・個別スキーマ方式のレビュー〕について答えよ。
(1)本文中の g , h に入れる適切な字句を答えよ。
解答・解説
解答例
g:会社 h:スキーマ名
解説
ー
(2)本文中の下線②の機能を,表1の機能名から答えよ。
解答・解説
解答例
退職分析
解説
ー
(3)本文中の下線③の見直した内容を,20字以内で答えよ。
解答・解説
解答例
退職分析用の表を共有スキーマに配置する
解説
ー
IPA公開情報
出題趣旨
近年,働き方改革及びリモートワークの普及に伴い,企業向けの SaaS 事業者が増えつつある。
本問では,SaaS 事業者が提供する人事評価システムのマルチテナント化を題材として,E-R 図や SQL 文に関する基本的な理解,複数スキーマを用いた設計に関する能力や留意事項について問う。
採点講評
問 6 では,SaaS 事業者が提供する人事評価システムのマルチテナント化を題材に,E-R 図や SQL 文に関する基本的な理解,スキーマを用いた設計について出題した。全体として正答率は平均的であった。
設問 2 は,正答率が低かった。データ保護は,データベースの重要な役割の一つである。特に,マルチテナントにおいて情報漏えいの被害範囲をできるだけ狭めることが,セキュリティ対策を考える上で必要である。スキーマを会社ごとに分ける方式にすることで,何を実現できるのか。もう一歩踏み込んで考えてほしい。
設問 4(3)は,正答率がやや低かった。単一データベース・個別スキーマ方式において,他社のデータも照会できるようにするためには各表の配置をどうするべきか,各スキーマの役割を理解した上で解答してほしい。