NoSQL
特にビックデータやリアルタイム処理、分散処理といったニーズが増えているので利用が増えている。
メリット
処理が早く大量のデータを使える
多様な構造のデータを格納できる
データを分散して処理することができる
デメリット
リレーショナル型にあるデータ同士の結合がサポートされていない
データの一貫性や整合性を保つ機能は弱い
トランザクションは使えないことが多い
NoSQLの種類
キーとバリューの2つのデータをペアにしたものを格納していくことができるモデル。
バリューには記録したい情報
キーにはその情報を識別する値を格納する。
キーを元にして情報を素早く取り出したいときに最適なモデルで
シンプルな構成のため読み書きが速く後から情報を分散しやすいのが特徴
アクセス履歴やショッピングカートページのキャッシュなどに使われている。
キーバリュー方を拡張したようなデータ構造
1つの行を識別するキーに対して
複数のキーとバリューのセットを持つことができるようになっているモデル。
1つの行に対して複数の列がある構造なので
リレーショナル型と似ているが列の名前や数が固定されているわけではなく
行ごとに後から列を動的に追加することができ他の行に存在しない列が作成できる。
JSONやXMLと呼ばれる階層構造を持った形式のデータを格納することができるモデル。
あらかじめテーブルの構造決めておく必要がなく
自由な構造のデータをそのまま取り込むことができると言う強みがある。
受け取ったデータをそのままの状態で格納することができるため後からデータ構造が変わった場合でもデータベースの設計を変える必要がない。
関係性を表現するのに最適なモデル。
あるユーザの友達の友達といった関係をめぐる検索を高速に行うことができる。
各ユーザのつながりから興味関心のあるものを分析することによって
ショッピングサイトのレコメンドシステムや地図アプリにおいて最短経路探索に応用するといった使い道がある。