Skip to main content

設計の小ネタ

  • 命名規則について(設計における標準化)
    • テーブル名のつけ方
    • わかりやすい名前

ビューの作成

  • SELECT文を用いて、実際に存在する実テーブルから見かけ上のテーブルを作成する
  • 正規化して細切れになっても、よく使うのであればビューでSQLを単純にする
  • パフォーマンス向上

インデックスの作成

  • 指定したテーブルの列や複数の列に目次のようなものを作成し、抽出が早くなる
  • インデックスは複数の作成することが可能 -カラムの組合せによっては、検索が遅くなることがある
  • 最低限、主キーにはインデックスを作成しておこう

DDL文

DDLとはデータ定義言語(Data Definition Language)の略。
データ(オブジェクト:テーブルやインデックス、ビューなど)とその内部構造を定義する言語である。

次のがある。

  • CREATE:オブジェクトを作成する。この時カラムに制約(NULL禁止、主キー、外部キーなど)、デフォルト値を付与できる。
  • DROP:オブジェクトを削除する
  • ALTER:オブジェクトの変更を行う。カラムや制約、デフォルト値の追加・削除が可能
  • TRUNCATE:テーブルの行を全て削除する。
    DELETEと似ているが、RDBMSによって、トランザクションがあるもの(PostgreSQL)と無いもの(Oracle)がある。

設計でまず初めに実行するのが、CREATEである。 DDLの詳細はPostgreSQL 9.5.1文書 第5章 データ定義

外部キー

外部キー制約による参照整合性

*外部キーを設定すると列(またはその組合せ)が他のテーブルの行の値と一致する必要がある。
これにより、2つのテーブルの関連に整合性が保たれる。
これを参照整合性と呼ぶ。

外部キー制約のメリットデメリット 

外部キー制約設定時には次のオプションを追加できる。

  • RESTRICT:親の参照されている行(被参照行)の削除を防ぐ
  • CASCADE:親の被参照行が削除された際にそれを参照している子のレコードもすべて削除される
  • SET NULL:親の被参照行が削除された際にNULLがセットされる
  • SET DEFAULT:親の被参照行が削除された際にカラムのデフォルト値がセットされる

メリットとデメリット

  • メリット
    • 参照整合性によりデータの整合性が保たれる
  • デメリット
    • リレーションが複雑化する
    • 削除するときに順番を考える必要が有る

トップダウン 上から下

  • どういう業務をしたいか
  • 現在は存在しない新しい業務とか(子育て支援)  - 今システムがあるが、全く新しいシステムに変えたいとき

ボトムアップ 下から上

  • どうやって業務をしているか
  • 既にある業務を分析する
  • レシートや帳票から