---
# System prepended metadata

title: NoSQL
tags: [NoSQL]

---

# NoSQL
## NoSQLとは
NoSQLとは、SQL文を使用する関係型データベース(RDBMS)以外のデータベースを指す。
RDBMSが苦手とするビッグデータの取り扱いに力を発揮する。
## NoSQLとRDBMSの違い

### CAP定理
分散型データベースの三大要件。
* **データの整合性(Consistency)**：常に同一のデータを参照する。
* **データの可用性(Availability)**：常に読み出しと書き込みができる。
* **データの分断耐性(Partition Tolerance)**：ネットワークが分断されても誤った処理結果を引き起こさない。
以上の**3要件は全て同時には満たせない。** 分散型データベースはこのうち**2要件**を満たしたものとなる。


### NoSQL
* データ形式：様々（下記参照）
* データ容量：大容量データの取り扱いが可能。
* データの整合性：可用性を満たすものは満たさない。
* データの可用性：整合性を満たすものは満たさない。
* データの分断耐性：満たす。
* データの結合(JOIN)：不可。
* 得意とする処理：ビッグデータ処理など。
以上から、NoSQLはネットワークの分断耐性に優れ、大容量データの取り扱いが可能な分散型データベースである。

### RDBMS
* データ形式：表形式
* データ容量：容量には限度がある。
* データの整合性：満たす。
* データの可用性：満たす。
* データの分断耐性：満たさない。
* データの結合(JOIN)：可。
* 得意とする処理：トランザクション処理など。
以上から、RDBMSはデータの整合性・可用性に優れ、トランザクション処理など実用面でのメリットが大きいデータベースである。

## NoSQLのデータモデル
* キーバリュー型：キーとそれに対応する値を書き出していく方式。
* カラム指向型：あるカラム（列）をキーとし、複数のカラムを値として持つ方式。
* ドキュメント指向型：JSONやXML形式のドキュメントの形で管理する方式。異なる性質や形式のデータでも、共通点を指定すれば関係が取得できる。
* グラフ型：ノード、リレーションシップ、プロパティで、データとデータのつながりを管理する形式。


## 参照ページ
[【超入門】RDBとNoSQLの違いに着目！NoSQLに求めるものとは？](https://tech-blog.rakus.co.jp/entry/20180919/nosql/bigdata)

###### tags: `NoSQL`