「”データベース”について分かりやすく説明してほしい」
と言われると
「使い方は分かるけど、説明するのは難しい…」
という方も多いのではないでしょうか。”使える”と”理解して使える”では、雲泥の差がありますよね。
理解した上で使うことで、特性やその他の便利な機能を活かせることも多いものです。
本記事では、情報システム部門のコンサルティングやBIツールでのデータの可視化・分析などデータ活用に関する多くの知見のある株式会社KUIXがこれまでの経験をもとにDB(データベース)の1つである「RDBMS (リレーショナルデータベース管理システム)」にフォーカスし、RDBMSの概要や機能などを解説いたします。
RDBMS (リレーショナルデータベース管理システム) とは
RDBMSは、リレーショナル・データベース・マネジメント・システムの略称で、RDB(リレーショナルデータベース)を管理するためのソフトウェアです。
RDB(リレーショナルデータベース)は、テーブル(1つのデータのかたまり)にデータを列と行の形式(Excelのような表形式)で格納し、行(レコード)単位でデータを操作するデータベースです。
なお、RDB(リレーショナルデータベース)はテーブル間にリレーション(関係性)を持たせることができるため、顧客データと受注データを「顧客ID」で紐づけることもできます。
データベースには、後述の「階層型データベース」や「ネットワーク型データベース」がありますが、データベースといえば、RDB(リレーショナルデータベース)を指すことも多く、RDB(リレーショナルデータベース)が主流となっています。
代表的なRDBMS
RDBMSには、その他のシステムライセンスと同様に「商用データベース管理システム」と「オープンソースデータベース管理システム」があります。
文字通り、以下の違いがあります。
・商用:企業から提供されている製品(有償)
・オープンライセンス:有志の開発者コミュニティで開発され、自由に利用ができる(無償)
なお、代表的なRDBMSは以下があります。
〇商用データベース管理システム
・Oracle Database(Oracle)
・Microsoft SQL Server(Microsoft)
・IBM DB2(IBM)
〇オープンソースデータベース管理システム
・MySQL
・Postgre SQL
【補足】データベース とは
RDBMS (リレーショナルデータベース管理システム)の概要を説明しましたが、
「そもそもデータベースってなに?」
という方もいらっしゃると思います。
データベースを一言で表すと、「使いやすい形で整理されたデータの集まり」です。
データベースを単にデータの集まりと考えた場合、データの集まりを「山」として、「この山に生えている杉の木を教えてください。」と聞かれた場合に困ってしまいますよね。
では、「山」が「杉の木エリア」、「松の木エリア」、「キノコエリア」・・・と分かれていたらどうでしょう。
すぐ「杉の木エリア」に杉の木が生えていることが分かりますよね。
このように、データベースは、「必要な時に必要なデータをすぐに取り出せる」使いやすく整理されたデータの集まりです。
【補足】データベースの種類
前述の通り、データベースには、RDB(リレーショナルデータベース)以外にも「階層型データベース」や「ネットワーク型データベース」、「NoSQL」があります。
階層型データベースとネットワーク型データベースの概要、特徴は以下の通りです。
〇階層型データベース
・概要
ツリーのようにデータを関連付けて格納するデータベース
・特徴
特定のデータに紐づくデータは、1:多のため、データの抽出(検索)速度が早い。
・その他
他のデータとの関連付けを行う際は、データの重複登録が必要。(データ構造に依存したDB利用が必要。)
〇ネットワーク型データベース
・概要
関連性のあるデータを相互に関連付けて格納するデータベース
・特徴
特定のデータに紐づくデータは、基本的に多:多のため、データの重複登録を回避することができる。
・その他
データの重複登録は回避できるが、データ構造に依存したDB利用が必要。
〇NoSQL
・概要
上記以外のデータベースで、RDBのような表形式などではなく、データを様々な形式で格納するデータベース。
・特徴
RDBでは対応できないデータや大容量データを処理できる。
・その他
データの整合性や一貫性は保証されない。
RDBMS (リレーショナルデータベース管理システム)の機能
RDBMS (リレーショナルデータベース管理システム)の主な機能は、以下の4つです。
・データベース言語(SQL)
・トランザクション処理
・障害からの復旧
・分散データベース
データベース言語(SQL)
まず、1つ目は、データを操作するためのデータベース言語(SQL)です。
RDB(リレーショナルデータベース)からデータを抽出(検索)などのデータ操作を行う場合、
ユーザーやアプリケーションは、データベース管理システムを介して、データを操作します。
このデータを操作するための言語を「データベース言語(SQL)」と呼び、SQLには3つの種類があります。
・DML(データ操作言語)
データの検索(SELECTなど)、新規登録(INSERTなど)、更新(UPDATEなど)、削除(DELETEなど)を行うための言語です。
・DDL(データ定義言語)
テーブルやインデックスを作成(CREATEなど)や削除(DROPなど)のようなデータの構造、格納場所等を定義するための言語です。
・DCL(データ制御言語)
データのアクセス権管理やデータの整合性・一貫性などを管理するための言語です。
トランザクション処理
2つ目は、データの一貫性を保持するためのトランザクション処理です。
RDBMS (リレーショナルデータベース管理システム)には、ACID特性という性質に基づいてトランザクションを管理する機能があります。
ACID特性には、以下の4つの性質があります。
・原子性 (Atomicity)
トランザクションが完全実行されるか実行されないかの2択になる性質です。
例えば、データ処理の途中でエラーが発生した場合に、途中までのデータ処理は反映されず、データ処理前のデータのままになります。
・一貫性 (Consistency)
トランザクションの前後でデータの整合性が保たれ、矛盾がない状態が継続する性質です。
・分離性 (Isolation)
トランザクションを同時実行していたとしても、他のデータや処理に影響を与えない性質です。
・永続性 (Durability)
万が一、システム障害などが発生しても完了したトランザクションの結果は失われない性質です。
障害からの復旧
3つ目は、障害からの復旧するための機能です。
RDBMS (リレーショナルデータベース管理システム)は、サーバーなどのハードウェア障害やユーザー誤操作などで「データ損失」といった障害が発生した際に、復旧するための機能があります。
通常、RDBMS (リレーショナルデータベース管理システム)を導入する際は、定期的なバックアップとデータ操作のログファイルを取得するように設計します。
復旧時は、バックアップファイルとバックアップ取得後のログファイルと同様の変更処理を行うことで復旧することができます。
なお、上記は1台構成の場合ですが、サーバーの冗長化については、レプリケーションなど様々な手法があります。
分散データベース
最後は、分散データベースと呼ばれる機能です。
分散データベースは、ネットワークを介して接続された複数のデータベースを、ひとつのデータベースのように操作することができる技術です。
分散データベースであれば、複数のデータベースを都度操作することなく、複数のデータベースから1度にデータ取得などのデータ操作をすることができます。
RDB (リレーショナルデータベース) のメリット・デメリット
RDB (リレーショナルデータベース)のメリット・デメリットについてのまとめです。
データの一貫性などのメリットがある一方で、処理速度が遅いなどのデメリットなどもあります。
RDB (リレーショナルデータベース) のメリット
RDB (リレーショナルデータベース) のメリットは主に以下の3つがあります。
〇データの一貫性
まず、1つ目は、データの一貫性です。
前述のACID特性によって、RDB (リレーショナルデータベース)はデータの一貫性が保証されています。
データの一貫性は、データを利用する上で欠かせない要素です。
〇データ処理コストの低減
2つ目は、データ処理コストの低減です。
RDB (リレーショナルデータベース)は、データを複数のテーブルに分散することで、データの処理コストを低減することができます。
〇SQLによる標準化
最後は、SQLによる標準化です。
RDB (リレーショナルデータベース)で使用するSQLは、ISOで規格化された言語のため、複雑なデータ処理もSQLで標準化することができます。
RDB (リレーショナルデータベース) のデメリット
RDB (リレーショナルデータベース) のデメリットは主に以下の2つがあります。
〇データ処理速度が遅くなりやすい
まず1つ目は、データの処理速度が遅くなりやすい傾向があることです。
RDB (リレーショナルデータベース)は、SQLが複雑化する傾向があるため、データ処理速度が遅くなりやすいです。
特に大容量データの場合はデータ処理に時間がかかるため、多くの企業では夜間にデータ処理が行われる場合がほとんどになります。
〇拡張性が低い
最後は、拡張性が低いことです。
RDB (リレーショナルデータベース)は、基本的にデータの整合性を保つためにサーバー1台構成で運用するよう設計されているため、拡張性が低くなっています。
まとめ
DB(データベース)の1つである「RDBMS (リレーショナルデータベース管理システム)」について、概要や機能などは理解できましたでしょうか。
システムを導入すると、サーバー機器やライセンス、人件費などの導入コストや運用コストなど費用が発生しますが、高価なシステムを導入すればよいわけではなく、何が必要かを考え、どう使うか?ということが重要になります。
システム導入の前には、「何をしたいのか?」や「システム導入で得られるメリットは何か?」を考えた上でシステム導入を進めていくことが大切です。
KUIXではただ導入・開発するだけでなく、導入後の利活用を実現することに着眼した、データレイク・DWH・データマート・BIツールの選定・導入からレポート作成、運用、啓蒙・展開までトータルのコンサルテーションなどを行っています。
「データマート/データレイク/DWH/BIツールを導入したい」
「すでに導入しているがデータ活用、展開が進んでいない」など
お困りの方は、ぜひお気軽にご連絡ください!お問い合わせはこちらから

