Skip to content

SQLアンチパターン 読んだ

Published: at 03:38

インターネットに読めと言われている気がしたので読んだ。

論理設計

一意性と参照整合性に留意する。交差テーブルや従属テーブルを導入する。これは理解できた。
個人的には、ORMはクエリを意識しづらいし使いたくない。

リレーショナルモデルでは、正規化により重複を完全に除去して、結合して頑張ることが正しいとされている。
しかし、実際にはRDBMSは完全なリレーショナルモデルではなく、 結合操作によってパフォーマンスが出ないことがある。
そのために、あえて正規化をしない「非正規化」の存在を知った。 が、具体的にどの状況で使うのか良くわかっていない。

物理設計

画像の扱い方に関して、最近はS3などのストレージに委譲することが多いため 一概には言えないと思った。
正直、アンビギュアスグループはよくわからなかった…。また読みます

クエリ

なんでそもそもNULLが出てきたんだっけ?という問いに自身で明確に答えられなかったので、『理論から学ぶデータベース実践入門』を再読する必要がありそう。

アプリケーション

まとめ

冗長性を排除し、整合性を確保するのが正規化であるが、パフォーマンスは考慮していない。
基本的には整合性を考慮したテーブル設計・クエリ設計をすべきだが、規模感やパフォーマンスのため非正規化することもあり得る。
正規化段階はちゃんと覚える。