データベースを知る。① DB編

データベースを知る。① DB編

こんにちは、セブテク編集部です。

みなさんは、ネット上で入力する、または登録する名前や住所、メールアドレスなどが一体どこへ保存されるか知っていますか?

それは、「データベース(DB)」です。

アプリケーション開発において、データベースの存在は欠かせません。
アプリケーションが「データを取得して画面に表示する」、「入力したデータを送信する」などの動作は、データベースが関係しているからです。

今回は、その「データベース」について、学んでいきましょう。

データベースとは❓

データベースとは、データの検索や蓄積が簡単にできるよう整理されたデータの集まりのことで、コンピューター上(サーバー上)に格納されます。

データベースは通常、データベース管理システム(DBMS)によって制御されます。
データとDBMS、およびそれらに関連付けられているアプリケーションを合わせて「データベースシステム」と呼び、単に「データベース」と略されることも多いです。

データベースの種類(データモデルの種類)

データベースには様々な種類がありますが、代表的なデータベースはデータベースの構造(データモデル)の違いによって、以下の3種類に分類することができます。

階層型データベース
ネットワーク型データベース
リレーショナル(関係)型データベース

では、それぞれどのようなデータベースなのかを見ていきましょう。

階層型データベース

階層型データベースは、階層型に構成されたデータベースです。
イメージしやすい例は、会社の組織図でデータはツリーのような構造で表されます。

階層型データベースでは、データは上の図のように常に親子(1対多)の関係になっています。
特定のデータを検索する際は、検索ルートがいつも1つのため、検索速度が非常に速いというメリットがあります。

しかしながら、多対1や多対多のデータを表現する際、1つの子データがデータベース内に複数存在してしまう「データの冗長*」が起こるというデメリットが存在します。

例えば、上の図のように営業部と開発部の両方に所属するAさん(子データ)を表現する場合、Aさんという子データを2つ用意しなくてはなりません。

ゆえに、階層型データベースは、データ構造への強い依存性を持っていると言えます。

*データの冗長…データが重複、または余剰な状態。

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

ネットワーク型データベースは、階層型と似た構造をしています。
それぞれのデータが網目のようにつながっているため、ネットワーク型と呼ばれています。

ネットワーク型データベースでは、1つの子データが複数の親データを持つことができる構造になっているため、階層型データベースのデメリットである「データの冗長」を回避できます。

しかし、データ構造を理解していないとデータにアクセスできないため、階層型データベースと同じように、やはりデータ構造への強い依存性を持っています。

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

リレーショナル (関係) 型データベースは、列と行を含む一連の表(テーブル)として構成されています。表計算ソフトのエクセルをイメージすると構成がわかりやすいかと思います。

複数の表を関連付けることができ、自由な形式でデータの取り出しが可能です。
また、データ構造への依存性がありません。

さらに、SQLと呼ばれるデータベースのデータを操作(追加・削除・並び替え、抽出)したり、定義するためのプログラム言語を用いてデータ検索が可能で、複雑なデータの作成・編集もできます。
非常に広く使われているデータベース(データモデル)です。

まとめ

代表的なデータベースの種類は以下の3つ。それぞれ構造が異なります。

階層型データベース
ネットワーク型データベース
リレーショナル(関係)型データベース

次回の「データベースを知る。② DBMS編」では、データベース管理システム(DBMS)について学んでいきます。
お楽しみに!

さいごに

フィリピン・セブ島でアプリ開発を行うSprobeでは、データベースに精通しているフィリピン人データベースエンジニアが数多くいます。
もし、ご興味があれば、お気軽にお問い合わせくださいね。

オフショア開発・ブリッジSEカテゴリの最新記事