テクノロジー

2024年11月21日

データベース / DBMSとは

データベースは、「データ基地」の名の通り、さまざまなデータの集合体です。
一方でデータを管理するものにファイルがありますが、ファイルは趣味の情報をまとめるなど単一の種類のデータが入った一つの入れ物です。
データベースは、さまざまな種類のファイルのデータを整理し、関連のあるものを分類し保管してある図書館のようなものです。あなたが欲しいデータがいつでも適切に取得できるように整理されていなければなりません。

著者プロフィール

IT分野における教育の先駆者として、多くのエンジニアを育成するプログラミングスクールの運営、Web開発やAI研修を行なっています。幅広いレベルの受講生に対して実践的なスキルを提供。生徒の成長を第一に考え、効果的で魅力的な教育プログラムの設計に情熱を注いでいます。

ゴール

  • データベースとは何かを理解する
  • DBMSとは何かを理解する

データベースとはなにか

データベースは、「データ基地」の名の通り、さまざまなデータの集合体です。
一方でデータを管理するものにファイルがありますが、ファイルは趣味の情報をまとめるなど単一の種類のデータが入った一つの入れ物です。
データベースは、さまざまな種類のファイルのデータを整理し、関連のあるものを分類し保管してある図書館のようなものです。あなたが欲しいデータがいつでも適切に取得できるように整理されていなければなりません。

Image from Gyazo

PC上で利用するアプリケーションでは、データを適切に保管管理するまでの役割は果たせません。そのため、必要な種類のデータを適切に蓄積し、保管管理し、必要なときに活用できる仕組みとしてデータベースが存在します。

Image from Gyazo

データベースの種類

必要なデータを適切に管理するには、いろいろな方法があります。
データベースの歴史は、コンピュータが実運用された1960年代後半から始まります。初めて登場したのは、データをツリー(木)構造として管理する方法です。さまざまなデータを木の枝葉のように関連付けて、蓄積や取り出しができる仕組みです。これは 階層型データベース と呼ばれています。

現在の主流は、リレーショナル型データベース です。なお、1990年代以降に、アプリケーションの目的に合わせた新しい種類のデータベースが生まれています。

各々のデータベースの種類と特徴を次に記載します。

Image from Gyazo

階層型データベース

データ構造を親、子、孫というように階層的なツリー構造として管理する仕組みです。したがって、関連するデータを取り出すときは、この親子関係をたどって芋づる式に素早く取得できます。
親子の関係は、1対多の関係で階層化され、同じ子供のデータが複数の親に属するときにデータの重複が発生します。例えば、営業部に属する山田太郎さんが、技術部と兼務する場合、山田太郎さんは、営業部と技術部の両方の下に所属することになります。

それを改善する手段として、一つの子供に対して親を複数持たせる ネットワーク型データベース も登場しました。そうすることで、山田太郎さんは、営業部と技術部の両方に所属できます。

階層型は、データベースの構造を意識してデータを更新するなど、アプリケーションを作成する上で、高度な技術を必要とします。現在はほとんどが、次に説明するリレーショナル型のデータベースに移行しています。

Image from Gyazo

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

リレーショナル型のデータベースとは、言葉の示す通り、リレーション(関係)に基づくデータベースです。一つのファイルのような、単一の種類のデータ集合を相互に関係づけることによって、データベースを作っていきます。
1つのデータ(レコード)を行(ロウ)で表し、データ内の各項目属性を列(カラム)で表現した表形式(Microsoft Excelのような表)のデータ集合をイメージしてください。この表形式のデータ集合をテーブルといい、複数のテーブルの共通の項目属性の列を使って、テーブル同士の関係を作り出します。SQLという専用の言語を使用して操作するのが特徴です。関係するテーブルを介したデータ集合を、一度の操作で一括して取得できます。

リレーショナル型データベースでは、データを複数のテーブルにどのように分けて、データの重複を無くすかということが重要になります。このことをデータの正規化といいます。

Image from Gyazo

NoSQL型データベース

SQLを特徴とするリレーショナル型データベースに対して、SQLを使用しないデータベースの総称です。SQLは、データの整合を保つためのロック制御などにより、処理が遅いという欠点があります。NoSQL型データベースが生まれた背景には、大量のデータをより高速に処理したいという要求がありました。

代表的なものにキーバリュー型、ドキュメント指向型があります。また、後に学習するオブジェクト指向のメソッド手法を利用したオブジェクト指向型も登場しました。
なお、オブジェクト指向型については、リレーショナル型にオブジェクト指向のインターフェースを持たせたオブジェクト指向リレーショナル型データベースもありますが、あくまでもリレーショナル型データベースの一つと考えてください。

それぞれのNoSQL型の特徴を次の表にまとめます。

種類 特徴
キーバリュー型 データを識別するキーとバリュー(値)の一対の組として保存するシンプルな構造を持つ。
ドキュメント指向型 データをXMLやJSON形式のドキュメントとして保存し、キーバリュー型より複雑な構造を扱うことができる。事前にデータ構造を決める必要がなく(スキーマレス)、拡張性が高い。
オブジェクト指向型 データをカプセル化したオブジェクトとして管理し、メソッドで操作する。オブジェクト間の連携を参照で行う。

Image from Gyazo

以上のように、さまざまな種類のデータベースが存在します。
NoSQL型は、リレーショナル型データベースが対応可能な分野をすべてカバーできません。あくまでもNoSQL型の得意とする分野での利用がメインのため、リレーショナル型データベースが、現在でも圧倒的なシェアを占めています。

DBMSとは何か

DBMS(DataBase Management System)は、データベースを構築するソフトウェアです。管理運用するためのさまざまな機能を備え、データベースを矛盾なく維持管理する仕組みを持ちます。
DBMSは、データベースサーバを構築し、運用します。複数のユーザからの一連の複数データの処理を、同時に扱えます。一連の処理の途中で障害が発生し、一部のデータだけが更新されたり、複数のユーザのデータが相互に上書きされてしまっては、データベースとしての整合性は保てません。DBMSは、データ処理を行うアプリケーションと連携し、データを適切に更新し、管理する役割を果たします。
そのために、データの登録や更新、削除といった一連の処理に対する整合性を確保するための機能、障害時の回復機能、セキュリティを保証する機能などを保有しています。

リレーショナル型データベースのDBMSを、RDBMS(リレーショナルDBMS)といいます。

Image from Gyazo

DBMSの代表的なものを次の表にまとめます。

種類 特徴 データベース型
Oracle Database Oracle社が提供する有償(商用)のRDBMSであり、データベース運用のための豊富な機能を備えている。 リレーショナル型
Microsoft SQL Server Microsoft社が提供する有償(商用)のRDBMSであり、データベース運用操作が簡単にできる。 リレーショナル型
MySQL 無償(オープンソース)のデータベースとして広く利用されている高速・軽量なRDBMSで、現在Oracle社の管理のもとにある。 リレーショナル型
PostgreSQL 無償(オープンソース)のデータベースとして広く利用されている高機能・高可用性のRDBMSで、独自の特徴あるデータ型なども利用できる。 リレーショナル型
MongoDB 無償(オープンソース)のNoSQL型データベースとしての代表格で、JSON形式のデータを扱い、高速な検索用途に適している。 ドキュメント指向型

DBMSの世界の使用シェアランキング(2020年7月現在)は、以下の通りです。
Image from Gyazo
出典: DBMSランキング

まとめ

  • データベースは、さまざまな情報を使いやすいように整理保管している図書館のようなものである。
  • データベースは、階層型、リレーショナル型、NoSQL型の大きく3つに分類できるが、圧倒的なシェアを持つのはリレーショナル型である。
  • DBMSは、データベースを構築し、データベースを管理運用する仕組みを持つソフトウェアである。
  • DBMSは、データベースに必要なデータ操作、データの整合性確保、障害回復、セキュリティ確保などの機能を持つ。
  • DBMSには、有償/無償を含め、さまざまな種類がある。代表的なものに、無償で利用できるPostgreSQLがある。

公式ドキュメント・参考情報

1. Oracle Database
2. Microsoft SQL Server
3. MySQL
4. PostgreSQL
5. MongoDB

ダイビックのことをもっと知ってみませんか?