
166
導
入
編
1
設
計
編
ア
キ
テ
ク
チ
ャ
編
2
3
4
5
6
7
3
NoSQL
データベース設 計
前節の「データベース論理設計」では RDB(Relational Database)を前
提とした設計について説明しました。現在でもRDBはデータの格納先とし
て主要なものであることには変わりはありませんが、他の選択肢として
NoSQLデータベースがあります。NoSQLデータベースという言葉の意味は、
SQLだけではない(Not only SQL)ということで、簡単にいえばRDB以外
のデータベースを指します。RDBは正規化された構造化データを格納しま
すが、NoSQLでは半構造データや非構造データを格納することができます。
NoSQLはスケーラビリティが高く、高性能です。その代わりトランザク
ション制御を省略して(P209 トランザクションの制御を参照)、ACIDを一
部緩和しています。NoSQLでもロックを使えばACIDを実現できるといっ
たインターネット上の記事もありますが、ロックを乱用するとNoSQLの利
点を失うことになり、RDBよりも性能が悪くなることもあります。常に
RDBよりもNoSQLの性能が良いわけではなく、それぞれの特性にあわせた
適用をすべきです。