Relational Database Management System の頭字語

1.特徴

 RDBMSは、ACID特性という概念に基づいて設計されている
   トランザクション処理において必要とされる4つの特性
     Atomicity(原子性)
       トランザクションに含まれるタスクが全て実行されるか、
         あるいは全く実行されないことを保証する性質
     Consistency(一貫性)
       トランザクション開始と終了時に
         予め与えられた整合性を満たすことを保証する性質
         日本語では「一貫性」あるいは「整合性」とも呼ばれる
     Isolation(独立性)
       トランザクション中に行われる
         操作の過程が他の操作から隠蔽される性質
         分離性、独立性または隔離性ともいう
     Durability(永続性)
       トランザクション操作の完了通知をユーザが受けた時点で、
         その操作は永続的となり、結果が失われない性質

2.BASE特性

 NoSQLはBASE特性という概念に基づいて設計されている

 基本的には常に利用可能で、常に整合性を保っている必要はなく、
   一時的に一貫性のない状態を許容して、
   結果的には整合性が取れている状態に至る、という特性

 ACIDとは対照的に、可用性や性能を重視した特性を持つ分散システムの特性

 Basically Available(BA)・・・基本的にいつでも利用できる
 Soft-State(S)・・・・・・・常に整合性を保っている必要はない
 Eventual Consistency(E)・・結果的には整合性が保証される

2.CAP 定理

 分散コンピュータシステムのマシン間の情報複製に関する定理
   ノード間のデータ複製において、
   同時に次の3つの保証を提供することはできない

   C:一貫性(Consistency)
     全てのノードで同時に同じデータが見える
   A:可用性(Availability)
     単一障害(一部のノード)が起きても処理の継続性が失われない
   P:分断耐性(Partition-tolerance)
     任意の通信障害等によるメッセージ損失に対し、継続して動作を行う

 CAP定理により、分散システムは3つの保証のうち、
   同時に2つの保証を満たすことはできるが、
   同時に3つの保証すべてを満たすことはできない

 CAP定理により
   DBMSは「CA型」「CP型」「AP型」のいずれかのタイプに分類できる

CA型
C:一貫性とA:可用性
データはいつでも利用可能で一貫している
 単一データベースサーバ
 データを分散しつつも整合性を保持する
リレーショナル型:
 OracleMySQLPostgreSQLSQLServer
カラム指向:
 Vertica
CP型
C:一貫性とP:分断耐性
整合性保持のため、複製中は全てのノードでデータ更新されるまでロックをかけて不整合を阻止する
 ロックがかかっている最中はAvailableではない
Key-Value:
 Redis、memcached、Scalaris
カラム指向:
 BigTable、HBase
ドキュメント指向:
 MongoDB
AP型
A:可用性とP:分断耐性
データは分散され、いつでもデータにアクセスできる
 データ複製中は不整合な状態になり得る
 Cはある程度妥協する
 Eventual consistency
Key-Value:
 Dynamo、Voldemort、TokyoTyrant/Cabinet、
カラム指向:
 Cassandra
ドキュメント指向:
 SimpleDB、CouchDB、Riak

3.NoSQL Systemsの比較・分類

 データモデルを色分けして分類
   Relational (comparison)
   Key-Value
   Column-Oriented/Tabular
   Document-Oriented