要件をエンティティ・関連・キー・関係スキーマへ、一つずつ変換します。
固有の識別子を持つ対象と、その対象について記録する事実を分ける。
エンティティ同士のつながりと、参加できる数を表す。
参加できる最大数と、関連への参加が必須かどうかを分けて考える。
連関エンティティを追加し、各組み合わせとその属性を記録する。
自然キー・代理キー・複合キーを比較する。
エンティティ・属性・関連を、テーブル・列・外部キーへ変換する。
主な識別子と、ほかの候補キーを保護する。
値を必須にし、受け入れる値の範囲を制限する。
保存した参照が、必ず存在する行を指すようにする。
参照先を削除したときに、子行をどう扱うか決める。
各データ規則を、保護するデータベース制約へ対応づける。
繰り返した情報が矛盾する行を作る過程を見る。
どの属性が別の属性を決めるかを矢印で表す。
繰り返し項目・部分関数従属・推移的関数従属を順に分ける。
測定した読み取り上の利点と、追加される書き込みの複雑さを比較する。
全ページを読む経路と索引から候補へ進む経路を比べる。
平衡木で等価・範囲・整列走査をたどる。
先頭列が検索範囲を形作る様子を見る。
索引だけで値を返す条件と可視性確認を見る。
選択性・式・書き込みコストを比較する。
計画木の推定と実測を分ける。
親と子を取得するアプリの往復回数を数える。
複数の文を1単位で確定または取り消す。
PostgreSQLのスナップショットと異常を比べる。
古い読み取りによる上書きを防ぐ。
行バージョンとスナップショットを表示する。
ロック待ちの循環を見つけて解消する。
version検査と事前の行ロックを比べる。