基本情報技術者 2014年 秋期 午前(科目A) 問26
問題文
RDBMSにおけるスキーマの説明として、適切なものはどれか。
選択肢
ア:実表ではない、利用者の視点による仮想的な表である。
イ:データの性質、形式、他のデータとの関連などのデータ定義の集合である。(正解)
ウ:データの挿入、更新、削除、検索などのデータベース操作の総称である。
エ:データベースの一貫性を保持するための各種制約条件の総称である。
RDBMSにおけるスキーマの説明【午前2 解説】
要点まとめ
- 結論: スキーマはテーブル・列名・データ型・関係・制約などを定義するメタデータの集合で、RDBMSにおける設計図としてDDLで表現されます。
- 根拠: スキーマはデータの性質や形式、他データとの関連を規定する「定義の集まり」であり、実際のデータ(インスタンス)とは区別されます。
- 差がつくポイント: ビュー(仮想表)やDML(挿入・更新などの操作)と混同しないこと、論理スキーマと物理スキーマの違いを押さえると得点差がつきます。
正解の理由
正解: イ
「データの性質、形式、他のデータとの関連などのデータ定義の集合である」という説明は、スキーマの本質を表しています。スキーマはテーブル構造(列名、データ型)、キーや外部キーといった関係、制約(NOT NULL, UNIQUE 等)やインデックスの設計など、データの定義をまとめたもので、これらは通常DDL(CREATE TABLE など)で記述されます。したがって選択肢イは正しい定義です。
「データの性質、形式、他のデータとの関連などのデータ定義の集合である」という説明は、スキーマの本質を表しています。スキーマはテーブル構造(列名、データ型)、キーや外部キーといった関係、制約(NOT NULL, UNIQUE 等)やインデックスの設計など、データの定義をまとめたもので、これらは通常DDL(CREATE TABLE など)で記述されます。したがって選択肢イは正しい定義です。
よくある誤解
- スキーマを「実際のデータ(インスタンス)」と混同する誤り:スキーマは構造と定義、インスタンスはその時点の実データです。
- スキーマ=ビューと誤認する誤り:ビューは仮想的な表(利用者視点)であり、スキーマは構造定義の集合です。
- スキーマ=制約だけと狭く捉える誤り:制約はスキーマの一部ですが、スキーマはそれ以外の定義(列型や関係)も含みます。
解法ステップ
- 問題文の「スキーマ」をキーワードとして定義の核心(構造・定義・メタデータ)を思い出す。
- 各選択肢のキーワードを照合する(仮想表、データ定義、操作、制約)。
- 「データの性質・形式・他のデータとの関連」を含むものが最も包括的な定義であると判断する。
- 部分的に正しい記述(制約のみ、仮想表)を除外して正答へ到達する。
選択肢別の誤答解説
- ア: 実表ではない、利用者の視点による仮想的な表である。
→ これは「ビュー(view)」の定義であり、スキーマそのものの説明ではありません。スキーマはビューを含むこともありますが、仮想表だけを指すわけではありません。 - イ: データの性質、形式、他のデータとの関連などのデータ定義の集合である。
→ 正解。スキーマはテーブル定義、列定義、データ型、制約、リレーションシップなどのメタデータの集合を指します。 - ウ: データの挿入、更新、削除、検索などのデータベース操作の総称である。
→ これはDML(Data Manipulation Language)やCRUD操作の説明であり、スキーマの定義ではありません。 - エ: データベースの一貫性を保持するための各種制約条件の総称である。
→ 制約はスキーマの重要な要素ですが、スキーマは制約以外にも列型や関係など広範な定義を含むため説明として不十分です。
補足コラム
- スキーマの階層: 外部スキーマ(利用者視点)→ 概念スキーマ(論理設計)→ 物理スキーマ(実装・格納方法)。試験では「論理スキーマ=テーブル・列・関係の定義」を念頭に置くとよいでしょう。
- DDLの例(スキーマ定義の代表例): CREATE TABLE 文で列名や型、制約を定義します。例:
CREATE TABLE employees ( emp_id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, dept_id INT, FOREIGN KEY (dept_id) REFERENCES departments(dept_id) );
- スキーマ変更(スキーマ進化)は設計変更やマイグレーションを伴い、データ整合性と運用影響を考慮する必要があります。
FAQ
Q1: スキーマとデータベースは同じですか?
A1: 異なります。データベースはデータの集合(インスタンス)やそれを扱うシステム全体を指し、スキーマはその構造や定義を指します。
A1: 異なります。データベースはデータの集合(インスタンス)やそれを扱うシステム全体を指し、スキーマはその構造や定義を指します。
Q2: 制約はスキーマに含まれますか?
A2: はい。NOT NULL、PRIMARY KEY、FOREIGN KEY、CHECKなどの制約はスキーマの一部です。
A2: はい。NOT NULL、PRIMARY KEY、FOREIGN KEY、CHECKなどの制約はスキーマの一部です。
Q3: スキーマは実行時に変わることがありますか?
A3: はい。スキーマ変更(ALTER TABLE など)で定義を変更できますが、運用上の影響やマイグレーションが発生します。
A3: はい。スキーマ変更(ALTER TABLE など)で定義を変更できますが、運用上の影響やマイグレーションが発生します。
関連キーワード: スキーマ、RDBMS、DDL、メタデータ、テーブル定義、列定義、データ型、制約、ビュー、インスタンス、論理スキーマ、物理スキーマ

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

