noSQLに関する基本的な内容をまとめてみたものです。noSQLに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。
[noSQL DBとRDBの違い] (https://www.techcrowd.jp/nosql/nosql_vs_rdb/)
[分散環境でのRDBの限界] (https://www.techcrowd.jp/nosql/nosql_vs_rdb/)
トランザクション処理の特性を、
- Atomicity(原子性)
- Consistency(一貫性)
- Isolation(独立性)
- Durability(永続性)
の頭文字を取ってACIDとして表します。
RDB(リレーショナルデータベース)はACIDを守ってトランザクション処理を行いますが、分散環境でトランザクション処理しようとすると、頻繁に排他制御が発生して長時間の処理待ちが起こります。
長時間処理が停止してしまうようでは、データベースとして使い物になりません。
そのため、RDBほど厳密にACIDを守らないnoSQLが分散データベースとして用いられるのです。
noSQLは一貫性よりも可用性を重視するため長時間の処理待ちが発生せずに、分散環境でも高速の処理が可能となります。
[それぞれのnoSQLの特徴とマッチする用途] (https://www.techcrowd.jp/nosql/nosql_vs_rdb/)
NoSQLをデータモデルで分類すると、キーバリュー型・カラム型・ドキュメント型に分類できます。
キーバリュー型
・キーとバリューを関連付けて、データを保管する
・データを高速で読み書きすることは可能だが、複雑な処理には適していない
カラム型
・カラム単位でデータを保管する
・大規模なデータの読み込みなどはRDMSよりも高速で処理できるので、データウェアハウスとして用いられることが多い
ドキュメント型
・JSONやXMLなどの構造を持ったドキュメントを保管する
・構造が複雑なデータを格納するのに適している