基本情報 平成21年度 秋期 問33:テクノロジ系に関する問題
関係データベースの “製品" 表と“売上” 表から, 売上報告のビュー表を定義する SQL 文中の a。 に入るものはどれか。 CREATE VTEW 売上報告(製品番号,製品名, 納品数 , 売上年月日 , 売上金額) AS | sa | 製品.抽品番号,製品.製品名,売上.納品数,売上.売上年月日 , 売上.納品数 * 製品単価 FROM 製品,売上 WHERE 製品.製品番号 = 売上.製品番号 表名 列名 製品 製品番号, 製品名, 単価 売上 製品番号, 納品数, 売上年月日
- aGRANT
- bTrNSERT
- c8SCHEMA
- dSELECT正答
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは d「SELECT」 です。
問題は「ビュー(仮想の表)を作るSQL文」を完成させる穴埋め。
```
CREATE VIEW ビュー名(列名...) AS [ここ] FROM ... WHERE ...
```
この「ここ」には、ビューの元になるデータを取り出すためのSELECT文が入ります。ビューは実体の表ではなく、「いつもこの検索結果が見たい」を保存しておく仕組みなので、必ずSELECTで「何を取るか」を書きます。
👉 覚え方:「ビュー=保存しておく検索」だからSELECT。
ほかの選択肢:a GRANT=権限を与える命令/b INSERT=データを追加する命令/c SCHEMA=テーブルの集合の定義。どれも「データを取り出す」用途ではない。
なぜこれが正解か
正解は d。CREATE VIEW文の基本構文は `CREATE VIEW ビュー名(列名…) AS SELECT 列1, 列2, … FROM 表 WHERE 条件` であり、ASの後にはビューの内容を定義するSELECT文が来る。本問のa部分はSELECT文の冒頭、すなわち`SELECT`キーワードが入る。
各選択肢の解説
- a GRANT:権限付与のDCL文(GRANT SELECT ON … TO … 等)。
- b INSERT:行追加のDML文。ビュー定義の本体には来ない。
- c SCHEMA:CREATE SCHEMA等で使うキーワード。スキーマ全体の定義。
- d SELECT:データ抽出のDML文。CREATE VIEWの本体に必須(正解)。
覚え方・ひっかけ注意
SQL文の分類:DDL(Data Definition:CREATE/ALTER/DROP)/DML(Data Manipulation:SELECT/INSERT/UPDATE/DELETE)/DCL(Data Control:GRANT/REVOKE)/TCL(Transaction Control:COMMIT/ROLLBACK/SAVEPOINT)。CREATE VIEWはDDLだが、内部にDMLのSELECTを含むハイブリッド構造。
理論的背景
ビュー(VIEW)は導出表(derived table)または仮想表とも呼ばれ、永続化された問合せ定義。実体データは持たず、参照のたびに元の表に対してSELECTを実行する。利点は (1) データ独立性(物理スキーマ変更時の影響緩和)、(2) アクセス制御(特定列・行のみ見せる)、(3) 問合せ簡略化(複雑なJOINを名前で参照)、(4) 業務概念の抽象化。一方で複雑なビューはオプティマイザの最適化を阻害し性能劣化を招くこともある。更新可能ビュー(updatable view)の条件はSQL標準で厳格に規定されており、JOIN・GROUP BY・DISTINCT・集約関数を含むビューは原則更新不可。
実務での使われ方
運用パターン:(1) マテリアライズドビュー(物理的にデータを保存し定期更新)、Oracle/PostgreSQL/SQL Serverで実装、集計の高速化に有効、(2) インデックス付きビュー(SQL Server)、(3) セキュリティビュー(行レベルセキュリティの代替、特定部署の行のみ見せる)、(4) API表現としてのビュー(アプリは物理テーブルでなくビューにアクセスして疎結合化)。データウェアハウスではスタースキーマのファクト/ディメンション集計をビューで提供することも多い。
試験での位置づけ
FE科目AでSQL文の種別・基本構文が頻出。データベーススペシャリストではビューの更新可能性条件、マテリアライズドビューのリフレッシュ戦略、ビューを使ったセキュリティ設計、WITH句(共通テーブル式CTE)との比較が問われる。応用情報の午後ではビューと表のJOINを含むSELECT文の最適化問題が定番。
選択肢の発展補足
SQL標準の発展機能:ウィンドウ関数(ROW_NUMBER、RANK、LAG/LEAD、移動平均)、CTE/再帰CTE(WITH RECURSIVE、階層問合せ)、MERGE文(UPSERT、SQL:2003)、JSON型/JSONB型(PostgreSQL、SQL:2016)、時系列拡張(System-Versioned Temporal Tables、SQL:2011)。NoSQL/NewSQL時代でも、Apache Cassandra・MongoDB・Amazon DynamoDBはSQLライクなクエリ言語(CQL、MQL)を提供し、ビューに相当するマテリアライズドビュー機能を持つ。データレイク(Apache Iceberg、Delta Lake)の出現でビュー概念は分散ストレージ上の論理ビュー(lakehouse)に拡張されている。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成21年度 秋期 問33/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。