平成22年度 春期31テクノロジ系

基本情報 平成22年度 春期 問31:テクノロジ系に関する問題

“商品 表に対してデータの更新処理が正しく実行できる UPDATE 文はどれか。

  • adL 上
  • bUPDATE 商品
  • cH 寺 へ
  • dUPDATE 商品 SET 商品名 = '"D' MHERE 商品番号 = 'See3'正答
正答:DUPDATE 商品 SET 商品名 = '"D' MHERE 商品番号 = 'See3'

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは d です。

UPDATE文は「表のデータを書き換える」SQL命令。基本の形:

```

UPDATE 表名 SET 列名 = 新しい値 WHERE 条件

```

選択肢dは `UPDATE 商品 SET 商品名 = 'D' WHERE 商品番号 = 'S003'` のような形式で、ちゃんと「どの表の・どの列を・何に変えるか・どの行を」が揃っています。

👉 覚え方:UPDATE → SET → WHERE の3点セット。WHEREを忘れると全行が書き換わってしまう(最重要トラブル!)

他の選択肢は文法が壊れていたり、肝心な情報が抜けているので不正解。

標準試験対策の基準レベル

なぜこれが正解か

正解は d。SQL UPDATE文の正しい構文は `UPDATE 表名 SET 列名1=値1, 列名2=値2, … WHERE 条件式` であり、選択肢dは商品表に対し`商品名`を更新し、`商品番号='S003'`の行を対象とするWHERE句を持つ完全な形式。

各選択肢の解説

  • a、c:文法的に壊れている(OCR乱れも含む)。
  • b:UPDATE 商品 のみで SET句もWHERE句もないため不完全。
  • d:正解。

覚え方・ひっかけ注意

UPDATE文の3点セット:UPDATE 表名(どの表)→SET 列=値(何を)→WHERE 条件(どの行)。WHERE句を忘れると全行が書き換わる最大のトラブル。実務ではBEGIN TRANSACTION → UPDATE → 確認 → COMMIT/ROLLBACK のパターンで保護する。文字列リテラルはシングルクォート'D'、テーブル名・列名は通常はクォートなし(予約語・特殊文字を含む場合は`バッククォート`または"ダブルクォート"でエスケープ)。

上級誤答論破・背景理論まで深掘り

理論的背景

UPDATE文の論理的処理は (1) 対象行特定(WHERE句評価)、(2) 行ロック取得、(3) 更新前イメージのUNDOログ書込み、(4) 値書換え、(5) 更新後イメージのREDOログ書込み、(6) インデックス更新、(7) トリガ起動(BEFORE UPDATE→AFTER UPDATE)、(8) 制約検証(CHECK、外部キー、UNIQUE)、(9) COMMIT/ROLLBACK判定の順。WAL(Write-Ahead Logging)原則で、データ書込み前にログを永続化する。MVCC(Multi-Version Concurrency Control、PostgreSQL/MySQL InnoDB/Oracle)はUPDATEで旧版を残しSELECTの読込整合性を保つ。

実務での使われ方

大規模UPDATE文の運用パターン:(1) バッチサイズ分割(LIMIT句でN件ずつUPDATE、ロング・ロック回避)、(2) インデックス活用(WHERE句条件にインデックスがないと全表スキャン)、(3) JOIN UPDATE(UPDATE FROM、UPDATE JOIN:他表参照しながら更新)、(4) UPSERT(INSERT ON DUPLICATE KEY UPDATE、MERGE文)、(5) CTE-based UPDATE(WITH RECURSIVE)。バルクUPDATEではトランザクションログ膨張対策、レプリケーション遅延対策(行ベース vs 文ベースレプリケーション)が論点。Vitess、CockroachDB、TiDBなど分散SQLではDistributed UPDATEの整合性保証(Raft/Paxos合意)が技術的核心。

試験での位置づけ

FE科目AでSQL基本構文の正誤判定が頻出。応用情報・データベーススペシャリストではUPDATE文の最適化、ロック粒度(行ロック vs 表ロック)、デッドロック検出、トランザクション分離レベル(READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ、SERIALIZABLE)が深く問われる。情報処理安全確保支援士ではSQLインジェクション対策(パラメータ化クエリ、プリペアドステートメント)が必出。

選択肢の発展補足

SQL DML文比較:INSERT(行追加)/UPDATE(行更新)/DELETE(行削除)/MERGE(条件によりINSERT/UPDATE/DELETE使い分け、SQL:2003)/TRUNCATE(全行削除、DDL扱い、ロールバック不可)。SQLインジェクション対策:(1) プリペアドステートメント(バインド変数)、(2) エスケープ(言語ライブラリ任せが原則)、(3) 入力検証(ホワイトリスト)、(4) 最小権限原則(DBアカウントに不要な権限を持たせない)。ORM(O/R Mapper、Hibernate/Entity Framework/SQLAlchemy/Prisma/TypeORM)は自動でパラメータ化するため安全だがN+1問題に注意。Functional Database(Rama、Apache Iceberg)、Vector Database(pgvector、Pinecone、Weaviate)等のNoSQL/新興DBもSQL互換性を意識する流れ。FE午後ではSQL文の最適化、実行計画読解、性能ボトルネック分析の問題が定番。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成22年度 春期31/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。