データベースの用語一覧へ
このページの目次
データベース初級図解あり

データベースとは?

読み方:でーたべーす

最終更新:2026/08/18

3秒でわかる

大量のデータを決まった形で保存し、検索や更新を安全かつ高速に行うための仕組み。Web サービスの裏側はほぼ例外なくこれを持っています。

30秒図解

データベースは整理した表を索引とトランザクションで安全に検索更新する仕組み
DBは保存場所だけでなく、索引、制約、取引で安全な検索更新を支えます。

もう少し詳しく

どういうものか

データを整理された形で保存し、必要なものを取り出したり書き換えたりする操作を引き受けるソフトウェアです。表計算ソフトとの違いは、扱える件数と、複数人が同時に触ったときの安全性にあります。数百万行の中から条件に合う行を一瞬で取り出し、同じ行を同時に更新しようとしても矛盾した状態にならないよう調整します。

大きく 2 系統あります。行と列の表でデータを持ち、表どうしを関連付けて扱うリレーショナルデータベースと、文書やキーと値の組など、より自由な形で持つ NoSQL です。件数と関係の複雑さがはっきりしている業務データは前者、形が定まらないログや一時的なキャッシュは後者が向きます。

なぜ必要か

データをファイルに保存するだけなら、テキストファイルでもできます。困るのは規模が増えたときです。10 万件の中から特定の 1 件を探すのに全部読む必要がある、2 人が同時に書き込んで片方の内容が消える、書き込みの途中で異常終了してファイルが壊れる、といった問題が次々に起きます。

データベースは、索引による高速な検索、複数の操作をひとまとまりとして扱うトランザクション、障害時の復旧といった仕組みを最初から備えています。自分で書き直す価値がない部分を任せるための道具だと考えると位置付けが分かりやすくなります。

具体例

表を作り、行を入れ、条件で取り出す流れは SQL で書きます。

CREATE TABLE customers ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); INSERT INTO customers (name, email) VALUES ('田中太郎', 'tanaka@example.com'); SELECT id, name FROM customers WHERE created_at >= '2026-01-01' ORDER BY created_at DESC LIMIT 20;

UNIQUE を付けておくと、同じメールアドレスの重複登録をデータベース側が拒否します。アプリ側のチェックをすり抜けた場合の最後の砦になります。

つまずきやすいところ

同じ情報を複数の表に写して持つ設計は、後から必ず壊れます。片方だけ更新されて食い違うためです。事実は 1 か所に置き、他は参照で結ぶという原則を先に決めておきます。

件数が少ないうちは何を書いても速いため、遅さに気付くのは本番でデータが増えてからです。検索条件に使う列に索引を張っていないと、行数に比例して遅くなります。

「とりあえず全部取ってきてアプリ側で絞る」書き方も同じ理由で危険です。10 件のときは動き、10 万件で止まります。絞り込みはデータベース側に任せます。

似た用語との違い

データベースが保存されたデータそのものを指すのに対し、それを操作するソフトウェアを DBMS と呼び、MySQLPostgreSQL がこれにあたります。SQL は DBMS へ命令を伝えるための言語で、3 つは別の層の話です。

次に学ぶ

SQLとは?

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地データベースDB

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

この用語を扱うコース

コース

SQL入門:データベース操作のきほん

71レッスン
コース

DB設計入門 ER図・正規化・インデックス

47レッスン
コース

コンピューターサイエンス:アルゴリズム / OS / ネットワーク / DB

135レッスン
SQL・データベースコースの全編を見る