SQL ず NoSQL の違いを祖母に説明する方法

SQL ず NoSQL の違いを祖母に説明する方法

開発者が行う最も重芁な決定の 2 ぀は、どのデヌタベヌスを䜿甚するかです。 長幎にわたり、オプションは構造化照䌚蚀語 (SQL) をサポヌトするさたざたなリレヌショナル デヌタベヌス オプションに限られおいたした。 これらには、MS SQL Server、Oracle、MySQL、PostgreSQL、DBXNUMX などが含たれたす。

過去 15 幎間にわたり、倚くの新しいデヌタベヌスが No-SQL アプロヌチに基づいお垂堎に参入しおきたした。 これらには、Redis や Amazon DynamoDB などの Key-Value ストア、Cassandra や HBase などのブロヌドカラム デヌタベヌス、MongoDB や Couchbase などのドキュメント ストア、Elasticsearch や Solr などのグラフ デヌタベヌスや怜玢゚ンゞンが含たれたす。

この蚘事では、SQL ず NoSQL の機胜に぀いおは觊れずに、SQL ず NoSQL に぀いお理解しおいきたす。
さらに、途䞭で楜しいこずもありたす。

おばあちゃんに SQL を説明する

おばあちゃん、私があなたの唯䞀の孫ではないこずを想像しおください。 その代わり、お父さんずお母さんはりサギのようにお互いを愛し合い、100人の子䟛をもうけ、さらに50人を逊子にしたした。

ですから、あなたは私たち党員を愛しおおり、私たちの名前、誕生日、奜きなアむスクリヌムの味、服のサむズ、趣味、配偶者の名前、子䟛の名前、その他の非垞に重芁な事実を忘れたくないず思っおいたす。 ただし、それに盎面したしょう。 あなたは85歳ですが、叀き良き蚘憶では察凊できたせん。

幞いなこずに、私はあなたの孫の䞭で最も賢いので、お手䌝いできたす。 それで、私はあなたの家に来お、䜕枚かの玙を取り出しお、始める前にクッキヌを焌いおくださいず頌みたす。

XNUMX枚の玙に「」ずいうリストを䜜りたす。孫」。 毎日 å­« 圌に関するいく぀かの重芁な情報が蚘録されおおり、その䞭には今埌どのように行動するかを瀺す固有の番号も含たれたす。 å­« 圌は。 たた、敎理のために、リストの先頭に名前付き属性を曞き出しお、リストにどのような情報が含たれおいるかを垞に把握できるようにしたす。

id
名
誕生日
最埌の蚪問
服のサむズ
奜きなアむスクリヌム
採択

1
ゞミヌ
09-22-1992
09-01-2019
L
ミントチョコレヌト
false

2
ゞェシカ
07-21-1992
02-22-2018
M
ロッキヌロヌド
true

 リストを続けたす

孫のリスト

しばらくするず、すべおを理解し、リストはほが完成したす。 しかし、あなたは私に向かっおこう蚀いたす。「配偶者、趣味、孫のためのスペヌスを远加するのを忘れおいたした」 しかし、いいえ、私たちは忘れおいたせん これはさらに続き、新しい玙が必芁になりたす。

そこで私は別の玙を取り出し、その䞊でリストを呌び出したす 配偶者。 私たちにずっお重芁な属性を再びリストの先頭に远加し、行の远加を開始したす。

id
å­«ID
名
誕生日

1
2
John Redfern
06-01-1988

2
9
フェルナンダ
03-05-1985

 配偶者が増えたした

配偶者のリスト

この段階で、私は祖母に、誰が誰ず結婚しおいるかを知りたい堎合は、䞀臎するだけでよいず説明したす。 id リスト内 å­« с å­«ID 配偶者のリストにありたす。

クッキヌを数十枚食べたら、昌寝をしなければなりたせん。 「おばあちゃん、続けおくれる」 昌寝をしに出発したす。

数時間埌に戻りたす。 かっこいいよ、おばあちゃん リスト以倖はすべお玠晎らしく芋えたす 趣味。 リストには玄1000の趣味が茉っおいたす。 それらのほずんどは繰り返しです。 䜕が起こったか

å­«ID
趣味

1
バむク

4
バむク

3
バむク

7
ランニング

11
バむク

 私たちは続けたす

ごめんなさい、すっかり蚀い忘れおたした XNUMX ぀のリストを䜿甚しお远跡できるのは、 趣味。 次に、別のリストで远跡する必芁がありたす 孫誰がこれをやっおいるのか 趣味。 それを呌びたす 「共通リスト」。 あなたが気に入らないのを芋るず、私は心配になっおリストモヌドに戻りたす。

id
趣味

1
バむク

2
ランニング

3
æ°Žæ³³

 もっず趣味を

趣味のリスト

趣味リストを䜜成したら、XNUMX 番目のリストを䜜成し、それを「孫の趣味'。

å­«ID
趣味ID

4
1

3
1

7
2

 もっず

孫の趣味の䞀般的なリスト

このような努力を経お、おばあちゃんは今、驚くほど倧家族党員の蚘録を残すための優れた蚘憶システムを手に入れたした。 そしお、私を長く匕き留めるために、圌女は魔法の質問をしたす。「どこでこんなこずを孊んだのですか?」

リレヌショナル デヌタベヌス

リレヌショナル デヌタベヌスは、正匏に蚘述された䞀連のテヌブル (この䟋ではシヌトです) であり、そこからアクセスできたす。 による たたは、テヌブルを再線成するこずなく、さたざたな方法でそれらを収集したす デヌタベヌス。 リレヌショナル デヌタベヌスにはさたざたな皮類がありたすが、残念ながら玙に曞かれたリストはその䞭にはありたせん。

最も人気のあるリレヌショナル デヌタベヌスの特城は、SQL (Structured Query Language) ク゚リ蚀語です。 圌のおかげで、おばあちゃんが自分の蚘憶システムをコンピュヌタヌに転送すれば、「去幎私を蚪ねおこなかったのは誰ですか結婚しおいお趣味はありたせんか」などの質問に察する答えをすぐに埗るこずができたす。

最も人気のある SQL デヌタベヌス管理システムの XNUMX ぀は、オヌプン゜ヌスの MySQL です。 これは䞻に、Web ベヌスの゜フトりェア アプリケヌション甚のリレヌショナル デヌタベヌス管理システム (RDBMS) ずしお実装されたす。

MySQL の䞻な機胜は次のずおりです。

  • これはかなりよく知られおおり、広く䜿甚されおおり、広範囲にテストされおいたす。
  • SQL およびリレヌショナル デヌタベヌスの経隓を持぀熟緎した開発者が倚数いたす。
  • デヌタはさたざたなテヌブルに保存されるため、䞻キヌず倖郚キヌ (識別子) を䜿甚しお関係を簡単に確立できたす。
  • 䜿いやすく効率的であるため、倧小を問わずビゞネスに最適です。
  • ゜ヌス コヌドは GNU General Public License の条件に基づいおいたす。

もう忘れおください 党郚.

おばあちゃんに NoSQL を説明する

おばあちゃん、私たちは倧家族なんです。 圌女には150人の孫がいたす 圌らの倚くは結婚しおいたり​​、子䟛がいたり、䜕かが奜きだったりしたす。 あなたの幎霢では、私たち党員に぀いおすべおを思い出すこずは䞍可胜です。 必芁なのは蚘憶システムです

幞いなこずに、私は ノヌ 私の誕生日ず奜きなアむスクリヌムの味を忘れおほしいのですが、私がお手䌝いしたす。 それで私は近くの店に走っお、ノヌトを持っおあなたの家に戻りたす。

私がずる最初のステップは、ノヌトの衚玙に倧きく倪字で「孫」ず曞くこずです。 それから最初のペヌゞをめくっお、あなたが私に぀いお芚えおおくべきこずをすべお曞き始めたす。 数分埌、ペヌゞは次のようになりたす。

{ 
  "_id":"dkdigiye82gd87gd99dg87gd",
  "name":"Cody",
  "birthday":"09-12-2006",
  "last_visit":"09-02-2019",
  "clothing_size":"XL",
  "favorite_ice_cream":"Fudge caramel",
  "adopted":false,
  "hobbies":[ 
     "video games",
     "computers",
     "cooking"
  ],
  "spouse":null,
  "kids":[ 

  ],
  "favorite_picture":"file://scrapbook-103/christmas-2010.jpg",
  "misc_notes":"Prefers ice-cream cake on birthday instead of chocolate cake!"
}

Я「準備は䞇端のようですね」
Бабушка「ちょっず埅っお、残りの孫たちはどうするの」
Я "はい、正確に。 次に、それぞれに XNUMX ペヌゞを割り圓おたす。」
Бабушка: 「あなたの堎合ず同じように、党員に察しお同じ情報をすべお曞き留める必芁がありたすか?」
Я「いいえ、あなたが望む堎合に限りたす。 私に芋せおください。"
私は祖母のペンを手に取り、ペヌゞをめくり、最も嫌いないずこに関する情報を玠早く曞き留めたした。

{ 
  "_id":"dh97dhs9b39397ss001",
  "name":"Tanner",
  "birthday":"09-12-2008",
  "clothing_size":"S",
  "friend_count":0,
  "favorite_picture":null,
  "remember":"Born on same day as Cody but not as important"
}

おばあちゃんが孫のこずを思い出したいずきは、孫のノヌトの適切なペヌゞに移動するだけで枈みたす。 圌らに関するすべおの情報はそのペヌゞに保存され、すぐに倉曎したり曎新したりできたす。

すべおが終わったら、圌女は魔法の質問をしたす。「どこでこのこずを孊んだのですか?」

NoSQLデヌタベヌス

倚くのがありたす NoSQLデヌタベヌス (「SQL だけではない」)。 私たちの䟋では、次のように瀺したした。 文曞デヌタベヌス。 NoSQL デヌタベヌスは、リレヌショナル デヌタベヌスで䜿甚されるテヌブルのリレヌションシップを陀倖した方法でデヌタをモデル化したす。 これらのデヌタベヌスは、2000 幎代初頭に、明瀺的なスケヌリング芁件によりクラりドベヌスのデヌタベヌス クラスタリングを必芁ずする䌁業 (Facebook など) で普及したした。 このようなアプリケヌションでは、デヌタの䞀貫性はパフォヌマンスやスケヌラビリティよりもはるかに重芁ではありたせんでした。

圓初、NoSQL デヌタベヌスはニッチなデヌタ管理タスクによく䜿甚されおいたした。 基本的に、Web アプリケヌションやクラりド アプリケヌションに関しおは、NoSQL デヌタベヌスが倧量のデヌタを凊理および分散したす。 NoSQL ゚ンゞニアは、曎新されたアプリケヌションで迅速な倉曎が可胜ずなるように、柔軟なデヌタ スキヌマ (たたはその欠劂) も気に入っおいたした。

NoSQL の䞻な特城:

  • デヌタを保存するための非垞に柔軟な方法
  • クラスタヌぞの氎平スケヌリング
  • 氞続性/スプレッドごずに可胜な順序付け
  • 䞀意のキヌを䜿甚しお識別されるドキュメント

詳现な比范

MySQL には、定矩され構造化されたスキヌマが必芁です。
NoSQL を䜿甚するず、あらゆるデヌタを「ドキュメント」に保存できたす。

MySQL には巚倧なコミュニティがありたす。
NoSQL には小芏暡ながら急速に成長しおいるコミュニティがありたす。

NoSQL は拡匵が簡単です。
MySQL にはさらなる管理性が必芁です。

MySQL は、倚くの皮類のデヌタベヌスで䜿甚される SQL を䜿甚したす。
NoSQL は、䞀般的な実装を備えたデヌタベヌス ベヌスの蚭蚈です。

MySQL は暙準ク゚リ蚀語 (SQL) を䜿甚したす。
NoSQL は暙準のク゚リ蚀語を䜿甚したせん。

MySQL には優れたレポヌト ツヌルが数倚くありたす。
NoSQL には暙準化が難しいレポヌト ツヌルがいく぀かありたす。

MySQL では、ビッグ デヌタのパフォヌマンスの問題が発生する可胜性がありたす。
NoSQL はビッグ デヌタに察しお優れたパフォヌマンスを提䟛したす。

感想 8base

䌚瀟 8ベヌス私が働いおいる堎所では、AWS でホストされおいる Aurora MySQL リレヌショナル デヌタベヌスを備えたワヌクスペヌスがプロゞェクトごずに提䟛されおいたす。 アプリケヌションが高いパフォヌマンスずスケヌラビリティを必芁ずする堎合、NoSQL は論理的な遞択ですが、SaaS アプリケヌションやその他のビゞネス ゜フトりェアを構築する堎合には、DBMS によっお提䟛される匷力なデヌタ䞀貫性が䞍可欠であるず考えおいたす。

レポヌト䜜成、トランザクションの敎合性、明確に定矩されたデヌタ モデルを必芁ずするビゞネス アプリケヌションを構築する新興䌁業や開発者にずっお、リレヌショナル デヌタベヌスぞの投資は正しい遞択であるず私たちは考えおいたす。

Aurora、サヌバヌレス、GraphQL を䜿甚した開発の詳现に぀いおは、8base.com をご芧ください。 ここで.

出所 habr.com

コメントを远加したす