情報処理試験を勉強していると、「DBMSとRDBMSって何が違うの?」「RDBMSって具体的に何をしてくれるソフト?」と混乱しがちです。
この記事では、RDBMSの定義から主要機能、試験での出題パターンまでを一気に整理します。
対象試験と出題頻度
RDBMSは、応用情報技術者で出題されるテーマです。
DBMSの機能分類を問う問題の中で「関係データベース管理システム(RDBMS)」という文言が頻繁に登場するほか、オプティマイザやデータディクショナリといったRDBMS固有の構成要素を問う出題もあります。
詳細をクリックして確認
応用情報技術者
★★★★☆
ランクA(重要)必ず覚えておくべき
用語の定義
RDBMS(Relational Database Management System:関係データベース管理システム)とは、一言で言うと
「リレーショナルモデル(関係モデル)に基づいてデータを表形式で管理・操作するDBMS」
のことです。
イメージとしては、「Excelに自動管理機能がついたもの」です。
Excelでは表にデータを入力できますが、複数人が同時に同じセルを編集すると上書き事故が起きますし、ファイルが壊れたらデータは消えます。
RDBMSは、表形式のデータ管理に加えて、同時アクセスの制御、障害時の復旧、アクセス権の管理まで自動で行ってくれるソフトウェアです。
📊 RDBMSの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Relational Database Management System |
| 分類 | ミドルウェア(DBMSのうち関係モデルを採用したもの) |
| 操作言語 | SQL(Structured Query Language) |
| 代表製品 | Oracle Database、MySQL、PostgreSQL、Microsoft SQL Server、SQLite |
| 理論的な基盤 | 1970年 E.F.コッドが提唱した関係モデル(リレーショナルモデル) |
解説
DBMSとRDBMSの関係
DBMSは「データベースを管理するソフトウェア」の総称であり、採用するデータモデルは問いません。
RDBMSは、そのDBMSの中でも「関係データベース(RDB)」を扱うものを指します。
つまり「DBMS ⊃ RDBMS」という包含関係です。
現在の業務システムの大半は関係モデルを採用しているため、IPA試験で「DBMS」と書かれていても、実質的にはRDBMSの機能を前提にした出題がほとんどです。
DBMSとRDBMSの包含関係
DBMS(データベース管理システム全般)
RDBMS
Oracle, MySQL
PostgreSQL 等
NoSQL系DBMS
MongoDB, Redis
Cassandra 等
▲ RDBMSはDBMSの一種。関係モデルを採用した製品群を指す
RDBMSの主要機能
RDBMS固有の機能として押さえるべきものは、データ定義・データ操作といったDBMS共通の機能に加えて、オプティマイザとデータディクショナリの2つです。
| 機能 | 役割 | 具体例 |
|---|---|---|
| データ定義 | テーブル・ビュー・インデックスなどの構造を定義・変更・削除する | CREATE TABLE ALTER TABLE DROP TABLE |
| データ操作 | データの検索・追加・更新・削除を実行する | SELECT / INSERT UPDATE / DELETE |
| オプティマイザ | SQL文の実行時に、最も効率の良いアクセス経路(実行計画)を自動選択する | コストベース方式 ルールベース方式 |
| データディクショナリ | スキーマ定義や制約情報などのメタデータを一元管理する保管庫 | テーブル定義情報 ユーザー権限情報 |
| 排他制御 | 複数トランザクションの同時実行で矛盾が起きないようロックで制御する | 共有ロック 専有ロック |
| 障害回復 | 障害発生時にログファイルを使ってデータを正常な状態に復旧する | ロールフォワード ロールバック |
図解:RDBMSの処理の流れ
利用者がSQLを発行してから結果が返るまでの間に、RDBMS内部ではオプティマイザによる最適化やデータディクショナリの参照が行われています。
▼ 発行されるSQL(例)
SELECT * FROM 社員 WHERE 部署 = '営業';
| ① | 構文解析 SQL文の文法に誤りがないかをチェックする。文法エラーがあればここで弾かれる。 |
| ② | データディクショナリ参照 「社員」テーブルは存在するか、このユーザーにSELECT権限はあるか、といったメタ情報を確認する。 |
| ③ | オプティマイザ インデックスを使うか、テーブル全件を読むか等、複数の実行計画のコストを比較して最速の経路を選ぶ。 |
| ④ | 実行エンジン ③で決まった計画に従い、ディスク上のデータファイルから該当行を読み出して結果セットを返す。 |
※ ③のオプティマイザがコストベース方式の場合、テーブルの行数やインデックスの選択性などの統計情報を参照して判断する。この統計情報の有無が試験で問われるポイント。
なんとなくで覚えたい人向け:オプティマイザをざっくり理解
カーナビに例えると分かりやすいです。目的地(欲しいデータ)を入力すると、カーナビは「高速道路を使うルート」「一般道を使うルート」など複数の候補を計算し、最短時間のルートを自動で選びます。オプティマイザも同じで、インデックスを使うか・テーブル全体をスキャンするかなど複数の方法を比較し、最もコストが低い実行計画を選択します。コストベース方式では、テーブルの行数やインデックスの選択性といった「統計情報」をもとに判断します。
代表的なRDBMS製品の比較
実務で使われる主要な製品は5つあります。
試験で製品名を直接問われることはまれですが、背景知識として整理しておくと理解が深まります。
| 製品名 | 開発元 | ライセンス | 特徴 |
|---|---|---|---|
| Oracle Database | Oracle | 商用 | 大規模企業システムでの採用実績が最も豊富 |
| MySQL | Oracle (元Sun) | OSS / 商用 | Webアプリケーション分野で世界的にシェアが高い |
| PostgreSQL | コミュニティ | OSS | SQL標準への準拠度が高く、拡張性に優れる |
| SQL Server | Microsoft | 商用 | Windows環境との親和性が高い |
| SQLite | D.R.Hipp | パブリックドメイン | サーバー不要の軽量型。スマホアプリに多く組み込まれる |
では、RDBMSが試験でどのように出題されるか見ていきましょう。
💡 RDBMSの核心を3行で
・関係モデルに基づきデータを表形式で管理するDBMSの一種
・オプティマイザ(実行計画の最適化)とデータディクショナリ(メタデータ管理)がRDBMS固有の重要機能
・Oracle Database、MySQL、PostgreSQLなどが代表製品
試験ではこう出る!
RDBMSは、APの午前問題で「関係データベース管理システム(RDBMS)の○○」という形で繰り返し出題されています。
出題パターンは大きく2つに分かれます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP H25秋 午前 問28 |
RDBMSのコストベースのオプティマイザの機能の説明として適切なものを選ぶ問題。 | ・正解は「統計情報を基に実行計画を比較してアクセスパスを選択する」 ・ルールベース方式の説明がひっかけ |
| AP H30春 午前 問29 |
RDBMSのデータディクショナリに格納されるものを選ぶ問題。 | ・正解は「スキーマの定義情報」 ・表の実データやインデックスの内容はDD格納対象外 |
| AP R3春 午前 問30 |
コストベースのオプティマイザがSQL実行計画作成時に必要なものを選ぶ問題。 | ・正解は「統計情報」 ・ディメンジョンテーブルや待ちグラフがひっかけ |
| FE H26春 午前 問25 |
SQL文の効率的なアクセス経路を選択するRDBMSの機能名を選ぶ問題。 | ・正解は「オプティマイザ」 ・ガーベジコレクションなど無関係な用語がひっかけ |
📝 IPA試験での出題パターン
パターン1:「RDBMSの構成要素の名称・役割を選べ」
「SQL文の実行時にアクセス経路を最適化する機能は?」→ オプティマイザ。「メタデータを格納する保管庫は?」→ データディクショナリ。この2つは名称と役割をセットで覚えてください。ここだけは確実に押さえるべきポイントです。
パターン2:「オプティマイザの方式の違いを選べ」
コストベース方式は「統計情報」をもとに実行計画のコストを見積もる方式。ルールベース方式は「事前に定義された優先順位」に従う方式。ひっかけ選択肢では両者の説明が入れ替えられるため、「統計情報=コストベース」の対応を暗記しておけば即答できます。
試験ではここまででOKです。RDBMSの内部アーキテクチャ(バッファプール管理やWALプロトコルの詳細)まで問われることはないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. RDBMSのコストベースのオプティマイザに関する説明として、最も適切なものはどれでしょうか?
- A. スキーマの定義情報やユーザー権限などのメタデータを一元管理する保管庫として機能する。
- B. あらかじめ定義された優先順位ルールに従い、常に同じアクセスパスを選択する。
- C. テーブルの行数やインデックスの選択性などの統計情報をもとに、最もコストが低い実行計画を選択する。
正解と解説を見る
正解:C
解説:
コストベースのオプティマイザは、RDBMSが収集した統計情報(テーブルの行数、カラムの値の分布、インデックスの選択性など)を基に複数の実行計画のコストを見積もり、最も効率的なアクセスパスを選択する機能です。AP H25秋 午前問28で同様の問い方がされています。
選択肢Aはデータディクショナリの説明です。メタデータの一元管理はオプティマイザの役割ではありません。選択肢Bはルールベース方式の説明です。コストベース方式は統計情報に基づいて動的に判断するため、常に同じ経路を選ぶとは限りません。
よくある質問(FAQ)
Q. RDBMSの「リレーショナル」とは何を意味していますか?
1970年にE.F.コッドが発表した「A Relational Model of Data for Large Shared Data Banks」に由来します。ここでの「リレーション」は数学の集合論における「関係(relation)」を指し、「テーブル同士を結びつける」という意味ではありません。関係モデルでは1つのテーブル(表)そのものが1つの「リレーション」です。日常的には「テーブル間の関連付け」と混同されやすいですが、原義は「行と列で構成される2次元の集合」を意味します。
Q. RDBMSとNoSQLはどちらを選ぶべきですか?
データの整合性や複雑な結合処理が求められる業務系システム(受注管理、会計など)はRDBMSが適しています。一方、大量のアクセスを高速にさばく必要があるWebサービスのセッション管理やリアルタイムログ収集にはNoSQL(Redis、Cassandraなど)が向いています。実務では両者を併用するケースが一般的です。IPA試験の範囲では「RDBMSは関係モデル、NoSQLはそれ以外」の区別ができれば得点に十分です。
Q. オプティマイザの統計情報は自動で更新されますか?
製品によって異なります。Oracle Databaseでは自動統計収集がデフォルトで有効になっており、一定のスケジュールで統計情報を更新します。MySQLやPostgreSQLでもANALYZEコマンドを実行することで統計情報を手動更新できます。統計情報が古いままだとオプティマイザが不適切な実行計画を選択し、性能劣化の原因になります。ただし、この詳細は試験範囲外なので実務知識として押さえておく程度で問題ありません。
Q. 「3層スキーマ」はRDBMS固有の概念ですか?
固有の概念ではありません。3層スキーマアーキテクチャはANSI/SPARCが1975年に提唱したデータベース全般の設計指針であり、データモデルの種類に依存しません。ただし、実装レベルで3層スキーマを忠実に実現しているのは事実上RDBMSだけであり、NoSQLでは外部スキーマや概念スキーマの明確な分離を持たない製品がほとんどです。