
本コースで使用するソースコードです。
こちらからダウンロードをお願い致します。(コース終了後の状態となっております。)
本コースでは、MySQLとMongoDBをそれぞれ使って同一アプリケーションを作成します。作成を通じて、それぞれの文法、互いの違いや特徴を学んでいく形となっております。
MySQLはリレーショナルデータベース、MongoDBはNoSQLの代表的なデータベースです。
両方とも汎用的に使われているデータベースですので、基本的には違いをそれほど感じることなく、アプリケーションを作成することが可能ですが、双方の違いを感じやすい場面の例として、「完成後の仕様変更」があります。
本コースでは、まず、シンプルなTODOアプリを完成させることを通じてPython による各データベースの操作方法を学びます。
その後、「TODOの担当者を追加する」という仕様変更が発生したとし、双方の仕様変更への対応方法の違いからMySQLとmongoDBの違いを浮き彫りにしつつ、学習していきます。
サーバサイドは共通してPythonのFastAPIを活用します。
データベースの操作はMySQLではsqlalchemy、MongoDBではPyMongoを活用します。
MySQLとMongoDBの特徴は以下のような点があります。
【MySQL】
・リレーショナルデータベースの代表的なデータベース。SQLを使用してデータを操作する。
・事前に定義されたスキーマに基づいてテーブルを作成やデータ操作を行う。
【MongoDB】
・ドキュメント指向のNoSQL(Not Only SQL)で、JSON形式のデータを操作する。
・スキーマレスであり、異なる構造のドキュメント(MySQLでの行に相当)を同じコレクション(MySQLでのテーブルに相当)に格納できる。
・漏れなく徹底的に比較をしているとまでは至っておりませんが、文法的な違いやスキーマの概念の違いを掴んで頂ける内容となっております。
・MySQL、MongoDBの両方を学習されている方はもちろん、どちらか一方を学習されている方やこれから学習されようしている方にも、互いの共通点や違いを押さえて頂くことで学習の一助になると考えております。
※MySQLの操作はセクション2でSQLを使用する以外は基本的にはsqlalchemyを使います。そのため本コースはSQLの文法的な学習には適していない点、ご了承ください。