データベースとはデータを蓄えておく「箱」のようなものです。データベースにとってデータを蓄積するという目的は共通していますが、どのような形でデータを保持しておくかという手段にはいくつかの種類があります。どのようにデータを保持するかという構造を「データベースモデル」と呼びます。
今回はデータベースモデルの種類とその特徴、それぞれのモデルの主要製品を紹介していきたいと思います。
リレーショナルデータベース
特徴
リレーショナルデータベースはRDB(以後RDB)とも呼ばれ、今日における最も一般的なデータベースの形式です。
RDBでは行と列からなる表のような形式でデータを管理します。その表自体は「テーブル」と呼ばれ、複数のテーブルを関連付けながら管理できる点が特徴です。
RDBのテーブルでは、列は「属性」、行は「タプル」と呼ばれます。表における1行はレコードと呼ばれ、データ1件分に相当します。テーブルはこれらの情報のほか「ドメイン」「主キー」「外部キー」といった情報で構成されます。
実際にシステムに導入されるRDBでは、このテーブルが複数存在しています。目的に合わせて複数のテーブルのデータを連結して求める表を得ることになります。
RDBの特徴として、トランザクションによる一貫性があります。これにより、データの不整合は起こらなくなります(途中まで変更処理したとかいう中途半端なレコードは原則存在しません)。また、SQLを用いることで、複雑なデータ処理も正確に実行することができます。
一方で、RDBは処理速度が遅くなりやすく、大量データの処理には不向きです。
主要製品
RDBを管理するシステムをRDBMS(RDB Management System)といいます。RDBMSには有名な製品が多数あります。
- Oracle Database
- Microsoft SQL Server
- PostgreSQL
- MySQL
Oracle Database、Microsoft SQL Serverは有償ですが、PostgreSQL、MySQLは無料で使用することができます。上記以外にも様々な種類のRDBMSがあります。
階層型データベース
特徴
階層型データベースは、データを木構造で表したデータモデルです。会社の組織図などがこの構造にあたります。
階層型データベースでは、データを上から下(親から子)へとみていくことになります。例えば会社を例に見てみると、トップは社長、その下にはいくつかの部署があり、さらにその下には課…と階層構造が続いていきます。
階層型データベースでは、データの探索を高速で実行できます。大規模データベースになっても必要資源を抑え、高速な応答時間を実現できます。
主要製品
- IMS DB
ネットワーク型データベース
特徴
階層型データベースでは1つの親レコードに対し複数の子レコードが関連している形でした。ネットワーク型データベースでは各レコードは複数の親レコードおよび子レコードを持つことができます。
ネットワーク型データベースの利点は、階層型データベースよりも各レコードの関係性を自然に表現できるところにあります。ただしRDBの出現によって、現在ではほとんど使われていないようです。
主要製品
- Integrated Data Store(IDS)
オブジェクト指向型データベース
オブジェクト指向型データベースとは、オブジェクト指向プログラミングを取り入れたデータベースです。互いに関連する複数の種類のデータと、そのデータの処理方法を定義し、オブジェクトとしてデータベースに格納します。
オブジェクト指向型データベースではテキスト、音声や動画といった異なる種類、形式のデータが混在している場合に適しています。
主要製品
- Cache
- ObjectStore
No SQL
No SQLとは非リレーショナルなデータベースのことで、先に紹介したRDBと対になる種類のデータベースです。No SQLとは特定の構造のデータベースを指す言葉ではなく、RDBではないデータベースであることを意味しています。
No SQLでは、RDBのように表構造の形式にとらわれることなく、様々な形式のデータを格納できます。No SQLではキーとバリューのシンプルな組み合わせの「キーバリュー型」、キーバリュー型にカラムの要素を持たせた「カラム指向型」、JSONやXML形式でドキュメントを管理する「ドキュメント指向型」などがあります。
No SQLは大量のデータを格納するのに適しているといわれています。たとえばRDBではトランザクション処理を行うことで整合性を担保していますが、No SQLではトランザクションは存在しません。このように構成をシンプルにすることで、高速処理を実現しています。
主要製品
- Amazon DynamoDB(キーバリュー型)
- Google Big Table(カラム指向型)
- MongoDB(ドキュメント指向型)
- Neo4j(グラフ型)
DBについてより学ぶ
データベース、SQLについて、書籍を通してより深く知ることができます。ネットでも情報は手に入りますが、書籍も是非検討してみてください^^
まとめ
データベースの種類には様々あることを見てきました。近年ではRDBとNo SQLが主流です。それぞれの特徴、利点を抑えながら、場面に応じた最適なデータベースを選択する必要があります。
今後もしかしたら新しい形式のデータベースも出現してくるかもしれませんね。
ではでは👋