Categories: SQL

関係データベースとは?データベースのデータモデルの種類を紹介します

現在、様々な分野で活用されているデータベース。

データベースのデータ構造のことを「データモデル」と呼びますが、データモデルにはいくつかの種類があり、それぞれが一定の規則に基づいてデータが管理されています。

現代のデータモデルは「関係データベース(リレーショナルデータベース)」が主流となっていますが、どのようなデータ構造を持っているのでしょうか。

この記事では、データベースのデータモデルの種類と、現代の主流である「関係データベース」の概要について、イメージ図を用いて説明します。

データベースの種類

この章では、データベースのデータモデルの種類について説明します。

種類とは、あくまでデータベースの構造の種類であり、データベースサービスの種類のことではありません。

階層型

最初に紹介するデータモデルは「階層型」と呼ばれるツリー構造のモデルです。

階層型のデータベース

1つの親データに複数の子データがぶら下がっているような構造となっていて、会社の組織図に似ているかもしれません。

階層型のデータモデルはデータ検索が高速である一方、複数のカテゴリに紐付けられるデータは重複してしまうというデメリットもあります。

重複例

身近なデータベースとして、スマホの連絡帳をイメージしてください。

連絡帳には「友人」や「仕事」などの属性(タグ)を付与することができますが、たとえばAさんという友人に「友人」と「女子会」の属性を付与したと仮定しましょう。

この場合、階層型のデータモデルでは、「友人」の配下と「女子会」の配下、それぞれにAさんというデータが存在してしまいます。

階層型のデータモデルでは、ひとつのデータにつき親データはひとつしか存在できませんので、構造上、このような重複は避けることができなくなってしまうのです。

構造上発生するデータ重複

一方、たとえばAさんのデータに辿るまでに、まずは「友人」のデータを通ります。階層を通るたびにターゲットデータを一気に狭めていきますので、データ検索速度は高速になります。

ネットワーク型

次に紹介するデータモデルは「ネットワーク型」と呼ばれる蜘蛛の巣構造のモデルです。

ネットワーク型のデータモデル

ネットワーク型のデータモデルは、1つのデータに対して複数の親データを持つことができますので、階層型データモデルの欠点であるデータの重複を避けることができます。

一方、その複雑な構造からデータ構造を正確に整理しないとデータの利活用が難しくなる面もあり、より高度な知識が求められるというデメリットになっています。

関係データベース(リレーショナル型)

最後に紹介するデータモデルは「関係データベース(リレーショナル型)」と呼ばれる表構造のモデルです。

関係データベース(リレーショナル型)

このデータモデルでは、表を複数存在させることができ、共通したキー項目を持たせることで、お互いの表に存在するデータを容易に関連付けることができます。

その利便性と合理性の高さから、現在のデータモデルの主流となっている型です。

つまり、データベースの理解を高めるためには、現在、多くのデータベースで採用されている「関係データベース(リレーショナル型)」の理解を深めることが不可欠なのです。

関係データベースについて、次の章でもう少し掘り下げてみます。

関係データベースについて

前章で紹介した通り、関係データベース(リレーショナル型)表形式の構造になっているデータベースです。

そして、データベース内に複数の表を持つことが可能で、お互いに関連付けてデータの結合などをし、必要な情報を取り出すことができます。

これはイメージ例を用いるとわかり易いです。

関係データベースの例

どの会社でも社員情報をデータ管理していると思いますが、社員情報を関係データベースで管理するイメージを見てみましょう。

この例では、1つのデータベースに「社員基本」「職位賃金」「役職賃金」と3つの表データを持たせています。

表①:社員基本
表②:職位賃金
表③:役職賃金

この表を見ればすでにイメージができた方もいるかと思いますが、社員データに付随する賃金情報は、「社員基本」の表では持っていません。

職位や役職に関するデータは、「表①:社員基本」から「表②:職位賃金」、「表③:役職賃金」に関連付け、結合されて、ひとつの情報(データ)となるのです。

なお、職位に関する賃金は「職位」のコード(8Aや7Cなど)がキーとなっていて、役職に関する賃金は「役職」のコード(SMGやMGなど)がキーになっています。

関連付けのイメージ

結合後の表

あとがき

今回の記事では、データベースの知識に欠かせない関係データベース(リレーショナル型)について、図解を用いて紹介しました。

このように、身近なデータベースを例に考えると理解がし易いと考えていますが、いかがでしょうか。

なお、関係データベースでは、複数の表を基にお互いに関連付けられる構造が多いのですが、関係データベースの定義として「必ずしも複数の表が存在することが求められていない」という一面もあります。

表の数に関わらず、関係データベースは表形式のデータベースと理解しておいてもよいでしょう。

Webs

元事務処理担当者として、プログラミングを活用した業務改善を推進している。プログラマ出身ではない事務職の現場目線で情報を発信。 その他、webs-studio.jpをメインに、複数のブログサイトを立ち上げており、合計で月間10万PVのメディア運営を行っている。 姉妹サイト一覧