ネットワークとデータベース(ルーティング・SQL応用・分散)
ルーティングは方式(ディスタンスベクタ/リンクステート/パスベクトル)とメトリックの対応、SQLはWHEREとHAVINGの評価順序、分散は2相コミットとCAP定理のトレードオフ——この三つの対応関係を正確に言えることが得点の核心である。
本章では、応用情報技術者試験シラバス(IPA公表)のテクノロジ系「ネットワーク」および「データベース」分野のうち、午前・午後双方で出題実績が厚い論点を扱う。まずネットワーク層の基礎として、OSI基本参照モデル(ISO/IEC 7498、JIS X 5003)の第3層に位置するIPの役割を押さえる。IPv4アドレスは32ビットで、ネットワーク部とホスト部の境界はサブネットマスク(プレフィックス長)で示される。CIDR(RFC 4632)ではクラスにとらわれない可変長プレフィックスを用い、複数の経路を一つに束ねる経路集約(スーパーネット化)によって経路表を圧縮できる。午前ではプレフィックス長から割当て可能ホスト数を求める計算(2のn乗−2、ネットワークアドレスとブロードキャストアドレスを除く)やサブネット分割の設計問題が繰り返し出題されている。IPv6は128ビットであり、アドレス枯渇対策やNAT(NAPT)との対比で問われる点も確認しておきたい。
経路制御(ルーティング)は、自律システム(AS)内部で用いるIGPと、AS間で用いるEGPに大別される。IGPの代表であるRIP-2(RFC 2453)はディスタンスベクタ型で、メトリックにホップ数を用い、15を超える経路は到達不能とみなす。一方OSPF(RFC 2328)はリンクステート型で、各ルータがリンク状態広告(LSA)を交換してトポロジ全体を把握し、ダイクストラ法(SPFアルゴリズム)で最短経路木を計算する。コストは帯域幅を基準に設定でき、エリア分割によって大規模ネットワークでもLSAの交換範囲を限定できる。AS間ではBGP-4(RFC 4271)が用いられ、ASパスなどのパス属性に基づき経路を選択するパスベクトル型である点が特徴である。また経路表の検索では、宛先に最も長く一致するプレフィックスを優先する最長一致(ロンゲストマッチ)の原則が適用される。午前ではプロトコルの方式・メトリック・用途の対応関係が定番の出題である。
SQLはJIS X 3005(ISO/IEC 9075)として規格化されており、応用情報では基本的なSELECT文に加えて応用構文が問われる。結合には内部結合(INNER JOIN)と外部結合(LEFT/RIGHT/FULL OUTER JOIN)があり、外部結合では結合相手のない行もNULLを補って結果に残る点が正誤判定の焦点になる。副問合せでは、外側の問合せの行ごとに評価される相関副問合せと、EXISTS述語・IN述語の使い分けが重要である。集約ではGROUP BY句でグループ化し、集約関数(SUM、AVG、COUNTなど)の結果に対する条件はHAVING句に書く。WHERE句はグループ化前の行に、HAVING句はグループ化後の集約結果に適用されるという評価順序(FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY)は、午前・午後を通じて最頻出の論点である。このほかUNIONなどの集合演算、ビュー定義、CASE式も午後のデータベース問題で穴埋めとして問われる。
トランザクションはACID特性、すなわち原子性(Atomicity)・一貫性(Consistency)・独立性(Isolation)・耐久性(Durability)を満たすべき処理単位である。複数トランザクションの同時実行制御では、共有ロック(読取り用)と専有ロック(書込み用)の両立可否、および2相ロッキングプロトコルが問われる。2相ロッキングは、ロックを獲得するだけの成長相と解放するだけの縮退相に分ける方式で、スケジュールの直列可能性を保証するが、デッドロックの発生自体は防げない点がひっかけとして頻出である。デッドロックは待ちグラフの閉路として検出し、いずれかのトランザクションを強制的にロールバックして解消する。またSQL規格の隔離性水準(READ UNCOMMITTEDからSERIALIZABLEまでの4段階)と、ダーティリード・アンリピータブルリード(反復不能読取り)・ファントムリードの各異常現象との対応は午前の定番であり、確実に整理しておくべきである。
障害回復の前提はログ先行書き込み(WAL:Write Ahead Log)である。データベース本体を更新する前に、更新前情報と更新後情報をログファイルへ書き出しておくことで、障害時の復旧が可能になる。チェックポイントは、メモリ上の更新内容をディスクへ反映した時点をログに記録する仕組みで、回復処理の起点を与える。システム障害からの回復では、障害時点でコミット済みだがディスク反映が保証されないトランザクションは更新後情報を用いたロールフォワード(前進復帰)で再現し、未コミットのトランザクションは更新前情報を用いたロールバック(後退復帰)で取り消す。これに対し、ディスク破損などの媒体障害では、バックアップファイルで復元した後にログでロールフォワードする。フルバックアップ・差分バックアップ・増分バックアップの復元手順と所要時間の比較も、午前で計算問題として出題実績がある。
分散データベースでは、利用者に分散を意識させない分散透過性(位置透過性・複製透過性・分割透過性など)が設計目標となる。複数サイトにまたがる更新の原子性を保証する仕組みが2相コミットであり、第1相で調停者が全参加サイトにコミット可否を問い合わせ(準備フェーズ)、全サイトの合意が得られた場合のみ第2相でコミットを指示する。ただし第1相の応答後に調停者が停止すると、参加サイトはコミットも中止も自律決定できない不確定(ブロッキング)状態に陥り得る点が本質的な弱点である。大規模分散システムではCAP定理が示すとおり、ネットワーク分断時に一貫性(C)と可用性(A)を同時には満たせず、NoSQLデータベース(キーバリュー型、ドキュメント指向、カラム指向、グラフ指向)の多くはBASE特性、すなわち結果整合性を採用して可用性を優先する。ACIDとBASEの対比、およびシャーディングとレプリケーションの区別は近年の午前で出題が増えている。
この章の問題から3問
RIPは、ネットワークの帯域幅をコストとして経路を選択するリンクステート型のルーティングプロトコルである。
正解 ×(誤り)
誤り。ひっかけは「帯域幅コスト+リンクステート型」で、これはOSPF(RFC 2328)の特徴である。RIP(RIP-2はRFC 2453)はディスタンスベクタ型で、メトリックはホップ数であり、16以上(15超)は到達不能と扱う。方式とメトリックの組合せの入替えは午前の定番のひっかけである。
OSPFでは、ネットワークを複数のエリアに分割することで、リンク状態広告(LSA)の交換範囲を限定し、大規模ネットワークにおけるルータの負荷や経路計算量を抑えることができる。
正解 ○(正しい)
正しい。OSPF(RFC 2328)はリンクステート型で、各ルータがLSAを交換して同一のトポロジデータベースを持ち、ダイクストラ法で最短経路を計算する。エリア分割によりLSAのフラッディング範囲を各エリア内に限定でき、バックボーンエリア(エリア0)を介してエリア間を接続する。RIPにはこの階層化の仕組みがない点との対比で問われる。
SQLのHAVING句は、GROUP BY句でグループ化する前の個々の行に対して選択条件を適用するために用いる。
正解 ×(誤り)
誤り。ひっかけはWHERE句とHAVING句の役割の入替えである。SQL規格(JIS X 3005、ISO/IEC 9075)における論理的評価順序はFROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BYであり、グループ化前の行に適用するのはWHERE句、グループ化後の集約結果(AVGやCOUNTなど)に条件を付けるのがHAVING句である。
登録不要 ・ 採点と解説はその場 ・ 進捗は端末に保存
応用情報技術者の他の章
- 基礎理論とアルゴリズム(計算量・待ち行列・符号化)
- システムアーキテクチャ(性能・信頼性設計・仮想化)
- 情報セキュリティ(暗号・認証・攻撃手法と対策)
- 開発技術とプロジェクトマネジメント
- 経営戦略・システム監査・法務
本ページの講義ノートと問題は、各試験の出題範囲に基づきAIが作成し、法令・基準に照らして別のAIレンズで敵対的に検証したものです(検証プロセス)。法改正等で誤りが見つかった場合は随時修正します。合格を保証するものではありません。