学習時間 | 6時間 |
---|---|
難易度 | 初級 |
質問投稿 | 可 |
データベース設計を手を動かしながら学んでみよう!
データベース設計の基礎知識をアプリケーション開発内での要件定義の考え方に沿って学びます。ER図(ERD)の書き方を学んだのち、UMLユースケース図によって可視化されたサンプルアプリケーションの「要件」を元に、データベースの設計手法を実践形式で身につけます。
データベース設計の基礎と実例を要件定義からの思考プロセスとともに学んでいきます
本教材では、データベース(以下、DB)設計の基礎を座学と演習形式とを交えて学ぶことができます。
学習サイトやスクールでプログラミング言語を学んだ方が、いざポートフォリオとして自分で何かアプリケーションを作ろうとした時に「コーディングはできそうだが、DB設計についてはどう考えたら良いのかが分からない」という声を多く耳にします。
DBは、様々なアプリケーション開発において欠くことができないものです。
それにも関わらず、「プログラミング言語の文法」や「Webアプリケーションフレームワークの使い方」に比べると「DB設計」について学べる機会はあまりないです。
DB設計は、アプリケーションの上流工程でほぼ必ず必要になる作業です。また、アプリケーションの機能追加が必要になった際などにプログラマがDB設計を任される局面も多くあります。
DB設計が行えるだけのスキルを持つエンジニアには、高い人材価値があるということは間違いありません。
ぜひ本教材にて、理論と実践を繰り返しながらDB設計を身につけていただきたいと思います。
学習内容
- 関係データベースについての基礎知識
- 主キー(Primary Key)とは?
- テーブル同士のリレーションシップ(Relationship)とは?
- 正規化とは?
- データベースの構成を書き表すドキュメントであるER図(ERD)の書き方
- IE記法(別名・鳥の足記法)
- draw.io(diagrams.net)でのER図の書き方
- テーブルの書き方
- リレーションシップの書き方
- 要件定義の成果物としてのUMLユースケース図を見ながら、サンプルアプリケーションの実際のデータベース設計
- 要件定義とは何か?
- なぜ要件定義が必要なのか?
- UMLユースケース図について
- データベース設計の具体的な流れ
- アプリケーションに必要なテーブルを洗い出すための、思考のプロセス
- アプリケーションに必要なカラムを洗い出すための、思考のプロセス
- N対Nリレーションシップの関係データベースでの表現方法
作成するサンプルER図
本教材では、実践の部分でCtoC教材マーケットプレイスのER図を作成していただきます!
教材を一通り終えた暁には、以下の図がなにを示しているのかを理解することはそう難しくはないでしょう。
本教材の対象者
- Progate・ドットインストール・Techpit等の教材を使って、バックエンドのプログラミング言語で簡単なサンプルアプリケーションを開発したことがある方(DBを使用したサンプルアプリケーションであることが望ましい)
- プログラミングスクール受講中 〜 卒業程度のプログラミング学習経験がある方
- アプリケーション設計・開発・保守に携わる立場でIT企業に入社されて間もない 〜 2年程度の業務経験がある方
いずれも、「プログラミングはできるようになってきているが、DB設計の考え方が今ひとつ理解できていない」という方を主に想定しています。
受講における必要条件
必要条件は特にありません。
しかしながら、DBを使用した簡単なアプリケーションを作った経験があり最低限DB設計の「必要性」を理解していることが望ましいです。Ruby・PHP・Python・Node.js(JavaScript)・Goなどバックエンド(サーバサイド)のプログラミング言語であれば、言語は問いません。
学ばないこと
この教材では、以下については学ばず別の書籍・Web記事等に譲ります。
- DB設計後の、アプリケーションのプログラミング
- ORMの使い方
- ORM(ORマッパー)とは、SQLをコーディングしなくとも(※)DB操作(検索・データ追加・更新・削除)をプログラミングできる開発ライブラリのことです。
(※ SQLを学ばなくても良い、ということでは決してありませんが!)
Ruby on Railsに組み込まれているActive Recordが有名ですね。
ORMについては一部のパートで説明しますが、詳しい使い方には触れません。
- ORM(ORマッパー)とは、SQLをコーディングしなくとも(※)DB操作(検索・データ追加・更新・削除)をプログラミングできる開発ライブラリのことです。
- DBの「物理設計」について
- 「論理設計」したDBを実際に稼働・保守・運用するにあたっては、DBの「物理設計」も必要になります。
- 具体的には、アプリケーションが高速に動作するためのインデックス付与やDBがサーバのメモリをより効率的に使用できるようにするためのチューニング等々です。この教材では、この物理設計については対象外とします。
- アプリケーションを設計・開発するにあたっては、DBの物理設計のためのスキルは、論理設計のスキルよりも優先度は落ちますが、実務に入ればこのスキルを身につけていれば、よりいっそうエンジニアとしての差別化につながりますので、この教材を終えた後にさらなるステップアップを目指す方は、DBの物理設計についても学んでみてください。
- RDB(= 関係データベース・リレーショナルデータベース)以外のDB設計について
- ドキュメント指向DB(MongoDB・Firestoreなどが有名です)やKVS(DynamoDBなどが有名です)など、いわゆるNoSQLDBの設計については、本教材では対象外とします。
本教材の対応バージョン
- draw.io(diagrams.net)13.7.9
ER図を書くのに使用している図表作成ツールdraw.io(diagrams.net)の操作説明は、本教材執筆時点の最新バージョンである上記バージョンに対応しています。
本教材で取り扱うER図の書き方であるIE記法やDB設計の考え方については、普遍的な知識ですので対応 or 非対応バージョンはありません。
本教材で質問対応可能なOSや環境
本教材では、OSやDBMSによらず質問対応が可能です。
ただし、上記で「学ばないこと」に挙げているORMやSQLの使い方・DB物理設計やRDB「以外」のDBについてのDB設計技法等についてのご質問にはご対応できませんのでご了承ください。
カリキュラム
- 2-1 draw.io(diagrams.net)の紹介と使い方
- 2-2 テーブルを書いてみよう!
- 2-3 リレーションシップを表現してみよう!