初めにタイトルの理由を簡単に
なぜデータベース(DB)を学ぶべきか?
データベース(以下、DB)は現代のソフトウェア開発において不可欠です。以下の理由から、DBの知識は必須と言えます:
-
DBを使わないシステムはほぼ存在しない
自社開発、SIer、SESなど、どんなビジネスモデルでも、ソフトウェア開発ではデータの保持が求められます。
→ DBがわからない=要望に応じた設計ができない
銀行システム、スマホゲーム、電子辞書など、身の回りのサービスでDBを使っていないソフトウェアサービスはあるでしょうか? -
体系的な学習で保守性・拡張性の高いDB設計が可能に
DBの知識は実務だけでなく、個人開発にも活かしやすく、一度身につければ長く役立つスキルです。
想定読者
- DBを意識したことない人全員
- SQLを少し触ったことはあるが、体系的に学んだことがない方
DB未経験者や初心者向けの内容です。
「スッキリわかるSQL入門」をおすすめする理由
『スッキリわかるSQL入門』は、DB初心者にかなりいい参考書だと感じました。
その理由は以下の通りです
-
初心者向けに丁寧に書かれている
本書はDB初心者向けに執筆されており、わかりやすさに定評があります。
実際に読んでみても、一言一句丁寧に解説されており、理解しやすい内容です -
豊富な例題と問題集(個人的なおすすめポイント!)
- 256問の練習問題を通じて、CRUD操作(作成、読み取り、更新、削除)を反復練習できます
- 本書専用の環境が用意されているため、DB環境構築の手間なく、練習に集中可能
-
実践的な学習内容
SQLの基本から応用まで、初心者がつまずきやすいポイントも丁寧に解説されています
「スッキリわかるSQL入門」で学べること
本書では、以下のスキルを習得できます:
1. 基本的なSQL文の文法
-
CRUD操作
- SELECT文:データ取得
- INSERT文:データ追加
- UPDATE文:データ更新
-
DELETE文:データ削除
これらはSQLの基礎であり、DB操作の基本を練習します
2. 集計処理、グループ化、関数、結合
- 基本的なCRUD操作を超えた高度な処理を学べます
- 例:
SELECT
で列データを取得する際、SUM(列)
を使えばその列の合計値を計算可能
- 例:
- 初心者が苦手としがちな「関数」や「結合」も、丁寧な解説でわかりやすく学べます
3. DB設計
- エンティティの抽出:要件からデータ構造を設計する方法
- 正規化:効率的で保守性の高いDB設計の技法
-
ER図の作成:データ構造を視覚的に表現する方法。
これらはSQL文法以上に重要なスキルで、要望を実現する設計の基盤となります
実践的な練習問題の例:
-
例①:家計簿のDB設計
家族が手書きで管理している家計簿をシステム化。運用や要望を基に、どのデータを列として持ち、どのようにDBを分割・設計するかを考える -
例②:不動産物件のDB設計
不動産チラシ画像から物件情報を正確に管理するためのDB設計を考える本書では、さまざまな業界の具体例を提示し、システム化に向けた設計練習が豊富に用意されています。これにより、実践力が大きく向上します。
「スッキリわかるSQL入門」を学んだ後のステップ
次のステップとして、以下を推薦します:
- 『達人に学ぶDB設計 徹底指南書』
- 『達人に学ぶSQL 徹底指南書』
これらの書籍では、スッキリわかるSQLで扱っていなかった以下のようなトピックを深掘りできます。
- 良い設計と悪い設計の違い
- 設計時の注意点や勘所
ただし、SQLやDB初心者がいきなりこれらの本を読むのは難しいため、『スッキリわかるSQL入門』で基礎を固めてから取り組むことをおすすめします。
個人的な感想
良かった点
-
豊富な練習問題が自分には合っていた
基礎的なSQL文の練習問題が豊富で、反復練習によりSQLに慣れることができます -
わかりやすい解説
集計処理の挙動やSQL文の実行順序など、初心者にとってわかりにくい部分を丁寧に解説。噛み砕いた説明が非常に助かります
難しかった点
-
エンティティの抽出が難しい
ユーザの要件からエンティティを抽出するステップが特に苦手でした。以下を意識すると良いと感じました:- 繰り返し要素を把握し、グループ化する
- エンティティに主キー(人工ID)が必要かを常に考える
- 5W1H(誰が、いつ、どこで、何を、なぜ、どのように)を意識する
エンティティ抽出を正確にできれば、正規化やER図の作成は比較的機械的な作業になるため、練習を重ねて克服したいポイントです。