リレーショナル データベース(RDBMS)についてわかり易く解説

 2021.09.03  株式会社システムインテグレータ

システム開発に携わっている方は「RDBMS」という言葉をよくお伺いすると思いますが、「RDBMSってなんの略?」「データベースとどう違うの?」といまいちわかっていない方もいらっしゃるのではないでしょうか。そこで本記事ではRDBMSについてわかりやすく解説いたします。

RDBMS(リレーショナルデータベース管理システム)とは

RDBMSとは、「リレーショナル・データベース・マネジメント・システム」の略でリレーショナルデータベースを管理するためのソフトウェアのことです。「リレーショナルデータベース」とは、データベースのうち、データを表に似た構造で管理するものを指します。下図はリレーショナルデータベースで扱うデータのイメージ図です。関連のある属性を列とする表(テーブル)の形でデータを格納し、行単位でデータを操作するデータベースのことです。

RDBMS(リレーショナルデータベース)についてわかり易く解説 1
他にも「ネットワークデータベース」などありますが、現在、業務システムにおいてはこのリレーショナルデータベースが主流となっています。RDBMSはこのようなリレーショナルデータベースのデータの操作、データの信頼性を保つといった機能を持つ総合管理システムのことで代表的な製品には「Oracle Database」などがあります。

リレーショナル・データベースの例

企業が製品の注文処理に関する例を考えます。2つのテーブルが使用され、1つ目のテーブルには顧客情報が格納されています。このテーブルには、顧客の名前、住所、配送先および請求先情報、電話番号、その他の連絡先情報が含まれており、各属性は別々の列に格納されています。各行には一意のID(キー)が割り当てられます。2つ目のテーブルは顧客注文情報を保持しており、各レコードには、注文した顧客のID、注文した製品、数量、サイズ、色などの情報が含まれています。ただし、このテーブルには顧客の名前や連絡先情報は含まれていません。

これら2つのテーブルには、共通の列であるID(キー)が存在します。この共通の列により、リレーショナル・データベースは2つのテーブル間の関係を確立できます。会社の注文処理アプリケーションがデータベースに注文を送信すると、データベースは顧客注文情報テーブルにアクセスし、正確な製品注文情報を取得します。また、そのテーブルの顧客IDを使用して、顧客情報テーブルから請求先情報と出荷先情報を取得します。その後、倉庫は正しい製品を選び、顧客に製品を適切なタイミングで配達し、企業は支払いを受け取ることができます。

リレーショナル・データベースの構造

リレーショナル・モデルにおいて、論理的なデータ構造、すなわちデータテーブル、ビュー、およびインデックスは、物理的なデータストレージから独立しています。この分離により、データベース管理者は論理的なデータ構造へのアクセスに対して物理的なデータストレージへの影響を与えずに、データの管理が可能となります。具体的には、データベースファイルの名前を変更しても、格納されているテーブルの名前は変更されません。

論理的な側面と物理的な側面の違いは、データベース操作にも影響します。データベース操作は、アプリケーションがデータベースのデータと構造を操作するための具体的に定義されたアクションです。論理的な操作では、アプリケーションは必要なデータに対して指示を出すことができます。物理的な操作では、データへのアクセス方法が決定され、タスクが実行されます。

リレーショナル・データベースは、データが常に正確でアクセス可能であることを確保するために特定の整合性ルールに従います。例えば、整合性ルールによって、テーブル内で重複する行を許可しないことで、データベースに誤った情報が入力される可能性が排除されます。

リレーショナル・データベース管理システムのメリット

シンプルでありながら効果的なリレーショナルモデルは、さまざまな情報ニーズに合わせて、多様な種類と規模の組織で使用されています。リレーショナルデータベースは、在庫の管理、eコマーストランザクションの処理、大量の重要な顧客情報の管理などに利用されています。リレーショナルデータベースは、データポイントが相互に関連し、それらを一貫したルールに基づいて安全に管理する必要がある場合に適しています。

このリレーショナルモデルは1970年代から存在しており、その利点のために、現在でもデータベースの分野で最も一般的に採用されているモデルの一つとなっています。

RDBMSの機能

RDBMSが提供する主な機能は以下のとおりです。

データベース言語(SQL)の提供

データベース管理システムは、ユーザーやアプリケーションがRDBMSに指示を与え、データを利用するための言語(データベース言語)を提供します。RDBMSのデータベース言語は「SQL」です。
データベース言語は以下の3要素から成っています。

DML(データ操作言語)

データの検索、新規登録、更新、削除を行うための言語です。SQLのSELECT、INSERT、UPDATE、DELETE等を指します。

DDL(データ定義言語)

データの構造、格納場所等を定義するための言語です。テーブルやインデックスを作成するCREATE、変更・削除するALTER、DROP等を指します。

DCL(データ制御言語)

データへのアクセス制御を行ったり、データの管理をして信頼性を保証するための言語です。データベース利用者に特定の権限を与えるGRANT、権限を剥奪するREVOKE、トランザクション管理(のちに詳しく解説します)のためのCOMMIT、ROLLBACK等を指します。

トランザクション処理

トランザクションとは、データをある一貫した状態にするためのひとまとまりの処理です。

例えば販売管理システムにおいてある商品を販売した場合、
1. 在庫管理テーブルを更新し在庫を減らす
2. 販売記録テーブルに情報を追加する
3. 販売明細記録テーブルに情報を追加する
というように、データに矛盾がないようにするためには複数のテーブル更新が必要になります。この一連の処理がトランザクションです。

RDBMSにはACID特性という性質を守りながらトランザクションを管理する機能があります。
ACID特性を構成する4つの性質は以下です。

原子性

トランザクションは完全に実行されるか、まったく実行されないかどちらかでなくてはなりません。もしトランザクションの一部の処理が失敗した場合は、その他の処理結果も反映しない必要があります。

一貫性

トランザクションを実行したことによって、データに矛盾がある状態になってはいけません。

独立性

トランザクションを同時に複数実行していたとしても、単独で実行した場合と同じ結果にならなくてはいけません。
上のトランザクションを例にすると、残り一個の在庫の購入処理が完了する前に他のユーザーが購入処理をした場合、最後の一つの商品を購入した販売記録が複数できてしまうおそれがあります。それを防ぐために適宜データベースにロックをかけ、先のトランザクションが終了するまで他の操作でテーブルを更新できないようにします。

永続性

システム障害が発生したとしても、すでに正常に完了済みのトランザクションの結果は失われてはいけません。この性質は、この後解説する障害からの復旧機能で実現されています。

障害からの復旧

RDBMSは、ハードウェアの障害やユーザーの誤操作などでデータが損失するといったデータベース障害が発生した際に、データの信頼性を保証するための機能を備えています。障害からの回復にはバックアップファイル(ある時点でのデータベースの情報をコピーしたファイル)と、バックアップ取得以後のログファイル(データベースに対してどんな変更を行ったかの履歴)が必要です。障害が発生した場合、データベースをバックアップファイルと置き換えたのちに、ログファイルに記録された変更を再度RDMSに実行させることで障害発生前のデータを回復させることができます。

分散データベース

RDBMSは分散データベースシステムをサポートしています。分散データベースとは、ネットワークで接続された複数のデータベースを、あたかもひとつのデータベースのように動かす技術です。分散データベースを構成しているデータベースであれば、一回の問い合わせで別々のデータベースから同時にデータを取得することができます。同様に、データの変更も同時に行うことができます。この時、ユーザーはデータが格納されている場所を意識する必要がありません。分散データベースを構築することで、仮に一つのデータベースに障害が発生してもほかのデータベースにアクセスすることでシステム全体が利用不可になることを防ぐことができます。また、処理性能の向上も期待できます。
Oracleでは複数のOracleデータベースによる分散データベース・システムのほか、他のデータベース製品を含む分散データベース(異機種間分散データベース・システム)をサポートしています。

RDBMSの種類

代表的なRDBMSをいくつかご紹介します。RDBMSには企業から提供されている商品である「商用データベース管理システム」と、有志の開発者コミュニティで開発され、自由に利用・改変可能なオープンソースのデータベース管理システムがあります。
以下は代表的な商用のRDBMSの製品名、カッコ内は提供しているベンダーです。

・Oracle Database(Oracle)
・Microsoft SQL Server(Microsoft)
・IBM DB2(IBM)

一方、代表的なオープンソースのRDBMSは以下です。
・MySQL
・Postgre SQL

RDBMSのシェア

Wikipediaの「関係データベース管理システム」記事によれば、リサーチ企業ガートナーが調査した2008年のRDBMSシェアランキングトップ5は以下です。

1. Oracle Database
2. Microsoft SQL Server
3. MySQL
4. IBM DB2
5. IBM Informix

引用元URL:
https://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#RDBMS%E3%81%AE%E5%B8%82%E5%A0%B4%E3%82%B7%E3%82%A7%E3%82%A2

また、WEBサイトでのメンション数やIT関連Q&Aサイトでの質問の数といったいくつかの指標からデータベース管理システムの人気を順位付けするDB-Engines ranking(https://db-engines.com/en/ranking)では、2021年8月のトップ5は以下となっています。

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

5位のMongoDBはNoSQL系ですが、上位4つはいずれもRDBMSです。RDBMSが2021年8月現在も広く利用されており、多くの人の関心を集めていることがわかります。また前述のガートナー社の調査で2008年シェア1位だったOracleがここでもランキング1位となっており、依然高い人気を誇っています。

まとめ

関係データベースは2021年現在もっとも普及しているデータベースといえます。そのためシステム開発においてはRDBMSの知識が必要不可欠です。そのなかでも特にRDBMSを操作するのに必須のSQLと、システム構築にトランザクション管理の基本的な知識はおさえておくとよいでしょう。


RELATED POST関連記事


RECENT POST「【DB入門】データベース概論」の最新記事


【DB入門】データベース概論

データベースの種類とは?~構造・製品ごとに解説~

【DB入門】データベース概論

インメモリデータベースのメリット・デメリットとは

【DB入門】データベース概論

NoSQLとは?メリットやRDBMSとの違いについてわかりやすく解説

【DB入門】データベース概論

データベースとは?メリットや種類などの基本を解説

リレーショナル データベース(RDBMS)についてわかり易く解説
新規CTA