DB Design Academy 総まとめスライド
① 箱を作る → ② つなぐ → ③ 整える → ④ 描く → ⑤ 速くする → ⑥ 守る 主キー 外部キー 正規化 ER図 インデックス トランザクション (PK) (FK) (1NF〜3NF) (実体関連図) ・制約
PRAGMA foreign_keys = ON;
FOREIGN KEY constraint failed
reagent_list TEXT -- '硫酸,エタノール,アセトン' のようにまとめて格納
主キーの一部だけに従属する列がある? はい → 2NF違反(部分関数従属) いいえ ↓ 非キー列が、別の非キー列を経由してしか意味を持たない? はい → 3NF違反(推移的関数従属) いいえ → 3NFまでクリア
supplier_address
supplier_id
1
多
試薬 ──── 1 : 多 ──── 使用記録 試薬 ──── 多 : 多 ──── 発注 (中間テーブル「発注明細」で解消) 発注明細 ──── 多 : 1 ──── 試薬 発注明細 ──── 多 : 1 ──── 発注
SELECT *
EXPLAIN QUERY PLAN で SCAN(全件走査)→SEARCH(索引利用)への変化を確認できる
EXPLAIN QUERY PLAN
SCAN
SEARCH
BEGIN
COMMIT
ROLLBACK
UNIQUE constraint failed
NOT NULL constraint failed
CHECK constraint failed
制約に「怒られる」のは、データベースが正しく仕事をしている証拠。 エラーを消すのではなく、エラーの理由を直すのが正しい対応。
顧客 ──1:多── 注文 ──1:多── 注文明細 ──多:1── 商品
書誌 ──1:多── 蔵書(実物の1冊) ──1:多── 貸出 利用者 ──1:多── 貸出
サンプル ──1:多── 測定 ──1:多── 結果(縦持ち)
DB Design Academyに戻って、各章の復習や総合演習にもう一度挑戦できます。
サイトのトップページへ戻る