No SQL
書き間違いだよ
「NoSQL」のことだと思うよ
簡単に書くよ
No SQL(読:ノー エスキューエル)とは
「NoSQL」の書き間違い。
NoSQLは
データベースの分類のひとつ
であり
リレーショナルデータベース(リレーショナルデータベースマネジメントシステム)じゃないデータベースのこと
です。
よく分からない人は
パッと見の印象や操作感がOracleとかMySQLとかとは違うデータベースのこと
と思っても……良いかな?良いよね!多分、良いです。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・データベース
・リレーショナルデータベース(RDB)
・データベースマネジメントシステム(DBMS)
・リレーショナルデータベースマネジメントシステム(RDBMS)
・SQL
・NoSQL
について説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
データベースは「データを入れておく箱」です。
突っ込んで考えると混乱するかもしれません。
何となくのフィーリングで理解してください。
リレーショナルデータベース(RDB)は「データを表形式で扱っていて、表同士をくっつけたりなんだりできるデータベース」です。
データベースの種類のひとつです。
よく分からない人は、よく分からないままで かまいません。
一旦スルーしてください。
データベースマネジメントシステム(DBMS)は「データベースを便利に使うための あれやこれやな機能が付いているソフト」です。
箱(データベース)を扱うための道具です。
これも やっぱり、よく分からない人は、よく分からないままで かまいません。
一旦スルーしてください。
リレーショナルデータベースマネジメントシステム(RDBMS)は「リレーショナルデータベースを便利に使うための あれやこれやな機能が付いているソフト」です。
その名の通り、リレーショナルデータベースのデータベースマネジメントシステムです。
これも やっぱり、よく分からない人は、よく分からないままで かまいません。
一旦スルーしてください。
さて、いろいろ華麗にスルーして、ここまで辿り着きましたね。
サッパリ分かっていない状態だと思いますが問題ありません。
(多分)これからサクっと分かります。
「リレーショナルデータベースマネジメントシステム」とか小難しい呼び名が付いていますが、要はOracleとかMySQLとかSQL ServerとかPostgreSQLとかのことです。
OracleとかMySQLとかはデータを入れる箱を表形式で扱います。
OracleとかMySQLとかはリレーショナルデータベースです。
OracleとかMySQLとかを構成する要素はデータを入れる箱だけでは ありません。
他にも「ビューが、どーたら」とか「インデックスが、こーたら」とか、いろいろな機能がくっついています。
OracleとかMySQLとかは単なるデータベースでは ありません。
「データベース+ソフト」な箱(データベース+)データベースマネジメントシステムです。
OracleとかMySQLとかはリレーショナルデータベースのデータベースマネジメントシステムです。
だから、リレーショナルデータベースマネジメントシステムです。
単に「データベース」と呼ばれることが多いですけどね。
実際には、リレーショナルデータベースマネジメントシステムなのです。
次に行きましょう。
「SQL(とSQL文)」について説明します。
SQLは「データベースと やり取りするときに使う言葉」です。
データベースにデータを入れるときは、データベースさんに「これを入れておいて」と命令します。
データベースからデータを取り出すときは、データベースさんに「こんなデータを取り出しておくれ」と命令します。
SQLは、そんな命令をするときに使う言葉です。
SQL文は「データベースに対する、SQLを使った命令文」です。
「クエリ」とも呼ばれます。
「SQL」と「SQL文」は違います。
あまり神経質になる必要はありませんが、区別できるように しておいてください。
SQLは「言語」です。
SQL文は「命令(文)」です。
例えば、そうですね。
ピヨ子さんがピヨ太君に日本語で「パン買ってこい!」と命令したとしましょう。
ピヨ子さんが人間、ピヨ太君がデータベースだとすれば「日本語」が「SQL」です。
「パン買ってこい!な命令」が「SQL文」になります。
最後は「NoSQL」について説明します。
NoSQLは「リレーショナルデータベースマネジメントシステム以外のデータベース箱(データベースマネジメントシステム)」を指す分類上の呼び名です。
「データベース箱(データベースマネジメントシステム)」というカテゴリの中に「リレーショナルデータベース(リレーショナルデータベースマネジメントシステム)」と「NoSQL」があります。
以前は、データベースと言えば、ほとんど?がリレーショナルデータベースでした。
「データベースを使おうぜー!」となったら「Oracleにする?MySQLにする?SQL Serverにする?PostgreSQLにする?それとも……」だったのです。
ところがどっこい、あれやこれやの事情でリレーショナルデータベース以外のデータベースも増えてきました。
その結果、生まれたであろう「リレーショナルデータベース以外のデータベース」の呼び名がNoSQLです。
注意点として、どんなデータベースが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」なんていうのも出てきて、今まで以上に分類がややこしくなっています。
そこら辺の あれやこれやが気になる方は他のところで情報を補完してください。
以上を踏まえて
「NoSQL」を意図したであろう「惜しい!気持ちは分かる!」な書き間違い
が「No SQL」です。
「No」と「SQL」の間に空白は要りません。
「NoSQL」で1つの単語です。
気持ちは、とてもよく分かります。
「No」は「Yes/No」の「No」を連想するでしょう。
「No!SQL!(SQLいらね!)」と解釈したくなるのは自然です。
ですが、空白は不要です。
例えば「ピヨ太」を「ピヨ 太」と書いたら、ちょっと微妙ですよね。
それと同じです。
「No SQL」と書いても察しが良い人は分かってくれるでしょうけどね。
できれば「NoSQL」と表現するように意識してあげてください。
一言でまとめるよ
まぁ「No SQL」って単語が出てきたら「『NoSQL
(「リレーショナルデータベース(リレーショナルデータベースマネジメントシステム)じゃないよ!」を意味するデータベースの分類)』のことなんだろうな~」と お考えください。
おまけ
■検索してみる?






