NoSQL(4種類・BASE)とは?NoSQLは『SQLだけじゃない』データベースの総称

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

NoSQLとは(全体像)

NoSQLは、従来の「表(テーブル)」の形にこだわらないデータベースたちのこと。名前は「No SQL(SQL禁止)」ではなく、「Not Only SQL(SQLだけじゃない)」の意味だよー。

身近にたとえると、道具を用途で使い分ける感じ。ネジにはドライバー、釘にはハンマー、というように、データの性質に合わせて種類を選ぶのー。

押さえるのは、代表が4種類あって、それぞれ得意な用途が違うこと。そして、分散向けに整合性をゆるめたBASEという考え方が出てくることだよー。


詳しく:4種類とBASEだけ覚えれば戦える

ここが記事の心臓部。まず4種類を見ていこーね。

NoSQLの4種類

種類イメージ代表得意な用途
Key-Value鍵と値のペアRedisキャッシュ・セッション(速く単純)
DocumentJSONのような書類MongoDB柔軟な形のデータ・アプリ
Column列のまとまりCassandra大量・時系列・広域分散
Graph点と線のつながりNeo4jSNS・おすすめ・つながり分析

それぞれ得意が違うので、用途で選ぶのが基本だよー。

次に、分散向けの考え方BASE

BASE(ACIDをゆるめた考え方)

文字意味
BAだいたい常に使える(Basically Available)
S状態は一時的に揺れてもよい(Soft state)
Eいずれ整合する(Eventually consistent=結果整合性)

BASEは、ACID(厳密さ重視)の対の考え方で、「今すぐ全部きっちり一致」より「だいたい使えて、いずれ一致すればよい」を選んで、分散しても止まりにくくするもの。ここで一番のひっかけが「NoSQLはSQLが一切使えない」という誤解。NoSQLでもSQLに似た問い合わせができるものがある(名前は「Not Only SQL」)。

もう1つのひっかけが「NoSQLはACIDに対応していない」という古い思い込み。最近はMongoDBなど、ACIDに対応したNoSQLもあるよー。

わかりやすく言い換えると

要するに、道具の使い分けでイメージするとラクだよー。

4種類 … Key-Value(速い)/Document(柔軟)/Column(大量)/Graph(つながり)

BASE … 「今すぐ完璧」より「だいたい使えて、いずれ一致」を選ぶ分散向けの考え方

名前の意味 … NoSQLは「SQL禁止」でなく「SQLだけじゃない(Not Only SQL)」

つまり、「4種類を用途で使い分け」「BASEはACIDをゆるめた分散向け」、この2点が試験の急所なのー。


試験のツボ

🔴 一番出る:NoSQLの4種類と用途

①Key-Value(速く単純)・Document(柔軟)・Column(大量・分散)・Graph(つながり)

②それぞれ得意な用途が違うので、用途で使い分ける

🔴 次に出る:BASE

①BASEはACID(厳密さ重視)の対の考え方

②「いずれ整合する(結果整合性)」を選んで、分散しても止まりにくくする

🟡 押さえると安定:名前の意味とACID対応

①NoSQLは「SQL禁止」でなく「Not Only SQL(SQLだけじゃない)」

②最近はMongoDBなどACIDに対応したNoSQLもある


よくある間違い

「NoSQLはSQLがいっさい使えないデータベースである」→ ✗  NoSQLは「Not Only SQL」。SQLに似た問い合わせができるものもある。

「NoSQLはどれもACIDに対応していない」→ ✗  最近はMongoDBなど、ACIDに対応したNoSQLもある。

「NoSQLの4種類はどれも同じで使い分けは不要である」→ ✗  Key-Value・Document・Column・Graphで得意が違う。用途で選ぶ。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(NoSQLの4種類)

📝 オリジナル問題 1 NoSQLの4種類

NoSQLに関する次の記述のうち、正しいものはどれか。

  1. NoSQLは画面を表示しないデータベースの一種のことだとされているものである
  2. NoSQLは複数の種類があり、データの性質に合わせて用途で使い分けるものである
  3. NoSQLは必ず1種類しかなく、用途による違いはまったくないものだとされている
  4. NoSQLはデータを必ず紙に印刷するためのしくみのことだとされているものである
データスラ
データスラ 解答・解説

解答は 2 だよー。

NoSQLには、Key-Value(速い)・Document(柔軟)・Column(大量)・Graph(つながり)など複数の種類があって、用途で使い分けるのー。道具を用途で選ぶ感じだよー。

選択肢1の「画面を表示しない」、選択肢3の「1種類しかない」、選択肢4の「紙に印刷」はどれも誤りなのー。

選択肢判定理由
1画面表示の有無の話ではない
24種類を用途で使い分ける
3複数の種類がある
4紙に印刷するしくみではない

オリジナル問題2(BASE)

📝 オリジナル問題 2 BASE

BASEに関する次の記述のうち、正しいものはどれか。

  1. BASEは画面の明るさを調整するための設定のことだとされているものである
  2. BASEはACIDより厳密で、今すぐ全部きっちり一致させることを必ず保証するものである
  3. BASEはデータを必ず削除するための命令のことだとされているものである
  4. BASEはACIDをゆるめた分散向けの考え方で、「いずれ整合する(結果整合性)」を選ぶ
データスラ
データスラ 解答・解説

解答は 4 だよー。

BASEは、ACID(厳密さ重視)をゆるめた分散向けの考え方で、「今すぐ完璧」より「だいたい使えて、いずれ整合する(結果整合性)」を選ぶのー。分散しても止まりにくくするためだよー。

選択肢1の「明るさ調整」、選択肢2の「ACIDより厳密」、選択肢3の「削除する命令」はどれも誤りなのー。

選択肢判定理由
1明るさ調整ではない
2ACIDをゆるめた側(厳密ではない)
3削除する命令ではない
4ゆるめた分散向け・いずれ整合

オリジナル問題3(名前の意味とACID対応)

📝 オリジナル問題 3 名前の意味とACID対応

NoSQLの名前や対応に関する次の記述のうち、正しいものはどれか。

  1. NoSQLは「Not Only SQL」の意味で、SQLに似た問い合わせやACID対応もある
  2. NoSQLは「SQL禁止」という意味で、どんな問い合わせもいっさいできないものだとされている
  3. NoSQLはすべてがACID非対応で、今後も対応することはないものだとされているものである
  4. NoSQLは画面の色を決めるための設定のことで、データベースとは無関係だとされているものだ
データスラ
データスラ 解答・解説

解答は 1 だよー。

NoSQLは「Not Only SQL(SQLだけじゃない)」の意味で、SQLに似た問い合わせができるものもあるのー。最近はMongoDBなどACIDに対応したものもあるよー。

選択肢2の「SQL禁止」、選択肢3の「すべてACID非対応」、選択肢4の「画面の色の設定」はどれも誤りなのー。

選択肢判定理由
1Not Only SQL・ACID対応もある
2SQL禁止の意味ではない
3ACID対応のものもある
4画面の色の設定ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る