『スッキリわかるSQL入門』を読んだ感想まとめ

はじめに

SQL学習の一発目として『スッキリわかるSQL入門』を読了したので、

まとめてみたい。

良かった点

SQL知識0でも基礎の基礎から学べる

本書の特徴として、

優しいタッチのイラストで描かれている

3人の会話ベースで進み、よくある疑問点など初心者の気持ちを代弁してくれる

ことから、SQL初心者でも挫折しないよう寄り添って書かれていた。

RDBMS製品によってSQL文を分けて紹介してくれる

SQLは、RDBMS製品(Oracle, MySQL, PostgreSQL, SQL Server etc...)によって

命令や記述方法に多少の違いが出てくるが、毎度丁寧に分けて解説してくれている。

学んだこと

SQL命令の4分類

DML

・SELECT
・INSERT
・UPDATE
・DELETE

TCL

・COMMIT
・ROLLBACK
・SET TRANSACTION
・SAVEPOINT

DDL

・CREATE
・ALTER
DROP
・TRUNCATE

DCL

・GRANT
・REVOKE

第1正規形のゴール:

テーブルの全行全列に1つずつ値が入っているべし

ステップ① 繰り返しのれつの部分を別の表に切り出す

ステップ② 切り出したテーブルの仮の主キーを決める

ステップ③ 主キー列をコピーして複合主キーを構成する

第2正規形のゴール:

複合主キーを持つテーブルの場合、非キー列は複合主キーの全体に関数従属すべし(部分関数従属の排除)

(「複合主キーの一部の列に対してのみ関数従属する列」が含まれてはいけない)

ステップ① 複合主キーの一部に関数従属する列を切り出す

ステップ② 部分関数従属していた列をコピーする

第3正規形のゴール:

非キー列は、主キー列に直接、関数従属すべし(推移関数従属の排除)

(「主キーに関数従属する列にさらに関数従属する列」は存在してはいけない)

ステップ① 間接的に主キーに関数従属する列を切り出す
ステップ② 直接的に関数従属していた列をコピーする

物理設計の手順

ステップ① 最終的なテーブル名、列名を決定
ステップ② 列の型を決定
ステップ③ 制約、デフォルト値を決定
ステップ④ インデックスを決定

おわりに

今回こちらの書籍では、「データベースからデータを取り出す」手法をメインで学んだが、
1からサービスを実装する際には「データベースを作成する」手法を学べる書籍に移りたい。