勉強前イメージ
SQLを使わないデータベースってそのままのイメージしかない
調査
NoSQLデータベース とは
Not only SQLの略で、
SQLを使用せずに使用するDBを指す分類用語のこと。
ビッグデータなどの分野で利用されることが多い
NoSQLとしては代表的なものでBigTableやDynamoDBがあります。
RDB(リレーショナルデータベース)との違い
- 高速な処理
NoSQLではシンプルな構造にすることによって高速な処理をすることが出来ます。
例えばRDBであれば整合性のためのトランザクションを行っていますが、NoSQLではトランザクションが存在しません。
- 拡張性がある
RDBでは基本1台のサーバで動作するような設計になっていますが、データ量の増加に伴い処理性能が足りず低速になってしまいます。
NoSQLではスケールアウトがしやすく、拡張性が高い点がメリットになります。
4種類のデータモデル
NoSQLには大きく4種類のデータモデルがあります。
テーブル構造に固定することなく、さまざまな形式のデータをそのまま格納することが出来ます。
- キーバリュー型
キーとバリューのみのシンプルな組み合わせのモデルで、
データモデルがシンプルであることからデータを分割可能、
また応答速度が早くスケールアウトに最適なのが特徴です。
- カラム指向型
キーバリュー型にカラムの概念をもたせたモデルで、
行に付与されたキーが複数のカラムを持つことが出来ます。
カラム数は動的に追加が可能になります。
- ドキュメント指向型
JSONやXML形式で記述されたドキュメントの形で管理するモデルで、
ドキュメントは階層構造を持たず、相互の関係を横並びに管理します。
スキーマレスで格納することが出来ます。
- グラフ型
データとデータ間のつながりを管理するモデルで、
ノード、リレーションシップ(繋がり)、プロパティ(繋がりの関係性)で構成されており、
全体でグラフを生成シます。
3種類のアーキテクチャ
アーキテクチャは3種類になります。
- マスタ型
分散するデータベースのクラスタのノードのうち、メタ情報など管理するマスタノードが存在するアーキテクチャ。
マスタが全体の管理を行うので、対障害性を上げる必要がある
- P2P型
分散するデータベースのクラスタで、構成するノードすべて同等の役割を持つアーキテクチャ。
耐障害性への偏りがなく、スケールアウトがしやすい。
- イネーブラ型
他との組み合わせによって効果を発揮する。
勉強後イメージ
実は結構NoSQLのDBってあるんだなぁって感じ。
アーキテクチャのマスタ型・P2P型はよくみるなぁって思った。
分類用語だからふわっとしてるけど、ちゃんとDB触ったら分類がイメージできるんだろうな。。。