PR

データベースとは?IT初心者向けにわかりやすく3分で解説【DB】

Database

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

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

データベースとは
図1:データベースとは?

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

そこで必要なデータを決められた形式で保持するための仕組みとして考えだされたのがデータベース。

システムエンジニアの世界では "DataBase" の頭文字をとって「DB」と呼ぶのが一般的。

このページでは、IT初心者向けに「データベースとは何か?」を1からわかりやすく解説します

このページで学べる内容
  • データベースとは?
    • データベースの成り立ち
  • データベースの種類
    • リレーショナルデータベース
    • 階層型データベース
    • ネットワーク型データベース

プログラマーやシステムエンジニアを目指す方であれば、知らないと恥ずかしい超・基本知識の1つ。是非最後までご覧ください。

スポンサーリンク

データベースとは

冒頭でも簡単にご説明した通り、データベースは一言で説明すると「様々なデータを決まった形で整理して集めたもの」「それを実現するための仕組み」です。

データベースとは わかりやすく
【再掲】図1:データベースのイメージ

様々なデータを決まった形で整理して集めたもの」「それを実現するための仕組み」-。

この定義に当てはまるものは基本的にデータベースと呼んでOK。

ただし、このページではより実践的に「システム」「IT」の世界における「データベース」の意味や特徴に焦点を当てて解説していきます。

  1. 広義の意味での「データベース」
    • 定義:一定の基準や体系に従って集められ、整理・格納された情報やデータの集まり。
    • 例:図書館(物理的な本や資料の集合)、成績表(学生の成績データの集合)、アルバム(写真の集合)など。
    • 特徴:物理的・電子的問わず、情報やデータを一元的に集約・保管している場所やシステム全般を指す。
  2. システムの世界での「データベース」
    • 定義:コンピュータシステム上で動作し、データの保存、検索、更新、削除などを効率的に行うためのソフトウェアやシステム。データの持続性、整合性、並行アクセスのサポートなどの機能を持つ。
    • 例:Oracle、MySQL、PostgreSQL、MongoDBなどのデータベース管理システム(DBMS)
    • 特徴:通常、特定のクエリ言語(例:SQL)を使用してデータにアクセスし、データの整合性やセキュリティを保ちながら、高速にデータを処理することが可能。

データベースの役割

IT / システムの文脈のおける「データベース」。その主な目的は、複数のデータを一元的に保存し、必要なデータを簡単に検索・取得・追加・更新・削除することができるようにすること。これにより、企業や組織が効率的に情報を扱うことができます。

データベースの主な役割
  • データの保存
    →情報を整理してコンピュータ上に保存する
  • データの検索/取得
    →特定の条件に一致するデータを見つけ出し取得する
  • データの追加/更新/削除
    →新しいデータを追加したり既存のデータを更新・削除する
Tips:データベースの歴史

補足としてデータベースの成り立ち・歴史を簡単にご説明したいと思います。

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

データベースのイメージ
図2:データベースのイメージ

データベースという概念が誕生する前は、〇〇の情報を知りたいなら□□の図書館へ・・・△△の情報を知りたいなら●●の大学へ・・・・と情報収集するにも膨大な労力が必要でした。もっと言うと、そもそもあまり「情報」「データ」というものが今ほど重要視されていなかった時代に、情報の重要性を認識しその必要性に応じて誕生したのが「データベース」なのです。

散在している情報を1か所に集積し、決まった形で管理・保持することで、必要な情報を素早く収集することが可能にしたのが "データベース" という概念です。

データベースの例

データベースはシステムの世界に限らず実は様々な場面で利用されています。

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

データベース 例
図3:データベースの例

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

もしデータベースがなかったら、〇〇さんの電話番号が知りたい!思っても、過去のメモなどを頑張って探したり、知っている人に聞いたりしないといけません。

同じようにシステムの世界でも、決まったデータを決まった形で整理・保持しておくことは、システムの効率性を高めるうえで非常に重要なことなのです。

では、コンピュータの世界ではどのようにデータを管理・整理しているのでしょうか。

次に、コンピュータ内部におけるデータ保持形式の違いに着目してデータベースを分類して解説します。

データベースの種類

データベースは、どのような形でデータを保持するか?という観点で見た際、以下の3種類に分類することができます。

3種類のデータベース
データベース 種類
図4:データベースの分類
  • リレーショナルデータベース
    ⇒エクセルのように表形式でデータを保存する
  • 階層型データベース
    ⇒ツリー状にデータを保存する
  • ネットワーク型データベース
    ⇒データを相互に関連付けて保存する

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

リレーショナルデータベース

リレーショナルデータベース わかりやすく
図5:リレーショナルデータベースとは

データベースの中で最も一般的に利用されるのがリレーショナルデータベースです。

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

リレーショナルデータベース
図6:リレーション

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

そのうえで、リレーショナルデータベースの特徴は「リレーショナル」の名の通り(学生の個人情報を保持するテーブルや、成績を管理するテーブルなどを表形式で整理しつつ)それら2つのテーブルの関連性がわかるように整理されていることが特徴です。

「データベースといえばリレーショナルデータベース」と言っても過言ではないぐらいポピュラーな形式。データベースの勉強をする=リレーショナルデータベースの勉強をする という感じなので、リレーショナルデータベースという用語は必須で頭に入れておきましょう。

リレーショナルデータベースを専門的に解説すると

リレーショナルデータベースをより専門的に説明すると、表形式のデータを使用してデータを保存・管理するためのデータベースモデルと説明できます。

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

リレーショナルデータベース,列 カラム,行 レコード
図7:リレーショナルデータベースの仕組み

各テーブルは列に対応する「フィールド」と行に対応する「レコード」で構成され、フィールドにはテーブル内で保存されるデータの種類に応じてデータ型が定義されます。レコードには、テーブル内の各フィールドに対応する値が含まれます。

リレーショナルデータベースでは、複数のテーブルをリレーション(関連)として定義することができます。これにより、異なるテーブル間でデータを結合することができます。

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

リレーショナルデータベース,リレーション
図8:リレーショナルデータベース/リレーション

リレーショナルデータベースは、データの整合性を維持しやすく、柔軟性があります。

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

参考 SQLとは?

リレーショナルデータベースの概念を理解するためには、表形式での整理が非常に助けになると思いますので、以下、簡単な学生と講義の情報を管理するリレーショナルデータベースの例を示します。

例1 学生テーブル(Students)

学生ID名前年齢メールアドレス
1山田太郎20yamada@example.com
2鈴木花子19suzuki@example.com
3佐藤一郎21sato@example.com

例2 講義テーブル(Lectures)

講義ID講義名教授名
101数学山本先生
102物理学高橋先生
103コンピュータサイエンス佐々木先生

例3 学生講義マッピングテーブル(StudentLectures)

学生ID講義ID
1101
1103
2102
3101

この例では、学生テーブルが学生の情報、講義テーブルが講義の情報を保持しており、学生講義マッピングテーブルが学生と講義の関係性を示しています。

このような表形式のデータ構造が、リレーショナルデータベースでのデータ管理の基本です。リレーション(関係)とは、このようにテーブル間での関連性のことを指します。

まとめ:リレーショナルデータベースとは?
  • テーブル構造: データを表形式で保存し、行と列で構成される。
  • リレーション: それぞれのテーブル間の関連性をリレーションと呼び、相互に関連付けられることが可能。
  • データ整合性: 制約やルールを設定することで、データの整合性を維持する。
  • SQL対応: SQL(Structured Query Language)を使用して、データの検索、挿入、更新、削除などの操作が行える。
  • スケーラビリティ: 大量のデータと複雑なクエリに対しても、効率的に処理することができる。

階層型データベース

階層型データベース わかりやすく
図9:階層型データベース

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

階層型データベース
図10:階層型データベースの例(1)

上記の階層型データベースの例では、英語の点数を各生徒別に保持しています。Cさんの点数は、英語 > C と階層をたどることで取得することができます。

この他にも階層型データベースの例としては、会社の組織図やOSのファイル管理システム(ディレクトリ)が分かりやすいかと思います。

階層型データベースの例
図11::階層型データベースの例(2)

階層型データベースのポイントは、データをツリー構造で表すということ。 そして1つのデータが他の複数のデータに対して、親子関係をもつということがポイントです。

階層型データベースが利用されるシステムの例
  • オペレーティングシステムのファイル管理: ファイルシステムの管理に階層型データベースの概念が用いられることが多く、ディレクトリやファイル間の親子関係を表現する。
  • 組織構造の管理: 企業の部署やチームの階層構造を管理するために使用されることがある。
  • 製品の部品構造: 製造業での部品の構造管理など、製品の階層構造を管理する際に用いられる。
  • XML文書の管理: XML文書は階層構造を持つため、階層型データベースでの管理が適している。
  • ネットワーク管理: ネットワークトポロジーの管理など、ネットワークの構造を階層型データベースで表現する場合がある。
階層型データベースのポイント
  • データをツリー構造で表す
  • 1つのデータが他の複数のデータに対して親子関係をもつ

サンプル 階層型データベースの操作例

以下は、親子関係を表現するクラスを作成し、組織の階層構造を表示するプログラムです。

class Department:
    def __init__(self, name):
        self.name = name
        self.sub_departments = []

    def add_sub_department(self, department):
        self.sub_departments.append(department)

    def display(self, level=0):
        print('  ' * level + self.name)
        for sub_department in self.sub_departments:
            sub_department.display(level + 1)

root = Department("会社")
sales = Department("営業部")
root.add_sub_department(sales)
sales.add_sub_department(Department("東京営業部"))
sales.add_sub_department(Department("大阪営業部"))

root.display()

# 会社
#   営業部
#     東京営業部
#     大阪営業部

ネットワーク型データベース

ネットワーク型データベースは、階層型データベースに代わるデータモデルの1つで、データの関係性を以下のようなグラフ構造で表現する方法です。

ネットワーク型データベース わかりやすく
図12:ネットワーク型データベース

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

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

ネットワーク型データベース 例

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

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

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

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

ネットワーク型データベースが利用されるシステムの例
  • 在庫管理システム: 商品、サプライヤー、カテゴリーなど、複数の要素間での多対多の関連性を表現する際に使用されることがある。
  • 航空予約システム: フライト、乗客、予約、空港など、多くのエンティティ間の複雑な関係を管理する必要があるため、ネットワーク型データベースが用いられることがある。
  • 製造プロセス管理: 製品、部品、供給業者、組立ラインなど、多対多の関係を持つデータを組織化し、効率的に追跡するために使用されることがある。
  • アカデミックリサーチ: 複雑な研究データを扱う際、多対多の関連性を持つデータ構造を必要とすることがあるため、ネットワーク型データベースが選択されることがある。
  • 医療情報管理: 患者、診断、治療、医師などの多対多の関連性を持つデータを管理するのに適してる。

【まとめ】データベースとは?

このページのまとめ
  • 1. リレーショナルデータベース
    • 構造: 表形式でデータを保存し、各テーブル間のリレーションを用いて関連付けます。
    • 用途: 一般的なデータ管理。多くのビジネスアプリケーションで使用されます。
    • 関係: 1対1、1対多、多対多の関係を表現可能。
    • イメージ: エクセルのような表でデータを管理している様子。
  • 2. 階層型データベース
    • 構造: データを親子関係の木構造で管理します。
    • 用途: ファイルシステム、組織図などの階層的なデータ表現。
    • 関係: 親子関係のみを持つ。
    • イメージ: フォルダとサブフォルダのような構造。
  • 3. ネットワーク型データベース
    • 構造: 複数の親子関係を持つことができるグラフ構造。
    • 用途: 複雑な多対多の関連性を持つデータ管理。
    • 関係: 1つの子が複数の親を持つことができる。
    • イメージ: ソーシャルネットワークの友達関係のようなグラフ。

現在のスキルに今一つ満足できていないシステムエンジニア/プログラマーの方へ。

SQLやデータベースの仕組みを1から学習したい方(学び直したい方)向けに、現役エンジニア達のスキルを結集して 完全無料 のSQL教材を作成しました。是非この機会にブックマークを!

読者料典 【完全無料】SQL:初心者向け学習ロードマップ ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
DatabaseIT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました