リレーショナルデータベースと階層型データベースの違いとは?

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク


リレーショナルデータベースと階層型データベースの主な違いは、リレーショナルデータベースがリレーショナルモデルに従い、テーブルにデータを格納するのに対し、階層型データベースは階層モデルに従い、ツリー状の構造でデータを格納する点です。

データベースとは、関連するデータの集合体です。

DBMSは、データをデータベースに保存し、アクセスや管理を容易にするためのソフトウェアです。

データベースには様々な種類があり、リレーショナルデータベースと階層型データベースはそのうちの2つです。

スポンサーリンク

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

データベースモデルとは、データベースの論理設計と構造を定義するものです。

ここで、リレーショナルデータベースとは、関係モデルに基づき、データをテーブルに格納するものです。

また、行は各エンティティを表し、列は属性を表す。

図1:リレーショナルデータベースの表

例えば、ある組織のデータベースを想定する。

社員表は、emp-id, name, age, cityの属性を持つ。

ここで、従業員テーブルの主キーはemp-idです。

また、プロジェクトテーブルと呼ばれるテーブルは、project-id, project-name, duration, emp-idの属性を持っています。

ここで、プロジェクトテーブルの主キーはproject-idです。

社員テーブルのemp-idは、プロジェクトテーブルの外部キーです。

これら2つのテーブルは、外部キーを使って互いに関連づけられます。

リレーショナルデータベースのデータの保存と管理には、SQL(Structured Query Language)が使用されます。

SQLはさらに3つの主要なカテゴリーに分けられる。

SQLはさらに、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つに大別されます。

さらに、DDLはテーブルの構造を変更します。

DMLはデータを操作するのに役立ち、DCLはデータベースユーザーに権限を与えたり奪ったりするのに役立つ。

階層型データベースとは

階層型データベースは、階層的なモデルに基づいている。

データをツリー状の構造で保存する。

ここでは、データはレコードとして保存され、リンクによって互いに接続される。

また、レコードはフィールドの集合体です。

各フィールドは1つの値のみを含む。

さらに、階層構造はルートデータから始まる。

そして、親ノードに子ノードを追加することで、ツリーのように拡張していく。

  子ノードは、1つの親ノードしか持たない。

しかし、親ノードは1つ以上の子ノードを持つことができる。

図2: 階層モデル

例えば、ある大学のシナリオを想定する。

これは、データを学科とインフラストラクチャに分割する。

学科は、コース、講師、学生に分けられる。

コースはさらに、理論と実践に分かれる。

同様に、データもツリー状に整理される。

リレーショナルデータベースと階層型データベースの違い

定義

リレーショナルデータベースとは、1970年にE.F.Coddによって提唱されたデータの関係モデルに基づくデータベースです。

階層型データベースは、データをツリー状に整理したデータベースです。

つまり、リレーショナルデータベースと階層型データベースの根本的な違いを説明する。

ベースモデル

つまり;リレーショナルデータベースは、リレーショナルモデルに基づいている。

これに対して、階層型データベースは、階層型モデルに基づいている。

データの保存方法

また、リレーショナルデータベースと階層型データベースのもう一つの違いは、リレーショナルデータベースがテーブルでデータを格納するのに対し、階層型データベースはツリー状の構造でデータを格納することである

データ検索

リレーショナルデータベースでは、SQLを使って簡単にデータを検索することができる。

一方、階層型データベースでは、データの検索は困難です。

  データを取り出すには、ルートノードからツリー全体を走査する必要がある

この点が、リレーショナルデータベースと階層型データベースの重要な違いです。

人気度

また、リレーショナル・データベースは、階層型データベースよりも一般的です。

結論

簡単に説明すると、リレーショナルデータベースと階層型データベースは、大きく分けて2種類のデータベースです。

リレーショナルデータベースと階層型データベースの主な違いは、リレーショナルデータベースがリレーショナルモデルに従い、データをテーブルに格納するのに対し、階層型データベースは階層モデルに従い、データをツリー構造で格納する点です。

タイトルとURLをコピーしました