• ACIDを守ってトランザクション処理を行うRDBは、分散環境に向いていませんので、RDBほど厳密にACIDを守らないnoSQLが分散データベースとして用いられます。
  • キーバリュー型・カラム型・ドキュメント型といった特色のあるNoSQLが、分散環境などの用途にあった場所で利用されています。

 

分散環境でのRDBの限界

トランザクション処理の特性を、
・Atomicity(原子性)
・Consistency(一貫性)
・Isolation(独立性)
・Durability(永続性)
の頭文字を取ってACIDとして表します。

RDB(リレーショナルデータベース)はACIDを守ってトランザクション処理を行いますが、分散環境でトランザクション処理しようとすると、頻繁に排他制御が発生して長時間の処理待ちが起こります。
長時間処理が停止してしまうようでは、データベースとして使い物になりません。

そのため、RDBほど厳密にACIDを守らないnoSQLが分散データベースとして用いられるのです。
noSQLは一貫性よりも可用性を重視するため長時間の処理待ちが発生せずに、分散環境でも高速の処理が可能となります。

 

それぞれのnoSQLの特徴とマッチする用途

NoSQLをデータモデルで分類すると、キーバリュー型・カラム型・ドキュメント型に分類できます。

キーバリュー型
・キーとバリューを関連付けて、データを保管する
・データを高速で読み書きすることは可能だが、複雑な処理には適していない

カラム型
・カラム単位でデータを保管する
・大規模なデータの読み込みなどはRDMSよりも高速で処理できるので、データウェアハウスとして用いられることが多い

ドキュメント型
・JSONやXMLなどの構造を持ったドキュメントを保管する
・構造が複雑なデータを格納するのに適している

 

本サイト上に掲載されているまとめ記事が、毎週ステップメールで受け取ることもできます。

 

 

参考文献