最終更新日:2026年8月2日
fe fe-technology system-architecture client-server
まず結論
3層クライアントサーバシステムとは、システムの役割を次の3つに分けた構成です。
プレゼンテーション層
→ 入力を受け付ける・結果を表示する
ファンクション層
→ 業務処理・計算・データ加工を行う
データベースアクセス層
→ データベースを検索・登録・更新する
基本情報技術者試験では、次の一文で切り分けます。
表示はプレゼンテーション、処理はファンクション、保存・検索はデータベースアクセス。
直感的な説明
3層構成は、レストランの役割分担に置き換えると分かりやすくなります。
プレゼンテーション層
→ 接客担当
→ 注文を受け、料理を客へ見せる
ファンクション層
→ 調理担当
→ 注文内容に沿って料理を作る
データベースアクセス層
→ 倉庫担当
→ 必要な食材を取り出し、在庫を管理する
接客担当が直接倉庫へ行って食材を取り出し、そのまま料理するわけではありません。
同じように、3層クライアントサーバシステムでは、画面側のプレゼンテーション層がデータベースへ直接アクセスするのではなく、ファンクション層を通して処理します。
定義・仕組み
3層クライアントサーバシステムは、システムを論理的に3つの役割へ分離した構成です。
プレゼンテーション層
プレゼンテーション層は、利用者との入出力を担当します。
主な役割は次のとおりです。
- 画面を表示する
- 入力を受け付ける
- 入力内容をファンクション層へ渡す
- 処理結果を利用者へ表示する
入力する
表示する
画面を作る
→ プレゼンテーション層
Webシステムでは、Webブラウザや画面部分に相当します。
ファンクション層
ファンクション層は、業務ロジックやデータ加工を担当します。
主な役割は次のとおりです。
- 入力内容を検証する
- 計算や判定を行う
- データベースへの問い合わせ内容を組み立てる
- 取得したデータを加工する
- 加工結果をプレゼンテーション層へ返す
計算する
判定する
加工する
業務処理を行う
→ ファンクション層
アプリケーション層、アプリケーションロジック層、業務処理層と呼ばれることもあります。
データベースアクセス層
データベースアクセス層は、データベースとのやり取りを担当します。
主な役割は次のとおりです。
- SQLを実行する
- データを検索する
- データを登録する
- データを更新・削除する
- データを保管する
検索する
登録する
更新する
削除する
→ データベースアクセス層
試験では「データ層」と表現されることもあります。
データの流れ
典型的な流れは次のとおりです。
利用者
↓
プレゼンテーション層
↓
ファンクション層
↓
データベースアクセス層
↓
データベース
結果は逆向きに返ります。
データベース
↓
データベースアクセス層
↓
ファンクション層で加工
↓
プレゼンテーション層で表示
このテーマは、基本情報技術者試験のシステム構成要素に関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、各層の役割を説明する選択肢から、正しいものを選ぶ問題として出題されます。
まず、問題文の動詞を見ます。
| 問題文の表現 | 対応する層 |
|---|---|
| 入力を受け付ける | プレゼンテーション層 |
| 結果を表示する | プレゼンテーション層 |
| データを加工する | ファンクション層 |
| 業務処理を行う | ファンクション層 |
| SQLを実行する | データベースアクセス層 |
| データを検索・更新する | データベースアクセス層 |
よくある誤答の形
データベースアクセス層がデータを加工する
→ 誤り
→ 加工はファンクション層
ファンクション層がSQLを解釈する
→ 誤り
→ SQLの実行はデータベース側
プレゼンテーション層がDBへ直接問い合わせる
→ 誤り
→ 通常はファンクション層を経由する
選択肢を切る順番
画面に関する処理か
→ プレゼンテーション層
業務ロジックや加工か
→ ファンクション層
DBへの保存・検索か
→ データベースアクセス層
どんな場面で使う?
3層構成は、Webシステムや業務システムで広く使われます。
Webシステム
普段使うWebシステムでは、次のように対応します。
Webブラウザ
→ プレゼンテーション層
アプリケーションサーバ
→ ファンクション層
データベースサーバ
→ データベースアクセス層
例えば、ログイン処理では次のように動きます。
利用者がID・パスワードを入力
→ プレゼンテーション層
入力値を検証し、認証処理を行う
→ ファンクション層
利用者情報を検索する
→ データベースアクセス層
保守しやすくする
役割を分離すると、一つの変更がほかの部分へ影響しにくくなります。
例えば、画面デザインだけを変える場合、業務ロジックやデータベースを大きく変更せずに済みます。
画面の変更
→ プレゼンテーション層
業務ルールの変更
→ ファンクション層
保存方法の変更
→ データベースアクセス層
2層クライアントサーバとの違い
2層構成では、クライアント側が画面だけでなく、業務処理も担当することがあります。
2層構成
クライアント
→ 画面 + 業務処理
データベースサーバ
→ データの保管・検索
一方、3層構成では、画面と業務処理を分離します。
3層構成
プレゼンテーション層
→ 画面
ファンクション層
→ 業務処理
データベースアクセス層
→ データベース処理
比較すると、次のようになります。
| 比較 | 2層構成 | 3層構成 |
|---|---|---|
| 業務処理 | クライアント側に置かれやすい | 中間層へ分離 |
| DBアクセス | クライアントから直接行う場合がある | ファンクション層を経由 |
| 保守 | クライアントごとの変更が必要になりやすい | 層ごとに変更しやすい |
| 拡張 | 大規模化で負担が増えやすい | 負荷分散しやすい |
科目Bでどう使う?
科目Bでは、システムの処理の流れや、どの部分で何を行うかを読むときに役立ちます。
例えば、次のような処理があったとします。
1. 画面で商品番号を入力する
2. 商品情報を検索する
3. 割引額を計算する
4. 結果を画面へ表示する
各処理は次のように分けられます。
商品番号を入力
→ プレゼンテーション層
商品情報を検索
→ データベースアクセス層
割引額を計算
→ ファンクション層
結果を表示
→ プレゼンテーション層
疑似言語や設計図を読むときも、「入力・処理・保存」のどれかで考えると整理しやすくなります。
よくある誤解・混同
ファンクション層は画面を表示する
誤りです。
画面の表示はプレゼンテーション層です。
ファンクション層は、業務処理やデータ加工を行います。
データベースアクセス層がデータを加工する
データベースアクセス層は、データの検索・登録・更新が中心です。
取得したデータを利用者向けに加工するのは、主にファンクション層です。
プレゼンテーション層が直接SQLを実行する
3層構成では、通常、プレゼンテーション層からデータベースへ直接アクセスしません。
プレゼンテーション層
↓
ファンクション層
↓
データベースアクセス層
の順に処理します。
ファンクション層がSQLを解釈する
ファンクション層はSQL文を組み立てることがありますが、SQLを実行・解釈するのはデータベース側です。
3層とはサーバが必ず3台あること
誤りです。
3層は論理的な役割分担です。
1台のサーバ上に複数の層が配置される場合もあります。
3層
≠
必ず3台のコンピュータ
まとめ(試験直前用)
- 3層クライアントサーバは、画面・業務処理・DB処理を分離する
- プレゼンテーション層は入力受付と結果表示
- ファンクション層は計算・判定・データ加工
- データベースアクセス層は検索・登録・更新
- SQLを実行するのはデータベース側
- プレゼンテーション層からDBへ直接アクセスしない
- 2層構成ではクライアント側が業務処理を持ちやすい
- 3層はサーバ台数ではなく、論理的な役割分担
表示はプレゼンテーション、処理はファンクション、保存・検索はデータベースアクセス。