NewSQL(Spanner・CockroachDB)とは?従来DBの厳密さ(ACID)とNoSQL

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

30秒で結論

NewSQLとは(全体像)

NewSQLは、2つの良さを「いいとこ取り」した分散データベースだよー。

この両方の良さ、「SQLとACIDを守りながら、大きく広げられる」を目指したのがNewSQLなのー。

身近にたとえると、「きっちり管理」と「大きく広げる」を両立させた新しいお店のしくみ。押さえるのは、NoSQLとは別ものということだよー。


詳しく:ACID+スケール両立とNoSQLとの違いだけ覚えれば戦える

ここが記事の心臓部。まずNewSQLの位置づけを見ていこーね。

3つのデータベースの位置づけ

種類厳密さ(ACID)拡張しやすさ(スケール)
従来のDB守る広げにくい
NoSQLゆるめがち広げやすい
NewSQL守る広げやすい(両立をねらう)

ここで一番のひっかけが「NewSQLはNoSQLの一種(同じもの)」という誤解。NewSQLは「SQL+ACID+スケール」を両立させたもので、ACIDをゆるめがちなNoSQLとは別ものだよー。

代表的なNewSQLも押さえておこーね。

代表的なNewSQL

名前ひとこと
Google Spannerグローバルに分散しても一貫性を保つ
CockroachDBSpannerに着想・PostgreSQL互換
TiDBMySQL互換・分析と取引を両立(HTAP)

ここで2つめのひっかけが「SpannerはMySQLのこと」という誤解。Spannerは独自のデータベース(SQLは使える)で、MySQLとは別ものだよー。

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

要するに、いいとこ取りでイメージするとラクだよー。

NewSQL … 「きっちり(ACID)」と「大きく広げる(スケール)」を両立させた新しい分散DB

NoSQLとの違い … NoSQLはACIDをゆるめがち、NewSQLはACIDを守る(別もの)

代表 … Spanner・CockroachDB・TiDB

つまり、「NewSQLはSQL+ACID+スケールの両立」「NoSQLとは別もの」、この2点が試験の急所なのー。


試験のツボ

🔴 一番出る:NewSQLの特徴

①従来DBの厳密さ(ACID)とNoSQLの拡張しやすさ(スケール)を両立

②SQLも使えて、たくさんのコンピュータに広げられる(2010年代〜)

🔴 次に出る:NoSQLとの違い

①NoSQLはACIDをゆるめがち

②NewSQLはACIDを守る(SQL+ACID+スケール)。NoSQLとは別もの

🟡 押さえると安定:代表的なNewSQL

①Google Spanner(グローバル分散で一貫性)・CockroachDB(PostgreSQL互換)

②TiDB(MySQL互換・分析と取引を両立=HTAP)


よくある間違い

「NewSQLはNoSQLの一種で、同じものである」→ ✗  NewSQLはSQL+ACID+スケールを両立したもの。ACIDをゆるめがちなNoSQLとは別もの。

「SpannerはMySQLのことである」→ ✗  Spannerは独自のデータベース(SQLは使える)。MySQLとは別もの。

「NewSQLはACIDを守れない」→ ✗  NewSQLはACIDを守りつつ拡張できることをねらった分散DB。


試験での出題パターン

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

オリジナル問題1(NewSQLの特徴)

📝 オリジナル問題 1 NewSQLの特徴

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

  1. NewSQLは画面を必ず新しく描き直すためだけに使う専用の機能のことだとされているものである
  2. NewSQLは従来DBの厳密さ(ACID)とNoSQLの拡張しやすさを両立させた分散DBだ
  3. NewSQLはデータを必ずすべて暗号化するための専用の命令のことだとされているものである
  4. NewSQLは音を鳴らして知らせるためだけに使う専用の設定のことだとされているものである
データスラ
データスラ 解答・解説

解答は 2 だよー。

NewSQLは、従来DBの厳密さ(ACID)とNoSQLの拡張しやすさ(スケール)を両立させた分散データベースなのー。いいとこ取りをねらった新しいしくみだよー。

選択肢1の「描き直す機能」、選択肢3の「暗号化」、選択肢4の「音を鳴らす」はどれも誤りなのー。

選択肢判定理由
1描き直す機能ではない
2ACIDとスケールを両立する分散DB
3暗号化の命令ではない
4音を鳴らす設定ではない

オリジナル問題2(NoSQLとの違い)

📝 オリジナル問題 2 NoSQLとの違い

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

  1. NewSQLとNoSQLはまったく同じもので、違いはいっさいないものだとされているものである
  2. NewSQLはSQLが使えず、ACIDもいっさい守れないものだとされているものである
  3. NoSQLはACIDをゆるめがちだが、NewSQLはACIDを守る点が違って、両者は別ものだ
  4. NewSQLは画面の色を決めるためだけに使う専用の設定のことだとされているものである
データスラ
データスラ 解答・解説

解答は 3 だよー。

NoSQLはACIDをゆるめがちだけど、NewSQLはACIDを守るのー。「SQL+ACID+スケール」を両立するのがNewSQLで、NoSQLとは別ものだよー。

選択肢1の「まったく同じ」、選択肢2の「SQLが使えない」、選択肢4の「色を決める設定」はどれも誤りなのー。

選択肢判定理由
1別ものである
2SQLが使えACIDも守る
3NoSQLはゆるめがち・NewSQLは守る
4色を決める設定ではない

オリジナル問題3(代表的なNewSQL)

📝 オリジナル問題 3 代表的なNewSQL

代表的なNewSQLに関する次の記述のうち、正しいものはどれか。

  1. SpannerやCockroachDBは代表的なNewSQLで、ACIDを守って分散できる
  2. Spannerは画面に文字や図を表示するためだけの専用の機能のことだとされているものである
  3. CockroachDBはデータを必ずすべて削除するための専用の命令のことだとされているものである
  4. SpannerはMySQLとまったく同じもので、独自の点はいっさいないものだとされているものである
データスラ
データスラ 解答・解説

解答は 1 だよー。

SpannerやCockroachDBは代表的なNewSQLで、ACIDを守りながら分散できるのー。Spannerはグローバル分散でも一貫性を保つのが特徴だよー。

選択肢2の「画面を表示する機能」、選択肢3の「削除する命令」、選択肢4の「MySQLと同じ」はどれも誤りなのー。

選択肢判定理由
1代表的NewSQL・ACID+分散
2画面表示の機能ではない
3削除する命令ではない
4Spannerは独自(MySQLではない)

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

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

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

App Storeで見る