「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

NoSQL

pointこの用語のポイント

pointデータベースの分類だよ

pointリレーショナルデータベース(リレーショナルデータベースマネジメントシステム)じゃないやつだよ

point「これがNoSQL!」という明確な定義があるわけじゃないから何となくの分類だよ

point「No」は(昔は「Yes/No」の「No」のことだったけど今では)「Yes/No」の「No」ではなくて「Not only」の省略表現らしいよ

スポンサーリンク

簡単に書くよ

NoSQL(読:ノーエスキューエル)とは

データベースの分類のひとつ
であり

リレーショナルデータベース(リレーショナルデータベースマネジメントシステム)じゃないデータベースのこと
です。
よく分からない人は

パッと見の印象や操作感がOracleとかMySQLとかとは違うデータベースのこと
と思っても……良いかな?良いよね!多分、良いです。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

データベース
リレーショナルデータベース(RDB)
データベースマネジメントシステム(DBMS)
リレーショナルデータベースマネジメントシステム(RDBMS)
SQL


について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

データベースは「データを入れておく箱」です。
突っ込んで考えると混乱するかもしれません。
何となくのフィーリングで理解してください。

NoSQL

リレーショナルデータベース(RDB)は「データを表形式で扱っていて、表同士をくっつけたりなんだりできるデータベース」です。
データベースの種類のひとつです。

NoSQL2

よく分からない人は、よく分からないままで かまいません。
一旦スルーしてください。

NoSQL3

データベースマネジメントシステム(DBMS)は「データベースを便利に使うための あれやこれやな機能が付いているソフト」です。
(データベース)を扱うための道具です。

NoSQL4

これも やっぱり、よく分からない人は、よく分からないままで かまいません。
一旦スルーしてください。

NoSQL5

リレーショナルデータベースマネジメントシステム(RDBMS)は「リレーショナルデータベースを便利に使うための あれやこれやな機能が付いているソフト」です。
その名の通り、リレーショナルデータベースのデータベースマネジメントシステムです。

NoSQL6

これも やっぱり、よく分からない人は、よく分からないままで かまいません。
一旦スルーしてください。

NoSQL7

さて、いろいろ華麗にスルーして、ここまで辿り着きましたね。
サッパリ分かっていない状態だと思いますが問題ありません。
(多分)これからサクっと分かります。

「リレーショナルデータベースマネジメントシステム」とか小難しい呼び名が付いていますが、要はOracleとかMySQLとかSQL ServerとかPostgreSQLとかのことです。

NoSQL8

OracleとかMySQLとかはデータを入れる箱を表形式で扱います。
OracleとかMySQLとかはリレーショナルデータベースです。

OracleとかMySQLとかを構成する要素はデータを入れる箱だけでは ありません。
他にも「ビューが、どーたら」とか「インデックスが、こーたら」とか、いろいろな機能がくっついています。
OracleとかMySQLとかは単なるデータベースでは ありません。
「データベース+ソフト」な箱(データベース+)データベースマネジメントシステムです。

OracleとかMySQLとかはリレーショナルデータベースデータベースマネジメントシステムです。
だから、リレーショナルデータベースマネジメントシステムです。

単に「データベース」と呼ばれることが多いですけどね。
実際には、リレーショナルデータベースマネジメントシステムなのです。

次に行きましょう。
SQL(とSQL文」について説明します。

SQLは「データベースと やり取りするときに使う言葉」です。

NoSQL9

データベースにデータを入れるときは、データベースさんに「これを入れておいて」と命令します。
データベースからデータを取り出すときは、データベースさんに「こんなデータを取り出しておくれ」と命令します。
SQLは、そんな命令をするときに使う言葉です。

SQL文は「データベースに対する、SQLを使った命令文」です。
クエリ」とも呼ばれます。

NoSQL10

「SQL」と「SQL」は違います。
あまり神経質になる必要はありませんが、区別できるように しておいてください。

SQLは「言語」です。
SQL文は「命令(文)」です。

NoSQL11

例えば、そうですね。
ピヨ子さんがピヨ太君に日本語で「パン買ってこい!」と命令したとしましょう。

NoSQL12

ピヨ子さんが人間、ピヨ太君がデータベースだとすれば「日本語」が「SQL」です。
「パン買ってこい!な命令」が「SQL文」になります。

NoSQL13

以上を踏まえて

リレーショナルデータベースマネジメントシステム「以外」のデータベース箱(データベースマネジメントシステム)

を指す分類上の呼び名が「NoSQL」です。
「データベース箱(データベースマネジメントシステム)」というカテゴリの中に「リレーショナルデータベース(リレーショナルデータベースマネジメントシステム)」と「NoSQL」があります。

NoSQL14

以前は、データベースと言えば、ほとんど?がリレーショナルデータベースでした。
「データベースを使おうぜー!」となったら「Oracleにする?MySQLにする?SQL Serverにする?PostgreSQLにする?それとも……」だったのです。

NoSQL15

ところがどっこい、あれやこれやの事情でリレーショナルデータベース以外のデータベースも増えてきました。

NoSQL16

その結果、生まれたであろう「リレーショナルデータベース以外のデータベース」の呼び名がNoSQLです。

NoSQL17

注意点として、どんなデータベースがNoSQLに分類されるかは結構あいまいです。
リレーショナルデータベースだったMySQLさんが「MySQL 8.0はRDBとNoSQLの両方イケるようにするよ!」と言ったりもしたみたいですしね。
あまり突っ込んで考えると混乱すると思います。

繰り返しになりますが、NoSQLはデータベースの「分類」です。
別に「NoSQL」という名前のデータベースがあるわけでは ありません。
会議とかで「今度のシステムではデータベースにNoSQLを使いましょう!」とかいう発言が出てきたら「具体的には何のデータベースを使うの?」と確認してください。
「デザートは和菓子にしましょう」と言っているのと同じだからです。
一口に「和菓子」と言っても、いろいろありますよね?

ちなみに「NoSQL」の「No」は「Yes/No」の「No」では ありません。
「Not only」の省略表現(らしい)です。
「SQLいらね!(No!SQL!)」では ありません。
「SQLだけじゃないよ!(Not only SQL!)」です。
※昔は「Yes/No」の「No」のつもりだったらしいですが、SQLも使えるやつが出てきたからか「Not only」の省略と解釈するようになったみたいです。

あと、最近では、RDBとNoSQLの良いとこ取りをしようとした「NewSQL」なんていうのも出てきて、今まで以上に分類がややこしくなっています。
そこら辺の あれやこれやが気になる方は他のところで情報を補完してください。


image piyo2

一言でまとめるよ

まぁ「NoSQL」って単語が出てきたら「『リレーショナルデータベース(リレーショナルデータベースマネジメントシステム)じゃないよ!』を意味するデータベースの分類なんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像033
書籍画像003

おまけ

■訳してみるよ

「No」は「Not only(ノット・オンリー)」の略らしいです。
「not(ノット)」の意味は「~でない」とかです。
否定を意味します。
「only(オンリー)」の意味は「~だけ」とかです。
「SQL(エスキューエル、シークェル)」はIT用語の「SQL」です。
何となく くっつけると

SQLだけじゃない

となります。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
おい点P、動くんじゃねえ!──ニガテ民のための算数と数学の本
実践サイバーセキュリティ入門講座 現場に残された痕跡からハッカーの攻撃を暴け