データベース管理システム
DBMSとは何か
Section titled “DBMSとは何か”コンピュータで大量のデータを扱うとき、プログラムからファイルを直接読み書きする方法では、さまざまな問題が起こります。たとえば、複数の人が同じファイルを同時に書き換えるとデータが壊れたり、アプリケーションごとにデータの管理方法がバラバラになったりします。
こうした問題を解決するために生まれたのがDBMS(DataBase Management System:データベース管理システム)です。DBMSは、データベースの作成・管理・操作を一手に引き受ける専用のソフトウェアで、アプリケーションとデータベースの間に立って、データの安全で効率的な利用を実現します。
graph LR
subgraph NO["DBMSなし"]
direction LR
A1["アプリA"]:::base
A2["アプリB"]:::base
A3["アプリC"]:::base
F1["ファイル1"]:::alert
F2["ファイル2"]:::alert
F3["ファイル3"]:::alert
A1 --> F1
A1 --> F2
A1 --> F3
A2 --> F1
A2 --> F2
A2 --> F3
A3 --> F1
A3 --> F2
A3 --> F3
end
subgraph YES["DBMSあり"]
direction LR
B1["アプリA"]:::base
B2["アプリB"]:::base
B3["アプリC"]:::base
D["DBMS"]:::primary
DB[("データベース")]:::primary
B1 --> D
B2 --> D
B3 --> D
D --> DB
end
classDef base fill:#f8fafc,stroke:#94a3b8,stroke-width:1px,color:#333;
classDef primary fill:#eff6ff,stroke:#2563eb,stroke-width:2px,color:#1e40af;
classDef alert fill:#fef2f2,stroke:#dc2626,stroke-width:2px,color:#991b1b;
DBMSを導入すると、アプリケーション側はデータの保存場所や管理方法を意識する必要がなくなり、データの一元管理が可能になります。
DBMSの主な機能
Section titled “DBMSの主な機能”DBMSには、データを安全かつ効率的に扱うためのさまざまな機能が備わっています。ITパスポート試験で問われる主な機能を見ていきましょう。
データの一貫性管理
Section titled “データの一貫性管理”複数のアプリケーションが同じデータベースを利用しても、データの内容に矛盾が生じないように管理します。たとえば、ある商品の在庫数が「100」であるとき、どのアプリケーションから見ても同じ「100」が返ってくるようにするのが一貫性管理です。
アクセス権管理
Section titled “アクセス権管理”データベースに対して「誰が」「どのデータに」「どのような操作を」行えるかを制御します。たとえば、一般社員は売上データを閲覧できるが、書き換えは管理者だけに許可するといった設定が可能です。これにより不正なデータの変更や情報漏えいを防ぎます。
同時実行制御(排他制御)
Section titled “同時実行制御(排他制御)”複数のユーザーが同時にデータベースへアクセスしたとき、データの整合性が崩れないように処理の順番を調整する機能です。たとえば、ECサイトで残り1個の商品に2人が同時に注文した場合、片方だけが購入できるよう正しく制御します。同時実行制御は「排他制御」とも呼ばれます。
障害回復(リカバリ)
Section titled “障害回復(リカバリ)”ハードウェアの故障や停電などの障害が発生しても、データベースの内容を障害前の正常な状態に復旧する機能です。DBMSは、データの変更履歴(ログ)を記録しておくことで、障害発生時にデータを元に戻したり、途中まで完了した処理をやり直したりすることができます。
インデックス(索引)
Section titled “インデックス(索引)”インデックスとは、データの検索を高速に行うために設定する情報です。本の巻末にある「索引」と同じ考え方で、目的のデータがどこにあるかを素早く見つけるための仕組みです。インデックスを適切に設定すると、大量のデータの中から必要な情報を効率よく取り出せるようになります。
試験で出るポイント
「データベースの検索を高速化するために設定するもの」と問われたら、答えはインデックスです(2025年に出題)。
レプリケーション
Section titled “レプリケーション”レプリケーションとは、データベースの内容を他のコンピュータに複製し、常に同期を保つ仕組みです。もし1台のサーバーが故障しても、複製先のサーバーで処理を継続できるため、システムの可用性(止まらずに使い続けられること)が高まります。また、複数のサーバーに読み取り処理を分散させることで、性能向上にもつながります。
試験で出るポイント
「データベースの内容を別のコンピュータに複製して同期する仕組み」と問われたら、答えはレプリケーションです(2025年に出題)。
DBMSの機能ではないもの
Section titled “DBMSの機能ではないもの”試験では「DBMSの機能として正しいもの」を選ぶ問題も出題されます。ファイアウォール(外部からの不正アクセスを防ぐネットワーク機器・ソフトウェア)は、ネットワークセキュリティの機能であり、DBMSの機能ではありません。混同しないようにしましょう。
試験で出るポイント
DBMSの機能として正しいのは「アクセス権管理」「障害回復」「同時実行制御」などです。「ファイアウォール」「処理順序の制御」「ページ管理」はDBMSの機能ではないため、選択肢に含まれていても選ばないようにしましょう。
RDBMSとNoSQL
Section titled “RDBMSとNoSQL”データベースを管理するDBMSには、データの管理方式によっていくつかの種類があります。代表的なものとしてRDBMSとNoSQLの2つがあります。
RDBMS(リレーショナルデータベース管理システム)
Section titled “RDBMS(リレーショナルデータベース管理システム)”RDBMS(Relational DataBase Management System)は、データを「表(テーブル)」の形で管理するDBMSです。行と列で構成された表にデータを格納し、表と表の間に関連(リレーション)を定義することで、複雑なデータも整理して扱えます。
たとえば、「顧客テーブル」と「注文テーブル」を顧客IDで関連づければ、「どの顧客がどの商品を注文したか」を簡単に検索できます。RDBMSは最も広く使われているDBMSの種類で、MySQL、PostgreSQL、Oracle Databaseなどが代表的な製品です。
NoSQL(Not only SQL)は、RDBMSとは異なるデータ管理方式を採用したDBMSの総称です。RDBMSが得意とする厳密な整合性よりも、大量データの高速処理や柔軟なデータ構造を重視する場面で活用されます。NoSQLにはいくつかの種類があります。
| 種類 | データの管理方法 | 特徴・用途の例 |
|---|---|---|
| キーバリューストア(KVS) | 「キー」と「値」のペアで管理 | シンプルで高速。セッション情報やキャッシュの管理に適する |
| ドキュメント指向データベース | JSON等のドキュメント形式で管理 | 柔軟な構造。Webアプリやコンテンツ管理に適する |
| グラフ指向データベース | ノード(点)とエッジ(線)で関係性を管理 | 複雑な関係の表現が得意。SNSの友人関係や経路探索に適する |
たとえば、SNSで「AさんはBさんの友人で、BさんはCさんの友人」という関係を扱う場合、グラフ指向データベースなら自然に表現できます。一方、ECサイトの商品カタログのように、商品ごとに異なる属性(本なら著者、家電ならサイズなど)を持つデータはドキュメント指向データベースが適しています。
RDBMSとNoSQLの比較
Section titled “RDBMSとNoSQLの比較”| 比較項目 | RDBMS | NoSQL |
|---|---|---|
| データ構造 | 表(テーブル)形式、あらかじめ構造を定義 | 柔軟(KVS、ドキュメント、グラフなど) |
| 整合性 | 厳密な一貫性を保証 | 一貫性より速度・柔軟性を重視する場合が多い |
| 得意な場面 | 会計・受注など正確さが求められる業務 | 大量データの高速処理、SNS、IoTなど |
試験で出るポイント
NoSQLの各種類(KVS・ドキュメント指向・グラフ指向)はシラバスに明記されている用語です。それぞれの特徴を簡潔に説明できるようにしておきましょう。RDBMSとの違いは「表形式かどうか」「整合性重視か柔軟性重視か」で整理すると覚えやすくなります。
過去問で実力チェック
Section titled “過去問で実力チェック”過去問に挑戦
Q. データベース管理システムにおける排他制御の目的として,適切なものはどれか。
- ア 誤ってデータを修正したり,データを故意に改ざんされたりしないようにする。
- イ データとプログラムを相互に独立させることによって,システムの維持管理を容易にする。
- ウ データの機密のレベルに応じて,特定の人しかアクセスできないようにする。
- エ 複数のプログラムが同一のデータを同時にアクセスしたときに,データの不整合が生じないようにする。
解答(令和元年)
正解: エ
Q. データ処理に関する記述 a~c のうち,DBMSを導入することによって得られる効果だけを全て挙げたものはどれか。
a 同じデータに対して複数のプログラムから同時にアクセスしても,一貫性が保たれる。
b 各トランザクションの優先度に応じて,処理する順番をDBMSが決めるので,リアルタイム処理の応答時間が短くなる。
c 仮想記憶のページ管理の効率が良くなるので,データ量にかかわらずデータへのアクセス時間が一定になる。
- ア a
- イ a,c
- ウ b
- エ b,c
解答(令和2年)
正解: ア
Q. 情報システムに関する機能 a~d のうち,DBMSに備わるものを全て挙げたものはどれか。
a アクセス権管理
b 障害回復
c 同時実行制御
d ファイアウォール
- ア a,b,c
- イ a,d
- ウ b,c
- エ c,d
解答(令和3年)
正解: ア
Q. 関係データベースで管理している次の “ログイン記録” 表及び “部署” 表において,ログイン結果が失敗となったことのある,又は,2022年4月10日 09:00:00 以前にログイン結果が成功となったことのある従業員が所属する部署名だけを全て挙げたものはどれか。
ログイン記録
| 日時 | 従業員番号 | 部署番号 | ログイン結果 |
|---|---|---|---|
| 2022-4-10 08:50:42 | 10004 | 003 | 失敗 |
| 2022-4-10 08:53:15 | 10004 | 003 | 成功 |
| 2022-4-10 08:55:48 | 10002 | 002 | 成功 |
| 2022-4-10 09:00:15 | 10001 | 001 | 成功 |
| 2022-4-10 09:01:05 | 10012 | 002 | 成功 |
| 2022-4-10 09:03:01 | 10008 | 003 | 成功 |
| 2022-4-10 09:10:28 | 10007 | 001 | 成功 |
| 2022-4-10 09:32:19 | 10002 | 002 | 成功 |
| 2022-4-10 09:39:22 | 10005 | 003 | 失敗 |
| 2022-4-10 10:00:02 | 10011 | 001 | 失敗 |
| 2022-4-10 10:05:51 | 10011 | 001 | 成功 |
| 2022-4-10 10:30:45 | 10009 | 002 | 成功 |
部署
| 部署番号 | 部署名 |
|---|---|
| 001 | 営業部 |
| 002 | システム部 |
| 003 | 人事部 |
- ア 営業部,システム部
- イ 営業部,人事部
- ウ 営業部,システム部,人事部
- エ システム部,人事部
解答(令和7年)
正解: ウ
Q. あるコンピュータのデータベースの内容を他のコンピュータのデータベースに複製して,両者の内容が一致するように同期させるDBMSの機能はどれか。
- ア アーカイブ
- イ バックアップ
- ウ レプリケーション
- エ ロールバック
解答(令和7年)
正解: ウ