Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RDB THE Right Way - builderscon 2018/ RDB_THE_R...

RDB THE Right Way - builderscon 2018/ RDB_THE_Right_Way

buildersconでの登壇資料です。

https://builderscon.io/tokyo/2018/session/ddba9bd5-819e-489e-9123-04d2291d506e

当日の動画は後ほど上記のリンク先で公開されます。

soudai sone

August 31, 2018
Tweet

More Decks by soudai sone

Other Decks in Technology

Transcript

  1. あじぇんだ 1 自己紹介 2 THE Right Way 3 正しい道の歩き方 4

    壮大なるリファクタリング 5 まとめ
  2. あじぇんだ 1 自己紹介 2 THE Right Way 3 正しい道の歩き方 4

    壮大なるリファクタリング 5 まとめ
  3. 自己紹介 名前 : 曽根 壮大(そね たけとも) 年齢 : 33歳(3人の子供がいます) 職業

    : 副社長/CTO 所属 : 株式会社 オミカレ 日本PostgreSQLユーザ会(JPUG) 勉強会担当 技術的にはLL系言語やRDBが好きです
  4. 自己紹介 名前 : 曽根 壮大(そね たけとも) 年齢 : 33歳(3人の子供がいます) 職業

    : 副社長/CTO 所属 : 株式会社 オミカレ 日本PostgreSQLユーザ会(JPUG) 勉強会担当 技術的にはLL系言語やRDBが好きです
  5. あじぇんだ 1 自己紹介 2 THE Right Way 3 正しい道の歩き方 4

    壮大なるリファクタリング 5 まとめ
  6. THE Right Way 名前 トーク評価 理由 好きなDB その他 曽根 壮大

    最高 ベストスピーカー PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server hoge 普通 普通だった Oracle Fuga 悪い その他 Firebird
  7. THE Right Way 名前 トーク評価 理由 好きなDB その他 曽根 壮大

    最高 ベストスピーカー PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server foo hoge 普通 普通だった Oracle Fuga 悪い その他 Firebird アプリケーションのバグで入る
  8. THE Right Way 名前 トーク評価 理由 好きなDB 曽根 壮大 最高

    ベストスピーカー PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server hoge 普通 普通だった Oracle Fuga 悪い その他 名前 その他 Fuga Firebird 「その他」のときだけ 別テーブルに切り出す
  9. THE Right Way 名前 トーク評価 理由 好きなDB 曽根 壮大 最高

    ベストスピーカー PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server hoge 普通 普通だった Oracle Fuga 悪い その他 名前 その他 Fuga Firebird Soudai foo アプリケーションのバグで入る
  10. 5W2H • When(いつ) • Where(どこで) • Who(誰が) • What(何を) •

    Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ)
  11. 5W2H • When(いつ) • Where(どこで) • Who(誰が) • What(何を) •

    Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ) 過去であるかどうか
  12. 5W2H • When(いつ) • Where(どこで) • Who(誰が) • What(何を) •

    Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ) 何が行われるか 繰り返されるか
  13. 5W2H • When(いつ) • Where(どこで) • Who(誰が) • What(何を) •

    Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ)
  14. • 全て必須とします • 名前は一意とします • When(いつ) • Where(どこで) • Who(誰が)

    • What(何を) • Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ)
  15. • 全て必須とします • 名前は一意とします • When(いつ) • Where(どこで) • Who(誰が)

    • What(何を) • Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ) アンケート結果は事実 ↓ イベント
  16. • 全て必須とします • 名前は一意とします • When(いつ) • Where(どこで) • Who(誰が)

    • What(何を) • Why(なぜ) • How(どうする) • How Much、How Many (いくら、いくつ) アンケートの項目自体は?
  17. THE Right Way 名前 好きなDB 曽根 壮大 PostgreSQL soudai1025 MySQL

    Soudai SQL Server hoge Oracle Fuga Firebird 名前 選択肢 Firebird その他 PostgreSQL PostgreSQL MySQL MySQL Oracle Oracle SQL Server SQL Server SQLite その他 Db2 その他 ※DBのところだけ注目して正規化をした場合 データベースの種類 アンケート
  18. THE Right Way 名前 好きなDB 曽根 壮大 PostgreSQL soudai1025 MySQL

    Soudai SQL Server hoge Oracle Fuga Firebird 名前 選択肢 Firebird その他 PostgreSQL PostgreSQL MySQL MySQL Oracle Oracle SQL Server SQL Server SQLite その他 DB2 その他 回答の事実はその他ではなく、DB名 データベースの種類 アンケート ※DBのところだけ注目して正規化をした場合
  19. THE Right Way 名前 好きなDB 曽根 壮大 PostgreSQL soudai1025 MySQL

    Soudai SQL Server hoge Oracle Fuga Firebird 名前 選択肢 Firebird その他 PostgreSQL PostgreSQL MySQL MySQL Oracle Oracle SQL Server SQL Server SQLite その他 DB2 その他 ※DBのところだけ注目して正規化をした場合 主キーなので一意 データベースの種類 アンケート
  20. あじぇんだ 1 自己紹介 2 THE Right Way 3 正しい道の歩き方 4

    壮大なるリファクタリング 5 まとめ
  21. 正規化だけで解決しない例 • パフォーマンス問題 • アプリケーションの制約 • システムアーキテクチャの制約 • 正規化が細かく、JOINが多段 •

    テーブルサイズが大きい • 参照の条件が多い • 書き込み・更新がとても多い • INDEXが効かない …etc
  22. THE Right Way 名前 トーク評価 理由 好きなDB その他 曽根 壮大

    最高 ベストスピーカー PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server hoge 普通 普通だった Oracle Fuga 悪い その他 Firebird 「その他」の時だけ許可する CREATE TABLE enquete (“その他” text CHECK(“好きなDB” = ‘その他’), …);
  23. あじぇんだ 1 自己紹介 2 THE Right Way 3 正しい道の歩き方 4

    壮大なるリファクタリング 5 まとめ
  24. 壮大なるリファクタリング 名前 トーク評価 理由 好きなDB その他 曽根 壮大 最高 ベストスピーカー

    PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server hoge 普通 普通だった Oracle Fuga 悪い その他 Firebird
  25. 壮大なるリファクタリング 名前 トーク 評価 理由 好きなDB 曽根 壮大 最高 ベストスピーカー

    PostgreSQL soudai1025 最高 なんとなく MySQL Soudai 最高 SQL Server hoge 普通 普通だった Oracle Fuga 悪い その他 名前 選択肢 Firebird その他 PostgreSQL PostgreSQL MySQL MySQL Oracle Oracle SQL Server SQL Server SQLite その他 DB2 その他 DBの種類 アンケート
  26. あじぇんだ 1 自己紹介 2 THE Right Way 3 正しい道の歩き方 4

    壮大なるリファクタリング 5 まとめ