FE EXAM

DBMS(データベース管理システム)

データベースを効率よく安全に管理・操作するためのソフトウェア。

DIAGRAM
アプリ
DBMS
データベース
アプリ利用者の操作でデータを要求DBMSSQL処理SQL文を解釈して実行トランザクション管理一連の処理をまとめて保証データ管理保存・検索・整合性の維持データベースデータの保管庫SQL要求読み書き
解説

📌
DBMSとは

アプリDBMSDB

DBMSとは DataBase Management System(データベース管理システム)の略で、データベースを効率よく安全に管理・操作するためのソフトウェアのことです。アプリとデータベースの間に立つミドルウェアの一種です。

身近な例で考えると、図書館の司書さんに似ています。利用者(アプリ)が「この本がほしい」と頼むと、司書(DBMS)が膨大な蔵書(データベース)から正確に探し出し、貸出や返却の記録もきちんと管理してくれます。

DBMSの大切な役割は、データの一元管理・共有・整合性の維持です。複数の人やアプリが同じデータを同時に使っても、矛盾やデータの壊れが起きないように守ってくれます。

📌
主要機能

ACID(信頼できる処理の4条件)A 原子性C 一貫性I 独立性D 永続性

DBMSはデータを正しく安全に扱うため、次のような機能を備えています。
SQLによる問い合わせ処理:データの検索・追加・更新・削除をSQL(データベース操作言語)で指示
トランザクション管理(ACID):一連の処理を「全部成功か全部取消」のひとまとまりとして保証
同時実行制御・排他制御:複数の人が同時に使ってもデータが矛盾しないよう調整
障害回復:停電や故障があってもデータを直前の正しい状態に戻す
アクセス制御・セキュリティ:誰がどのデータを見たり変えたりできるかを管理

ACIDは信頼できる処理に必要な4つの性質の頭文字です。原子性(Atomicity)・一貫性(Consistency)・独立性(Isolation)・永続性(Durability)を指します。銀行の振込で「お金を引いたのに相手に届かない」といった中途半端な状態を防ぐ仕組みだと考えると分かりやすいです。

📌
代表的なDBMS

MySQLPostgre SQLOracleSQL ServerSQLite

世の中には多くのDBMS製品があり、よく使われる代表的なものは次のとおりです。
MySQL:Webサービスで広く使われるオープンソースのDBMS
PostgreSQL:高機能で標準準拠に厳格なオープンソースのDBMS
Oracle Database:大規模な業務システムで使われる商用DBMS
Microsoft SQL Server:マイクロソフト製の商用DBMS
SQLite:1ファイルで動く軽量なDBMS(スマホアプリなどに組み込み)

これらの多くは表(テーブル)の形でデータを管理する「リレーショナルデータベース」に対応しています。どの製品も基本的にSQLで操作できるため、SQLを覚えておけばさまざまなDBMSを扱えるようになります。

📌
なぜDBMSが必要か

DBMSなしアプリAが直接読み書きアプリBも同時に読み書き→ データが壊れる矛盾・重複・消失DBMSありアプリ→DBMSに依頼DBMSが調整して実行→ データが正確整合性・安全性を保証

DBMSが必要な理由を一言で言うと、「複数のアプリが同じデータを同時に扱うとき、DBMSなしでは矛盾や破壊が起きるから」です。

DBMSがない状態でアプリが直接ファイルにデータを書き込むと、次のような問題が起きます。
競合(同時書き込み):2つのアプリが同時に同じ場所を書き換えると、どちらかの変更が消える
整合性の崩れ:「在庫を引く」だけ実行して「注文を記録する」が失敗した場合、データが矛盾したまま残る
管理の分散:アプリごとに別々にデータを持つと、同じ顧客情報が別々に更新されてズレが生じる

DBMSはこれらをまとめて解決する「データの番人」です。アプリはDBMSを通じてデータを操作するだけでよく、複雑な排他制御や障害対策をアプリ側で書く必要がなくなります。これにより開発の手間が大幅に減り、データの信頼性が上がります。

📌
DBMSとOSの位置づけ

応用ソフトウェア(アプリ・Webシステムなど)DBMS(データベース管理システム)← ここミドルウェアOS(オペレーティングシステム)ハードウェア(CPU・メモリ・ストレージ)

ソフトウェアには大きく分けて「基本ソフトウェア(OS)」と「応用ソフトウェア(アプリ)」があります。DBMSはその中間に位置するミドルウェアと呼ばれる種類のソフトウェアです。

それぞれの役割を整理すると次のとおりです。
OS(=基本ソフト):CPUやメモリなどのハードウェアを管理する土台。Windows・Linux・macOSなど
DBMS(=ミドルウェア):OSの上で動き、データの管理という特定の役割を担う。アプリはDBMSに命令を出すだけでよい
応用ソフト(=アプリ):ユーザーが直接使う業務システムやWebアプリ。DBMSを通じてデータを操作する

なぜ層を分けるのか。それは、それぞれが「得意なこと」に集中できるからです。アプリ開発者はデータベースの内部構造を知らなくてもSQLを使えばよく、DBMSの開発者はOSの詳細を知らなくてもよいように設計されています。この層の分離(レイヤー構造)が、複雑なシステムを秩序立てて作る基本の考え方です。

練習問題

🎯
基本情報技術者 練習問題

Q1.DBMS(データベース管理システム)の説明として最も適切なものはどれか。
A.データベースを効率よく安全に管理・操作するためのソフトウェア
B.ハードウェアの資源を直接管理する基本ソフトウェア
C.Webページをブラウザに表示する仕組み
D.通信回線の経路を選ぶ機器
Q2.DBMSの主要機能として適切でないものはどれか。
A.SQLによる問い合わせ処理
B.トランザクション管理(ACID)
C.同時実行制御・障害回復
D.CPUのクロック周波数の制御
Q3.代表的なDBMSの組み合わせとして正しいものはどれか。
A.Apache・Nginx・IIS
B.MySQL・PostgreSQL・Oracle Database
C.Windows・Linux・macOS
D.Word・Excel・PowerPoint

関連コンテンツ