NoSQLとは
- PostgreSQLやMySQLなどのRDBでは対処しづらいようなビッグデータにも対応すべく生み出された技術
- SQLを使用しない
- 代表例はGoogleのBigTable,アマゾンのAmazon DynamoDBなどがある
RDBとNoSQLの違い
RDBは
- 機能が少ない
- データの整合性がゆるい
- 結果整合性で良いと言う考え
- JOIN(結合)が通jぷではサポートされていない
- 大量のデータを素早く処理することを優先している
CAP定理
- 分散型データベースシステムに置ける三大要件として以下3点が存在する
- この3つの売り、最大2つしか満たすことができないというのがCAP定理
- Consistency(整合性)・・・常に同一のデータを参照する
- Availability(可用性)・・・常に読み出しと書き込みができる
- Partition Tolerance(分断耐性)・・・ネットワークが分断されても間違った結果を引き起こさない
NoSQLに期待すること
- 一台のサーバーには収容できないほどの膨大なデータを扱う
- データを複数のサーバに分割して割り当てる
- 高価なハードウェアがなく安価な汎用ハードウェアの上で稼働する
- データに紛失がなく、データは安全な状態に格納されている
- システム全体としては、いつでも使える状況にある
- 障害が発生しても短時間で復旧できる
- リアルタイムに近い応答性能を備えている
- 高速なデータベースチューニングの技術を必要としない
NoSQLのデータモデル
- キーバリュー型
- テーブルや関係性を定義せず、キーとバリューという組み合わせからなるシンプルなデータモデル
- スケールアウトに最適
- カラム指向型
- 上記のキーバリュー型に絡むの概念を持たせたデータモデル
- 行に付与されたキーが複数のカラムを持つことができる
- カラム数はRDBのように固定ではなく、動的に追加していくことができる
- 他の行には存在しない絡むを持つ行を作ることができる
- ドキュメント指向型
-
JSONやXML形式で記述されたドキュメントの形でデータを管理することができる
【超入門】RDBとNoSQLの違いに着目!NoSQLに求めるものとは?