データベースとは、コンピュータ上でデータを効率的 かつ 整理された方法で保存・管理するシステムのことを指します。

IT初心者向けにわかりやすく説明すると「あらゆる情報が整理されている収納箱」のようなものと言えます。

データベースという概念が誕生する前は「〇〇の情報が知りたいなら東京にいく」「■■が知りたいなら大阪に行く」といったように、補完されている場所も形式もバラバラで、一元的な管理が行えませんでした。
そこで必要なデータを決められた形式で保持するための仕組みとして考えだされたのがデータベース。

システムエンジニアの世界では "DataBase" の頭文字をとって「DB」と呼ぶのが一般的。
このページでは、IT初心者向けに「データベースとは何か?」を1からわかりやすく解説します
プログラマーやシステムエンジニアを目指す方であれば、知らないと恥ずかしい超・基本知識の1つ。是非最後までご覧ください。
データベースとは
冒頭でも簡単にご説明した通り、データベースは一言で説明すると「様々なデータを決まった形で整理して集めたもの」「それを実現するための仕組み」です。


「様々なデータを決まった形で整理して集めたもの」「それを実現するための仕組み」-。
この定義に当てはまるものは基本的にデータベースと呼んでOK。
ただし、このページではより実践的に「システム」「IT」の世界における「データベース」の意味や特徴に焦点を当てて解説していきます。
- 広義の意味での「データベース」
- 定義:一定の基準や体系に従って集められ、整理・格納された情報やデータの集まり。
- 例:図書館(物理的な本や資料の集合)、成績表(学生の成績データの集合)、アルバム(写真の集合)など。
- 特徴:物理的・電子的問わず、情報やデータを一元的に集約・保管している場所やシステム全般を指す。
- システムの世界での「データベース」
- 定義:コンピュータシステム上で動作し、データの保存、検索、更新、削除などを効率的に行うためのソフトウェアやシステム。データの持続性、整合性、並行アクセスのサポートなどの機能を持つ。
- 例:Oracle、MySQL、PostgreSQL、MongoDBなどのデータベース管理システム(DBMS)。
- 特徴:通常、特定のクエリ言語(例:SQL)を使用してデータにアクセスし、データの整合性やセキュリティを保ちながら、高速にデータを処理することが可能。
データベースの役割
IT / システムの文脈のおける「データベース」。その主な目的は、複数のデータを一元的に保存し、必要なデータを簡単に検索・取得・追加・更新・削除することができるようにすること。これにより、企業や組織が効率的に情報を扱うことができます。

補足としてデータベースの成り立ち・歴史を簡単にご説明したいと思います。
データベースという用語はDoD (Department of Defense = 米国国防省) で誕生しています。アメリカ国内で散在していた様々な軍事情報を一か所に集め、そこを見れば国内すべての軍事情報をすべて把握できるようにしたのがデータベースの起源です。


データベースという概念が誕生する前は、〇〇の情報を知りたいなら□□の図書館へ・・・△△の情報を知りたいなら●●の大学へ・・・・と情報収集するにも膨大な労力が必要でした。もっと言うと、そもそもあまり「情報」「データ」というものが今ほど重要視されていなかった時代に、情報の重要性を認識しその必要性に応じて誕生したのが「データベース」なのです。
散在している情報を1か所に集積し、決まった形で管理・保持することで、必要な情報を素早く収集することが可能にしたのが "データベース" という概念です。
データベースの例
データベースはシステムの世界に限らず実は様々な場面で利用されています。

広い意味で言うと、電話帳やアドレス帳、クラスの生徒名簿など、決まった形でデータが集められているのでデータベースの例と言えます。

我々はこのように様々な場面でデータベースを活用していることが分かります。

もしデータベースがなかったら、〇〇さんの電話番号が知りたい!思っても、過去のメモなどを頑張って探したり、知っている人に聞いたりしないといけません。
同じようにシステムの世界でも、決まったデータを決まった形で整理・保持しておくことは、システムの効率性を高めるうえで非常に重要なことなのです。
では、コンピュータの世界ではどのようにデータを管理・整理しているのでしょうか。
次に、コンピュータ内部におけるデータ保持形式の違いに着目してデータベースを分類して解説します。
データベースの種類
データベースは、どのような形でデータを保持するか?という観点で見た際、以下の3種類に分類することができます。


ここでは、代表的な3つのデータベースを見ていきながら、データベースのイメージを深めていきましょう。
リレーショナルデータベース

データベースの中で最も一般的に利用されるのがリレーショナルデータベースです。
リレーショナルデータベースは、エクセルのように表形式(テーブル)であらわされるデータベースで、テーブル間の関係(リレーション)を定義することでデータの結びつきや関連性をわかりやすく表します。

普段何気なく利用している電話帳や、学校の先生が使っていた出席簿などは、リレーショナルデータベースの原型とも言えます。

そのうえで、リレーショナルデータベースの特徴は「リレーショナル」の名の通り(学生の個人情報を保持するテーブルや、成績を管理するテーブルなどを表形式で整理しつつ)それら2つのテーブルの関連性がわかるように整理されていることが特徴です。
「データベースといえばリレーショナルデータベース」と言っても過言ではないぐらいポピュラーな形式。データベースの勉強をする=リレーショナルデータベースの勉強をする という感じなので、リレーショナルデータベースという用語は必須で頭に入れておきましょう。
リレーショナルデータベースをより専門的に説明すると、表形式のデータを使用してデータを保存・管理するためのデータベースモデルと説明できます。

このモデルでは、データが複数のテーブルに分割され、各テーブルには行と列があります。

各テーブルは列に対応する「フィールド」と行に対応する「レコード」で構成され、フィールドにはテーブル内で保存されるデータの種類に応じてデータ型が定義されます。レコードには、テーブル内の各フィールドに対応する値が含まれます。
リレーショナルデータベースでは、複数のテーブルをリレーション(関連)として定義することができます。これにより、異なるテーブル間でデータを結合することができます。

例えば、生徒情報を保存するテーブルと成績情報を保存するテーブルがある場合、これら2つのテーブルを生徒の所属するクラスに関連付けることで、クラスごとの科目の点数を簡単に取得することが可能になります。

リレーショナルデータベースは、データの整合性を維持しやすく、柔軟性があります。
SQL(Structured Query Language)を使用してデータの検索、更新、挿入、削除などを行うことができます。そのため、リレーショナルデータベースは、現代のアプリケーションやビジネスにおいて、最も一般的に使用されているデータベースモデルの1つです。
参考 SQLとは?
階層型データベース

階層型データベースは、データを階層型の親子関係で表現するデータベースです。


上記の階層型データベースの例では、英語の点数を各生徒別に保持しています。Cさんの点数は、英語 > C と階層をたどることで取得することができます。
この他にも階層型データベースの例としては、会社の組織図やOSのファイル管理システム(ディレクトリ)が分かりやすいかと思います。


階層型データベースのポイントは、データをツリー構造で表すということ。 そして1つのデータが他の複数のデータに対して、親子関係をもつということがポイントです。
ネットワーク型データベース
ネットワーク型データベースは、階層型データベースに代わるデータモデルの1つで、データの関係性を以下のようなグラフ構造で表現する方法です。

ネットワーク型データベースは、複数のデータレコードが相互に関連している場合に使用されます。各レコードは、複数の「親」レコードおよび「子」レコードにリンクすることができます。

例えば、会社の組織図を考えてみると、ネットワーク型データベースでは、部下が複数の上司を持つ場合に柔軟に対応できます。上司と部下の関係がツリー構造で表現される階層型データベースではそれが表現できません。

図13:ネットワーク型データベースの例(1)

また同様に下記のネットワーク型データベースを見れば、Aさんは国語と英語を受験していますが、Cさんは英語しか受験していないということが分かります。

ネットワーク型データベースは従来の階層型データベースに比べて柔軟性が高く、複雑な関係を持つデータを扱うのに適しています。が、データの整合性を維持するために、リンクの数やパスの長さに制限がある場合があるという点がデメリットです。
【まとめ】データベースとは?

現在のスキルに今一つ満足できていないシステムエンジニア/プログラマーの方へ。
SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。是非この機会にブックマークを!
読者料典 【完全無料】SQL:初心者向け学習ロードマップ ←こちらから!