
NoSQLってなんなの?
どうも木村です。
ここまで記事を書いて一番バズったのがDBでした。謎
その際にチラッと登場したNoSQLさんについて今回は営業する中で必要な内容だけお送りしていきます!
では目次。
■NoSQLとは
■特徴
■種類と使い分け
■最後に
■NoSQLとは
NoSQL(一般に "Not only SQL" と解釈される)とは、関係データベース管理システム (RDBMS) 以外のデータベース管理システムを指すおおまかな分類語である。
これじゃわからないっすよね。
ウィキペディアとかで調べてもエンジニア向けなので僕らエージェントにはマウントを取ってくるやつに思えます。
わかり易くお伝えすると、
【普通のDBよりも効率良く一部の情報を貯めておけるDB】
です。
普通のDBについてはMySQLとかOracleとかSQLServerとかそーゆーものです。
■特徴
①出したい情報をスピーディーに出せる
②新しく情報を貯めなきゃいけない時に便利
①出したい情報をスピーディーに出せる
普通のDBだと情報を引き出すのにわざわざSQLくん(言語)がごちゃごちゃ動いてくれます。
DBが大きくなってくると動くのにも時間がかかってしまいますが、サービスの一部分だけNoSQLで情報を保管しておくことでちょー高速で表示できますよって感じっす!
僕らユーザーからすると、こんなところの情報を表示するときに使われています。
・ECサイトのレコメンド機能(あなたの閲覧履歴からのおすすめとか)
・画像や動画などの検索

(キャンプ好きみたいなおすすめで恥ずかしい)
②新しく情報を貯めなきゃいけない時に便利
ちょーカッコよくいうと負荷分散や拡張性に優れている。です。はぁ?

Webのサービスというのは常に新しい機能を加えなきゃいけないもので、
DBもどんどん新しい情報を貯めるために作り直すことが必要です。
それをDBの再設計(チューニング)と言われますが大きいサービスだと大変だし、
新しい情報はこっちのNoSQLで管理しようとすることで、運用が楽ちんだよね!ってところがアピールポイントの1つです。
■種類と使い分け
エンジニア向けには3パターンに分けられると言われてますが、
営業的には2パターンに分けて考えましょう。

【普通のDBと一緒に使うNoSQL】
よく使うNoSQLは普通のDBと一緒に使います。
代表のNoSQLがこちら。
Redis(レディス)
memcached(メムキャッシュ)
DynamoDB(ダイナモデービー)⇦AWSのサービス
===
Bigtable(ビッグテーブル)⇦GCPのサービス
Hbase(エイチベース)
Cassandra(カサンドラ)
例えばDynamoDBを使っている企業さんではインフラをAWSのサービスで作っていることは多いです。
RedisやMemcachedはPHP/Ruby/Pythonあたり、
HbaseやCassandraはJavaで使われることが多かったりします。
話を広げられる重要な小ネタのため覚えておきましょう!
【普通のDB無しでもいけちゃうNoSQL】
こっちのNoSQLを言われたら普通のDBを使っていないケースもございます。
MongoDB(モンゴデービー)
Cloud Spanner(クラウドスパナー)⇦GCPのサービス
CosmosDB(コスモスデービー)⇦Azureのサービス
こっちを先に言われたら
「あ、普通のDBは入れてない感じですか?」
ってポンって言えるといいですし、逆にDBに関する質問とかしないで済みますからね!
こちらは言語問わずな感じですが、
一時期はPython(Django)+MongoDBみたいな環境多かったイメージはあります。
■最後に
今回のNoSQLはサーバーサイドエンジニアではかなり面談で質問されますし、もはやSEレベルだと出来て当然のように扱われるものです。
DBの設計/構築という知識をさらに広げていかなければならないので、
エージェントとして理解→切り返しができる部分は使っていきましょう!